sanity-plugin-bynder-input

4.1.44.1.5
~

Modified (5 files)

Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -2,9 +2,9 @@
 import { c } from "react/compiler-runtime";
 import { Box, Button, Flex } from "@sanity/ui";
 import { lazy, useState, useTransition } from "react";
 import { Fragment, jsx, jsxs } from "react/jsx-runtime";
-const VideoPlayer = lazy(() => import("./VideoPlayer.js")), BynderModalLayout = lazy(() => import("./BynderModalLayout.js")), getPreviewUrl = (asset, addInfo) => {
+const VideoPlayer = lazy(() => import("./_chunks-es/VideoPlayer.js")), BynderModalLayout = lazy(() => import("./_chunks-es/BynderModalLayout.js")), getPreviewUrl = (asset, addInfo) => {
 	switch (asset.type) {
 		case "VIDEO": return asset.previewUrls[0];
 		default: return addInfo.selectedFile ? addInfo.selectedFile?.url : asset.webImage.url;
 	}
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "sanity-plugin-bynder-input",
-  "version": "4.1.4",
+  "version": "4.1.5",
   "keywords": [
     "sanity",
     "sanity-plugin"
   ],
@@ -25,24 +25,24 @@
     ".": "./dist/index.js",
     "./package.json": "./package.json"
   },
   "dependencies": {
-    "@sanity/ui": "^3.3.0",
+    "@sanity/ui": "^3.3.5",
     "video.js": "^7.21.7"
   },
   "devDependencies": {
     "@bynder/compact-view": "5.1.2",
     "@sanity/tsconfig": "^2.2.0",
-    "@sanity/tsdown-config": "^0.11.0",
-    "@types/node": "^24.13.2",
+    "@sanity/tsdown-config": "^0.13.1",
+    "@types/node": "^24.13.3",
     "@types/react": "^19.2.17",
     "@types/video.js": "^7.3.58",
     "babel-plugin-react-compiler": "^1.0.0",
     "react": "^19.2.7",
     "react-dom": "^19.2.7",
     "sanity": "^6.3.0",
     "styled-components": "^6.4.3",
-    "tsdown": "^0.22.3"
+    "tsdown": "^0.22.5"
   },
   "peerDependencies": {
     "react": "^19.2",
     "react-dom": "^19.2",
Index: package/dist/index.d.ts.map
===================================================================
--- package/dist/index.d.ts.map
+++ package/dist/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../src/schema/bynder.asset.ts","../src/components/BynderInput.tsx","../src/plugin.tsx","../src/components/BynderDiff.tsx"],"mappings":";;cAIM,qBAAA;AAAA,KAED,eAAA;AAAA,KAEA,qBAAA;EACH,YAAA,GAAe,eAAe;EAC9B,YAAA;EACA,uBAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;AAAA;AAAA,UAGe,kBAAA,SAA2B,aAAa;EACvD,UAAA;EACA,WAAA,GAAc,qBAAA;;;;;;;EAOd,gBAAA;AAAA;;;;UAMe,qBAAA,SAA8B,IAAA,CAC7C,gBAAA;EAGA,IAAA,SAAa,qBAAA;EACb,OAAA,GAAU,kBAAA;AAAA;AAAA;EAAA,UAKO,oBAAA;IACf,cAAA,EAAgB,qBAAqB;EAAA;AAAA;AAAA,UAIxB,gBAAA;EACf,KAAA,SAAc,qBAAqB;EACnC,IAAA;EACA,EAAA;EACA,IAAA;EACA,UAAA;EACA,IAAA;EACA,UAAA;EACA,UAAA;EACA,MAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,WAAA;EACA,KAAA;EACA,MAAA;EAzBA;EAAA,CA2BC,GAAA;AAAA;AAAA,cAGU,iBAAA,EAAmB,gBA6D9B;AAAA,UCvHe,YAAA;EACf,YAAA,EAAc,YAAA;EACd,kBAAA,EAAoB,IAAA,CAAK,gBAAA;EDRA;AAAA;AAAA;;;;ECezB,gBAAA;AAAA;AAAA,UAGe,gBAAA,SAAyB,gBAAA,CAAiB,gBAAA;EACzD,YAAA,EAAc,YAAA;AAAA;AAAA,iBA0CA,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAmB,KAAA,CAAM,GAAA,CAAI,OAAO;AAAA,cC5D1D,iBAAA,EAAmB,MAAA,CAAO,OAAA,CAAQ,YAAA;AAAA,KC2B1C,SAAA;EACH,IAAA;EACA,UAAA,EAAY,UAAU;AAAA;AAAA,iBAGR,UAAA;EAAY,IAAA;EAAM;AAAA,GAAa,SAAA,GAAY,KAAA,CAAM,GAAA,CAAI,OAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../src/schema/bynder.asset.ts","../src/components/BynderInput.tsx","../src/plugin.tsx","../src/components/BynderDiff.tsx"],"mappings":";;cAIM;KAED;KAEA;EACH,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe,2BAA2B;EAC1C;EACA,cAAc;;;;;;;EAOd;;;;;UAMe,8BAA8B,KAC7C;EAGA,aAAa;EACb,UAAU;;;YAKO;IACf,gBAAgB;;;UAIH;EACf,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;GAEC;;cAGU,mBAAmB;UC1Df;EACf,cAAc;EACd,oBAAoB,KAAK;;;;;;;EAOzB;;UAGe,yBAAyB,iBAAiB;EACzD,cAAc;;iBA0CA,YAAY,OAAO,mBAAmB,MAAM,IAAI;cC5DnD,mBAAmB,OAAO,QAAQ;KC2B1C;EACH;EACA,YAAY;;iBAGE,aAAY,MAAM,cAAa,YAAY,MAAM,IAAI"}
\ No newline at end of file
Index: package/dist/index.js.map
===================================================================
--- package/dist/index.js.map
+++ package/dist/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","names":["CompactViewProps","PortalConfig","AdditionalInfo","Box","Button","Flex","useState","lazy","useTransition","ObjectInputProps","PatchEvent","set","unset","BynderAssetOptions","BynderAssetValue","VideoPlayer","BynderModalLayout","BynderConfig","portalConfig","compactViewOptions","Omit","persistRawFields","BynderInputProps","pluginConfig","getPreviewUrl","asset","Record","addInfo","url","getVideoUrl","original","getAspectRatio","dimensions","width","height","getVideoAspectRatio","previewImageUrl","Promise","resolve","reject","img","Image","onload","onerror","err","src","BynderInput","props","$","_c","value","readOnly","schemaType","onChange","isOpen","setIsOpen","fieldOptions","options","t0","assetTypes","map","_temp","t1","assetFilter","t2","t3","from","removeValue","t4","name","_key","assets","webImage","files","aspectRatio","undefined","mediaData","_type","id","databaseId","type","description","previewUrl","previewImg","datUrl","transformBaseUrl","videoUrl","selectedUrl","selectedFile","then","ratio","catch","console","error","onSuccess","preview","t5","t6","t7","Symbol","for","maxHeight","loading","startTransition","shouldLoad","setShouldLoad","openCompactView","closeCompactView","cursor","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t","toUpperCase","Flex","DiffFromTo","SchemaType","ComponentProps","value","Component","t0","$","_c","previewUrl","previewImg","t1","t2","Symbol","for","objectFit","margin","maxWidth","maxHeight","t3","DiffProps","diff","schemaType","BynderDiff","defineType","ObjectDefinition","ObjectOptions","BynderDiff","bynderAssetSchemaName","BynderAssetType","BynderAssetFilterJson","assetType_in","collectionId","metapropertyOptionId_in","searchTerm","tagNames_in","isLimitedUse","showToolbar","BynderAssetOptions","assetTypes","assetFilter","persistRawFields","BynderAssetDefinition","Omit","type","options","IntrinsicDefinitions","BynderAssetValue","_type","_key","id","name","databaseId","previewUrl","previewImg","datUrl","description","aspectRatio","videoUrl","selectedUrl","width","height","key","bynderAssetSchema","title","fields","components","diff","definePlugin","Plugin","isObjectInputProps","SchemaType","BynderInput","BynderConfig","bynderAssetSchema","BynderAssetValue","bynderInputPlugin","Partial","config","reqConfig","portalConfig","url","compactViewOptions","language","persistRawFields","name","schema","types","form","components","input","props","isType","schemaType","value","renderDefault","type"],"sources":["../src/components/BynderInput.tsx","../src/components/BynderDiff.tsx","../src/schema/bynder.asset.ts","../src/plugin.tsx"],"sourcesContent":["import type {CompactViewProps, PortalConfig, AdditionalInfo} from '@bynder/compact-view'\nimport {Box, Button, Flex} from '@sanity/ui'\nimport {useState, lazy, useTransition} from 'react'\nimport {type ObjectInputProps, PatchEvent, set, unset} from 'sanity'\n\nimport type {BynderAssetOptions, BynderAssetValue} from '../schema/bynder.asset'\n\nconst VideoPlayer = lazy(() => import('./VideoPlayer'))\nconst BynderModalLayout = lazy(() => import('./BynderModalLayout'))\n\nexport interface BynderConfig {\n  portalConfig: PortalConfig\n  compactViewOptions: Omit<CompactViewProps, 'onSuccess'>\n  /**\n   * Studio-wide default for whether the full raw Bynder asset payload is\n   * persisted onto documents (in addition to the canonical schema fields).\n   * Field-level `persistRawFields` in `BynderAssetOptions` overrides this.\n   * Defaults to `true` to preserve existing behavior.\n   */\n  persistRawFields?: boolean\n}\n\nexport interface BynderInputProps extends ObjectInputProps<BynderAssetValue> {\n  pluginConfig: BynderConfig\n}\n\nconst getPreviewUrl = (asset: Record<string, any>, addInfo: Record<string, any>) => {\n  switch (asset['type']) {\n    case 'VIDEO':\n      return asset['previewUrls'][0]\n    default:\n      return addInfo['selectedFile'] ? addInfo['selectedFile']?.url : asset['webImage'].url\n  }\n}\n\nconst getVideoUrl = (asset: Record<string, any>) => {\n  if (asset['type'] === 'VIDEO') {\n    // if original asset is available (public videos only) use that if not fall back to the preview url\n    return asset['files']?.original?.url ?? asset['previewUrls'][0]\n  }\n  return null\n}\n\nconst getAspectRatio = (dimensions: {width: number; height: number}): number =>\n  dimensions.height / dimensions.width\n\nconst getVideoAspectRatio = (previewImageUrl: string) =>\n  new Promise((resolve, reject) => {\n    const img = new Image()\n\n    // oxlint-disable-next-line prefer-add-event-listener\n    img.onload = () => {\n      resolve(\n        getAspectRatio({\n          width: img.width,\n          height: img.height,\n        }),\n      )\n    }\n    // oxlint-disable-next-line prefer-add-event-listener\n    img.onerror = (err) => reject(err)\n\n    img.src = previewImageUrl\n  })\n\nexport function BynderInput(props: BynderInputProps): React.JSX.Element {\n  const {value, readOnly, schemaType, pluginConfig, onChange} = props\n  const [isOpen, setIsOpen] = useState(false)\n\n  // Merge field-level options with global plugin config\n  // oxlint-disable-next-line no-unsafe-type-assertion\n  const fieldOptions = schemaType.options as BynderAssetOptions | undefined\n  const compactViewOptions = {\n    ...pluginConfig.compactViewOptions,\n    ...(fieldOptions?.assetTypes && {\n      // oxlint-disable-next-line no-unsafe-type-assertion\n      assetTypes: fieldOptions.assetTypes.map((t) => t.toUpperCase()) as (\n        | 'IMAGE'\n        | 'VIDEO'\n        | 'AUDIO'\n      )[],\n    }),\n    ...(fieldOptions?.assetFilter && {assetFilter: fieldOptions.assetFilter}),\n  }\n\n  const removeValue = () => {\n    onChange(PatchEvent.from([unset()]))\n  }\n\n  const onSuccess = (assets: unknown[], addInfo: AdditionalInfo) => {\n    // oxlint-disable-next-line no-unsafe-type-assertion\n    const asset = assets[0] as Record<string, any>\n    const webImage = asset['files']?.['webImage']\n\n    const aspectRatio = webImage\n      ? getAspectRatio({\n          width: webImage.width,\n          height: webImage.height,\n        })\n      : undefined\n\n    const persistRawFields = fieldOptions?.persistRawFields ?? pluginConfig.persistRawFields ?? true\n\n    const mediaData = {\n      // When `persistRawFields` is true (the default), spread the full raw Bynder\n      // asset payload first; explicit fields below then override with the\n      // canonical, computed, or mapped values declared in the schema.\n      ...(persistRawFields ? asset : {}),\n\n      _key: value?._key,\n      _type: schemaType.name,\n\n      id: asset['id'],\n      name: asset['name'],\n      databaseId: asset['databaseId'],\n      type: asset['type'],\n      description: asset['description'],\n\n      previewUrl: getPreviewUrl(asset, addInfo),\n      previewImg: webImage?.url,\n      datUrl: asset['files']?.['transformBaseUrl']?.url,\n      videoUrl: getVideoUrl(asset),\n      aspectRatio,\n      selectedUrl: addInfo.selectedFile?.url,\n      width: webImage?.width,\n      height: webImage?.height,\n    }\n\n    if (asset['type'] === 'VIDEO') {\n      getVideoAspectRatio(webImage?.url ?? '')\n        // oxlint-disable-next-line always-return\n        .then((ratio) => {\n          onChange(PatchEvent.from([set({...mediaData, aspectRatio: ratio})]))\n          setIsOpen(false)\n        })\n        .catch((err) => {\n          // video aspect ratio couldn't be set, but should still set the rest of the data\n          console.error('Error setting video aspect ratio:', err)\n          onChange(PatchEvent.from([set(mediaData)]))\n          setIsOpen(false)\n        })\n    } else {\n      onChange(PatchEvent.from([set(mediaData)]))\n      setIsOpen(false)\n    }\n  }\n\n  let preview\n  if (value) {\n    if (value.type === 'VIDEO') {\n      preview = (\n        <VideoPlayer controls poster={value.previewImg} sources={[{src: value.previewUrl ?? ''}]} />\n      )\n    }\n    if (value.type === 'IMAGE' || value.type === 'DOCUMENT') {\n      preview = (\n        <img\n          alt=\"preview\"\n          src={value.previewUrl}\n          style={{width: 'auto', height: '100%', maxHeight: '20rem'}}\n        />\n      )\n      // TODO: Add preview for audio types and empty state\n    }\n  }\n\n  const [loading, startTransition] = useTransition()\n  const [shouldLoad, setShouldLoad] = useState(false)\n  const openCompactView = () => {\n    // We want the button to show a loading state if it takes a while to lazy load the modal\n    startTransition(() => setShouldLoad(true))\n    // Opening the modal should never trigger a loading state\n    setIsOpen(true)\n  }\n  const closeCompactView = () => setIsOpen(false)\n\n  return (\n    <>\n      <Flex\n        justify=\"center\"\n        align=\"center\"\n        marginBottom={2}\n        onClick={openCompactView}\n        style={{cursor: 'pointer'}}\n      >\n        {preview}\n      </Flex>\n      <Flex gap={2} style={{width: '100%'}}>\n        <Box flex={1}>\n          <Button\n            style={{width: '100%'}}\n            loading={loading}\n            disabled={readOnly}\n            mode=\"ghost\"\n            text={value ? 'Replace' : 'Browse'}\n            title=\"Select an asset\"\n            onClick={openCompactView}\n          />\n        </Box>\n        <Box flex={1}>\n          <Button\n            style={{width: '100%'}}\n            disabled={readOnly || !value}\n            tone=\"critical\"\n            mode=\"ghost\"\n            text={'Remove'}\n            title=\"Remove asset\"\n            onClick={removeValue}\n          />\n        </Box>\n        {shouldLoad && (\n          <BynderModalLayout\n            isOpen={isOpen}\n            onClose={closeCompactView}\n            portalConfig={pluginConfig.portalConfig}\n            compactViewOptions={compactViewOptions}\n            onSuccess={onSuccess}\n          />\n        )}\n      </Flex>\n    </>\n  )\n}\n","import {Flex} from '@sanity/ui'\nimport {DiffFromTo, type SchemaType} from 'sanity'\n\ntype ComponentProps = {\n  value: any\n}\n\nfunction Component({value}: ComponentProps) {\n  if (value?.previewUrl || value?.previewImg) {\n    return (\n      <Flex justify=\"center\" align=\"center\" height=\"fill\">\n        <img\n          alt=\"preview\"\n          src={value?.previewImg ?? value?.previewUrl}\n          style={{\n            objectFit: 'contain',\n            margin: 'auto',\n            maxWidth: '100%',\n            maxHeight: '100%',\n          }}\n        />\n      </Flex>\n    )\n  }\n\n  return (\n    <Flex justify=\"center\" align=\"center\" height=\"fill\">\n      <div>(no image)</div>\n    </Flex>\n  )\n}\n\ntype DiffProps = {\n  diff: any\n  schemaType: SchemaType\n}\n\nexport function BynderDiff({diff, schemaType}: DiffProps): React.JSX.Element {\n  return (\n    <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={Component} layout={'grid'} />\n  )\n}\n","import {defineType, type ObjectDefinition, type ObjectOptions} from 'sanity'\n\nimport {BynderDiff} from '../components/BynderDiff'\n\nconst bynderAssetSchemaName = 'bynder.asset'\n\ntype BynderAssetType = 'AUDIO' | 'DOCUMENT' | 'IMAGE' | 'VIDEO'\n\ntype BynderAssetFilterJson = {\n  assetType_in?: BynderAssetType[] //predefined asset types\n  collectionId?: string //predefined collection id\n  metapropertyOptionId_in?: string[] //predefined metaproperty IDs\n  searchTerm?: string //predefined search term\n  tagNames_in?: string[] //predefined tags\n  isLimitedUse?: boolean //whether or not this asset is marked as Limited Use\n  showToolbar?: boolean //show toolbar for predefined filters (false by default)\n}\n\nexport interface BynderAssetOptions extends ObjectOptions {\n  assetTypes?: ('image' | 'video' | 'audio' | (string & {}))[]\n  assetFilter?: BynderAssetFilterJson\n  /**\n   * When `true` (the default) the full raw Bynder asset payload is spread onto\n   * the persisted document alongside the canonical fields declared in the\n   * `bynder.asset` schema. Set to `false` to persist only the canonical subset\n   * (the fields enumerated in `BynderAssetValue` / the schema definition).\n   */\n  persistRawFields?: boolean\n}\n\n/**\n * @public\n */\nexport interface BynderAssetDefinition extends Omit<\n  ObjectDefinition,\n  'type' | 'fields' | 'options'\n> {\n  type: typeof bynderAssetSchemaName\n  options?: BynderAssetOptions\n}\n\ndeclare module 'sanity' {\n  // makes type: 'bynder.asset' narrow correctly when using defineType/defineField/defineArrayMember\n  export interface IntrinsicDefinitions {\n    'bynder.asset': BynderAssetDefinition\n  }\n}\n\nexport interface BynderAssetValue {\n  _type: typeof bynderAssetSchemaName\n  _key?: string\n  id?: string\n  name?: string\n  databaseId?: string\n  type?: string\n  previewUrl?: string\n  previewImg?: string\n  datUrl?: string\n  description?: string\n  aspectRatio?: number\n  videoUrl?: string\n  selectedUrl?: string\n  width?: number\n  height?: number\n  /** Index signature to allow any additional Bynder asset fields */\n  [key: string]: unknown\n}\n\nexport const bynderAssetSchema: ObjectDefinition = defineType({\n  name: bynderAssetSchemaName,\n  type: 'object',\n  title: 'Bynder Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'name',\n    },\n    {\n      type: 'string',\n      name: 'databaseId',\n    },\n    {\n      type: 'string',\n      name: 'type',\n    },\n    {\n      type: 'string',\n      name: 'previewUrl',\n    },\n    {\n      type: 'string',\n      name: 'previewImg',\n    },\n    {\n      type: 'string',\n      name: 'datUrl',\n    },\n    {\n      type: 'string',\n      name: 'description',\n    },\n    {\n      type: 'number',\n      name: 'aspectRatio',\n    },\n    {\n      type: 'number',\n      name: 'width',\n    },\n    {\n      type: 'number',\n      name: 'height',\n    },\n    {\n      type: 'string',\n      name: 'videoUrl',\n    },\n    {\n      type: 'string',\n      name: 'selectedUrl',\n    },\n  ],\n  components: {\n    diff: BynderDiff,\n  },\n})\n","import {definePlugin, type Plugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {BynderInput, type BynderConfig} from './components/BynderInput'\nimport {bynderAssetSchema, type BynderAssetValue} from './schema/bynder.asset'\n\nexport const bynderInputPlugin: Plugin<Partial<BynderConfig>> = definePlugin(\n  (config: Partial<BynderConfig>) => {\n    const reqConfig: BynderConfig = {\n      portalConfig: {\n        url: '',\n        ...config?.portalConfig,\n      },\n      compactViewOptions: {\n        language: 'en_US',\n        ...config?.compactViewOptions,\n      },\n      persistRawFields: config?.persistRawFields,\n    }\n\n    return {\n      name: 'bynder-assets',\n      schema: {\n        types: [bynderAssetSchema],\n      },\n      form: {\n        components: {\n          input: (props) => {\n            if (isObjectInputProps(props) && isType(props.schemaType, bynderAssetSchema.name)) {\n              return (\n                // @ts-expect-error - TODO: fix this\n                <BynderInput\n                  {...props}\n                  // oxlint-disable-next-line no-unsafe-type-assertion\n                  value={props.value as BynderAssetValue}\n                  pluginConfig={reqConfig}\n                />\n              )\n            }\n            return props.renderDefault(props)\n          },\n        },\n      },\n    }\n  },\n)\n\nfunction isType(schemaType: SchemaType, name: string): boolean {\n  if (schemaType.name === name) {\n    return true\n  }\n  if (schemaType.type) {\n    return isType(schemaType.type, name)\n  }\n  return false\n}\n"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["CompactViewProps","PortalConfig","AdditionalInfo","Box","Button","Flex","useState","lazy","useTransition","ObjectInputProps","PatchEvent","set","unset","BynderAssetOptions","BynderAssetValue","VideoPlayer","BynderModalLayout","BynderConfig","portalConfig","compactViewOptions","Omit","persistRawFields","BynderInputProps","pluginConfig","getPreviewUrl","asset","Record","addInfo","url","getVideoUrl","original","getAspectRatio","dimensions","width","height","getVideoAspectRatio","previewImageUrl","Promise","resolve","reject","img","Image","onload","onerror","err","src","BynderInput","props","$","_c","value","readOnly","schemaType","onChange","isOpen","setIsOpen","fieldOptions","options","t0","assetTypes","map","_temp","t1","assetFilter","t2","t3","from","removeValue","t4","name","_key","assets","webImage","files","aspectRatio","undefined","mediaData","_type","id","databaseId","type","description","previewUrl","previewImg","datUrl","transformBaseUrl","videoUrl","selectedUrl","selectedFile","then","ratio","catch","console","error","onSuccess","preview","t5","t6","t7","Symbol","for","maxHeight","loading","startTransition","shouldLoad","setShouldLoad","openCompactView","closeCompactView","cursor","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t","toUpperCase","Flex","DiffFromTo","SchemaType","ComponentProps","value","Component","t0","$","_c","previewUrl","previewImg","t1","t2","Symbol","for","objectFit","margin","maxWidth","maxHeight","t3","DiffProps","diff","schemaType","BynderDiff","defineType","ObjectDefinition","ObjectOptions","BynderDiff","bynderAssetSchemaName","BynderAssetType","BynderAssetFilterJson","assetType_in","collectionId","metapropertyOptionId_in","searchTerm","tagNames_in","isLimitedUse","showToolbar","BynderAssetOptions","assetTypes","assetFilter","persistRawFields","BynderAssetDefinition","Omit","type","options","IntrinsicDefinitions","BynderAssetValue","_type","_key","id","name","databaseId","previewUrl","previewImg","datUrl","description","aspectRatio","videoUrl","selectedUrl","width","height","key","bynderAssetSchema","title","fields","components","diff","definePlugin","Plugin","isObjectInputProps","SchemaType","BynderInput","BynderConfig","bynderAssetSchema","BynderAssetValue","bynderInputPlugin","Partial","config","reqConfig","portalConfig","url","compactViewOptions","language","persistRawFields","name","schema","types","form","components","input","props","isType","schemaType","value","renderDefault","type"],"sources":["../src/components/BynderInput.tsx","../src/components/BynderDiff.tsx","../src/schema/bynder.asset.ts","../src/plugin.tsx"],"sourcesContent":["import type {CompactViewProps, PortalConfig, AdditionalInfo} from '@bynder/compact-view'\nimport {Box, Button, Flex} from '@sanity/ui'\nimport {useState, lazy, useTransition} from 'react'\nimport {type ObjectInputProps, PatchEvent, set, unset} from 'sanity'\n\nimport type {BynderAssetOptions, BynderAssetValue} from '../schema/bynder.asset'\n\nconst VideoPlayer = lazy(() => import('./VideoPlayer'))\nconst BynderModalLayout = lazy(() => import('./BynderModalLayout'))\n\nexport interface BynderConfig {\n  portalConfig: PortalConfig\n  compactViewOptions: Omit<CompactViewProps, 'onSuccess'>\n  /**\n   * Studio-wide default for whether the full raw Bynder asset payload is\n   * persisted onto documents (in addition to the canonical schema fields).\n   * Field-level `persistRawFields` in `BynderAssetOptions` overrides this.\n   * Defaults to `true` to preserve existing behavior.\n   */\n  persistRawFields?: boolean\n}\n\nexport interface BynderInputProps extends ObjectInputProps<BynderAssetValue> {\n  pluginConfig: BynderConfig\n}\n\nconst getPreviewUrl = (asset: Record<string, any>, addInfo: Record<string, any>) => {\n  switch (asset['type']) {\n    case 'VIDEO':\n      return asset['previewUrls'][0]\n    default:\n      return addInfo['selectedFile'] ? addInfo['selectedFile']?.url : asset['webImage'].url\n  }\n}\n\nconst getVideoUrl = (asset: Record<string, any>) => {\n  if (asset['type'] === 'VIDEO') {\n    // if original asset is available (public videos only) use that if not fall back to the preview url\n    return asset['files']?.original?.url ?? asset['previewUrls'][0]\n  }\n  return null\n}\n\nconst getAspectRatio = (dimensions: {width: number; height: number}): number =>\n  dimensions.height / dimensions.width\n\nconst getVideoAspectRatio = (previewImageUrl: string) =>\n  new Promise((resolve, reject) => {\n    const img = new Image()\n\n    // oxlint-disable-next-line prefer-add-event-listener\n    img.onload = () => {\n      resolve(\n        getAspectRatio({\n          width: img.width,\n          height: img.height,\n        }),\n      )\n    }\n    // oxlint-disable-next-line prefer-add-event-listener\n    img.onerror = (err) => reject(err)\n\n    img.src = previewImageUrl\n  })\n\nexport function BynderInput(props: BynderInputProps): React.JSX.Element {\n  const {value, readOnly, schemaType, pluginConfig, onChange} = props\n  const [isOpen, setIsOpen] = useState(false)\n\n  // Merge field-level options with global plugin config\n  // oxlint-disable-next-line no-unsafe-type-assertion\n  const fieldOptions = schemaType.options as BynderAssetOptions | undefined\n  const compactViewOptions = {\n    ...pluginConfig.compactViewOptions,\n    ...(fieldOptions?.assetTypes && {\n      // oxlint-disable-next-line no-unsafe-type-assertion\n      assetTypes: fieldOptions.assetTypes.map((t) => t.toUpperCase()) as (\n        | 'IMAGE'\n        | 'VIDEO'\n        | 'AUDIO'\n      )[],\n    }),\n    ...(fieldOptions?.assetFilter && {assetFilter: fieldOptions.assetFilter}),\n  }\n\n  const removeValue = () => {\n    onChange(PatchEvent.from([unset()]))\n  }\n\n  const onSuccess = (assets: unknown[], addInfo: AdditionalInfo) => {\n    // oxlint-disable-next-line no-unsafe-type-assertion\n    const asset = assets[0] as Record<string, any>\n    const webImage = asset['files']?.['webImage']\n\n    const aspectRatio = webImage\n      ? getAspectRatio({\n          width: webImage.width,\n          height: webImage.height,\n        })\n      : undefined\n\n    const persistRawFields = fieldOptions?.persistRawFields ?? pluginConfig.persistRawFields ?? true\n\n    const mediaData = {\n      // When `persistRawFields` is true (the default), spread the full raw Bynder\n      // asset payload first; explicit fields below then override with the\n      // canonical, computed, or mapped values declared in the schema.\n      ...(persistRawFields ? asset : {}),\n\n      _key: value?._key,\n      _type: schemaType.name,\n\n      id: asset['id'],\n      name: asset['name'],\n      databaseId: asset['databaseId'],\n      type: asset['type'],\n      description: asset['description'],\n\n      previewUrl: getPreviewUrl(asset, addInfo),\n      previewImg: webImage?.url,\n      datUrl: asset['files']?.['transformBaseUrl']?.url,\n      videoUrl: getVideoUrl(asset),\n      aspectRatio,\n      selectedUrl: addInfo.selectedFile?.url,\n      width: webImage?.width,\n      height: webImage?.height,\n    }\n\n    if (asset['type'] === 'VIDEO') {\n      getVideoAspectRatio(webImage?.url ?? '')\n        // oxlint-disable-next-line always-return\n        .then((ratio) => {\n          onChange(PatchEvent.from([set({...mediaData, aspectRatio: ratio})]))\n          setIsOpen(false)\n        })\n        .catch((err) => {\n          // video aspect ratio couldn't be set, but should still set the rest of the data\n          console.error('Error setting video aspect ratio:', err)\n          onChange(PatchEvent.from([set(mediaData)]))\n          setIsOpen(false)\n        })\n    } else {\n      onChange(PatchEvent.from([set(mediaData)]))\n      setIsOpen(false)\n    }\n  }\n\n  let preview\n  if (value) {\n    if (value.type === 'VIDEO') {\n      preview = (\n        <VideoPlayer controls poster={value.previewImg} sources={[{src: value.previewUrl ?? ''}]} />\n      )\n    }\n    if (value.type === 'IMAGE' || value.type === 'DOCUMENT') {\n      preview = (\n        <img\n          alt=\"preview\"\n          src={value.previewUrl}\n          style={{width: 'auto', height: '100%', maxHeight: '20rem'}}\n        />\n      )\n      // TODO: Add preview for audio types and empty state\n    }\n  }\n\n  const [loading, startTransition] = useTransition()\n  const [shouldLoad, setShouldLoad] = useState(false)\n  const openCompactView = () => {\n    // We want the button to show a loading state if it takes a while to lazy load the modal\n    startTransition(() => setShouldLoad(true))\n    // Opening the modal should never trigger a loading state\n    setIsOpen(true)\n  }\n  const closeCompactView = () => setIsOpen(false)\n\n  return (\n    <>\n      <Flex\n        justify=\"center\"\n        align=\"center\"\n        marginBottom={2}\n        onClick={openCompactView}\n        style={{cursor: 'pointer'}}\n      >\n        {preview}\n      </Flex>\n      <Flex gap={2} style={{width: '100%'}}>\n        <Box flex={1}>\n          <Button\n            style={{width: '100%'}}\n            loading={loading}\n            disabled={readOnly}\n            mode=\"ghost\"\n            text={value ? 'Replace' : 'Browse'}\n            title=\"Select an asset\"\n            onClick={openCompactView}\n          />\n        </Box>\n        <Box flex={1}>\n          <Button\n            style={{width: '100%'}}\n            disabled={readOnly || !value}\n            tone=\"critical\"\n            mode=\"ghost\"\n            text={'Remove'}\n            title=\"Remove asset\"\n            onClick={removeValue}\n          />\n        </Box>\n        {shouldLoad && (\n          <BynderModalLayout\n            isOpen={isOpen}\n            onClose={closeCompactView}\n            portalConfig={pluginConfig.portalConfig}\n            compactViewOptions={compactViewOptions}\n            onSuccess={onSuccess}\n          />\n        )}\n      </Flex>\n    </>\n  )\n}\n","import {Flex} from '@sanity/ui'\nimport {DiffFromTo, type SchemaType} from 'sanity'\n\ntype ComponentProps = {\n  value: any\n}\n\nfunction Component({value}: ComponentProps) {\n  if (value?.previewUrl || value?.previewImg) {\n    return (\n      <Flex justify=\"center\" align=\"center\" height=\"fill\">\n        <img\n          alt=\"preview\"\n          src={value?.previewImg ?? value?.previewUrl}\n          style={{\n            objectFit: 'contain',\n            margin: 'auto',\n            maxWidth: '100%',\n            maxHeight: '100%',\n          }}\n        />\n      </Flex>\n    )\n  }\n\n  return (\n    <Flex justify=\"center\" align=\"center\" height=\"fill\">\n      <div>(no image)</div>\n    </Flex>\n  )\n}\n\ntype DiffProps = {\n  diff: any\n  schemaType: SchemaType\n}\n\nexport function BynderDiff({diff, schemaType}: DiffProps): React.JSX.Element {\n  return (\n    <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={Component} layout={'grid'} />\n  )\n}\n","import {defineType, type ObjectDefinition, type ObjectOptions} from 'sanity'\n\nimport {BynderDiff} from '../components/BynderDiff'\n\nconst bynderAssetSchemaName = 'bynder.asset'\n\ntype BynderAssetType = 'AUDIO' | 'DOCUMENT' | 'IMAGE' | 'VIDEO'\n\ntype BynderAssetFilterJson = {\n  assetType_in?: BynderAssetType[] //predefined asset types\n  collectionId?: string //predefined collection id\n  metapropertyOptionId_in?: string[] //predefined metaproperty IDs\n  searchTerm?: string //predefined search term\n  tagNames_in?: string[] //predefined tags\n  isLimitedUse?: boolean //whether or not this asset is marked as Limited Use\n  showToolbar?: boolean //show toolbar for predefined filters (false by default)\n}\n\nexport interface BynderAssetOptions extends ObjectOptions {\n  assetTypes?: ('image' | 'video' | 'audio' | (string & {}))[]\n  assetFilter?: BynderAssetFilterJson\n  /**\n   * When `true` (the default) the full raw Bynder asset payload is spread onto\n   * the persisted document alongside the canonical fields declared in the\n   * `bynder.asset` schema. Set to `false` to persist only the canonical subset\n   * (the fields enumerated in `BynderAssetValue` / the schema definition).\n   */\n  persistRawFields?: boolean\n}\n\n/**\n * @public\n */\nexport interface BynderAssetDefinition extends Omit<\n  ObjectDefinition,\n  'type' | 'fields' | 'options'\n> {\n  type: typeof bynderAssetSchemaName\n  options?: BynderAssetOptions\n}\n\ndeclare module 'sanity' {\n  // makes type: 'bynder.asset' narrow correctly when using defineType/defineField/defineArrayMember\n  export interface IntrinsicDefinitions {\n    'bynder.asset': BynderAssetDefinition\n  }\n}\n\nexport interface BynderAssetValue {\n  _type: typeof bynderAssetSchemaName\n  _key?: string\n  id?: string\n  name?: string\n  databaseId?: string\n  type?: string\n  previewUrl?: string\n  previewImg?: string\n  datUrl?: string\n  description?: string\n  aspectRatio?: number\n  videoUrl?: string\n  selectedUrl?: string\n  width?: number\n  height?: number\n  /** Index signature to allow any additional Bynder asset fields */\n  [key: string]: unknown\n}\n\nexport const bynderAssetSchema: ObjectDefinition = defineType({\n  name: bynderAssetSchemaName,\n  type: 'object',\n  title: 'Bynder Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'name',\n    },\n    {\n      type: 'string',\n      name: 'databaseId',\n    },\n    {\n      type: 'string',\n      name: 'type',\n    },\n    {\n      type: 'string',\n      name: 'previewUrl',\n    },\n    {\n      type: 'string',\n      name: 'previewImg',\n    },\n    {\n      type: 'string',\n      name: 'datUrl',\n    },\n    {\n      type: 'string',\n      name: 'description',\n    },\n    {\n      type: 'number',\n      name: 'aspectRatio',\n    },\n    {\n      type: 'number',\n      name: 'width',\n    },\n    {\n      type: 'number',\n      name: 'height',\n    },\n    {\n      type: 'string',\n      name: 'videoUrl',\n    },\n    {\n      type: 'string',\n      name: 'selectedUrl',\n    },\n  ],\n  components: {\n    diff: BynderDiff,\n  },\n})\n","import {definePlugin, type Plugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {BynderInput, type BynderConfig} from './components/BynderInput'\nimport {bynderAssetSchema, type BynderAssetValue} from './schema/bynder.asset'\n\nexport const bynderInputPlugin: Plugin<Partial<BynderConfig>> = definePlugin(\n  (config: Partial<BynderConfig>) => {\n    const reqConfig: BynderConfig = {\n      portalConfig: {\n        url: '',\n        ...config?.portalConfig,\n      },\n      compactViewOptions: {\n        language: 'en_US',\n        ...config?.compactViewOptions,\n      },\n      persistRawFields: config?.persistRawFields,\n    }\n\n    return {\n      name: 'bynder-assets',\n      schema: {\n        types: [bynderAssetSchema],\n      },\n      form: {\n        components: {\n          input: (props) => {\n            if (isObjectInputProps(props) && isType(props.schemaType, bynderAssetSchema.name)) {\n              return (\n                // @ts-expect-error - TODO: fix this\n                <BynderInput\n                  {...props}\n                  // oxlint-disable-next-line no-unsafe-type-assertion\n                  value={props.value as BynderAssetValue}\n                  pluginConfig={reqConfig}\n                />\n              )\n            }\n            return props.renderDefault(props)\n          },\n        },\n      },\n    }\n  },\n)\n\nfunction isType(schemaType: SchemaType, name: string): boolean {\n  if (schemaType.name === name) {\n    return true\n  }\n  if (schemaType.type) {\n    return isType(schemaType.type, name)\n  }\n  return false\n}\n"],"mappings":"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"}
\ No newline at end of file
Index: package/dist/index.d.ts
===================================================================
--- package/dist/index.d.ts
+++ package/dist/index.d.ts
@@ -73,10 +73,7 @@
 type DiffProps = {
   diff: any;
   schemaType: SchemaType;
 };
-declare function BynderDiff({
-  diff,
-  schemaType
-}: DiffProps): React.JSX.Element;
+declare function BynderDiff({ diff, schemaType }: DiffProps): React.JSX.Element;
 export { type BynderAssetDefinition, type BynderAssetOptions, type BynderAssetValue, type BynderConfig, BynderDiff, BynderInput, type BynderInputProps, bynderAssetSchema, bynderInputPlugin };
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file