@sanity/assist 2.0.3 → 2.0.4-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/types.ts","../src/_lib/fixedListenQuery.ts","../src/_lib/useListeningQuery.ts","../src/schemas/serialize/schemaUtils.ts","../src/helpers/typeUtils.ts","../src/helpers/assistSupported.ts","../src/schemas/serialize/serializeSchema.ts","../src/schemas/serialize/SchemTypeTool.tsx","../src/translate/paths.ts","../src/assistInspector/constants.ts","../src/_lib/form/constants.ts","../src/_lib/form/DocumentForm.tsx","../src/assistDocument/components/SelectedFieldContext.tsx","../src/assistInspector/helpers.ts","../src/assistDocument/hooks/useDocumentState.ts","../src/helpers/ids.ts","../src/constants.ts","../src/assistDocument/hooks/useStudioAssistDocument.ts","../src/components/TimeAgo.tsx","../src/helpers/misc.ts","../src/assistInspector/InstructionTaskHistoryButton.tsx","../src/useApiClient.ts","../src/assistLayout/AiAssistanceConfigContext.tsx","../src/assistLayout/RunInstructionProvider.tsx","../src/assistDocument/RequestRunInstructionProvider.tsx","../src/onboarding/InspectorOnboarding.tsx","../src/onboarding/onboardingStore.ts","../src/assistDocument/components/instruction/BackToInstructionsLink.tsx","../src/assistDocument/components/AssistDocumentForm.tsx","../src/assistInspector/FieldAutocomplete.tsx","../src/helpers/conditionalMembers.ts","../src/assistInspector/AssistInspector.tsx","../src/assistInspector/index.ts","../src/assistDocument/AssistDocumentContext.tsx","../src/presence/useAssistPresence.ts","../src/components/FadeInContent.tsx","../../node_modules/@sanity/color/dist/index.js","../src/presence/AssistAvatar.tsx","../src/presence/AiFieldPresence.tsx","../src/components/AssistFeatureBadge.tsx","../src/onboarding/FieldActionsOnboarding.tsx","../src/onboarding/FirstAssistedPathProvider.tsx","../src/assistFormComponents/AssistField.tsx","../src/_lib/connector/ConnectorsStoreContext.ts","../src/_lib/connector/useConnectorsStore.ts","../src/_lib/connector/helpers.ts","../src/_lib/connector/useRegionRects.ts","../src/_lib/connector/ConnectorRegion.tsx","../src/_lib/connector/ConnectFromRegion.tsx","../src/_lib/connector/ConnectorsStore.ts","../src/_lib/connector/ConnectorsProvider.tsx","../src/_lib/connector/mapConnectorToLine.ts","../src/assistConnectors/draw/arrowPath.ts","../src/assistConnectors/draw/connectorPath.ts","../src/assistConnectors/ConnectorPath.tsx","../src/assistConnectors/AssistConnectorsOverlay.tsx","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../src/translate/getLanguageParams.ts","../src/translate/languageStore.ts","../src/translate/FieldTranslationProvider.tsx","../src/assistLayout/AssistLayout.tsx","../src/components/SafeValueInput.tsx","../src/assistFormComponents/AssistFormBlock.tsx","../src/assistFormComponents/AssistItem.tsx","../src/assistDocument/components/helpers.ts","../src/assistDocument/components/instruction/InstructionInput.tsx","../src/assistDocument/components/generic/HiddenFieldTitle.tsx","../src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx","../src/assistDocument/components/instruction/appearance/IconInput.tsx","../src/assistDocument/components/instruction/FieldRefInput.tsx","../src/assistDocument/components/InstructionsArrayInput.tsx","../src/assistFormComponents/AssistInlineFormBlock.tsx","../src/assistDocument/components/FieldRefPreview.tsx","../src/components/HideReferenceChangedBannerInput.tsx","../src/schemas/contextDocumentSchema.tsx","../../node_modules/get-random-values-esm/index.mjs","../src/_lib/randomKey.ts","../src/assistDocument/components/instruction/PromptInput.tsx","../src/assistDocument/components/InstructionsArrayField.tsx","../src/assistDocument/components/instruction/InstructionOutputField.tsx","../src/assistDocument/components/instruction/InstructionOutputInput.tsx","../src/schemas/assistDocumentSchema.tsx","../src/schemas/index.ts","../src/helpers/useAssistSupported.ts","../src/assistDocument/hooks/useAssistDocumentContextValue.tsx","../src/fieldActions/PrivateIcon.tsx","../src/components/ImageContext.tsx","../src/fieldActions/generateCaptionActions.tsx","../src/translate/translateActions.tsx","../src/fieldActions/generateImageActions.tsx","../src/fieldActions/assistFieldActions.tsx","../src/assistDocument/AssistDocumentContextProvider.tsx","../src/assistDocument/hooks/useInstructionToaster.tsx","../src/assistDocument/AssistDocumentInput.tsx","../src/presence/AssistDocumentPresence.tsx","../src/plugin.tsx"],"sourcesContent":["import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const assistDocumentIdPrefix = 'sanity.assist.schemaType.'\nexport const assistDocumentStatusIdPrefix = 'sanity.assist.status.'\nexport const assistSchemaIdPrefix = 'sanity.assist.schema.'\n\n// type names\nexport const assistDocumentTypeName = 'sanity.assist.schemaType.annotations' as const\nexport const assistFieldTypeName = 'sanity.assist.schemaType.field' as const\nexport const instructionTypeName = 'sanity.assist.instruction' as const\nexport const promptTypeName = 'sanity.assist.instruction.prompt' as const\n\nexport const userInputTypeName = 'sanity.assist.instruction.userInput' as const\nexport const instructionContextTypeName = 'sanity.assist.instruction.context' as const\nexport const fieldReferenceTypeName = 'sanity.assist.instruction.fieldRef' as const\n\n// user-facing type. Intentionally does not have sanity. prefix\nexport const contextDocumentTypeName = 'assist.instruction.context' as const\n\nexport const assistTasksStatusTypeName = 'sanity.assist.task.status' as const\nexport const instructionTaskTypeName = 'sanity.assist.instructionTask' as const\nexport const fieldPresenceTypeName = 'sanity.assist.instructionTask.presence' as const\n\nexport const assistSerializedTypeName = 'sanity.assist.serialized.type' as const\nexport const assistSerializedFieldTypeName = 'sanity.assist.serialized.field' as const\n\nexport const outputFieldTypeName = 'sanity.assist.output.field' as const\nexport const outputTypeTypeName = 'sanity.assist.output.type' as const\n\n//url params\nexport const inspectParam = 'inspect' as const\nexport const fieldPathParam = 'pathKey' as const\nexport const instructionParam = 'instruction' as const\n\n// other constants\nexport const documentRootKey = '<document>'\n\nexport type SerializedSchemaMember = Omit<SerializedSchemaType, 'name' | '_type'> & {\n _type?: typeof assistSerializedFieldTypeName\n name?: string\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n name: string\n title?: string\n fields?: SerializedSchemaMember[]\n of?: SerializedSchemaMember[]\n to?: SerializedSchemaMember[]\n annotations?: SerializedSchemaMember[]\n inlineOf?: SerializedSchemaMember[]\n values?: string[] | {value: string; title?: string}[]\n hidden?: boolean | 'function'\n readOnly?: boolean | 'function'\n options?: {\n /** equivalent to options.aiAssist.imageDescriptionField - not renamed in the api for backwards compatability */\n imagePromptField?: string\n embeddingsIndex?: string\n }\n}\n\nexport interface AssistDocument extends SanityDocument {\n fields?: AssistField[]\n instructions?: StudioInstruction[]\n}\n\nexport interface PresetInstruction {\n _key: string\n prompt?: PromptTextBlock[]\n\n title?: string\n /**\n * String key from @sanity/icons IconMap\n */\n icon?: string\n\n /**\n * Type/field filter\n */\n output?: (OutputFieldItem | OutputTypeItem)[]\n}\n\nexport interface PresetField {\n path?: string\n instructions?: PresetInstruction[]\n}\n\nexport interface AssistPreset {\n fields?: PresetField[]\n}\n\nexport interface SanityAssistDocument {\n _id: string\n _type: typeof assistDocumentTypeName\n fields?: StudioAssistField[]\n}\n\nexport interface StudioAssistDocument extends SanityAssistDocument {\n // added after loading\n tasks?: InstructionTask[]\n}\n\nexport interface AssistField {\n _key: string\n _type: typeof assistFieldTypeName\n path?: string\n instructions?: StudioInstruction[]\n}\n\nexport interface StudioAssistField {\n _key: string\n path?: string\n instructions?: StudioInstruction[]\n\n // added\n tasks?: InstructionTask[]\n}\n\nexport interface FieldRef extends PortableTextMarkDefinition {\n _type: typeof fieldReferenceTypeName\n path?: string\n}\n\nexport interface ContextBlock {\n _type: typeof instructionContextTypeName\n reference?: {\n _type: 'reference'\n _ref?: string\n }\n}\n\nexport interface UserInputBlock {\n _type: typeof userInputTypeName\n _key: string\n message?: string\n description?: string\n}\n\nexport type InlinePromptBlock = PortableTextSpan | FieldRef | UserInputBlock | ContextBlock\nexport type PromptTextBlock = Omit<\n PortableTextBlock<never, InlinePromptBlock, 'normal', never>,\n '_type'\n> & {_type: 'block'}\n\nexport type PromptBlock = PromptTextBlock | FieldRef | ContextBlock | UserInputBlock\n\nexport interface AiPresence {\n _key: string\n _type: typeof fieldPresenceTypeName\n path?: string\n started?: string\n}\n\nexport type TaskEndedReason = 'success' | 'error' | 'aborted' | 'timeout'\n\nexport interface InstructionTask {\n _key: string\n _type: typeof instructionTaskTypeName\n instructionKey?: string\n title?: string\n path?: string\n started?: string\n updated?: string\n ended?: string\n message?: string\n reason?: TaskEndedReason\n presence?: AiPresence[]\n startedByUserId?: string\n\n //added by studio\n // eslint-disable-next-line no-use-before-define\n instruction?: StudioInstruction\n}\n\nexport interface StudioInstruction {\n _key: string\n _type: typeof instructionTypeName\n prompt?: PromptBlock[]\n\n icon?: string\n userId?: string\n title?: string\n placeholder?: string\n output?: (OutputFieldItem | OutputTypeItem)[]\n\n //added after query / synthetic fields\n tasks?: InstructionTask[]\n}\n\nexport interface AssistTasksStatus {\n _id: string\n _type: typeof assistTasksStatusTypeName\n tasks?: InstructionTask[]\n}\n\nexport interface AssistInspectorRouteParams {\n [inspectParam]?: string\n [fieldPathParam]?: string\n [instructionParam]?: string\n}\n\nexport interface OutputFieldItem {\n _type: typeof outputFieldTypeName\n _key: string\n //path relative to the field the instruction is for (same as _key)\n relativePath?: string\n}\n\nexport interface OutputTypeItem {\n _type: typeof outputTypeTypeName\n _key: string\n /* array item type name */\n type?: string\n //path relative to the array-field the instruction is for, can be empty string (the array itself, same as _key)\n relativePath?: string\n}\n","import {SanityClient} from '@sanity/client'\nimport {defer, delay, merge, Observable, of, partition, switchMap, throwError} from 'rxjs'\nimport {filter, mergeMap, share, take} from 'rxjs/operators'\nimport {exhaustMapToWithTrailing} from 'rxjs-exhaustmap-with-trailing'\nimport {MutationEvent, ReconnectEvent, WelcomeEvent} from 'sanity'\n\n/** @internal */\nexport type ListenQueryParams = Record<string, string | number | boolean | string[]>\n\n/** @beta */\nexport interface ListenQueryOptions {\n tag?: string\n apiVersion?: string\n throttleTime?: number\n transitions?: ('update' | 'appear' | 'disappear')[]\n}\n\nconst fetch = (\n client: SanityClient,\n query: string,\n params: ListenQueryParams,\n options: ListenQueryOptions\n) =>\n defer(() =>\n // getVersionedClient(options.apiVersion)\n client.observable.fetch(query, params, {\n tag: options.tag,\n filterResponse: true,\n })\n )\n\nconst listen = (\n client: SanityClient,\n query: string,\n params: ListenQueryParams,\n options: ListenQueryOptions\n) =>\n defer(() =>\n // getVersionedClient(options.apiVersion)\n client.listen(query, params, {\n events: ['welcome', 'mutation', 'reconnect'],\n includeResult: false,\n visibility: 'query',\n tag: options.tag,\n })\n ) as Observable<ReconnectEvent | WelcomeEvent | MutationEvent>\n\nfunction isWelcomeEvent(\n event: MutationEvent | ReconnectEvent | WelcomeEvent\n): event is WelcomeEvent {\n return event.type === 'welcome'\n}\n\n/** @internal */\nexport const listenQuery = (\n client: SanityClient,\n query: string | {fetch: string; listen: string},\n params: ListenQueryParams = {},\n options: ListenQueryOptions = {}\n) => {\n const fetchQuery = typeof query === 'string' ? query : query.fetch\n const listenerQuery = typeof query === 'string' ? query : query.listen\n\n const fetchOnce$ = fetch(client, fetchQuery, params, options)\n\n const events$ = listen(client, listenerQuery, params, options).pipe(\n mergeMap((ev, i) => {\n const isFirst = i === 0\n if (isFirst && !isWelcomeEvent(ev)) {\n // if the first event is not welcome, it is most likely a reconnect and\n // if it's not a reconnect something is very wrong\n return throwError(\n new Error(\n ev.type === 'reconnect'\n ? 'Could not establish EventSource connection'\n : `Received unexpected type of first event \"${ev.type}\"`\n )\n )\n }\n return of(ev)\n }),\n share()\n )\n\n const [welcome$, mutationAndReconnect$] = partition(events$, isWelcomeEvent)\n const isRelevantEvent = (event: MutationEvent | ReconnectEvent | WelcomeEvent): boolean => {\n if (!options.transitions || event.type !== 'mutation') {\n return true\n }\n\n return options.transitions.includes(event.transition)\n }\n\n return merge(\n welcome$.pipe(take(1)),\n mutationAndReconnect$.pipe(\n filter(isRelevantEvent),\n switchMap((event) => merge(of(event), of(event).pipe(delay(options.throttleTime || 1000))))\n )\n ).pipe(exhaustMapToWithTrailing(fetchOnce$))\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {ListenQueryOptions, useClient} from 'sanity'\nimport {listenQuery} from './fixedListenQuery'\n\ntype Params = Record<string, string | number | boolean | string[]>\n\ntype ReturnShape<T> = {\n loading: boolean\n error: boolean\n data: T | null\n}\n\ntype Observable = {\n unsubscribe: () => void\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS: ListenQueryOptions = {apiVersion: `v2022-05-09`}\n\nexport function useListeningQuery<T>(\n query: string,\n params: Params = DEFAULT_PARAMS,\n options: ListenQueryOptions = DEFAULT_OPTIONS\n): ReturnShape<T> {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [data, setData] = useState<T | null>(null)\n const subscription = useRef<null | Observable>(null)\n\n const client = useClient({apiVersion: `v2022-05-09`})\n\n useEffect(() => {\n if (query) {\n subscription.current = listenQuery(client, query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current) => (isEqual(current, documents) ? current : documents))\n setLoading(false)\n setError(false)\n })\n }\n\n return () => {\n return subscription.current ? subscription.current.unsubscribe() : undefined\n }\n }, [query, params, options, client])\n\n return {loading, error, data}\n}\n","import {assistSerializedFieldTypeName, assistSerializedTypeName} from '../../types'\n\nexport const hiddenTypes = [\n 'any',\n 'array',\n 'block',\n 'boolean',\n 'crossDatasetReference',\n 'date',\n 'datetime',\n 'document',\n 'email',\n 'file',\n 'image',\n 'number',\n 'object',\n 'reference',\n 'span',\n 'string',\n 'text',\n 'url',\n 'slug',\n 'geopoint',\n 'sanity.assetSourceData',\n 'sanity.imageAsset',\n 'sanity.fileAsset',\n 'sanity.imageCrop',\n 'sanity.imageHotspot',\n 'sanity.imageMetadata',\n 'sanity.imageDimensions',\n 'sanity.imagePalette',\n 'sanity.imagePaletteSwatch',\n\n assistSerializedTypeName,\n assistSerializedFieldTypeName,\n 'sanity-agent.job.document',\n]\n","import {ArraySchemaType, ImageOptions, SchemaType} from 'sanity'\n\nexport function isPortableTextArray(type: ArraySchemaType) {\n return type.of.find((t) => isType(t, 'block'))\n}\n\nexport function isType(schemaType: SchemaType, typeName: string): boolean {\n if (schemaType.name === typeName) {\n return true\n }\n if (!schemaType.type) {\n return false\n }\n return isType(schemaType.type, typeName)\n}\n\nexport function isImage(schemaType: SchemaType) {\n return isType(schemaType, 'image')\n}\n\nexport function getDescriptionFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const descriptionField = (schemaType.options as ImageOptions)?.aiAssist?.imageDescriptionField\n if (descriptionField) {\n return descriptionField\n }\n return getDescriptionFieldOption(schemaType.type)\n}\n\nexport function getImageInstructionFieldOption(\n schemaType: SchemaType | undefined\n): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const imageInstructionField = (schemaType.options as ImageOptions)?.aiAssist\n ?.imageInstructionField\n if (imageInstructionField) {\n return imageInstructionField\n }\n return getImageInstructionFieldOption(schemaType.type)\n}\n","import {ReferenceOptions, SchemaType} from 'sanity'\nimport {AssistOptions} from '../schemas/typeDefExtensions'\nimport {isType} from './typeUtils'\n\nexport function isSchemaAssistEnabled(type: SchemaType) {\n return !(type.options as AssistOptions | undefined)?.aiAssist?.exclude\n}\n\nexport function isAssistSupported(type: SchemaType) {\n if (!isSchemaAssistEnabled(type)) {\n return false\n }\n\n if (isDisabled(type)) {\n return false\n }\n\n if (type.jsonType === 'array') {\n const unsupportedArray = type.of.every((t) => isDisabled(t))\n return !unsupportedArray\n }\n\n if (type.jsonType === 'object') {\n const unsupportedObject = type.fields.every((field) => isDisabled(field.type))\n return !unsupportedObject\n }\n return true\n}\n\nfunction isDisabled(type: SchemaType) {\n return !isSchemaAssistEnabled(type) || isUnsupportedType(type)\n}\n\nfunction isUnsupportedType(type: SchemaType) {\n return (\n type.jsonType === 'number' ||\n type.name === 'sanity.imageCrop' ||\n type.name === 'sanity.imageHotspot' ||\n (isType(type, 'reference') &&\n !(type?.options as ReferenceOptions)?.aiAssist?.embeddingsIndex) ||\n isType(type, 'crossDatasetReference') ||\n isType(type, 'slug') ||\n isType(type, 'url') ||\n isType(type, 'date') ||\n isType(type, 'datetime') ||\n isType(type, 'file')\n )\n}\n","import {\n ArraySchemaType,\n ImageOptions,\n isArraySchemaType,\n ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSchemaIdPrefix,\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaMember,\n SerializedSchemaType,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\nimport {isType} from '../../helpers/typeUtils'\n\ninterface Options {\n leanFormat?: boolean\n}\n\nconst inlineTypes = ['document', 'object', 'image', 'file']\n\nexport function serializeSchema(schema: Schema, options?: Options): SerializedSchemaType[] {\n const list = schema\n .getTypeNames()\n .filter((t) => !(hiddenTypes.includes(t) || t.startsWith('sanity.')))\n .map((t) => schema.get(t))\n .filter((t): t is SchemaType => !!t)\n // because a field can override exclude at the type level, we have to also serialize excluded types\n // so don't do this: .filter((t) => isAssistSupported(t))\n .map((t) => getSchemaStub(t, schema, options))\n .filter((t) => {\n if ('to' in t && t.to && !t.to.length) {\n return false\n }\n if ('of' in t && t.of && !t.of.length) {\n return false\n }\n if ('fields' in t && t.fields && !t.fields.length) {\n return false\n }\n return true\n })\n list.sort((a, b) => (a?.name ?? '').localeCompare(b?.name ?? ''))\n return list\n}\n\nfunction getSchemaStub(\n schemaType: SchemaType,\n schema: Schema,\n options?: Options\n): SerializedSchemaType {\n if (!schemaType.type?.name) {\n console.error('Missing type name', schemaType.type)\n throw new Error('Type is missing name!')\n }\n const baseSchema: SerializedSchemaType = {\n // we dont need type or id when we send using POST, so leave these out to save bandwidth\n ...(options?.leanFormat\n ? {}\n : {_id: `${assistSchemaIdPrefix}${schemaType.name}`, _type: assistSerializedTypeName}),\n name: schemaType.name,\n title: schemaType.title,\n type: schemaType.type.name,\n ...getBaseFields(schema, schemaType, schemaType.type.name, options),\n }\n\n return removeUndef(baseSchema)\n}\n\nfunction getBaseFields(\n schema: Schema,\n type: SchemaType,\n typeName: string,\n options: Options | undefined\n) {\n const schemaOptions: SerializedSchemaType['options'] = removeUndef({\n imagePromptField: (type.options as ImageOptions)?.aiAssist?.imageInstructionField,\n embeddingsIndex: (type.options as ReferenceOptions)?.aiAssist?.embeddingsIndex,\n })\n return removeUndef({\n options: Object.keys(schemaOptions).length ? schemaOptions : undefined,\n values: Array.isArray(type?.options?.list)\n ? type?.options?.list.map((v: string | {value: string; title: string}) =>\n typeof v === 'string' ? v : v.value ?? `${v.title}`\n )\n : undefined,\n of: 'of' in type && typeName === 'array' ? arrayOf(type, schema, options) : undefined,\n to:\n 'to' in type && typeName === 'reference'\n ? refToTypeNames(type as ReferenceSchemaType)\n : undefined,\n fields:\n 'fields' in type && inlineTypes.includes(typeName)\n ? serializeFields(schema, type, options)\n : undefined,\n annotations:\n typeName === 'block' && 'fields' in type\n ? serializeAnnotations(type, schema, options)\n : undefined,\n inlineOf:\n typeName === 'block' && 'fields' in type\n ? serializeInlineOf(type, schema, options)\n : undefined,\n hidden:\n typeof type.hidden === 'function' ? ('function' as const) : type.hidden ? true : undefined,\n readOnly:\n typeof type.readOnly === 'function'\n ? ('function' as const)\n : type.readOnly\n ? true\n : undefined,\n })\n}\n\nfunction serializeFields(\n schema: Schema,\n schemaType: ObjectSchemaType,\n options: Options | undefined\n) {\n const fields = schemaType.fieldsets\n ? schemaType.fieldsets.flatMap((fs) =>\n fs.single\n ? fs.field\n : fs.fields.map((f) => ({\n ...f,\n type: {\n ...f.type,\n // if fieldset is (conditionally) hidden, the field must be considered the same way\n // ie, if the field does not show up in conditionalMembers, it is hidden\n // regardless of weather or not it is the field function or the fieldset function that hides it\n hidden:\n typeof fs.hidden === 'function' ? fs.hidden : fs.hidden ? true : f.type.hidden,\n },\n }))\n )\n : schemaType.fields\n\n return fields\n .filter((f) => !['sanity.imageHotspot', 'sanity.imageCrop'].includes(f.type?.name ?? ''))\n .filter((f) => isAssistSupported(f.type))\n .map((field) => serializeMember(schema, field.type, field.name, options))\n}\n\nfunction serializeMember(\n schema: Schema,\n type: SchemaType,\n name: string,\n options: Options | undefined\n): SerializedSchemaMember {\n const typeNameExists = !!schema.get(type?.name)\n const typeName = typeNameExists ? type.name : type.type?.name ?? ''\n return removeUndef({\n ...(options?.leanFormat ? {} : {_type: assistSerializedFieldTypeName}),\n name: name,\n type: typeName,\n title: type.title,\n ...getBaseFields(schema, type, typeName, options),\n })\n}\n\nfunction serializeInlineOf(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const childrenField = blockSchemaType.fields.find((f) => f.name === 'children')\n const childrenType = childrenField?.type\n if (!childrenType || !isArraySchemaType(childrenType)) {\n return undefined\n }\n return arrayOf(\n {\n ...childrenType,\n of: childrenType.of.filter((t) => !isType(t, 'span')),\n },\n schema,\n options\n )\n}\n\nfunction serializeAnnotations(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const markDefs = blockSchemaType.fields.find((f) => f.name === 'markDefs')\n const marksType = markDefs?.type\n if (!marksType || !isArraySchemaType(marksType)) {\n return undefined\n }\n return arrayOf(marksType, schema, options)\n}\n\nfunction arrayOf(\n arrayType: ArraySchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] {\n return arrayType.of\n .filter((type) => isAssistSupported(type))\n .map((t) => {\n return serializeMember(schema, t, t.name, options)\n })\n}\n\nfunction refToTypeNames(type: ReferenceSchemaType) {\n return type.to.map((t) => ({\n type: typed<string>(t.name),\n }))\n}\n\nfunction removeUndef<T extends Record<string, any>>(obj: T): T {\n Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}))\n return obj\n}\n","import {useClient, useSchema} from 'sanity'\nimport {Box, Button, Card, Flex, Label, Spinner, Stack} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {assistSerializedTypeName, SerializedSchemaType} from '../../types'\nimport {SyncIcon} from '@sanity/icons'\nimport {useListeningQuery} from '../../_lib/useListeningQuery'\nimport {serializeSchema} from './serializeSchema'\n\nconst NO_DATA: SerializedSchemaType[] = []\n\nconst defaultTitle = 'Sync schema'\n\nexport function SchemaTypeTool() {\n const schema = useSchema()\n const client = useClient({apiVersion: '2023-01-01'})\n const [saving, setSaving] = useState(false)\n const [syncTitle, setSyncTitle] = useState(defaultTitle)\n\n const {data} = useListeningQuery<SerializedSchemaType[]>('*[_type==$type] | order(_type)', {\n type: assistSerializedTypeName,\n })\n\n const types = useMemo(() => {\n return serializeSchema(schema)\n }, [schema])\n\n const storeTypes = useCallback(() => {\n setSaving(true)\n let canSave = true\n async function store() {\n setSyncTitle(`Syncing 0/${types.length}`)\n const transaction = client.transaction()\n for (let i = 0; i < types.length; i++) {\n if (!canSave) {\n break\n }\n const type = types[i]\n await transaction.createOrReplace(type as Required<typeof type>)\n if (i > 0 && i % 50 === 0) {\n await transaction.commit()\n transaction.reset()\n setSyncTitle(`Syncing ${i}/${types.length}`)\n }\n }\n await transaction.commit()\n }\n store()\n .catch(console.error)\n .finally(() => {\n setSaving(false)\n setSyncTitle(defaultTitle)\n })\n return () => {\n canSave = false\n setSaving(false)\n setSyncTitle(defaultTitle)\n }\n }, [types, client, setSaving, setSyncTitle])\n\n return (\n <Card padding={4} overflow=\"auto\" style={{height: 'calc(100vh - 81px)'}}>\n <Stack space={4}>\n <Box>\n <Button\n icon={saving ? <Spinner style={{marginTop: 5}} /> : SyncIcon}\n text={syncTitle}\n disabled={saving}\n onClick={storeTypes}\n />\n </Box>\n <Flex gap={2}>\n <Stack space={2}>\n <Label>Studio schema</Label>\n <ul>\n {types.map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n\n <Stack space={2}>\n <Label>Stored schema</Label>\n <ul>\n {(data ?? NO_DATA).map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n </Flex>\n </Stack>\n </Card>\n )\n}\n\nfunction SchemaEntry({schemaStub}: {schemaStub: SerializedSchemaType}) {\n const out = useMemo(() => JSON.stringify(schemaStub, null, 2), [schemaStub])\n return <pre>{out}</pre>\n}\n","import {\n isDocumentSchemaType,\n isKeySegment,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n} from 'sanity'\nimport {extractWithPath} from '@sanity/mutator'\nimport {DocumentMember, TranslationOutput, TranslationOutputsFunction} from './types'\n\nexport interface FieldLanguageMap {\n inputLanguageId: string\n inputPath: Path\n outputs: TranslationOutput[]\n}\n\nconst MAX_DEPTH = 6\n\nexport function getDocumentMembersFlat(doc: SanityDocumentLike, schemaType: ObjectSchemaType) {\n if (!isDocumentSchemaType(schemaType)) {\n console.error(`Schema type is not a document`)\n return []\n }\n\n return extractPaths(doc, schemaType, [], MAX_DEPTH)\n}\n\nfunction extractPaths(\n doc: SanityDocumentLike,\n schemaType: ObjectSchemaType,\n path: Path,\n maxDepth: number\n): DocumentMember[] {\n if (path.length >= maxDepth) {\n return []\n }\n\n return schemaType.fields.reduce<DocumentMember[]>((acc, field) => {\n const fieldPath = [...path, field.name]\n const fieldSchema = field.type\n const {value} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n if (!value) {\n return acc\n }\n\n const thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\n value,\n }\n\n if (fieldSchema.jsonType === 'object') {\n const innerFields = extractPaths(doc, fieldSchema, fieldPath, maxDepth)\n\n return [...acc, thisFieldWithPath, ...innerFields]\n } else if (\n fieldSchema.jsonType === 'array' &&\n fieldSchema.of.length &&\n fieldSchema.of.some((item) => 'fields' in item)\n ) {\n const {value: arrayValue} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n\n let arrayPaths: DocumentMember[] = []\n if ((arrayValue as any)?.length) {\n for (const item of arrayValue as any[]) {\n const itemPath = [...fieldPath, {_key: item._key}]\n let itemSchema = fieldSchema.of.find((t) => t.name === item._type)\n if (!item._type) {\n itemSchema = fieldSchema.of[0]\n console.warn(\n 'Array item is missing _type - using the first defined type in the array.of schema',\n {\n itemPath,\n item,\n itemSchema,\n }\n )\n }\n if (item._key && itemSchema) {\n const innerFields = extractPaths(\n doc,\n itemSchema as ObjectSchemaType,\n itemPath,\n maxDepth\n )\n const arrayMember = {\n path: itemPath,\n name: item._key,\n schemaType: itemSchema,\n value: item,\n }\n arrayPaths = [...arrayPaths, arrayMember, ...innerFields]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\n\n/**\n * Default implementation for plugin config `translate.field.translationOutputs`\n *\n * @see FieldTranslationConfig#translationOutputs\n */\nexport const defaultLanguageOutputs: TranslationOutputsFunction = function (\n member,\n enclosingType,\n translateFromLanguageId,\n translateToLanguageIds\n) {\n if (\n member.schemaType.jsonType === 'object' &&\n member.schemaType.name.startsWith('internationalizedArray')\n ) {\n const pathEnd = member.path.slice(-1)\n\n const language = isKeySegment(pathEnd[0]) ? pathEnd[0]._key : null\n return language === translateFromLanguageId\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), {_key: translateToId}],\n }))\n : undefined\n }\n\n if (enclosingType.jsonType === 'object' && enclosingType.name.startsWith('locale')) {\n return translateFromLanguageId === member.name\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), translateToId],\n }))\n : undefined\n }\n\n return undefined\n}\n\nexport function getFieldLanguageMap(\n documentSchema: ObjectSchemaType,\n documentMembers: DocumentMember[],\n translateFromLanguageId: string,\n outputLanguageIds: string[],\n langFn: TranslationOutputsFunction\n): FieldLanguageMap[] {\n const translationMaps: FieldLanguageMap[] = []\n for (const member of documentMembers) {\n const parentPath = member.path.slice(0, -1)\n const enclosingType =\n documentMembers.find((m) => pathToString(m.path) === pathToString(parentPath))?.schemaType ??\n documentSchema\n\n const translations = langFn(\n member,\n enclosingType,\n translateFromLanguageId,\n outputLanguageIds\n )?.filter((translation) => translation.id !== translateFromLanguageId)\n\n if (translations) {\n translationMaps.push({\n inputLanguageId: translateFromLanguageId,\n inputPath: member.path,\n outputs: translations,\n })\n }\n }\n\n return translationMaps\n}\n","export const aiInspectorId = 'ai-assistance'\n","export const assistFormId = 'assist'\n","import {Box, BoxProps, Flex, focusFirstDescendant, Spinner, Text} from '@sanity/ui'\nimport React, {HTMLProps, useEffect, useMemo, useRef} from 'react'\nimport {tap} from 'rxjs/operators'\nimport {\n createPatchChannel,\n DocumentMutationEvent,\n DocumentRebaseEvent,\n FormBuilder,\n fromMutationPatches,\n PatchMsg,\n useDocumentPresence,\n useDocumentStore,\n} from 'sanity'\nimport {useDocumentPane} from 'sanity/desk'\nimport {assistFormId} from './constants'\n\nconst preventDefault = (ev: React.FormEvent) => ev.preventDefault()\n\nexport function DocumentForm(\n props: Omit<BoxProps, 'as'> & Omit<HTMLProps<HTMLDivElement>, 'as' | 'onSubmit' | 'ref'>\n) {\n const {\n collapsedFieldSets,\n collapsedPaths,\n displayed: value,\n documentId,\n documentType,\n editState,\n formState,\n onBlur,\n onChange,\n onFocus,\n onPathOpen,\n onSetActiveFieldGroup,\n onSetCollapsedFieldSet,\n onSetCollapsedPath,\n ready,\n validation,\n } = useDocumentPane()\n\n const documentStore = useDocumentStore()\n const presence = useDocumentPresence(documentId)\n\n // The `patchChannel` is an INTERNAL publish/subscribe channel that we use to notify form-builder\n // nodes about both remote and local patches.\n // - Used by the Portable Text input to modify selections.\n // - Used by `withDocument` to reset value.\n const patchChannel = useMemo(() => createPatchChannel(), [])\n\n const isLocked = editState?.transactionSyncLock?.enabled\n\n useEffect(() => {\n const sub = documentStore.pair\n .documentEvents(documentId, documentType)\n .pipe(\n tap((event) => {\n if (event.type === 'mutation') {\n patchChannel.publish(prepareMutationEvent(event))\n }\n\n if (event.type === 'rebase') {\n patchChannel.publish(prepareRebaseEvent(event))\n }\n })\n )\n .subscribe()\n\n return () => {\n sub.unsubscribe()\n }\n }, [documentId, documentStore, documentType, patchChannel])\n\n const hasRev = Boolean(value?._rev)\n useEffect(() => {\n if (hasRev) {\n // this is a workaround for an issue that caused the document pushed to withDocument to get\n // stuck at the first initial value.\n // This effect is triggered only when the document goes from not having a revision, to getting one\n // so it will kick in as soon as the document is received from the backend\n patchChannel.publish({\n type: 'mutation',\n patches: [],\n snapshot: value,\n })\n }\n // React to changes in hasRev only\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasRev])\n\n const formRef = useRef<null | HTMLDivElement>(null)\n\n useEffect(() => {\n focusFirstDescendant(formRef.current!)\n }, [])\n\n if (isLocked) {\n return (\n <Box as=\"form\" {...props} ref={formRef}>\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Text size={1}>\n Please hold tight while the document is synced. This usually happens right after the\n document has been published, and it shouldn’t take more than a few seconds\n </Text>\n </Flex>\n </Box>\n )\n }\n\n return (\n <Box as=\"form\" {...props} onSubmit={preventDefault} ref={formRef}>\n {ready ? (\n formState === null ? (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Text size={1}>This form is hidden</Text>\n </Flex>\n ) : (\n <FormBuilder\n __internal_patchChannel={patchChannel}\n collapsedFieldSets={collapsedFieldSets}\n collapsedPaths={collapsedPaths}\n focusPath={formState.focusPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n id={assistFormId}\n members={formState.members}\n onChange={onChange}\n onFieldGroupSelect={onSetActiveFieldGroup}\n onPathBlur={onBlur}\n onPathFocus={onFocus}\n onPathOpen={onPathOpen}\n onSetFieldSetCollapsed={onSetCollapsedFieldSet}\n onSetPathCollapsed={onSetCollapsedPath}\n presence={presence}\n readOnly={formState.readOnly}\n schemaType={formState.schemaType}\n validation={validation}\n value={formState.value as any}\n />\n )\n ) : (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Spinner muted />\n\n <Box marginTop={3}>\n <Text align=\"center\" muted size={1}>\n Loading document\n </Text>\n </Box>\n </Flex>\n )}\n </Box>\n )\n}\n\nfunction prepareMutationEvent(event: DocumentMutationEvent): PatchMsg {\n const patches = event.mutations.map((mut) => mut.patch).filter(Boolean)\n\n return {\n type: 'mutation',\n snapshot: event.document,\n patches: fromMutationPatches(event.origin, patches),\n }\n}\n\nfunction prepareRebaseEvent(event: DocumentRebaseEvent): PatchMsg {\n const remotePatches = event.remoteMutations.map((mut) => mut.patch).filter(Boolean)\n const localPatches = event.localMutations.map((mut) => mut.patch).filter(Boolean)\n\n return {\n type: 'rebase',\n snapshot: event.document,\n patches: fromMutationPatches('remote', remotePatches).concat(\n fromMutationPatches('local', localPatches)\n ),\n }\n}\n","import {ObjectSchemaType, SchemaType} from 'sanity'\nimport {createContext} from 'react'\n\nexport interface SelectedFieldContextValue {\n documentSchema?: ObjectSchemaType\n fieldSchema?: SchemaType\n}\n\nexport const SelectedFieldContext = createContext<SelectedFieldContextValue | undefined>(undefined)\nexport const SelectedFieldContextProvider = SelectedFieldContext.Provider\n","import {\n BlockContentIcon,\n BlockquoteIcon,\n DocumentIcon,\n ImageIcon,\n LinkIcon,\n OlistIcon,\n StringIcon,\n} from '@sanity/icons'\nimport {\n ArraySchemaType,\n isKeySegment,\n isObjectSchemaType,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n SchemaType,\n stringToPath,\n} from 'sanity'\nimport {ComponentType, useContext, useMemo} from 'react'\nimport {AssistInspectorRouteParams, documentRootKey, fieldPathParam} from '../types'\nimport {type PaneRouterContextValue, usePaneRouter} from 'sanity/desk'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {SelectedFieldContext} from '../assistDocument/components/SelectedFieldContext'\nimport {extractWithPath} from '@sanity/mutator'\n\nexport interface FieldRef {\n key: string\n path: Path\n title: string\n schemaType: SchemaType\n icon: ComponentType\n synthetic?: boolean\n}\n\nconst maxDepth = 6\n\nexport function getTypeIcon(schemaType: SchemaType) {\n let t: SchemaType | undefined = schemaType\n\n while (t) {\n if (t.icon) return t.icon\n t = t.type\n }\n\n if (isType(schemaType, 'slug')) return LinkIcon\n if (isType(schemaType, 'image')) return ImageIcon\n if (schemaType.jsonType === 'array' && isPortableTextArray(schemaType)) return BlockContentIcon\n\n if (schemaType.jsonType === 'array') return OlistIcon\n if (schemaType.jsonType === 'object') return BlockquoteIcon\n if (schemaType.jsonType === 'string') return StringIcon\n\n return DocumentIcon\n}\n\nexport function getFieldRefsWithDocument(schemaType: ObjectSchemaType): FieldRef[] {\n const fields = getFieldRefs(schemaType)\n return [\n {\n key: documentRootKey,\n icon: schemaType.icon ?? DocumentIcon,\n title: `The entire document`,\n path: [],\n schemaType: schemaType,\n },\n\n ...fields,\n ]\n}\n\nexport function getFieldRefs(\n schemaType: ObjectSchemaType,\n parent?: FieldRef,\n depth = 0\n): FieldRef[] {\n if (depth >= maxDepth) {\n return []\n }\n return schemaType.fields\n .filter((f) => !f.name.startsWith('_'))\n .flatMap((field) => {\n const path: Path = parent ? [...parent.path, field.name] : [field.name]\n const title = field.type.title ?? field.name\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: field.type,\n icon: getTypeIcon(field.type),\n }\n const fields =\n field.type.jsonType === 'object' ? getFieldRefs(field.type, fieldRef, depth + 1) : []\n\n const syntheticFields =\n field.type.jsonType === 'array' ? getSyntheticFields(field.type, fieldRef, depth + 1) : []\n if (!isAssistSupported(field.type)) {\n return [...fields, ...syntheticFields]\n }\n return [fieldRef, ...fields, ...syntheticFields]\n })\n}\n\nfunction getSyntheticFields(schemaType: ArraySchemaType, parent?: FieldRef, depth = 0) {\n if (depth >= maxDepth) {\n return []\n }\n\n return schemaType.of\n .filter((itemType) => !isType(itemType, 'block'))\n .flatMap((itemType) => {\n const segment = {_key: itemType.name}\n const title = itemType.title ?? itemType.name\n const path: Path = parent ? [...parent.path, segment] : [segment]\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: itemType,\n icon: getTypeIcon(itemType),\n synthetic: true,\n }\n const fields =\n itemType.jsonType === 'object' ? getFieldRefs(itemType, fieldRef, depth + 1) : []\n\n if (!isAssistSupported(itemType)) {\n return fields\n }\n return [fieldRef, ...fields]\n })\n}\n\nexport function getTypePath(doc: SanityDocumentLike, pathString: string) {\n if (!pathString) {\n return undefined\n }\n\n const path = stringToPath(pathString)\n const currentPath: Path = []\n let valid = true\n const syntheticPath = path.map((segment) => {\n currentPath.push(segment)\n\n if (isKeySegment(segment)) {\n const match = extractWithPath(pathToString(currentPath), doc)[0]\n const value = match?.value\n if (match && value && typeof value === 'object' && '_type' in value) {\n return {_key: value._type as string}\n }\n valid = false\n }\n return segment\n })\n\n return valid ? patchableKey(pathToString(syntheticPath)) : undefined\n}\n\n/**\n * mutator crashes if path contains certain letters\n * @param pathKey\n */\nfunction patchableKey(pathKey: string) {\n return pathKey.replace(/[=]=/g, ':').replace(/[[\\]]/g, '|').replace(/\"/g, '')\n}\n\nexport function useTypePath(doc: SanityDocumentLike, pathString: string) {\n return useMemo(() => getTypePath(doc, pathString), [doc, pathString])\n}\n\nexport function useSelectedField(\n documentSchemaType?: SchemaType,\n path?: string\n): FieldRef | undefined {\n const selectableFields = useMemo(\n () =>\n documentSchemaType && isObjectSchemaType(documentSchemaType)\n ? getFieldRefsWithDocument(documentSchemaType)\n : [],\n [documentSchemaType]\n )\n\n return useMemo(() => {\n return path ? selectableFields?.find((f) => f.key === path) : undefined\n }, [selectableFields, path])\n}\n\nexport function useSelectedFieldTitle() {\n const {params} = useAiPaneRouter()\n const {documentSchema} = useContext(SelectedFieldContext) ?? {}\n const selectedField = useSelectedField(documentSchema, params[fieldPathParam])\n return getFieldTitle(selectedField)\n}\n\nexport function getFieldTitle(field?: FieldRef) {\n const schemaType = field?.schemaType\n return field?.title ?? schemaType?.title ?? schemaType?.name ?? 'Untitled'\n}\n\nexport type AiPaneRouter = Omit<PaneRouterContextValue, 'setParams' | 'params'> & {\n params: AssistInspectorRouteParams\n setParams: (p: Record<keyof AssistInspectorRouteParams, string | undefined>) => void\n}\n\nexport function useAiPaneRouter() {\n const paneRouter = usePaneRouter()\n\n return useMemo(\n () => ({...paneRouter, params: paneRouter.params ?? {}} as AiPaneRouter),\n [paneRouter]\n )\n}\n","import {useEditState} from 'sanity'\n\nexport function useDocumentState<T>(id: string, docType: string): T | undefined {\n const state = useEditState(id, docType)\n return (state.draft || state.published) as T | undefined\n}\n","import {assistDocumentIdPrefix, assistDocumentStatusIdPrefix} from '../types'\n\nconst aiDocPrefixPattern = new RegExp(`^${assistDocumentIdPrefix}`)\n\nexport function publicId(id: string) {\n return id.replace('drafts.', '')\n}\n\nexport function assistDocumentId(documentType: string) {\n return `${assistDocumentIdPrefix}${documentType}`\n}\n\nexport function documentTypeFromAiDocumentId(id: string) {\n return id.replace(aiDocPrefixPattern, '')\n}\n\nexport function assistTasksStatusId(documentId: string) {\n return `${assistDocumentStatusIdPrefix}${publicId(documentId)}`\n}\n","import {minutesToMilliseconds} from 'date-fns'\n\nexport const releaseAnnouncementUrl =\n 'https://www.sanity.io/blog/sanity-ai-assist-announcement?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const instructionGuideUrl =\n 'https://sanity.io/guides/getting-started-with-ai-assist-instructions?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const giveFeedbackUrl = 'https://forms.gle/Kwz7CThxGeA2GiEU8'\n\nexport const salesUrl =\n 'https://www.sanity.io/contact/sales?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const packageName = '@sanity/assist'\n\nexport const pluginTitle = 'Sanity AI Assist'\n\nexport const pluginTitleShort = 'AI Assist'\n\nexport const maxHistoryVisibilityMs = minutesToMilliseconds(30)\n","import {useEffect, useMemo} from 'react'\nimport {\n assistDocumentTypeName,\n AssistTasksStatus,\n assistTasksStatusTypeName,\n InstructionTask,\n StudioAssistDocument,\n StudioAssistField,\n StudioInstruction,\n} from '../../types'\nimport {ObjectSchemaType, typed, useClient, useCurrentUser} from 'sanity'\nimport {useDocumentState} from './useDocumentState'\nimport {assistDocumentId, assistTasksStatusId} from '../../helpers/ids'\nimport {maxHistoryVisibilityMs} from '../../constants'\n\ninterface UseAssistDocumentProps {\n documentId: string\n schemaType: ObjectSchemaType\n initDoc?: boolean\n}\n\nexport function useStudioAssistDocument({\n documentId,\n schemaType,\n initDoc,\n}: UseAssistDocumentProps): StudioAssistDocument | undefined {\n const documentTypeName = schemaType.name\n const currentUser = useCurrentUser()\n\n const assistDocument = useDocumentState<StudioAssistDocument>(\n assistDocumentId(documentTypeName),\n assistDocumentTypeName\n )\n const assistTasksStatus = useDocumentState<AssistTasksStatus>(\n assistTasksStatusId(documentId ?? ''),\n assistTasksStatusTypeName\n )\n\n const client = useClient({apiVersion: '2023-01-01'})\n\n useEffect(() => {\n if (!assistDocument && initDoc) {\n client\n .createIfNotExists({\n _id: assistDocumentId(documentTypeName),\n _type: assistDocumentTypeName,\n })\n .catch((e) => {\n // best effort\n })\n }\n }, [client, assistDocument, documentTypeName, initDoc])\n\n return useMemo(() => {\n if (!assistDocument) {\n return undefined\n }\n const tasks = assistTasksStatus?.tasks ?? []\n const fields = (assistDocument?.fields ?? []).map((assistField): StudioAssistField => {\n return {\n ...assistField,\n tasks: tasks.filter((task) => task.path === assistField.path),\n instructions: assistField.instructions\n ?.filter((p) => !p.userId || p.userId === currentUser?.id)\n .map((instruction) => asStudioInstruction(instruction, tasks)),\n }\n })\n return typed<StudioAssistDocument>({\n ...assistDocument,\n tasks: tasks?.map((task) => {\n const instruction = fields\n .find((f) => f.path === task.path)\n ?.instructions?.find((i) => i._key === task.instructionKey)\n return {\n ...task,\n instruction,\n }\n }),\n fields: fields,\n })\n }, [assistDocument, assistTasksStatus, currentUser])\n}\n\nfunction asStudioInstruction(\n instruction: StudioInstruction,\n run: InstructionTask[]\n): StudioInstruction {\n return {\n ...instruction,\n tasks: run\n .filter((task) => task.instructionKey === instruction._key)\n .filter(\n (task) =>\n task.started &&\n new Date().getTime() - new Date(task.started).getTime() < maxHistoryVisibilityMs\n ),\n }\n}\n","import {useEffect, useReducer} from 'react'\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow'\n\nfunction useInterval(ms: number) {\n const [tick, update] = useReducer((n) => n + 1, 0)\n\n useEffect(() => {\n const i = setInterval(update, ms)\n return () => clearInterval(i)\n }, [ms])\n return tick\n}\n\nexport function TimeAgo({date}: {date?: string}) {\n useInterval(1000)\n const timeSince = formatDistanceToNow(date ? new Date(date) : new Date())\n return <span title={timeSince}>{timeSince} ago</span>\n}\n","import {documentRootKey, StudioInstruction} from '../types'\nimport {Path, pathToString} from 'sanity'\nimport {useMemo} from 'react'\n\nexport function usePathKey(path: Path | string) {\n return useMemo(() => {\n return getPathKey(path)\n }, [path])\n}\n\nexport function getPathKey(path: Path | string) {\n if (path.length) {\n return Array.isArray(path) ? pathToString(path) : path\n }\n return documentRootKey\n}\n\nexport function getInstructionTitle(instruction?: StudioInstruction) {\n return instruction?.title ?? 'Untitled'\n}\n","import {AssistTasksStatus, InstructionTask, StudioInstruction, TaskEndedReason} from '../types'\nimport {createElement, ForwardedRef, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {\n Box,\n Button,\n Card,\n Flex,\n Popover,\n Spinner,\n Stack,\n Text,\n useClickOutside,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {\n CheckmarkCircleIcon,\n ClockIcon,\n CloseCircleIcon,\n ErrorOutlineIcon,\n SyncIcon,\n} from '@sanity/icons'\nimport {TimeAgo} from '../components/TimeAgo'\nimport {StatusButton, StatusButtonProps, typed, useClient} from 'sanity'\nimport {getInstructionTitle} from '../helpers/misc'\nimport styled, {keyframes} from 'styled-components'\nimport {assistTasksStatusId} from '../helpers/ids'\nimport {maxHistoryVisibilityMs, pluginTitle} from '../constants'\n\nexport interface InstructionTaskHistoryButtonProps {\n documentId?: string\n tasks: InstructionTask[] | undefined\n instructions: StudioInstruction[] | undefined\n showTitles: boolean\n}\n\ninterface CancelableInstructionTask extends InstructionTask {\n cancel: () => void\n title?: string\n}\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n`\n\nconst SyncSpinningIcon = styled(SyncIcon)`\n animation: ${rotate} 1s linear infinite;\n`\n\nconst TASK_CONFIG = {\n aborted: {\n title: 'Canceled',\n icon: CloseCircleIcon,\n tone: 'transparent',\n },\n error: {\n title: 'Error',\n icon: ErrorOutlineIcon,\n tone: 'critical',\n },\n success: {\n title: 'Completed',\n icon: CheckmarkCircleIcon,\n tone: 'positive',\n },\n timeout: {\n title: 'Timeout',\n icon: ClockIcon,\n tone: 'caution',\n },\n} as const\n\nexport function InstructionTaskHistoryButton(props: InstructionTaskHistoryButtonProps) {\n const {tasks, instructions, documentId, showTitles} = props\n\n const client = useClient({apiVersion: '2023-01-01'})\n const cancelRun = useCallback(\n (taskKey: string) => {\n if (!documentId) {\n return\n }\n const statusDocId = assistTasksStatusId(documentId)\n const basePath = `${typed<keyof AssistTasksStatus>('tasks')}[_key==\"${taskKey}\"]`\n client\n .patch(statusDocId)\n .set({\n [`${basePath}.${typed<keyof InstructionTask>('ended')}`]: new Date().toISOString(),\n [`${basePath}.${typed<keyof InstructionTask>('reason')}`]:\n typed<TaskEndedReason>('aborted'),\n })\n .commit()\n .catch(console.error)\n },\n [client, documentId]\n )\n\n const titledTasks = useMemo(() => {\n const t =\n tasks\n ?.filter(\n (task) =>\n task.started &&\n new Date().getTime() - new Date(task.started).getTime() < maxHistoryVisibilityMs\n )\n .map((task): CancelableInstructionTask => {\n const instruction = instructions?.find((i) => i._key === task.instructionKey)\n return {\n ...task,\n title: showTitles ? task.title ?? getInstructionTitle(instruction) : undefined,\n cancel: () => cancelRun(task._key),\n }\n }) ?? []\n t.sort((a, b) => new Date(b.started ?? '').getTime() - new Date(a.started ?? '').getTime())\n return t\n }, [tasks, instructions, cancelRun, showTitles])\n\n // const id = useId()\n\n const isRunning = useMemo(() => titledTasks.some((r) => !r.ended), [titledTasks])\n const hasErrors = useMemo(\n () => titledTasks.some((r) => r.reason === 'error' || r.reason === 'timeout'),\n [titledTasks]\n )\n\n const [open, setOpen] = useState(false)\n\n const toggleOpen = useCallback(() => setOpen((v) => !v), [])\n\n const [button, setButton] = useState<HTMLButtonElement | null>(null)\n const [popover, setPopover] = useState<HTMLDivElement | null>(null)\n\n const handleClickOutside = useCallback(() => {\n setOpen(false)\n }, [])\n\n useClickOutside(handleClickOutside, [button, popover])\n\n const handleEscape = useCallback(() => {\n setOpen(false)\n button?.focus()\n }, [button])\n\n return (\n <Popover\n constrainSize\n content={<TaskList onEscape={handleEscape} tasks={titledTasks} />}\n open={open && !!titledTasks?.length}\n placement=\"top\"\n portal\n ref={setPopover}\n width={0}\n >\n <TaskStatusButton\n disabled={!titledTasks?.length}\n hasErrors={hasErrors}\n isRunning={isRunning}\n onClick={toggleOpen}\n ref={setButton}\n selected={open}\n />\n </Popover>\n )\n}\n\nconst TASK_STATUS_BUTTON_TOOLTIP_PROPS: StatusButtonProps['tooltipProps'] = {\n placement: 'top',\n}\n\nconst TaskStatusButton = forwardRef(function TaskStatusButton(\n props: {\n disabled: boolean\n hasErrors: boolean\n isRunning: boolean\n onClick: () => void\n selected: boolean\n },\n ref: ForwardedRef<HTMLButtonElement>\n) {\n const {disabled, hasErrors, isRunning, onClick, selected} = props\n\n return (\n <StatusButton\n label={`${pluginTitle} status`}\n icon={isRunning ? SyncSpinningIcon : hasErrors ? ErrorOutlineIcon : CheckmarkCircleIcon}\n mode=\"bleed\"\n onClick={onClick}\n tone={hasErrors ? 'critical' : undefined}\n disabled={disabled}\n ref={ref}\n selected={selected}\n tooltipProps={TASK_STATUS_BUTTON_TOOLTIP_PROPS}\n />\n )\n})\n\nfunction TaskList(props: {onEscape: () => void; tasks: CancelableInstructionTask[]}) {\n const {onEscape, tasks} = props\n\n const {isTopLayer} = useLayer()\n\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (isTopLayer && event.key === 'Escape') {\n onEscape()\n }\n },\n [isTopLayer, onEscape]\n )\n )\n\n return (\n <Stack padding={1} space={1}>\n {tasks.map((task) => (\n <TaskItem key={task._key} task={task} />\n ))}\n </Stack>\n )\n}\n\nfunction TaskItem(props: {task: CancelableInstructionTask}) {\n const {task} = props\n\n const taskType = task.reason && TASK_CONFIG[task.reason]\n return (\n <Card radius={2} tone={taskType && taskType?.tone}>\n <Flex align=\"center\" gap={1}>\n <Flex align=\"flex-start\" flex={1} gap={3} padding={3}>\n <Box flex=\"none\">\n <Text size={1}>\n {taskType && createElement(taskType.icon)}\n {!task.reason && <Spinner />}\n </Text>\n </Box>\n <Stack flex={1} space={2}>\n <Text size={1} weight=\"medium\">\n {taskType ? taskType.title : 'Running'}\n {task.title && <>: {task.title}</>}\n </Text>\n {task.message ? <Text size={1}>{task.message}</Text> : null}\n <Text muted size={1}>\n <TimeAgo date={task.ended ?? task.started} />\n </Text>\n </Stack>\n </Flex>\n\n {!task.ended && (\n <Box flex=\"none\" padding={1}>\n <Button fontSize={1} mode=\"bleed\" onClick={task.cancel} text=\"Cancel\" />\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {Path, pathToString, useClient, useCurrentUser, useSchema} from 'sanity'\nimport {useCallback, useMemo, useState} from 'react'\nimport {serializeSchema} from './schemas/serialize/serializeSchema'\nimport {useToast} from '@sanity/ui'\nimport {SanityClient} from '@sanity/client'\nimport {FieldLanguageMap} from './translate/paths'\nimport {documentRootKey} from './types'\nimport {ConditionalMemberState} from './helpers/conditionalMembers'\n\nexport interface UserTextInstance {\n blockKey: string\n userInput: string\n}\n\nexport interface RunInstructionRequest {\n documentId: string\n assistDocumentId: string\n path: string\n typePath?: string\n instructionKey: string\n userId?: string\n userTexts?: UserTextInstance[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nexport interface InstructStatus {\n enabled: boolean\n initialized: boolean\n validToken: boolean\n}\n\nexport interface TranslateRequest {\n documentId: string\n translatePath: Path\n languagePath?: string\n fieldLanguageMap?: FieldLanguageMap[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nconst basePath = '/assist/tasks/instruction'\n\nexport function canUseAssist(status: InstructStatus | undefined) {\n return status?.enabled && status.initialized && status.validToken\n}\n\nexport function useApiClient(customApiClient?: (defaultClient: SanityClient) => SanityClient) {\n const client = useClient({apiVersion: '2023-06-05'})\n return useMemo(\n () => (customApiClient ? customApiClient(client) : client),\n [client, customApiClient]\n )\n}\n\nexport function useTranslate(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const translate = useCallback(\n ({\n documentId,\n languagePath,\n translatePath,\n fieldLanguageMap,\n conditionalMembers,\n }: TranslateRequest) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/translate/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n documentId,\n types,\n languagePath,\n fieldLanguageMap,\n conditionalMembers,\n translatePath:\n translatePath.length === 0 ? documentRootKey : pathToString(translatePath),\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Translate failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n translate,\n loading,\n }),\n [translate, loading]\n )\n}\n\nexport function useGenerateCaption(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateCaption = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-caption/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image description failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateCaption,\n loading,\n }),\n [generateCaption, loading]\n )\n}\n\nexport function useGenerateImage(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateImage = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-image/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image from prompt failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateImage,\n loading,\n }),\n [generateImage, loading]\n )\n}\n\nexport function useGetInstructStatus(apiClient: SanityClient) {\n const [loading, setLoading] = useState(true)\n\n const getInstructStatus = useCallback(async () => {\n setLoading(true)\n\n const projectId = apiClient.config().projectId\n try {\n const status = await apiClient.request<InstructStatus>({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/status?projectId=${projectId}`,\n })\n\n return status\n } finally {\n setLoading(false)\n }\n }, [setLoading, apiClient])\n\n return {\n loading,\n getInstructStatus,\n }\n}\n\nexport function useInitInstruct(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const initInstruct = useCallback(() => {\n setLoading(true)\n return apiClient\n .request({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/init?projectId=${\n apiClient.config().projectId\n }`,\n })\n .finally(() => {\n setLoading(false)\n })\n }, [setLoading, apiClient])\n\n return {\n loading,\n initInstruct,\n }\n}\n\nexport function useRunInstructionApi(apiClient: SanityClient) {\n const toast = useToast()\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n\n const runInstruction = useCallback(\n (request: RunInstructionRequest) => {\n setLoading(true)\n return apiClient\n .request({\n method: 'POST',\n url: `${basePath}/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n ...request,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Instruction failed',\n description: e.message,\n })\n throw e\n })\n .finally(() => {\n setLoading(false)\n })\n },\n [apiClient, types, user, toast]\n )\n\n return useMemo(\n () => ({\n runInstruction,\n loading,\n }),\n [runInstruction, loading]\n )\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {AssistPluginConfig} from '../plugin'\nimport {InstructStatus, useApiClient, useGetInstructStatus, useInitInstruct} from '../useApiClient'\n\nexport interface AiAssistanceConfigContextValue {\n config: AssistPluginConfig\n status?: InstructStatus\n statusLoading: boolean\n initLoading: boolean\n init: () => void\n error?: Error\n}\n\nexport const AiAssistanceConfigContext = createContext<AiAssistanceConfigContextValue>({} as any)\n\nexport function useAiAssistanceConfig() {\n const context = useContext(AiAssistanceConfigContext)\n if (!context) {\n throw new Error('Missing AiAssistanceConfigContext')\n }\n return context\n}\n\nexport function AiAssistanceConfigProvider(props: {\n children?: ReactNode\n config: AssistPluginConfig\n}) {\n const [status, setStatus] = useState<InstructStatus | undefined>()\n const [error, setError] = useState<Error | undefined>()\n\n const apiClient = useApiClient(props.config?.__customApiClient)\n const {getInstructStatus, loading: statusLoading} = useGetInstructStatus(apiClient)\n const {initInstruct, loading: initLoading} = useInitInstruct(apiClient)\n\n useEffect(() => {\n getInstructStatus()\n .then((s) => setStatus(s))\n .catch((e) => {\n console.error(e)\n setError(e as Error)\n })\n }, [getInstructStatus])\n\n const init = useCallback(async () => {\n setError(undefined)\n try {\n await initInstruct()\n const status = await getInstructStatus()\n setStatus(status)\n } catch (e) {\n console.error('Failed to init ai assistance', e)\n setError(e as Error)\n }\n }, [initInstruct, getInstructStatus, setStatus])\n\n const {config, children} = props\n const context = useMemo<AiAssistanceConfigContextValue>(() => {\n return {\n config,\n status,\n statusLoading,\n init,\n initLoading,\n error,\n }\n }, [config, status, init, statusLoading, initLoading, error])\n\n return (\n <AiAssistanceConfigContext.Provider value={context}>\n {children}\n </AiAssistanceConfigContext.Provider>\n )\n}\n","import {Button, Dialog, Flex, Stack, Text, TextArea, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {PlayIcon} from '@sanity/icons'\nimport {\n createContext,\n Dispatch,\n FormEvent,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {UserInputBlock, userInputTypeName} from '../types'\nimport {RunInstructionArgs} from './AssistLayout'\nimport {useApiClient, useRunInstructionApi} from '../useApiClient'\nimport {useAiAssistanceConfig} from './AiAssistanceConfigContext'\nimport {FormFieldHeaderText} from 'sanity'\n\ntype BlockInputs = Record<string, string>\nconst NO_INPUT: BlockInputs = {}\n\nexport interface RunInstructionContextValue {\n runInstruction: (req: RunInstructionArgs) => void\n instructionLoading: boolean\n}\n\nexport const RunInstructionContext = createContext<RunInstructionContextValue>({\n runInstruction: () => {},\n instructionLoading: false,\n})\n\nexport function useRunInstruction() {\n return useContext(RunInstructionContext)\n}\n\nfunction isUserInputBlock(block: {_type: string}): block is UserInputBlock {\n return block._type === userInputTypeName\n}\n\nexport function RunInstructionProvider(props: PropsWithChildren<{}>) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {runInstruction: runInstructionRequest, loading} = useRunInstructionApi(apiClient)\n\n const id = useId()\n\n const [inputs, setInputs] = useState(NO_INPUT)\n const [runRequest, setRunRequest] = useState<\n (RunInstructionArgs & {userInputBlocks: UserInputBlock[]}) | undefined\n >()\n\n const runInstruction = useCallback(\n (req: RunInstructionArgs) => {\n if (loading) {\n return\n }\n const {instruction, ...request} = req\n const instructionKey = instruction._key\n const userInputBlocks = instruction?.prompt\n ?.flatMap((block) =>\n block._type === 'block' ? block.children.filter(isUserInputBlock) : [block]\n )\n .filter(isUserInputBlock)\n\n if (!userInputBlocks?.length) {\n runInstructionRequest({\n ...request,\n instructionKey,\n userTexts: undefined,\n })\n return\n }\n\n setRunRequest({\n ...req,\n userInputBlocks,\n })\n },\n [setRunRequest, runInstructionRequest, loading]\n )\n\n const close = useCallback(() => {\n setRunRequest(undefined)\n setInputs(NO_INPUT)\n }, [setRunRequest, setInputs])\n\n const runWithInput = useCallback(() => {\n if (runRequest) {\n const {instruction, userTexts, ...request} = runRequest\n runInstructionRequest({\n ...request,\n instructionKey: instruction._key,\n userTexts: Object.entries(inputs).map(([key, value]) => ({\n blockKey: key,\n userInput: value,\n })),\n })\n }\n close()\n }, [close, runInstructionRequest, runRequest, inputs])\n\n const open = !!runRequest\n\n const runDisabled = useMemo(\n () =>\n (runRequest?.userInputBlocks?.length ?? 0) >\n Object.entries(inputs).filter(([, value]) => !!value).length,\n [runRequest?.userInputBlocks, inputs]\n )\n\n const runButton = (\n <Button\n text=\"Run instruction\"\n onClick={runWithInput}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n />\n )\n\n const contextValue: RunInstructionContextValue = useMemo(\n () => ({runInstruction, instructionLoading: loading}),\n [runInstruction, loading]\n )\n\n return (\n <RunInstructionContext.Provider value={contextValue}>\n {open ? (\n <Dialog\n id={id}\n open={open}\n onClose={close}\n width={1}\n header={getInstructionTitle(runRequest?.instruction)}\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>Unable to run instruction. All fields must have a value.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n <Stack padding={4} space={2}>\n {runRequest?.userInputBlocks?.map((block, i) => (\n <UserInput\n key={block._key}\n block={block}\n autoFocus={i === 0}\n inputs={inputs}\n setInputs={setInputs}\n />\n ))}\n </Stack>\n </Dialog>\n ) : null}\n {props.children}\n </RunInstructionContext.Provider>\n )\n}\n\nfunction UserInput(props: {\n block: UserInputBlock\n inputs: BlockInputs\n setInputs: Dispatch<SetStateAction<BlockInputs>>\n autoFocus?: boolean\n}) {\n const {block, autoFocus, setInputs, inputs} = props\n const key = block._key\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n\n const onChange = useCallback(\n (e: FormEvent<HTMLTextAreaElement>) => {\n setInputs((current) => ({\n ...current,\n [key]: (e.currentTarget ?? e.target).value,\n }))\n },\n [key, setInputs]\n )\n\n const value = useMemo(() => inputs[key], [inputs, key])\n\n useEffect(() => {\n if (!autoFocus) {\n return\n }\n setTimeout(() => textAreaRef.current?.focus(), 0)\n }, [autoFocus])\n\n return (\n <Stack padding={2} space={3}>\n <FormFieldHeaderText\n title={block?.message ?? 'Provide more context'}\n description={block.description}\n />\n <TextArea\n ref={textAreaRef}\n rows={4}\n value={value}\n onChange={onChange}\n style={{resize: 'vertical'}}\n />\n </Stack>\n )\n}\n","import {useRunInstruction} from '../assistLayout/RunInstructionProvider'\nimport {useCallback, useEffect, useState} from 'react'\nimport {ObjectSchemaType, PatchEvent, SanityDocument, unset} from 'sanity'\nimport {publicId} from '../helpers/ids'\n\nexport interface DraftDelayedTaskArgs<T> {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n task: (args: T) => void\n}\n\nexport function isDocAssistable(\n documentSchemaType: ObjectSchemaType,\n published?: SanityDocument | null,\n draft?: SanityDocument | null\n) {\n return !!(documentSchemaType.liveEdit ? published : draft)\n}\n\nexport function getAssistableDocId(documentSchemaType: ObjectSchemaType, documentId: string) {\n const baseId = publicId(documentId)\n return documentSchemaType.liveEdit ? baseId : `drafts.${baseId}`\n}\n\nexport function useRequestRunInstruction(args: {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n}) {\n const {runInstruction, instructionLoading} = useRunInstruction()\n const requestRunInstruction = useDraftDelayedTask({\n ...args,\n task: runInstruction,\n })\n\n return {\n instructionLoading,\n requestRunInstruction,\n }\n}\n\n/**\n * Ensures that the current document is a draft before running task\n */\nexport function useDraftDelayedTask<T>(args: DraftDelayedTaskArgs<T>) {\n const {documentOnChange, isDocAssistable, task} = args\n\n const [queuedArgs, setQueuedArgs] = useState<T | undefined>(undefined)\n\n useEffect(() => {\n if (queuedArgs && isDocAssistable) {\n task(queuedArgs)\n setQueuedArgs(undefined)\n }\n }, [queuedArgs, isDocAssistable, task])\n\n return useCallback(\n (taskArgs: T) => {\n // make a dummy edit: this will trigger the document/draft to be created\n documentOnChange(PatchEvent.from([unset(['_force_document_creation'])]))\n setQueuedArgs(taskArgs)\n },\n [setQueuedArgs, documentOnChange]\n )\n}\n","import {Box, Button, Container, Flex, Stack, Text} from '@sanity/ui'\nimport {SparklesIcon} from '@sanity/icons'\nimport {releaseAnnouncementUrl} from '../constants'\nimport styled from 'styled-components'\n\nconst SparklesIllustration = styled(SparklesIcon)({\n fontSize: '3.125em',\n '& path': {\n strokeWidth: `0.6px !important`,\n },\n})\n\nexport function InspectorOnboarding(props: {onDismiss: () => void}) {\n const {onDismiss} = props\n return (\n <Box padding={4}>\n <Container width={0}>\n <Stack space={4}>\n <div style={{textAlign: 'center'}}>\n <SparklesIllustration />\n </div>\n <Text align=\"center\" size={1}>\n Create reusable AI instructions that can be applied across all documents of a certain\n type.\n </Text>\n\n <Flex align=\"center\" gap={2} justify=\"center\">\n <Button\n as=\"a\"\n href={releaseAnnouncementUrl}\n rel=\"noreferrer\"\n target=\"_blank\"\n fontSize={1}\n mode=\"default\"\n onClick={onDismiss}\n padding={2}\n text=\"Learn more\"\n tone=\"primary\"\n />\n <Button fontSize={1} mode=\"bleed\" onClick={onDismiss} padding={2} text=\"Dismiss\" />\n </Flex>\n </Stack>\n </Container>\n </Box>\n )\n}\n","import {useCallback, useState} from 'react'\n\nexport const inspectorOnboardingKey = 'sanityStudio:assist:inspector:onboarding:dismissed'\nexport const fieldOnboardingKey = 'sanityStudio:assist:field:onboarding:dismissed'\n\nexport function isFeatureOnboardingDismissed(featureKey: string): boolean {\n if (typeof localStorage === 'undefined') {\n return false\n }\n\n const value = localStorage.getItem(featureKey)\n return value === 'true'\n}\n\nexport function dismissFeatureOnboarding(featureKey: string) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(featureKey, 'true')\n}\n\nexport function useOnboardingFeature(featureKey: string) {\n const [showOnboarding, setShowOnboarding] = useState(\n () => !isFeatureOnboardingDismissed(featureKey)\n )\n const dismissOnboarding = useCallback(() => {\n setShowOnboarding(false)\n dismissFeatureOnboarding(featureKey)\n }, [setShowOnboarding, featureKey])\n\n return {showOnboarding, dismissOnboarding}\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {instructionParam} from '../../../types'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../../../assistInspector/constants'\n\nexport function BackToInstructionListLink() {\n const {openInspector} = useDocumentPane()\n\n const goBack = useCallback(\n () => openInspector(aiInspectorId, {[instructionParam]: undefined as any}),\n [openInspector]\n )\n\n return (\n <div>\n <Button\n as=\"a\"\n fontSize={1}\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n padding={1}\n space={2}\n onClick={goBack}\n text=\" Instructions\"\n textAlign=\"left\"\n />\n </div>\n )\n}\n","import {\n AssistDocument,\n AssistField,\n assistFieldTypeName,\n AssistInspectorRouteParams,\n documentRootKey,\n fieldPathParam,\n instructionParam,\n StudioInstruction,\n} from '../../types'\nimport {createContext, useContext, useEffect, useMemo, useRef} from 'react'\nimport {\n FormCallbacksProvider,\n FormCallbacksValue,\n FormInput,\n insert,\n KeyedSegment,\n ObjectInputProps,\n ObjectSchemaType,\n PatchEvent,\n Path,\n SchemaType,\n set,\n setIfMissing,\n stringToPath,\n typed,\n useFormCallbacks,\n useSchema,\n} from 'sanity'\nimport {BackToInstructionListLink} from './instruction/BackToInstructionsLink'\nimport {useAiPaneRouter} from '../../assistInspector/helpers'\nimport {SelectedFieldContextProvider, SelectedFieldContextValue} from './SelectedFieldContext'\nimport {Card, Stack, Text} from '@sanity/ui'\nimport {documentTypeFromAiDocumentId} from '../../helpers/ids'\nimport {useAiAssistanceConfig} from '../../assistLayout/AiAssistanceConfigContext'\n\nconst EMPTY_FIELDS: AssistField[] = []\n\nexport const TypePathContext = createContext<string | undefined>(undefined)\n\nexport function AssistDocumentForm(props: ObjectInputProps) {\n if (props.readOnly) {\n return (\n <Card border tone=\"caution\" padding={2}>\n <Text size={1}> You do not have sufficient permissions to manage instructions.</Text>\n </Card>\n )\n }\n return <AssistDocumentFormEditable {...props} />\n}\nfunction AssistDocumentFormEditable(props: ObjectInputProps) {\n const {onChange} = props\n const value = props.value as AssistDocument | undefined\n const id = value?._id\n const fields = value?.fields\n\n const targetDocumentType = useMemo(() => {\n if (!id) {\n return undefined\n }\n return documentTypeFromAiDocumentId(id)\n }, [id])\n\n const {params, setParams} = useAiPaneRouter()\n const pathKey = params[fieldPathParam]\n const typePath = useContext(TypePathContext)\n const instruction = params[instructionParam]\n\n const activeKey = useMemo(() => {\n if (!typePath) {\n return undefined\n }\n return (fields ?? EMPTY_FIELDS).find((f) => f.path === typePath)?._key\n }, [fields, typePath])\n\n const activePath: Path | undefined = useMemo(() => {\n if (!activeKey) {\n return undefined\n }\n const base = ['fields', {_key: activeKey}]\n return instruction ? [...base, 'instructions', {_key: instruction}] : base\n }, [activeKey, instruction])\n\n const schema = useSchema()\n const documentSchema: ObjectSchemaType | undefined = useMemo(() => {\n if (!targetDocumentType) {\n return undefined\n }\n return schema.get(targetDocumentType) as ObjectSchemaType\n }, [schema, targetDocumentType])\n\n const fieldSchema = useSelectedSchema(pathKey, documentSchema)\n\n const context: SelectedFieldContextValue = useMemo(\n () => ({\n documentSchema,\n fieldSchema: fieldSchema ?? documentSchema,\n }),\n [fieldSchema, documentSchema]\n )\n\n const title = value?.title\n\n useEffect(() => {\n if (!title && documentSchema && !id?.startsWith('drafts.')) {\n onChange(set(documentSchema.title ?? documentSchema.name, ['title']))\n }\n }, [title, documentSchema, onChange, id])\n\n const {onPathOpen, ...formCallbacks} = useFormCallbacks()\n\n const newCallbacks: FormCallbacksValue = useMemo(\n () => ({\n ...formCallbacks,\n onPathOpen: (path) => {\n if (!instruction && path.length === 4 && path[2] === 'instructions') {\n setParams(\n typed<AssistInspectorRouteParams>({\n ...params,\n [instructionParam]: (path[3] as KeyedSegment)?._key,\n }) as Record<keyof AssistInspectorRouteParams, string | undefined>\n )\n onPathOpen([])\n } else {\n setTimeout(() => onPathOpen(path), 0)\n }\n },\n }),\n [formCallbacks, onPathOpen, params, setParams, instruction]\n )\n\n useEffect(() => {\n if (activePath && !instruction) {\n onPathOpen([])\n }\n }, [activePath, instruction, onPathOpen])\n\n return (\n <SelectedFieldContextProvider value={context}>\n <Stack space={5}>\n <FieldsInitializer\n key={typePath}\n pathKey={typePath}\n activePath={activePath}\n fields={fields}\n documentSchema={documentSchema}\n onChange={onChange}\n />\n {instruction && <BackToInstructionListLink />}\n\n {activePath && (\n <FormCallbacksProvider {...newCallbacks}>\n <div style={{lineHeight: '1.25em'}}>\n <FormInput {...props} absolutePath={activePath} />\n </div>\n </FormCallbacksProvider>\n )}\n\n {!activePath && props.renderDefault(props)}\n </Stack>\n </SelectedFieldContextProvider>\n )\n}\n\nfunction useSelectedSchema(\n fieldPath: string | undefined,\n documentSchema: ObjectSchemaType | undefined\n): SchemaType | undefined {\n return useMemo(() => {\n if (!fieldPath) {\n return undefined\n }\n if (fieldPath === documentRootKey) {\n return documentSchema\n }\n\n const path = stringToPath(fieldPath)\n let currentSchema: ObjectSchemaType | undefined = documentSchema\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n const field = currentSchema?.fields.find((f) => f.name === segment)\n if (!field) {\n return undefined\n }\n if (i === path.length - 1) {\n return field.type\n }\n if (field.type.jsonType !== 'object') {\n return undefined\n }\n currentSchema = field.type\n }\n return currentSchema\n }, [documentSchema, fieldPath])\n}\n\nfunction FieldsInitializer({\n pathKey,\n activePath,\n fields,\n documentSchema,\n onChange,\n}: {\n pathKey?: string\n activePath?: Path\n fields: AssistField[] | undefined\n documentSchema: ObjectSchemaType | undefined\n onChange: ObjectInputProps['onChange']\n}) {\n const {\n config: {__presets: presets},\n } = useAiAssistanceConfig()\n\n const existingField = fields?.find((f) => f._key === pathKey)\n const documentPresets = !!documentSchema?.name && presets?.[documentSchema?.name]\n\n const missingPresetInstructions = useMemo(() => {\n if (!documentPresets || !pathKey) {\n return undefined\n }\n const existingInstructions = existingField?.instructions\n const presetField = documentPresets.fields?.find((f) => f.path === pathKey)\n return presetField?.instructions?.filter(\n (i) => !existingInstructions?.some((ei) => ei._key === i._key)\n )\n }, [documentPresets, pathKey, existingField])\n\n // need this to not fire onChange twice in React strict mode\n const initialized = useRef(false)\n useEffect(() => {\n if (initialized.current || !pathKey) {\n return\n }\n if (existingField && !missingPresetInstructions?.length) {\n return\n }\n\n let event = PatchEvent.from([setIfMissing([], ['fields'])])\n if (!existingField) {\n event = event.append(\n insert(\n [\n typed<AssistField>({\n _key: pathKey,\n _type: assistFieldTypeName,\n path: pathKey,\n instructions: [],\n }),\n ],\n 'after',\n ['fields', -1]\n )\n )\n }\n\n if (!existingField?.instructions?.length) {\n event = event.append([setIfMissing([], ['fields', {_key: pathKey}, 'instructions'])])\n }\n\n if (missingPresetInstructions?.length) {\n event = event.append(\n insert(\n missingPresetInstructions.map(\n (preset): StudioInstruction => ({\n ...preset,\n _type: 'sanity.assist.instruction',\n prompt: preset.prompt?.map((p) => ({markDefs: [], ...p})),\n })\n ),\n 'after',\n ['fields', {_key: pathKey}, 'instructions', -1]\n )\n )\n }\n onChange(event)\n initialized.current = true\n }, [activePath, onChange, pathKey, existingField, missingPresetInstructions])\n\n return null\n}\n","import {SearchIcon} from '@sanity/icons'\nimport {Autocomplete, Box, Breadcrumbs, Card, Flex, Text} from '@sanity/ui'\nimport {createElement, useCallback, useMemo} from 'react'\nimport {FieldRef, getFieldRefs, getFieldRefsWithDocument} from './helpers'\nimport {ObjectSchemaType} from 'sanity'\nimport {isType} from '../helpers/typeUtils'\n\ninterface FieldSelectorProps {\n id: string\n schemaType: ObjectSchemaType\n fieldPath?: string\n onSelect: (path: string) => void\n includeDocument?: boolean\n filter?: (field: FieldRef) => boolean\n}\n\nexport function FieldAutocomplete(props: FieldSelectorProps) {\n const {id, schemaType, fieldPath, onSelect, includeDocument, filter} = props\n\n const fieldRefs = useMemo(() => {\n if (includeDocument) {\n return getFieldRefsWithDocument(schemaType)\n }\n return getFieldRefs(schemaType)\n }, [schemaType, includeDocument])\n const currentField = useMemo(\n () => fieldRefs.find((f) => f.key === fieldPath),\n [fieldPath, fieldRefs]\n )\n\n const autocompleteOptions = useMemo(\n () =>\n fieldRefs\n .filter((field) => (filter ? filter(field) : true))\n .filter((f) => !isType(f.schemaType, 'reference'))\n .map((field) => ({value: field.key, field})),\n [fieldRefs, filter]\n )\n\n const renderOption = useCallback((option: {value: string; field: FieldRef}) => {\n const {value, field} = option\n\n if (!value) {\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Text accent size={1}>\n {option.value}\n </Text>\n </Card>\n )\n }\n\n if (isType(field.schemaType, 'document')) {\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Text size={1} weight=\"semibold\">\n The entire document\n </Text>\n </Card>\n )\n }\n\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Flex gap={3}>\n <Text size={1}>{createElement(field.icon)}</Text>\n\n <FieldTitle field={field} />\n </Flex>\n </Card>\n )\n }, [])\n\n const renderValue = useCallback((value: string, option?: {value: string; field: FieldRef}) => {\n return option?.field.title ?? value\n }, [])\n\n const filterOption = useCallback((query: string, option: {value: string; field: FieldRef}) => {\n const lQuery = query.toLowerCase()\n return (\n option?.value?.toLowerCase().includes(lQuery) ||\n option?.field?.title?.toLowerCase().includes(lQuery)\n )\n }, [])\n\n return (\n <Autocomplete\n fontSize={1}\n icon={currentField ? currentField.icon : SearchIcon}\n onChange={onSelect}\n openButton\n id={id}\n options={autocompleteOptions}\n placeholder=\"Search for a field\"\n radius={2}\n renderOption={renderOption}\n renderValue={renderValue}\n value={currentField?.key}\n filterOption={filterOption}\n />\n )\n}\n\nexport function FieldTitle(props: {field: FieldRef}) {\n const splitTitle = props.field.title.split('/')\n return (\n <Box flex=\"none\">\n <Breadcrumbs\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n marginTop: '-4px',\n }}\n separator={\n <Box marginTop={1}>\n <Text muted size={1}>\n /\n </Text>\n </Box>\n }\n space={1}\n >\n {splitTitle.slice(0, splitTitle.length - 1).map((pt, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Box key={i} marginTop={1}>\n <Text muted size={1}>\n {pt.trim()}\n </Text>\n </Box>\n ))}\n <Box marginTop={1}>\n <Text size={1} weight=\"medium\">\n {splitTitle[splitTitle.length - 1]}\n </Text>\n </Box>\n </Breadcrumbs>\n </Box>\n )\n}\n","/* eslint-disable max-depth */\nimport {\n ArrayOfObjectsFormNode,\n ArrayOfObjectsItemMember,\n ArrayOfPrimitivesFormNode,\n DocumentFormNode,\n FieldsetState,\n isObjectSchemaType,\n ObjectFormNode,\n Path,\n pathToString,\n SchemaType,\n} from 'sanity'\n\nconst MAX_DEPTH = 8\n\nexport interface ConditionalMemberState {\n path: string\n hidden: boolean\n readOnly: boolean\n}\n\ninterface ConditionalMemberInnerState extends ConditionalMemberState {\n conditional: boolean\n}\n\n/**\n * This is used to statically determine the state of the functions on the server-side.\n * Paths which has a schema with conditional config should be considered hidden: true and/or readOnly: true\n * Only conditional paths are included, as static props can be determined from schema.\n *\n * Returns paths that has conditional hidden or readOnly schema config (function) and that.\n * Form-state does not contain hidden members.\n *\n * Note:\n * * If a parent path is hidden, no child paths are included\n * * If a parent path is readOnly, no child paths are included\n * * If a path is hidden, it is not included; only conditionally visible paths will be returned, with hidden: false\n */\nexport function getConditionalMembers(docState: DocumentFormNode): ConditionalMemberState[] {\n const doc: ConditionalMemberInnerState = {\n path: '',\n hidden: false,\n readOnly: !!docState.readOnly,\n conditional: typeof docState.schemaType.hidden === 'function',\n }\n return [doc, ...extractConditionalPaths(docState, MAX_DEPTH)]\n .filter((v) => v.conditional)\n .map(({conditional, ...state}) => ({...state}))\n}\n\nfunction isConditional(schemaType: SchemaType) {\n return typeof schemaType.hidden === 'function' || typeof schemaType.readOnly === 'function'\n}\n\nfunction conditionalState(memberState: {\n path: Path\n schemaType: SchemaType\n readOnly?: boolean\n}): ConditionalMemberInnerState {\n return {\n path: pathToString(memberState.path),\n readOnly: !!memberState.readOnly,\n hidden: false, // if its in members, its not hidden\n conditional: isConditional(memberState.schemaType),\n }\n}\n\nfunction extractConditionalPaths(\n node: ObjectFormNode | FieldsetState,\n maxDepth: number\n): ConditionalMemberInnerState[] {\n if (node.path.length >= maxDepth) {\n return []\n }\n\n return node.members.reduce<ConditionalMemberInnerState[]>((acc, member) => {\n if (member.kind === 'error') {\n return acc\n }\n if (member.kind === 'field') {\n const schemaType = member.field.schemaType\n if (schemaType.jsonType === 'object') {\n const innerFields = member.field.readOnly\n ? []\n : extractConditionalPaths(member.field as ObjectFormNode, maxDepth)\n return [...acc, conditionalState(member.field), ...innerFields]\n } else if (schemaType.jsonType === 'array') {\n const array = member.field as ArrayOfObjectsFormNode | ArrayOfPrimitivesFormNode\n\n let arrayPaths: ConditionalMemberInnerState[] = []\n const isObjectsArray = array.members.some(\n (m) => m.kind === 'item' && isObjectSchemaType(m.item.schemaType)\n )\n if (!array.readOnly) {\n for (const arrayMember of array.members) {\n if (arrayMember.kind === 'error') {\n continue\n }\n\n const innerFields =\n isObjectsArray && !arrayMember.item.readOnly\n ? extractConditionalPaths((arrayMember as ArrayOfObjectsItemMember).item, maxDepth)\n : []\n\n arrayPaths = [...arrayPaths, conditionalState(arrayMember.item), ...innerFields]\n }\n }\n return [...acc, conditionalState(array), ...arrayPaths]\n }\n\n return [...acc, conditionalState(member.field)]\n } else if (member.kind === 'fieldSet') {\n const conditionalFieldset = !!(node as ObjectFormNode).schemaType?.fieldsets?.some(\n (f) => !f.single && f.name === member.fieldSet.name && typeof f.hidden === 'function'\n )\n const innerFields = extractConditionalPaths(member.fieldSet, maxDepth).map((f) => ({\n ...f,\n // if fieldset is conditional, visible fields must also be considered conditional\n conditional: conditionalFieldset ?? f.conditional,\n }))\n return [...acc, ...innerFields]\n }\n\n return acc\n }, [])\n}\n","import {ArrowRightIcon, CloseIcon, PlayIcon, RetryIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {\n DocumentInspectorProps,\n PresenceOverlay,\n useEditState,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {\n DocumentInspectorHeader,\n DocumentPaneNode,\n DocumentPaneProvider,\n useDocumentPane,\n} from 'sanity/desk'\nimport {DocumentForm} from '../_lib/form'\nimport {assistDocumentTypeName, fieldPathParam, instructionParam} from '../types'\nimport {FieldRef, getFieldTitle, useAiPaneRouter, useSelectedField, useTypePath} from './helpers'\nimport styled from 'styled-components'\nimport {useStudioAssistDocument} from '../assistDocument/hooks/useStudioAssistDocument'\nimport {InstructionTaskHistoryButton} from './InstructionTaskHistoryButton'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {giveFeedbackUrl, pluginTitle, releaseAnnouncementUrl, salesUrl} from '../constants'\nimport {assistDocumentId} from '../helpers/ids'\nimport {\n getAssistableDocId,\n isDocAssistable,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {InspectorOnboarding} from '../onboarding/InspectorOnboarding'\nimport {inspectorOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\nimport {TypePathContext} from '../assistDocument/components/AssistDocumentForm'\nimport {FieldTitle} from './FieldAutocomplete'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nconst CardWithShadowBelow = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nconst CardWithShadowAbove = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: -1px;\n border-top: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nexport function AssistInspectorWrapper(props: DocumentInspectorProps) {\n const context = useAiAssistanceConfig()\n\n if (context.statusLoading) {\n return (\n <Flex align=\"center\" height=\"fill\" justify=\"center\" padding={4} sizing=\"border\">\n <Stack space={3} style={{textAlign: 'center'}}>\n <Spinner muted />\n <Text muted size={1}>\n Loading {pluginTitle}...\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n const status = context.status\n\n if (!status?.enabled) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack flex={1} overflow=\"auto\" padding={4} space={3}>\n <Text as=\"p\" size={1} weight=\"semibold\">\n {pluginTitle} is not available\n </Text>\n\n <Text as=\"p\" muted size={1}>\n Please get in touch with a Sanity account manager or{' '}\n <a href={salesUrl} target=\"_blank\" rel=\"noreferrer\">\n contact our sales team\n </a>{' '}\n to get started with {pluginTitle}.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more &rarr;\n </a>\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n if (!status?.initialized || !status.validToken) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack padding={4} space={3}>\n {context.error ? (\n <Text size={1} weight=\"semibold\">\n Failed to start {pluginTitle}\n </Text>\n ) : null}\n\n {!context.error && !status?.initialized ? (\n <Text size={1} weight=\"semibold\">\n {pluginTitle} is not enabled\n </Text>\n ) : null}\n\n {!context.error && status?.initialized && !status.validToken ? (\n <>\n <Text size={1} weight=\"semibold\">\n Invalid token\n </Text>\n <Text muted size={1}>\n The token used by the AI Assistant is not valid and has to be regenerated.\n </Text>\n </>\n ) : null}\n\n {context.error && (\n <Text muted size={1}>\n Something went wrong. See console for details.\n </Text>\n )}\n\n {!context.error && !status?.initialized && (\n <Text size={1} muted>\n Please enable {pluginTitle}.\n </Text>\n )}\n\n <Button\n fontSize={1}\n icon={\n context.initLoading ? (\n <Box marginTop={1}>\n <Spinner />\n </Box>\n ) : context.error ? (\n RetryIcon\n ) : undefined\n }\n text={\n context.error\n ? 'Retry'\n : status?.initialized && !status.validToken\n ? `Restore ${pluginTitle}`\n : `Enable ${pluginTitle} now`\n }\n tone=\"primary\"\n onClick={context.init}\n disabled={context.initLoading}\n />\n </Stack>\n </Flex>\n )\n }\n\n return <AssistInspector {...props} />\n}\n\nexport function AssistInspector(props: DocumentInspectorProps) {\n const {params} = useAiPaneRouter()\n\n const boundary = useRef<HTMLDivElement | null>(null)\n const pathKey = params?.[fieldPathParam]\n const instructionKey = params?.[instructionParam]\n const documentPane = useDocumentPane()\n const {\n documentId,\n documentType,\n value: docValue,\n schemaType,\n onChange: documentOnChange,\n formState,\n } = documentPane\n const {published, draft} = useEditState(documentId, documentType, 'low')\n\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const assistableDocId = getAssistableDocId(schemaType, documentId)\n const {instructionLoading, requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: isDocAssistable(schemaType, published, draft),\n })\n\n const typePath = useTypePath(docValue, pathKey ?? '')\n const selectedField = useSelectedField(schemaType, typePath)\n\n const aiDocId = assistDocumentId(documentType)\n\n const assistDocument = useStudioAssistDocument({documentId, schemaType, initDoc: true})\n const assistField = assistDocument?.fields?.find((f) => f.path === typePath)\n const instruction = assistField?.instructions?.find((i) => i._key === instructionKey)\n const tasks = useMemo(\n () =>\n assistDocument?.tasks?.filter((i) => !instructionKey || i.instructionKey === instructionKey),\n [assistDocument?.tasks, instructionKey]\n )\n const instructions = useMemo(\n () => assistDocument?.fields?.flatMap((f) => f.instructions ?? []),\n [assistDocument?.fields]\n )\n\n const promptValue = instruction?.prompt\n const isEmptyPrompt = useMemo(() => {\n if (!promptValue?.length) {\n return true\n }\n const firstBlock = promptValue[0] as any\n const children = firstBlock?.children\n\n return promptValue.length == 1 && children?.length === 1 && !children?.[0]?.text?.length\n }, [promptValue])\n\n const paneNode: DocumentPaneNode = useMemo(\n () => ({\n type: 'document',\n id: aiDocId,\n title: pluginTitle,\n options: {\n id: aiDocId,\n type: assistDocumentTypeName,\n },\n }),\n [aiDocId]\n )\n\n const runCurrentInstruction = useCallback(\n () =>\n instruction &&\n pathKey &&\n typePath &&\n requestRunInstruction({\n documentId: assistableDocId,\n path: pathKey,\n typePath,\n assistDocumentId: assistDocumentId(documentType),\n instruction,\n conditionalMembers: formStateRef.current ? getConditionalMembers(formStateRef.current) : [],\n }),\n [pathKey, instruction, typePath, documentType, assistableDocId, requestRunInstruction]\n )\n\n const Region = useCallback((_props: any) => {\n // disabled for now\n /* return (\n <ConnectToRegion\n {..._props}\n _key={`${paneKey}_${selectedField?.key || '_field'}`}\n style={{height: '100%', flex: 1, overflow: 'auto'}}\n />\n )*/\n return <div {..._props} style={{height: '100%', flex: 1, overflow: 'auto'}} />\n }, [])\n\n if (!documentId || !schemaType || schemaType.jsonType !== 'object') {\n return (\n <Card flex={1} padding={4}>\n <Text>Document not ready yet.</Text>\n </Card>\n )\n }\n\n return (\n <Flex\n ref={boundary}\n direction=\"column\"\n height=\"fill\"\n overflow=\"hidden\"\n sizing=\"border\"\n style={{lineHeight: 0}}\n >\n <AiInspectorHeader\n onClose={props.onClose}\n field={selectedField}\n fieldTitle={getFieldTitle(selectedField)}\n />\n\n <Card as={Region} flex={1} overflow=\"auto\">\n <Flex direction=\"column\" style={{minHeight: '100%'}}>\n <Box flex={1}>\n <PresenceOverlay>\n <Box padding={4}>\n {selectedField && (\n <TypePathContext.Provider value={typePath}>\n <VirtualizerScrollInstanceProvider\n scrollElement={boundary.current}\n containerElement={boundary}\n >\n <DocumentPaneProvider\n paneKey={documentPane.paneKey}\n index={documentPane.index}\n itemId=\"ai\"\n pane={paneNode}\n >\n <DocumentForm />\n </DocumentPaneProvider>\n </VirtualizerScrollInstanceProvider>\n </TypePathContext.Provider>\n )}\n </Box>\n </PresenceOverlay>\n </Box>\n\n <Box flex=\"none\" padding={4}>\n <Text muted size={1}>\n How is Sanity AI Assist working for you?{' '}\n <a\n href={giveFeedbackUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{whiteSpace: 'nowrap'}}\n >\n Let us know <ArrowRightIcon />\n </a>\n </Text>\n </Box>\n </Flex>\n </Card>\n <CardWithShadowAbove flex=\"none\" paddingX={4} paddingY={3} style={{justifySelf: 'flex-end'}}>\n <Flex gap={2} flex={1} justify=\"flex-end\">\n {schemaType?.name && pathKey && instructionKey && (\n <Stack flex={1}>\n <Button\n mode=\"ghost\"\n disabled={isEmptyPrompt || instructionLoading}\n fontSize={1}\n icon={instructionLoading ? <Spinner /> : PlayIcon}\n onClick={runCurrentInstruction}\n padding={3}\n text={'Run instruction'}\n />\n </Stack>\n )}\n\n <InstructionTaskHistoryButton\n documentId={assistableDocId}\n tasks={tasks}\n instructions={instructions}\n showTitles={!instructionKey}\n />\n </Flex>\n </CardWithShadowAbove>\n </Flex>\n )\n}\n\nfunction AiInspectorHeader(props: {fieldTitle: string; field?: FieldRef; onClose: () => void}) {\n const {onClose, field, fieldTitle} = props\n const {showOnboarding, dismissOnboarding} = useOnboardingFeature(inspectorOnboardingKey)\n\n return (\n <CardWithShadowBelow flex=\"none\" padding={2}>\n <Flex flex={1} align=\"center\">\n <Flex flex={1} padding={3} gap={2} align=\"center\">\n <Flex gap={1} align=\"center\" wrap=\"wrap\" style={{marginTop: '-4px'}}>\n <Box marginTop={1}>\n <Text size={1} weight=\"semibold\">\n AI instructions for\n </Text>\n </Box>\n <Card radius={2} border padding={1} marginTop={1}>\n {field ? (\n <FieldTitle field={field} />\n ) : (\n <Text size={1} weight=\"semibold\">\n {fieldTitle}\n </Text>\n )}\n </Card>\n </Flex>\n </Flex>\n <Box flex=\"none\">\n <Button fontSize={1} icon={CloseIcon} mode=\"bleed\" onClick={onClose} />\n </Box>\n </Flex>\n\n {showOnboarding && <InspectorOnboarding onDismiss={dismissOnboarding} />}\n </CardWithShadowBelow>\n )\n}\n","import {SparklesIcon} from '@sanity/icons'\nimport {DocumentInspector, typed} from 'sanity'\nimport {aiInspectorId} from './constants'\nimport {AssistInspectorWrapper} from './AssistInspector'\nimport {AssistInspectorRouteParams, fieldPathParam, instructionParam} from '../types'\nimport {pluginTitle} from '../constants'\n\nexport const assistInspector: DocumentInspector = {\n name: aiInspectorId,\n useMenuItem: () => ({\n icon: SparklesIcon,\n title: pluginTitle,\n hidden: true,\n showAsAction: false,\n }),\n component: AssistInspectorWrapper,\n onClose({params}) {\n return {\n params: typed<AssistInspectorRouteParams>({\n ...params,\n [fieldPathParam]: undefined,\n [instructionParam]: undefined,\n }) as typeof params,\n }\n },\n}\n","import {DocumentInspector, ObjectSchemaType, PatchEvent} from 'sanity'\nimport {createContext, useContext} from 'react'\nimport {StudioAssistDocument} from '../types'\n\nexport type AssistDocumentContextValue = (\n | {assistDocument: StudioAssistDocument; loading: false}\n | {assistDocument: undefined; loading: true}\n) & {\n documentIsNew: boolean\n assistableDocumentId: string\n documentIsAssistable: boolean\n documentId: string\n documentSchemaType: ObjectSchemaType\n openInspector: (inspectorName: string, paneParams?: Record<string, string>) => void\n closeInspector: (inspectorName?: string) => void\n inspector: DocumentInspector | null\n selectedPath?: string\n documentOnChange: (event: PatchEvent) => void\n}\n\nexport const AssistDocumentContext = createContext<AssistDocumentContextValue | undefined>(\n undefined\n)\n\nexport function useAssistDocumentContext(): AssistDocumentContextValue {\n const context = useContext(AssistDocumentContext)\n if (!context) {\n throw new Error('AssistDocumentContext value is missing')\n }\n return context\n}\n","import {useMemo} from 'react'\nimport {FormNodePresence, isKeySegment, Path, stringToPath} from 'sanity'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {AiPresence} from '../types'\nimport {maxHistoryVisibilityMs, pluginTitle} from '../constants'\n\nconst NO_PRESENCE: FormNodePresence[] = []\n\nexport function useAssistPresence(path: Path, showFocusWithin?: boolean): FormNodePresence[] {\n const context = useAssistDocumentContext()\n const assistDocument = context && 'assistDocument' in context ? context.assistDocument : undefined\n const tasks = assistDocument?.tasks\n\n return useMemo(() => {\n const activePresence = tasks\n ?.filter((task) => !task.ended)\n ?.flatMap((task) => task.presence ?? [])\n ?.filter(\n (p) =>\n p.started && new Date().getTime() - new Date(p.started).getTime() < maxHistoryVisibilityMs\n )\n .filter((presence) => {\n if (!presence.path || !path.length) {\n return false\n }\n const statusPath = stringToPath(presence.path)\n\n if (!showFocusWithin && statusPath.length !== path.length) {\n return false\n }\n\n return path.every((pathSegment, i) => {\n const statusSegment = statusPath[i]\n if (typeof pathSegment === 'string') {\n return pathSegment === statusSegment\n }\n if (isKeySegment(pathSegment) && isKeySegment(statusSegment)) {\n return pathSegment._key === statusSegment._key\n }\n return false\n })\n })\n if (!activePresence?.length) {\n return NO_PRESENCE\n }\n\n return activePresence.map((status) => aiPresence(status, path))\n }, [showFocusWithin, tasks, path])\n}\n\nexport function aiPresence(presence: AiPresence, path: Path, title?: string): FormNodePresence {\n return {\n user: {\n id: `sanity-assistant_${presence._key}`,\n displayName: pluginTitle,\n },\n path: path,\n sessionId: 'not-available',\n lastActiveAt: presence?.started ?? new Date().toISOString(),\n }\n}\n","import {forwardRef, ReactElement, ReactNode} from 'react'\nimport styled, {keyframes} from 'styled-components'\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n transform: scale(0.75);\n }\n 40% {\n opacity: 0;\n transform: scale(0.75);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n`\n\nconst FadeInDiv = styled.div`\n animation-name: ${fadeIn};\n animation-timing-function: ease-in-out;\n`\n\nexport const FadeInContent = forwardRef(function FadeInContent(\n {\n children,\n durationMs = 250,\n }: {\n children?: ReactNode\n ms?: number\n durationMs?: number\n },\n ref: any\n): ReactElement {\n return (\n <FadeInDiv ref={ref} style={{animationDuration: `${durationMs}ms`}}>\n {children}\n </FadeInDiv>\n )\n})\n","const COLOR_HUES = [\"gray\", \"blue\", \"purple\", \"magenta\", \"red\", \"orange\", \"yellow\", \"green\", \"cyan\"];\nconst COLOR_TINTS = [\"50\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"950\"];\nfunction hslToRgb(hsl) {\n const h = hsl[0];\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n const k = n => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = n => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n return [255 * f(0), 255 * f(8), 255 * f(4)];\n}\nfunction rgbToHex(_ref) {\n let [r, g, b] = _ref;\n const _r = Math.round(r);\n const _g = Math.round(g);\n const _b = Math.round(b);\n return \"#\" + ((1 << 24) + (_r << 16) + (_g << 8) + _b).toString(16).slice(1);\n}\nfunction buildTints(options) {\n const {\n hueKey,\n color\n } = options;\n return COLOR_TINTS.reduce((acc, tintKey) => {\n const tint = Number(tintKey);\n const rgb = hslToRgb(color.tints[tintKey].hsl);\n const hex = rgbToHex([Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])]);\n acc[tintKey] = {\n title: \"\".concat(hueKey.slice(0, 1).toUpperCase()).concat(hueKey.slice(1), \" \").concat(tint),\n hex\n };\n return acc;\n }, {});\n}\nconst black = {\n title: \"Black\",\n hex: \"#0d0e12\"\n};\nconst white = {\n title: \"White\",\n hex: \"#ffffff\"\n};\nconst gray = {\n \"50\": {\n title: \"Gray 50\",\n hex: \"#f6f6f8\"\n },\n \"100\": {\n title: \"Gray 100\",\n hex: \"#eeeef1\"\n },\n \"200\": {\n title: \"Gray 200\",\n hex: \"#e3e4e8\"\n },\n \"300\": {\n title: \"Gray 300\",\n hex: \"#bbbdc9\"\n },\n \"400\": {\n title: \"Gray 400\",\n hex: \"#9499ad\"\n },\n \"500\": {\n title: \"Gray 500\",\n hex: \"#727892\"\n },\n \"600\": {\n title: \"Gray 600\",\n hex: \"#515870\"\n },\n \"700\": {\n title: \"Gray 700\",\n hex: \"#383d51\"\n },\n \"800\": {\n title: \"Gray 800\",\n hex: \"#252837\"\n },\n \"900\": {\n title: \"Gray 900\",\n hex: \"#1b1d27\"\n },\n \"950\": {\n title: \"Gray 950\",\n hex: \"#13141b\"\n }\n};\nconst blue = {\n \"50\": {\n title: \"Blue 50\",\n hex: \"#f5f8ff\"\n },\n \"100\": {\n title: \"Blue 100\",\n hex: \"#e5edff\"\n },\n \"200\": {\n title: \"Blue 200\",\n hex: \"#dbe5ff\"\n },\n \"300\": {\n title: \"Blue 300\",\n hex: \"#a8bfff\"\n },\n \"400\": {\n title: \"Blue 400\",\n hex: \"#7595ff\"\n },\n \"500\": {\n title: \"Blue 500\",\n hex: \"#556bfc\"\n },\n \"600\": {\n title: \"Blue 600\",\n hex: \"#4043e7\"\n },\n \"700\": {\n title: \"Blue 700\",\n hex: \"#2927aa\"\n },\n \"800\": {\n title: \"Blue 800\",\n hex: \"#192457\"\n },\n \"900\": {\n title: \"Blue 900\",\n hex: \"#161a41\"\n },\n \"950\": {\n title: \"Blue 950\",\n hex: \"#101228\"\n }\n};\nconst purple = {\n \"50\": {\n title: \"Purple 50\",\n hex: \"#f8f5ff\"\n },\n \"100\": {\n title: \"Purple 100\",\n hex: \"#f1ebff\"\n },\n \"200\": {\n title: \"Purple 200\",\n hex: \"#ece1fe\"\n },\n \"300\": {\n title: \"Purple 300\",\n hex: \"#ccb1fc\"\n },\n \"400\": {\n title: \"Purple 400\",\n hex: \"#b087f7\"\n },\n \"500\": {\n title: \"Purple 500\",\n hex: \"#8f57ef\"\n },\n \"600\": {\n title: \"Purple 600\",\n hex: \"#721fe5\"\n },\n \"700\": {\n title: \"Purple 700\",\n hex: \"#4c1a9e\"\n },\n \"800\": {\n title: \"Purple 800\",\n hex: \"#2f1862\"\n },\n \"900\": {\n title: \"Purple 900\",\n hex: \"#23173f\"\n },\n \"950\": {\n title: \"Purple 950\",\n hex: \"#181128\"\n }\n};\nconst magenta = {\n \"50\": {\n title: \"Magenta 50\",\n hex: \"#fef6f9\"\n },\n \"100\": {\n title: \"Magenta 100\",\n hex: \"#fde8ef\"\n },\n \"200\": {\n title: \"Magenta 200\",\n hex: \"#fcdee9\"\n },\n \"300\": {\n title: \"Magenta 300\",\n hex: \"#f7abc5\"\n },\n \"400\": {\n title: \"Magenta 400\",\n hex: \"#f0709b\"\n },\n \"500\": {\n title: \"Magenta 500\",\n hex: \"#e72767\"\n },\n \"600\": {\n title: \"Magenta 600\",\n hex: \"#b11651\"\n },\n \"700\": {\n title: \"Magenta 700\",\n hex: \"#7c1342\"\n },\n \"800\": {\n title: \"Magenta 800\",\n hex: \"#4b1130\"\n },\n \"900\": {\n title: \"Magenta 900\",\n hex: \"#341325\"\n },\n \"950\": {\n title: \"Magenta 950\",\n hex: \"#1f0f14\"\n }\n};\nconst red = {\n \"50\": {\n title: \"Red 50\",\n hex: \"#fff6f5\"\n },\n \"100\": {\n title: \"Red 100\",\n hex: \"#ffe7e5\"\n },\n \"200\": {\n title: \"Red 200\",\n hex: \"#ffdedc\"\n },\n \"300\": {\n title: \"Red 300\",\n hex: \"#fdada5\"\n },\n \"400\": {\n title: \"Red 400\",\n hex: \"#f77769\"\n },\n \"500\": {\n title: \"Red 500\",\n hex: \"#ef4434\"\n },\n \"600\": {\n title: \"Red 600\",\n hex: \"#cc2819\"\n },\n \"700\": {\n title: \"Red 700\",\n hex: \"#8b2018\"\n },\n \"800\": {\n title: \"Red 800\",\n hex: \"#4d1714\"\n },\n \"900\": {\n title: \"Red 900\",\n hex: \"#321615\"\n },\n \"950\": {\n title: \"Red 950\",\n hex: \"#1e1011\"\n }\n};\nconst orange = {\n \"50\": {\n title: \"Orange 50\",\n hex: \"#fff7f0\"\n },\n \"100\": {\n title: \"Orange 100\",\n hex: \"#ffeadb\"\n },\n \"200\": {\n title: \"Orange 200\",\n hex: \"#ffddc7\"\n },\n \"300\": {\n title: \"Orange 300\",\n hex: \"#ffb685\"\n },\n \"400\": {\n title: \"Orange 400\",\n hex: \"#ff8e42\"\n },\n \"500\": {\n title: \"Orange 500\",\n hex: \"#fa6400\"\n },\n \"600\": {\n title: \"Orange 600\",\n hex: \"#b14802\"\n },\n \"700\": {\n title: \"Orange 700\",\n hex: \"#7c3404\"\n },\n \"800\": {\n title: \"Orange 800\",\n hex: \"#461e07\"\n },\n \"900\": {\n title: \"Orange 900\",\n hex: \"#32160b\"\n },\n \"950\": {\n title: \"Orange 950\",\n hex: \"#21120d\"\n }\n};\nconst yellow = {\n \"50\": {\n title: \"Yellow 50\",\n hex: \"#fefae1\"\n },\n \"100\": {\n title: \"Yellow 100\",\n hex: \"#fcf3bb\"\n },\n \"200\": {\n title: \"Yellow 200\",\n hex: \"#f9e994\"\n },\n \"300\": {\n title: \"Yellow 300\",\n hex: \"#f7d455\"\n },\n \"400\": {\n title: \"Yellow 400\",\n hex: \"#f9bc15\"\n },\n \"500\": {\n title: \"Yellow 500\",\n hex: \"#d28a04\"\n },\n \"600\": {\n title: \"Yellow 600\",\n hex: \"#965908\"\n },\n \"700\": {\n title: \"Yellow 700\",\n hex: \"#653a0b\"\n },\n \"800\": {\n title: \"Yellow 800\",\n hex: \"#3b220c\"\n },\n \"900\": {\n title: \"Yellow 900\",\n hex: \"#271a11\"\n },\n \"950\": {\n title: \"Yellow 950\",\n hex: \"#181410\"\n }\n};\nconst green = {\n \"50\": {\n title: \"Green 50\",\n hex: \"#e7fef5\"\n },\n \"100\": {\n title: \"Green 100\",\n hex: \"#c5fce8\"\n },\n \"200\": {\n title: \"Green 200\",\n hex: \"#a9f9dc\"\n },\n \"300\": {\n title: \"Green 300\",\n hex: \"#59f3ba\"\n },\n \"400\": {\n title: \"Green 400\",\n hex: \"#0ff0a1\"\n },\n \"500\": {\n title: \"Green 500\",\n hex: \"#04b97a\"\n },\n \"600\": {\n title: \"Green 600\",\n hex: \"#01794f\"\n },\n \"700\": {\n title: \"Green 700\",\n hex: \"#015133\"\n },\n \"800\": {\n title: \"Green 800\",\n hex: \"#023120\"\n },\n \"900\": {\n title: \"Green 900\",\n hex: \"#06231a\"\n },\n \"950\": {\n title: \"Green 950\",\n hex: \"#071715\"\n }\n};\nconst cyan = {\n \"50\": {\n title: \"Cyan 50\",\n hex: \"#e7fefe\"\n },\n \"100\": {\n title: \"Cyan 100\",\n hex: \"#c5fcfc\"\n },\n \"200\": {\n title: \"Cyan 200\",\n hex: \"#96f8f8\"\n },\n \"300\": {\n title: \"Cyan 300\",\n hex: \"#62efef\"\n },\n \"400\": {\n title: \"Cyan 400\",\n hex: \"#18e2e2\"\n },\n \"500\": {\n title: \"Cyan 500\",\n hex: \"#04b8be\"\n },\n \"600\": {\n title: \"Cyan 600\",\n hex: \"#037782\"\n },\n \"700\": {\n title: \"Cyan 700\",\n hex: \"#024950\"\n },\n \"800\": {\n title: \"Cyan 800\",\n hex: \"#042f34\"\n },\n \"900\": {\n title: \"Cyan 900\",\n hex: \"#072227\"\n },\n \"950\": {\n title: \"Cyan 950\",\n hex: \"#0d181c\"\n }\n};\nconst hues = {\n gray,\n blue,\n purple,\n magenta,\n red,\n orange,\n yellow,\n green,\n cyan\n};\nconst color = {\n black,\n white,\n ...hues\n};\nconst config = {\n black: {\n title: \"Black\",\n hsl: [225, 16, 6]\n },\n white: {\n title: \"White\",\n hsl: [0, 0, 100]\n },\n gray: {\n title: \"Gray\",\n tints: {\n 50: {\n title: \"Gray 50\",\n hsl: [240, 12, 97]\n },\n 100: {\n title: \"Gray 100\",\n hsl: [240, 10, 94]\n },\n 200: {\n title: \"Gray 200\",\n hsl: [231, 10, 90]\n },\n 300: {\n title: \"Gray 300\",\n hsl: [232, 11, 76]\n },\n 400: {\n title: \"Gray 400\",\n hsl: [228, 13, 63]\n },\n 500: {\n title: \"Gray 500\",\n hsl: [229, 13, 51]\n },\n 600: {\n title: \"Gray 600\",\n hsl: [228, 16, 38]\n },\n 700: {\n title: \"Gray 700\",\n hsl: [229, 18, 27]\n },\n 800: {\n title: \"Gray 800\",\n hsl: [229, 19, 18]\n },\n 900: {\n title: \"Gray 900\",\n hsl: [228, 19, 13]\n },\n 950: {\n title: \"Gray 950\",\n hsl: [233, 17, 9]\n }\n }\n },\n blue: {\n title: \"Blue\",\n tints: {\n 50: {\n title: \"Blue 50\",\n hsl: [222, 100, 98]\n },\n 100: {\n title: \"Blue 100\",\n hsl: [222, 100, 95]\n },\n 200: {\n title: \"Blue 200\",\n hsl: [223, 100, 93]\n },\n 300: {\n title: \"Blue 300\",\n hsl: [224, 100, 83]\n },\n 400: {\n title: \"Blue 400\",\n hsl: [226, 100, 73]\n },\n 500: {\n title: \"Blue 500\",\n hsl: [232, 96, 66]\n },\n 600: {\n title: \"Blue 600\",\n hsl: [239, 78, 58]\n },\n 700: {\n title: \"Blue 700\",\n hsl: [241, 63, 41]\n },\n 800: {\n title: \"Blue 800\",\n hsl: [230, 55, 22]\n },\n 900: {\n title: \"Blue 900\",\n hsl: [234, 49, 17]\n },\n 950: {\n title: \"Blue 950\",\n hsl: [235, 43, 11]\n }\n }\n },\n purple: {\n title: \"Purple\",\n tints: {\n 50: {\n title: \"Purple 50\",\n hsl: [260, 95, 98]\n },\n 100: {\n title: \"Purple 100\",\n hsl: [260, 98, 96]\n },\n 200: {\n title: \"Purple 200\",\n hsl: [263, 96, 94]\n },\n 300: {\n title: \"Purple 300\",\n hsl: [262, 92, 84]\n },\n 400: {\n title: \"Purple 400\",\n hsl: [262, 88, 75]\n },\n 500: {\n title: \"Purple 500\",\n hsl: [262, 83, 64]\n },\n 600: {\n title: \"Purple 600\",\n hsl: [265, 79, 51]\n },\n 700: {\n title: \"Purple 700\",\n hsl: [263, 72, 36]\n },\n 800: {\n title: \"Purple 800\",\n hsl: [258, 60, 24]\n },\n 900: {\n title: \"Purple 900\",\n hsl: [257, 46, 17]\n },\n 950: {\n title: \"Purple 950\",\n hsl: [260, 41, 11]\n }\n }\n },\n magenta: {\n title: \"Magenta\",\n tints: {\n 50: {\n title: \"Magenta 50\",\n hsl: [340, 82, 98]\n },\n 100: {\n title: \"Magenta 100\",\n hsl: [339, 83, 95]\n },\n 200: {\n title: \"Magenta 200\",\n hsl: [339, 83, 93]\n },\n 300: {\n title: \"Magenta 300\",\n hsl: [340, 82, 82]\n },\n 400: {\n title: \"Magenta 400\",\n hsl: [340, 81, 69]\n },\n 500: {\n title: \"Magenta 500\",\n hsl: [340, 80, 53]\n },\n 600: {\n title: \"Magenta 600\",\n hsl: [337, 78, 39]\n },\n 700: {\n title: \"Magenta 700\",\n hsl: [333, 73, 28]\n },\n 800: {\n title: \"Magenta 800\",\n hsl: [328, 63, 18]\n },\n 900: {\n title: \"Magenta 900\",\n hsl: [327, 46, 14]\n },\n 950: {\n title: \"Magenta 950\",\n hsl: [341, 35, 9]\n }\n }\n },\n red: {\n title: \"Red\",\n tints: {\n 50: {\n title: \"Red 50\",\n hsl: [5, 100, 98]\n },\n 100: {\n title: \"Red 100\",\n hsl: [4, 100, 95]\n },\n 200: {\n title: \"Red 200\",\n hsl: [4, 98, 93]\n },\n 300: {\n title: \"Red 300\",\n hsl: [5, 95, 82]\n },\n 400: {\n title: \"Red 400\",\n hsl: [6, 90, 69]\n },\n 500: {\n title: \"Red 500\",\n hsl: [5, 85, 57]\n },\n 600: {\n title: \"Red 600\",\n hsl: [5, 78, 45]\n },\n 700: {\n title: \"Red 700\",\n hsl: [4, 70, 32]\n },\n 800: {\n title: \"Red 800\",\n hsl: [3, 58, 19]\n },\n 900: {\n title: \"Red 900\",\n hsl: [2, 41, 14]\n },\n 950: {\n title: \"Red 950\",\n hsl: [356, 30, 9]\n }\n }\n },\n orange: {\n title: \"Orange\",\n tints: {\n 50: {\n title: \"Orange 50\",\n hsl: [28, 100, 97]\n },\n 100: {\n title: \"Orange 100\",\n hsl: [25, 100, 93]\n },\n 200: {\n title: \"Orange 200\",\n hsl: [24, 100, 89]\n },\n 300: {\n title: \"Orange 300\",\n hsl: [24, 100, 76]\n },\n 400: {\n title: \"Orange 400\",\n hsl: [24, 100, 63]\n },\n 500: {\n title: \"Orange 500\",\n hsl: [24, 100, 49]\n },\n 600: {\n title: \"Orange 600\",\n hsl: [24, 98, 35]\n },\n 700: {\n title: \"Orange 700\",\n hsl: [24, 94, 25]\n },\n 800: {\n title: \"Orange 800\",\n hsl: [22, 82, 15]\n },\n 900: {\n title: \"Orange 900\",\n hsl: [17, 65, 12]\n },\n 950: {\n title: \"Orange 950\",\n hsl: [14, 43, 9]\n }\n }\n },\n yellow: {\n title: \"Yellow\",\n tints: {\n 50: {\n title: \"Yellow 50\",\n hsl: [51, 94, 94]\n },\n 100: {\n title: \"Yellow 100\",\n hsl: [52, 91, 86]\n },\n 200: {\n title: \"Yellow 200\",\n hsl: [50, 90, 78]\n },\n 300: {\n title: \"Yellow 300\",\n hsl: [47, 91, 65]\n },\n 400: {\n title: \"Yellow 400\",\n hsl: [44, 95, 53]\n },\n 500: {\n title: \"Yellow 500\",\n hsl: [39, 96, 42]\n },\n 600: {\n title: \"Yellow 600\",\n hsl: [34, 90, 31]\n },\n 700: {\n title: \"Yellow 700\",\n hsl: [31, 80, 22]\n },\n 800: {\n title: \"Yellow 800\",\n hsl: [28, 66, 14]\n },\n 900: {\n title: \"Yellow 900\",\n hsl: [24, 40, 11]\n },\n 950: {\n title: \"Yellow 950\",\n hsl: [24, 20, 8]\n }\n }\n },\n green: {\n title: \"Green\",\n tints: {\n 50: {\n title: \"Green 50\",\n hsl: [157, 89, 95]\n },\n 100: {\n title: \"Green 100\",\n hsl: [158, 89, 88]\n },\n 200: {\n title: \"Green 200\",\n hsl: [158, 87, 82]\n },\n 300: {\n title: \"Green 300\",\n hsl: [158, 86, 65]\n },\n 400: {\n title: \"Green 400\",\n hsl: [159, 88, 50]\n },\n 500: {\n title: \"Green 500\",\n hsl: [159, 96, 37]\n },\n 600: {\n title: \"Green 600\",\n hsl: [159, 98, 24]\n },\n 700: {\n title: \"Green 700\",\n hsl: [158, 98, 16]\n },\n 800: {\n title: \"Green 800\",\n hsl: [158, 91, 10]\n },\n 900: {\n title: \"Green 900\",\n hsl: [162, 72, 8]\n },\n 950: {\n title: \"Green 950\",\n hsl: [172, 51, 6]\n }\n }\n },\n cyan: {\n title: \"Cyan\",\n tints: {\n 50: {\n title: \"Cyan 50\",\n hsl: [180, 92, 95]\n },\n 100: {\n title: \"Cyan 100\",\n hsl: [180, 91, 88]\n },\n 200: {\n title: \"Cyan 200\",\n hsl: [180, 87, 78]\n },\n 300: {\n title: \"Cyan 300\",\n hsl: [180, 81, 66]\n },\n 400: {\n title: \"Cyan 400\",\n hsl: [180, 81, 49]\n },\n 500: {\n title: \"Cyan 500\",\n hsl: [182, 96, 38]\n },\n 600: {\n title: \"Cyan 600\",\n hsl: [185, 96, 26]\n },\n 700: {\n title: \"Cyan 700\",\n hsl: [185, 95, 16]\n },\n 800: {\n title: \"Cyan 800\",\n hsl: [187, 86, 11]\n },\n 900: {\n title: \"Cyan 900\",\n hsl: [188, 68, 9]\n },\n 950: {\n title: \"Cyan 950\",\n hsl: [196, 37, 8]\n }\n }\n }\n};\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n throw new Error(\"input is not valid hex\");\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n}\nfunction rgbToHsl(_ref2) {\n let [r, g, b] = _ref2;\n r /= 255;\n g /= 255;\n b /= 255;\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n if (delta == 0) h = 0;else if (cmax == r) h = (g - b) / delta % 6;else if (cmax == g) h = (b - r) / delta + 2;else h = (r - g) / delta + 4;\n h = Math.round(h * 60);\n if (h < 0) h += 360;\n l = (cmax + cmin) / 2;\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(0);\n l = +(l * 100).toFixed(0);\n return [h, s, l];\n}\nfunction clamp(num) {\n return Math.max(Math.min(num, 255), 0);\n}\nfunction darkenChannel(backdrop, source) {\n return Math.min(backdrop, source);\n}\nfunction darken(b, s) {\n return [Math.round(clamp(darkenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(darkenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(darkenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nfunction interpolate(min, max, val) {\n const size = max - min;\n return min + size * val;\n}\nfunction limit(darkest, lightest, source) {\n const r = Math.round(interpolate(darkest[0], lightest[0], source[0] / 255));\n const g = Math.round(interpolate(darkest[1], lightest[1], source[1] / 255));\n const b = Math.round(interpolate(darkest[2], lightest[2], source[2] / 255));\n return [r, g, b];\n}\nfunction screenChannel(backdrop, source) {\n return backdrop + source - backdrop * source;\n}\nfunction screen(b, s) {\n return [Math.round(clamp(screenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(screenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(screenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nexport { COLOR_HUES, COLOR_TINTS, black, blue, buildTints, color, config, cyan, darken, gray, green, hexToRgb, hslToRgb, hues, limit, magenta, orange, purple, red, rgbToHex, rgbToHsl, screen, white, yellow };\n//# sourceMappingURL=index.js.map\n","import {purple} from '@sanity/color'\nimport {SparklesIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {CSSProperties, useMemo} from 'react'\nimport {useColorSchemeValue} from 'sanity'\nimport styled, {keyframes} from 'styled-components'\n\nconst Root = styled.span`\n display: block;\n width: 25px;\n height: 25px;\n position: relative;\n`\n\nconst dash = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(43deg);\n }\n`\n\nconst Outline = styled.svg`\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n\n & > circle {\n stroke: var(--ai-avatar-stroke-color);\n stroke-width: 1.5px;\n stroke-linecap: round;\n transform-origin: center;\n animation: ${dash} 500ms ease-in-out infinite;\n transition: stroke-dasharray 200ms ease-in-out;\n\n stroke-dasharray: 2.34px 0;\n\n [data-state='active'] > & {\n stroke-dasharray: 2px 2.34px;\n }\n }\n`\n\nconst IconDisc = styled.span`\n background: var(--ai-avatar-disc-color);\n color: white;\n width: 21px;\n height: 21px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10.5px;\n position: absolute;\n top: 2px;\n left: 2px;\n`\n\nexport function AssistAvatar(props: {state?: 'present' | 'active'}) {\n const {state = 'present'} = props\n const scheme = useColorSchemeValue()\n\n const style = useMemo(() => {\n if (scheme === 'dark') {\n return {\n [`--ai-avatar-stroke-color`]: purple[400].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }\n\n return {\n [`--ai-avatar-stroke-color`]: purple[500].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }, [scheme])\n\n return (\n <Root data-state={state} style={style}>\n <Outline\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12.5\" cy=\"12.5\" r=\"11.75\" />\n </Outline>\n <IconDisc>\n <Text as=\"span\" size={0} style={{color: 'inherit'}}>\n <SparklesIcon style={{color: 'inherit'}} />\n </Text>\n </IconDisc>\n </Root>\n )\n}\n","// eslint-disable-next-line react/no-unused-prop-types\nimport {FormNodePresence} from 'sanity'\nimport {Card, Flex, Text, Tooltip} from '@sanity/ui'\nimport {FadeInContent} from '../components/FadeInContent'\nimport {AssistAvatar} from './AssistAvatar'\n\nexport function AiFieldPresence(props: {presence: FormNodePresence}) {\n return (\n <Card style={{position: 'relative', background: 'transparent'}} contentEditable={false}>\n <Tooltip\n placement=\"left\"\n content={\n <Card padding={3} border>\n <Flex align=\"center\">\n <Text size={1}>Running instruction...</Text>\n </Flex>\n </Card>\n }\n >\n <FadeInContent durationMs={300}>\n <AssistAvatar state=\"active\" />\n </FadeInContent>\n </Tooltip>\n </Card>\n )\n}\n","import {Badge} from '@sanity/ui'\n\nexport function AssistFeatureBadge() {\n return (\n <Badge fontSize={0} style={{margin: '-2px 0'}} tone=\"primary\">\n Beta\n </Badge>\n )\n}\n","import {Button, Card, Flex, Popover, Stack, Text} from '@sanity/ui'\nimport {useRef} from 'react'\nimport {AssistFeatureBadge} from '../components/AssistFeatureBadge'\nimport {ArrowRightIcon, CheckmarkIcon, SparklesIcon} from '@sanity/icons'\nimport {pluginTitle, releaseAnnouncementUrl} from '../constants'\n\nexport interface FieldActionsOnboardingProps {\n dismiss: () => void\n}\n\nexport function AssistOnboardingPopover(props: FieldActionsOnboardingProps) {\n const {dismiss} = props\n\n return (\n <Popover\n content={<AssistIntroCard dismiss={dismiss} />}\n open\n portal\n placeholder=\"bottom\"\n tone=\"default\"\n width={0}\n >\n <Card radius={2} shadow={2} style={{padding: 2, lineHeight: 0}}>\n <Button disabled fontSize={1} icon={SparklesIcon} mode=\"bleed\" padding={2} />\n </Card>\n </Popover>\n )\n}\n\nfunction AssistIntroCard(props: {dismiss: () => void}) {\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n return (\n <Stack as=\"section\" padding={3} space={3}>\n <Stack padding={2} space={4}>\n <Flex gap={2} align=\"center\">\n <Text as=\"h1\" size={1} weight=\"semibold\">\n {pluginTitle}\n </Text>\n <div aria-hidden style={{margin: '-3px 0', lineHeight: 0}}>\n <AssistFeatureBadge />\n </div>\n </Flex>\n\n <Stack space={3}>\n <Text as=\"p\" muted size={1}>\n Manage reusable AI instructions to boost your content creation and reduce amount of\n repetitive chores.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more <ArrowRightIcon />\n </a>\n </Text>\n </Stack>\n </Stack>\n\n <Button\n fontSize={1}\n icon={CheckmarkIcon}\n onClick={props.dismiss}\n padding={3}\n ref={buttonRef}\n text=\"Ok, good to know!\"\n tone=\"primary\"\n />\n </Stack>\n )\n}\n","import {ObjectInputProps, FieldMember, pathToString} from 'sanity'\nimport {createContext, PropsWithChildren, useMemo} from 'react'\nimport {isAssistSupported} from '../helpers/assistSupported'\n\nexport const FirstAssistedPathContext = createContext<string | undefined>(undefined)\n\nexport interface FirstAssistedPathProviderProps {\n members: ObjectInputProps['members']\n}\n\nexport function FirstAssistedPathProvider(\n props: PropsWithChildren<FirstAssistedPathProviderProps>\n) {\n const {members} = props\n\n const firstAssistedPath = useMemo(() => {\n const firstAssisted = members.find(\n (member): member is FieldMember =>\n member.kind === 'field' && isAssistSupported(member.field.schemaType)\n )\n return firstAssisted?.field.path ? pathToString(firstAssisted?.field.path) : undefined\n }, [members])\n\n return (\n <FirstAssistedPathContext.Provider value={firstAssistedPath}>\n {props.children}\n </FirstAssistedPathContext.Provider>\n )\n}\n","import {FieldProps, isArraySchemaType, pathToString} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {useContext, useMemo} from 'react'\nimport {Box, Flex} from '@sanity/ui'\nimport {contextDocumentTypeName} from '../types'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\nimport {AssistOnboardingPopover} from '../onboarding/FieldActionsOnboarding'\nimport {FirstAssistedPathContext} from '../onboarding/FirstAssistedPathProvider'\nimport {fieldOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\nimport {assistFormId} from '../_lib/form/constants'\n\nexport function AssistFieldWrapper(props: FieldProps) {\n const {schemaType} = props\n\n const isSupported = useMemo(() => isAssistSupported(schemaType), [schemaType])\n\n if (\n !isSupported ||\n schemaType.name.startsWith('sanity.') ||\n schemaType.name === contextDocumentTypeName\n ) {\n return props.renderDefault(props)\n }\n if (\n !isType(props.schemaType, 'document') &&\n props.inputId !== 'root' &&\n props.inputId !== assistFormId\n ) {\n return <AssistField {...props}>{props.children}</AssistField>\n }\n\n return props.renderDefault(props)\n}\n\nexport function AssistField(props: FieldProps) {\n const {path} = props\n\n const isPortableText = useMemo(\n () => !!(isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType)),\n [props.schemaType]\n )\n\n const presence = useAssistPresence(props.path, isPortableText)\n\n const firstAssistedPath = useContext(FirstAssistedPathContext)\n const isFirstAssisted = useMemo(\n () => pathToString(path) === firstAssistedPath,\n [path, firstAssistedPath]\n )\n\n const {showOnboarding, dismissOnboarding} = useOnboardingFeature(fieldOnboardingKey)\n const singlePresence = presence[0]\n\n const actions = (\n <Flex gap={2} align=\"center\" justify=\"space-between\">\n {singlePresence && (\n <Box>\n <AiFieldPresence presence={singlePresence} />\n </Box>\n )}\n\n {isFirstAssisted && showOnboarding && <AssistOnboardingPopover dismiss={dismissOnboarding} />}\n </Flex>\n )\n\n return props.renderDefault({\n ...props,\n\n // When showing the onboarding, prevent default field actions from being rendered\n actions: isFirstAssisted && showOnboarding ? [] : props.actions,\n\n // Render presence (and possibly onboarding) in the internal slot (between presence and the field actions)\n // eslint-disable-next-line camelcase\n __internal_slot: actions,\n })\n}\n","import {createContext} from 'react'\nimport {ConnectorsStore} from './ConnectorsStore'\n\nexport const ConnectorsStoreContext = createContext<ConnectorsStore | null>(null)\n","import {useContext} from 'react'\nimport {ConnectorsStoreContext} from './ConnectorsStoreContext'\nimport {ConnectorsStore} from './ConnectorsStore'\n\nexport function useConnectorsStore(): ConnectorsStore {\n const store = useContext(ConnectorsStoreContext)\n\n if (!store) {\n throw new Error('Missing connectors store context')\n }\n\n return store\n}\n","export function hasOverflowScroll(el: HTMLElement): boolean {\n const overflow = getComputedStyle(el).overflow\n\n return overflow.includes('auto') || overflow.includes('hidden') || overflow.includes('scroll')\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport {Rect, Scroll} from './types'\nimport {hasOverflowScroll} from './helpers'\n\nexport function useRegionRects() {\n const ref = useRef<HTMLDivElement>(null)\n\n const [relativeBoundsRect, setRelativeBoundsRect] = useState<Rect | null>(null)\n const [relativeElementRect, setRelativeElementRect] = useState<Rect | null>(null)\n const [boundsScroll, setBoundsScroll] = useState<Scroll>({x: 0, y: 0})\n const [scroll, setScroll] = useState<Scroll>({x: 0, y: 0})\n\n const boundsScrollXRef = useRef(0)\n const boundsScrollYRef = useRef(0)\n\n const elementScrollXRef = useRef(0)\n const elementScrollYRef = useRef(0)\n\n useEffect(() => {\n const el = ref.current\n\n if (!el) return undefined\n\n const scrollParents: HTMLElement[] = []\n let parent = el.parentElement\n\n while (parent && parent !== document.body) {\n if (\n hasOverflowScroll(parent)\n // || parent.scrollHeight > parent.clientHeight\n ) {\n scrollParents.push(parent)\n }\n\n parent = parent.parentElement\n }\n\n function handleResize() {\n const scrollParent = scrollParents[0]\n\n const boundsRect = scrollParent?.getBoundingClientRect() || {\n x: 0,\n y: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const domRect = el!.getBoundingClientRect()\n\n setRelativeBoundsRect({\n x: boundsRect.x + boundsScrollXRef.current,\n y: boundsRect.y + boundsScrollYRef.current,\n w: boundsRect.width,\n h: boundsRect.height,\n })\n\n setRelativeElementRect({\n x: domRect.x + elementScrollXRef.current,\n y: domRect.y + elementScrollYRef.current,\n w: domRect.width,\n h: domRect.height,\n })\n }\n\n function handleScroll() {\n let scrollX = window.scrollX\n let scrollY = window.scrollY\n\n for (const scrollParent of scrollParents) {\n scrollX += scrollParent.scrollLeft\n scrollY += scrollParent.scrollTop\n }\n\n const scrollParent = scrollParents[0]\n\n boundsScrollXRef.current = scrollX - (scrollParent?.scrollLeft || window.scrollX)\n\n boundsScrollYRef.current = scrollY - (scrollParent?.scrollTop || window.scrollY)\n\n setBoundsScroll({\n x: boundsScrollXRef.current,\n y: boundsScrollYRef.current,\n })\n\n elementScrollXRef.current = scrollX\n elementScrollYRef.current = scrollY\n\n setScroll({x: scrollX, y: scrollY})\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver(handleResize)\n\n ro.observe(el)\n\n for (const scrollParent of scrollParents) {\n scrollParent.addEventListener('scroll', handleScroll, {passive: true})\n ro.observe(scrollParent)\n }\n\n handleScroll()\n\n return () => {\n ro.unobserve(el)\n\n for (const scrollParent of scrollParents) {\n ro.unobserve(scrollParent)\n scrollParent.removeEventListener('scroll', handleScroll)\n }\n\n ro.disconnect()\n\n window.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n const bounds: Rect | null = useMemo(\n () =>\n relativeBoundsRect && {\n x: relativeBoundsRect.x - boundsScroll.x,\n y: relativeBoundsRect.y - boundsScroll.y,\n w: relativeBoundsRect.w,\n h: relativeBoundsRect.h,\n },\n [relativeBoundsRect, boundsScroll]\n )\n\n const element: Rect | null = useMemo(\n () =>\n relativeElementRect && {\n x: relativeElementRect.x - scroll.x,\n y: relativeElementRect.y - scroll.y,\n w: relativeElementRect.w,\n h: relativeElementRect.h,\n },\n [relativeElementRect, scroll]\n )\n\n return {bounds, element, ref}\n}\n","import {HTMLProps, useEffect} from 'react'\nimport {ConnectorRegionRects} from './types'\nimport {useRegionRects} from './useRegionRects'\n\nexport function ConnectorRegion(\n props: {\n onRectsChange?: (rects: ConnectorRegionRects | null) => void\n } & HTMLProps<HTMLDivElement>\n) {\n const {children, onRectsChange, ...restProps} = props\n\n const {bounds, element, ref} = useRegionRects()\n\n useEffect(() => {\n onRectsChange?.(bounds && element ? {bounds, element} : null)\n }, [bounds, element, onRectsChange])\n\n return (\n <div {...restProps} ref={ref}>\n {children}\n </div>\n )\n}\n","import {HTMLProps, useEffect, useState} from 'react'\nimport {useConnectorsStore} from './useConnectorsStore'\nimport {ConnectorRegionRects} from './types'\nimport {ConnectorRegion} from './ConnectorRegion'\n\nexport function ConnectFromRegion(\n props: {_key: string; zIndex: number} & HTMLProps<HTMLDivElement>\n) {\n const {children, _key: key, zIndex, ...restProps} = props\n const store = useConnectorsStore()\n const [rects, setRects] = useState<ConnectorRegionRects | null>(null)\n\n useEffect(() => store.from.subscribe(key, {zIndex}), [key, store, zIndex])\n\n useEffect(() => {\n if (rects) store.from.next(key, rects)\n }, [key, rects, store])\n\n return (\n <ConnectorRegion {...restProps} onRectsChange={setRects}>\n {children}\n </ConnectorRegion>\n )\n}\n","import {Connector, ConnectorRegionRects} from './types'\n\nexport interface ConnectorsStore {\n connectors: {\n subscribe: (observer: (connectors: Connector[]) => void) => () => void\n }\n\n from: {\n subscribe: (key: string, payload?: Record<string, unknown>) => () => void\n next: (key: string, rects: ConnectorRegionRects) => void\n }\n\n to: {\n subscribe: (key: string, payload?: Record<string, unknown>) => () => void\n next: (key: string, rects: ConnectorRegionRects) => void\n }\n}\n\nexport function createConnectorsStore(): ConnectorsStore {\n const configKeys: string[] = []\n const fieldKeys: string[] = []\n\n const channels = {\n from: new Map<string, ConnectorRegionRects | null>(),\n to: new Map<string, ConnectorRegionRects | null>(),\n }\n\n const payloads = {\n from: new Map<string, Record<string, unknown> | undefined>(),\n to: new Map<string, Record<string, unknown> | undefined>(),\n }\n\n const observers: ((connectors: Connector[]) => void)[] = []\n\n function notifyObservers() {\n const connectors: Connector[] = []\n\n for (const key of configKeys) {\n const toRects = channels.to.get(key)\n const toPayload = payloads.from.get(key)\n\n const fromRects = channels.from.get(key)\n const fromPayload = payloads.from.get(key)\n\n if (toRects && fromRects) {\n connectors.push({\n key,\n from: {...fromRects, payload: fromPayload},\n to: {...toRects, payload: toPayload},\n })\n }\n }\n\n for (const observer of observers) {\n observer(connectors)\n }\n }\n\n return {\n to: {\n subscribe(key, payload) {\n channels.to.set(key, null)\n payloads.to.set(key, payload)\n\n configKeys.push(key)\n\n return () => {\n channels.to.delete(key)\n payloads.to.delete(key)\n\n const idx = configKeys.indexOf(key)\n\n if (idx > -1) configKeys.splice(idx, 1)\n\n notifyObservers()\n }\n },\n next(key, rects) {\n channels.to.set(key, rects)\n\n if (fieldKeys.includes(key)) notifyObservers()\n },\n },\n\n connectors: {\n subscribe(observer) {\n observers.push(observer)\n\n return () => {\n const idx = observers.indexOf(observer)\n\n if (idx > -1) observers.splice(idx, 1)\n }\n },\n },\n\n from: {\n subscribe(key, payload) {\n channels.from.set(key, null)\n payloads.from.set(key, payload)\n\n fieldKeys.push(key)\n\n return () => {\n channels.from.delete(key)\n payloads.from.delete(key)\n\n const idx = fieldKeys.indexOf(key)\n\n if (idx > -1) fieldKeys.splice(idx, 1)\n\n notifyObservers()\n }\n },\n next(key, rects) {\n channels.from.set(key, rects)\n\n if (configKeys.includes(key)) notifyObservers()\n },\n },\n }\n}\n","import {ReactNode, useEffect, useMemo} from 'react'\nimport {ConnectorsStore, createConnectorsStore} from './ConnectorsStore'\nimport {ConnectorsStoreContext} from './ConnectorsStoreContext'\nimport {Connector} from './types'\n\nexport function ConnectorsProvider(props: {\n children?: ReactNode\n onConnectorsChange?: (connectors: Connector[]) => void\n}) {\n const {children, onConnectorsChange} = props\n const store: ConnectorsStore = useMemo(() => createConnectorsStore(), [])\n\n useEffect(\n () => onConnectorsChange && store.connectors.subscribe(onConnectorsChange),\n [onConnectorsChange, store]\n )\n\n return <ConnectorsStoreContext.Provider value={store}>{children}</ConnectorsStoreContext.Provider>\n}\n","import {\n ConnectorLine,\n ConnectorLinePoint,\n ConnectorOptions,\n ConnectorRegionRects,\n Rect,\n} from './types'\n\nfunction getConnectorLinePoint(\n options: ConnectorOptions,\n rect: Rect,\n bounds: Rect\n): ConnectorLinePoint {\n const centerY = rect.y + rect.h / 2\n const isAbove = rect.y + rect.h < bounds.y + options.arrow.marginY\n const isBelow = rect.y > bounds.y + bounds.h - options.arrow.marginY\n\n return {\n bounds,\n x: rect.x,\n y: centerY,\n centerY,\n startY: rect.y + options.path.marginY,\n endY: rect.y + rect.h - options.path.marginY,\n isAbove,\n isBelow,\n outOfBounds: isAbove || isBelow,\n }\n}\n\nexport function mapConnectorToLine(\n options: ConnectorOptions,\n connector: {from: ConnectorRegionRects; to: ConnectorRegionRects}\n): ConnectorLine {\n const fromBounds: Rect = {\n y: connector.from.bounds.y + options.arrow.threshold,\n // bottom: connector.from.bounds.y + connector.from.bounds.h - options.arrow.threshold,\n x: connector.from.bounds.x,\n // right: connector.from.bounds.x + connector.from.bounds.w,\n w: connector.from.bounds.w,\n h: connector.from.bounds.h - options.arrow.threshold * 2,\n }\n\n const from = getConnectorLinePoint(options, connector.from.element, fromBounds)\n from.x = connector.from.element.x + connector.from.element.w // + 1\n\n const fromBottom = fromBounds.y + fromBounds.h\n\n const toBounds: Rect = {\n y: connector.to.bounds.y + options.arrow.threshold,\n // bottom: connector.to.bounds.y + connector.to.bounds.h - options.arrow.threshold,\n x: connector.to.bounds.x,\n // right: connector.to.bounds.x + connector.to.bounds.w,\n w: connector.to.bounds.w,\n h: connector.to.bounds.h - options.arrow.threshold * 2,\n }\n\n const toBottom = toBounds.y + toBounds.h\n\n const to = getConnectorLinePoint(options, connector.to.element, toBounds)\n\n const maxStartY = Math.max(to.startY, from.startY)\n\n // Align from <-> to vertically\n from.y = Math.min(maxStartY, from.endY)\n if (from.y < toBounds.y) {\n from.y = Math.min(toBounds.y, from.endY)\n } else if (from.y > toBottom) {\n from.y = Math.max(toBottom, from.startY)\n }\n to.y = Math.min(maxStartY, to.endY)\n if (to.y < fromBounds.y) {\n to.y = Math.min(fromBounds.y, to.endY)\n } else if (to.y > fromBottom) {\n to.y = Math.max(fromBottom, to.startY)\n }\n\n // Keep within bounds\n from.y = Math.min(Math.max(from.y, fromBounds.y), fromBottom)\n to.y = Math.min(Math.max(to.y, toBounds.y), toBottom)\n\n return {from, to}\n}\n","import {ConnectorOptions} from '../../_lib/connector'\n\nexport function arrowPath(options: ConnectorOptions, x: number, y: number, dir: 1 | -1): string {\n return [\n `M ${x - options.arrow.size} ${y - options.arrow.size * dir} `,\n `L ${x} ${y}`,\n `L ${x + options.arrow.size} ${y - options.arrow.size * dir}`,\n ].join('')\n}\n","import {ConnectorLine, ConnectorOptions} from '../../_lib/connector'\n\nexport function drawArrowPath(\n options: ConnectorOptions,\n x: number,\n y: number,\n dir: number\n): string {\n return [\n `M ${x - options.arrow.size} ${y - options.arrow.size * dir} `,\n `L ${x} ${y}`,\n `L ${x + options.arrow.size} ${y - options.arrow.size * dir}`,\n ].join('')\n}\n\nfunction moveTo(x: number, y: number) {\n return `M${x} ${y}`\n}\n\nfunction lineTo(x: number, y: number) {\n return `L${x} ${y}`\n}\n\nfunction join(strings: string[], delim = '') {\n return strings.join(delim)\n}\n\nfunction quadCurve(x1: number, y1: number, x: number, y: number) {\n return `Q${x1} ${y1} ${x} ${y}`\n}\n\nexport function drawConnectorPath(options: ConnectorOptions, line: ConnectorLine): string {\n const {cornerRadius} = options.path\n const {from, to} = line\n const {x: fromX, y: fromY} = from\n const {x: _toX, y: toY} = to\n\n const toX = _toX - 1\n\n // Calculate divider position\n const dividerX = to.bounds.x + options.divider.offsetX\n\n // Calculate connector FROM path X position\n const fromPathX = from.isAbove || from.isBelow ? fromX + options.arrow.marginX : fromX\n\n // Calculate maximum corner radius\n const r0 = Math.min(cornerRadius, Math.abs(fromPathX - dividerX) / 2)\n const r1 = Math.min(cornerRadius, Math.abs(fromY - toY) / 2)\n\n const cmds: string[] = []\n\n // FROM\n if (from.isAbove) {\n cmds.push(\n moveTo(\n fromX + options.arrow.marginX,\n fromY - options.arrow.threshold + options.arrow.marginY\n ),\n lineTo(fromX + options.arrow.marginX, fromY - r0),\n quadCurve(fromX + options.arrow.marginX, fromY, fromX + options.arrow.marginX + r0, fromY)\n )\n } else if (from.isBelow) {\n cmds.push(\n moveTo(\n fromX + options.arrow.marginX,\n fromY + options.arrow.threshold - options.arrow.marginY\n ),\n lineTo(fromX + options.arrow.marginX, fromY + r0),\n quadCurve(fromX + options.arrow.marginX, fromY, fromX + options.arrow.marginX + r0, fromY)\n )\n } else {\n cmds.push(moveTo(fromX, fromY))\n }\n\n // TO\n if (to.isAbove) {\n if (fromY < to.bounds.y) {\n cmds.push(\n lineTo(dividerX - r1, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + r1),\n lineTo(dividerX, toY - r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(dividerX - cornerRadius, toY),\n quadCurve(dividerX, toY, dividerX, toY - cornerRadius),\n lineTo(dividerX, toY - options.arrow.threshold + options.arrow.marginY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - cornerRadius, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY - cornerRadius),\n lineTo(dividerX, toY - options.arrow.threshold + options.arrow.marginY)\n )\n }\n } else if (to.isBelow) {\n if (fromY > to.bounds.y + to.bounds.h) {\n // curl around\n cmds.push(\n lineTo(dividerX - options.arrow.marginX - r1, fromY),\n quadCurve(\n dividerX - options.arrow.marginX,\n fromY,\n dividerX - options.arrow.marginX,\n fromY - r1\n ),\n lineTo(dividerX - options.arrow.marginX, toY + r1),\n quadCurve(\n dividerX - options.arrow.marginX,\n toY,\n dividerX - options.arrow.marginX + r1,\n toY\n ),\n lineTo(dividerX - cornerRadius, toY),\n quadCurve(dividerX, toY, dividerX, toY + cornerRadius),\n lineTo(dividerX, toY + options.arrow.threshold - options.arrow.marginY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - cornerRadius, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + cornerRadius),\n lineTo(dividerX, toY + options.arrow.threshold - options.arrow.marginY)\n )\n }\n } else if (fromY < toY) {\n cmds.push(\n lineTo(dividerX - r0, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + r1),\n lineTo(dividerX, toY - r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(toX, toY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - Math.min(r0, r1), fromY),\n quadCurve(dividerX, fromY, dividerX, fromY - Math.min(r0, r1)),\n lineTo(dividerX, toY + r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(toX, toY)\n )\n }\n\n return join(cmds)\n}\n","import {rgba, useTheme} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {ConnectorOptions, mapConnectorToLine, Rect} from '../_lib/connector'\nimport {arrowPath} from './draw/arrowPath'\nimport {drawConnectorPath} from './draw/connectorPath'\n\nexport function ConnectorPath(props: {\n from: {bounds: Rect; element: Rect}\n to: {bounds: Rect; element: Rect}\n options: ConnectorOptions\n}) {\n const {from, options, to} = props\n const {strokeWidth} = options.path\n const theme = useTheme()\n\n const line = useMemo(() => mapConnectorToLine(options, {from, to}), [from, options, to])\n\n return (\n <>\n <path\n d={drawConnectorPath(options, line)}\n stroke={theme.sanity.color.base.bg}\n strokeWidth={strokeWidth + 4}\n />\n\n <path\n d={drawConnectorPath(options, line)}\n stroke={rgba(theme.sanity.color.base.border, 0.5)}\n strokeWidth={strokeWidth}\n />\n\n {line.from.isAbove && (\n <path\n d={arrowPath(\n options,\n line.from.x + options.arrow.marginX,\n line.from.bounds.y - options.arrow.threshold + options.arrow.marginY,\n -1\n )}\n stroke={theme.sanity.color.base.border}\n strokeWidth={strokeWidth}\n />\n )}\n\n {line.from.isBelow && (\n <path\n d={arrowPath(\n options,\n line.from.x + options.arrow.marginX,\n line.from.bounds.y +\n line.from.bounds.h +\n options.arrow.threshold -\n options.arrow.marginY,\n 1\n )}\n stroke={theme.sanity.color.base.border}\n strokeWidth={strokeWidth}\n />\n )}\n </>\n )\n}\n","import {Fragment, useEffect, useState} from 'react'\nimport {Connector, ConnectorOptions} from '../_lib/connector'\nimport {ConnectorPath} from './ConnectorPath'\n\nconst DEBUG = false\n\nconst options: ConnectorOptions = {\n arrow: {\n marginX: 10.5,\n marginY: 5,\n size: 4,\n threshold: 16.5,\n },\n divider: {\n offsetX: -10.5,\n },\n path: {\n cornerRadius: 3,\n marginY: 10.5,\n strokeWidth: 1,\n },\n}\n\nexport function AssistConnectorsOverlay(props: {connectors: Connector[]}) {\n const {connectors} = props\n // const zIndexes = connectors.map((connector) => {\n // const zIndex = connector.from.payload?.zIndex\n\n // if (typeof zIndex === 'number') {\n // return zIndex\n // }\n\n // return 1\n // })\n const [, setRedraw] = useState(false)\n useEffect(() => {\n // hacky workaround to force redraw for connectors on initial render\n // this seem to improve initial measurements of elements\n setRedraw(true)\n }, [])\n\n // const zIndex = zIndexes.length ? Math.max(...zIndexes) : 1\n\n return (\n <>\n <svg\n fill=\"none\"\n width={window.innerWidth}\n height={window.innerHeight}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n zIndex: 150,\n // zIndex,\n }}\n >\n {connectors.map((connector) => (\n <ConnectorPath\n from={connector.from}\n key={connector.key}\n options={options}\n to={connector.to}\n />\n ))}\n </svg>\n {DEBUG &&\n connectors.map(({key, from, to}) => {\n return (\n <Fragment key={key}>\n <div\n style={{\n position: 'fixed',\n top: from.bounds.y,\n left: from.bounds.x,\n width: from.bounds.w,\n height: from.bounds.h,\n pointerEvents: 'none',\n overflow: 'hidden',\n outline: '1px dotted red',\n outlineOffset: -1,\n zIndex: 10000000 - 1,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: from.element.y - from.bounds.y,\n left: from.element.x - from.bounds.x,\n width: from.element.w,\n height: from.element.h,\n border: '1px solid red',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div\n style={{\n position: 'fixed',\n top: to.bounds.y,\n left: to.bounds.x,\n width: to.bounds.w,\n height: to.bounds.h,\n pointerEvents: 'none',\n overflow: 'hidden',\n outline: '1px dotted teal',\n outlineOffset: -1,\n zIndex: 10000000 - 1,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: to.element.y - to.bounds.y,\n left: to.element.x - to.bounds.x,\n width: to.element.w,\n height: to.element.h,\n border: '1px solid teal',\n boxSizing: 'border-box',\n }}\n />\n </div>\n </Fragment>\n )\n })}\n </>\n )\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import {SanityDocumentLike} from 'sanity'\nimport get from 'lodash/get'\n\nexport const getLanguageParams = (\n select: Record<string, string> | undefined,\n document: SanityDocumentLike | undefined\n): Record<string, unknown> => {\n if (!select || !document) {\n return {}\n }\n\n const selection: Record<string, string> = select || {}\n const selectedValue: Record<string, unknown> = {}\n for (const [key, path] of Object.entries(selection)) {\n let value = get(document, path)\n if (Array.isArray(value)) {\n // If there are references in the array, ensure they have `_ref` set, otherwise they are considered empty and can safely be ignored\n value = value.filter((item) =>\n typeof item === 'object' ? item?._type !== 'reference' || '_ref' in item : true\n )\n }\n selectedValue[key] = value\n }\n\n return selectedValue\n}\n","export const toFieldLanguagesKeyPrefix = 'sanityStudio:assist:field-languages:from:'\n\nexport function getPreferredToFieldLanguages(fromLanguageId: string): string[] {\n if (typeof localStorage === 'undefined') {\n return []\n }\n\n const value = localStorage.getItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`)\n return value ? (JSON.parse(value) as string[]) : []\n}\n\nexport function setPreferredToFieldLanguages(fromLanguageId: string, languageIds: string[]) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`, JSON.stringify(languageIds))\n}\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, Path, pathToString, SanityDocumentLike, useClient} from 'sanity'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {Box, Button, Checkbox, Dialog, Flex, Radio, Spinner, Stack, Text, Tooltip} from '@sanity/ui'\nimport {\n defaultLanguageOutputs,\n FieldLanguageMap,\n getDocumentMembersFlat,\n getFieldLanguageMap,\n} from './paths'\nimport {PlayIcon} from '@sanity/icons'\nimport {Language} from './types'\nimport {getLanguageParams} from './getLanguageParams'\nimport {getPreferredToFieldLanguages, setPreferredToFieldLanguages} from './languageStore'\nimport {ConditionalMemberState} from '../helpers/conditionalMembers'\n\ninterface FieldTranslationParams {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n translatePath: Path\n conditionalMembers: ConditionalMemberState[]\n}\n\nexport interface FieldTranslationContextValue {\n openFieldTranslation: (args: FieldTranslationParams) => void\n translationLoading: boolean\n}\n\nexport const FieldTranslationContext = createContext<FieldTranslationContextValue>({\n openFieldTranslation: () => {},\n translationLoading: false,\n})\n\nexport function useFieldTranslation() {\n return useContext(FieldTranslationContext)\n}\n\nfunction hasValuesToTranslate(\n fieldLanguageMaps: FieldLanguageMap[] | undefined,\n fromLanguage: Language | undefined,\n basePath: Path\n) {\n return fieldLanguageMaps?.some(\n (map) =>\n map.inputLanguageId === fromLanguage?.id &&\n map.inputPath &&\n pathToString(map.inputPath).startsWith(pathToString(basePath))\n )\n}\n\nexport function FieldTranslationProvider(props: PropsWithChildren<{}>) {\n const {config: assistConfig} = useAiAssistanceConfig()\n const apiClient = useApiClient(assistConfig.__customApiClient)\n const config = assistConfig.translate?.field\n const {translate: runTranslate} = useTranslate(apiClient)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const [fieldTranslationParams, setFieldTranslationParams] = useState<\n FieldTranslationParams | undefined\n >()\n const [languages, setLanguages] = useState<Language[] | undefined>()\n const [fromLanguage, setFromLanguage] = useState<Language | undefined>(undefined)\n const [toLanguages, setToLanguages] = useState<Language[] | undefined>(undefined)\n const [fieldLanguageMaps, setFieldLanguageMaps] = useState<FieldLanguageMap[] | undefined>()\n\n const close = useCallback(() => {\n setDialogOpen(false)\n setLanguages(undefined)\n setFieldTranslationParams(undefined)\n }, [])\n const languageClient = useClient({apiVersion: config?.apiVersion ?? '2022-11-27'})\n const documentId = fieldTranslationParams?.document?._id\n const id = useId()\n\n const selectFromLanguage = useCallback(\n (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => {\n const {document, documentSchema} = params ?? {}\n setFromLanguage(from)\n if (!document || !documentSchema || !params || !languages) {\n setFieldLanguageMaps(undefined)\n return\n }\n\n const preferred = getPreferredToFieldLanguages(from.id)\n const allToLanguages = languages.filter((l) => l.id !== from?.id)\n const filteredToLanguages = allToLanguages.filter(\n (l) => !preferred.length || preferred.includes(l.id)\n )\n\n setToLanguages(filteredToLanguages)\n const fromId = from?.id\n const allToIds = allToLanguages?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && allToIds?.length) {\n const transMap = getFieldLanguageMap(\n documentSchema,\n docMembers,\n fromId,\n allToIds.filter((toId) => fromId !== toId),\n config?.translationOutputs ?? defaultLanguageOutputs\n )\n setFieldLanguageMaps(transMap)\n } else {\n setFieldLanguageMaps(undefined)\n }\n },\n [config]\n )\n\n const toggleToLanguage = useCallback(\n (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => {\n if (!languages || !fromLanguage) {\n return\n }\n const wasSelected = !!toLanguages?.find((l) => l.id === toggledLang.id)\n const newToLangs = languages.filter(\n (anyLang) =>\n !!toLanguages?.find(\n (selectedLang) => toggledLang.id !== selectedLang.id && selectedLang.id === anyLang.id\n ) ||\n (toggledLang.id === anyLang.id && !wasSelected)\n )\n setToLanguages(newToLangs)\n setPreferredToFieldLanguages(\n fromLanguage.id,\n newToLangs.map((l) => l.id)\n )\n },\n [fromLanguage]\n )\n\n const openFieldTranslation = useCallback(\n async (params: FieldTranslationParams) => {\n setDialogOpen(true)\n const languageParams = getLanguageParams(config?.selectLanguageParams, params.document)\n const languages: Language[] | undefined = await (typeof config?.languages === 'function'\n ? config?.languages(languageClient, languageParams)\n : Promise.resolve(config?.languages))\n setLanguages(languages)\n setFieldTranslationParams(params)\n const fromLanguage = languages?.[0]\n if (fromLanguage) {\n selectFromLanguage(fromLanguage, languages, params)\n } else {\n console.error('No languages available for selected language params', languageParams)\n }\n },\n [selectFromLanguage, config, languageClient]\n )\n\n const contextValue: FieldTranslationContextValue = useMemo(() => {\n return {\n openFieldTranslation,\n translationLoading: false,\n }\n }, [openFieldTranslation])\n\n const runDisabled =\n !fromLanguage ||\n !toLanguages?.length ||\n !fieldLanguageMaps?.length ||\n !documentId ||\n !hasValuesToTranslate(fieldLanguageMaps, fromLanguage, fieldTranslationParams.translatePath)\n\n const onRunTranslation = useCallback(() => {\n const translatePath = fieldTranslationParams?.translatePath\n if (fieldLanguageMaps && documentId && translatePath) {\n runTranslate({\n documentId,\n translatePath: translatePath,\n fieldLanguageMap: fieldLanguageMaps.map((map) => ({\n ...map,\n // eslint-disable-next-line max-nested-callbacks\n outputs: map.outputs.filter((out) => !!toLanguages?.find((l) => l.id === out.id)),\n })),\n conditionalMembers: fieldTranslationParams?.conditionalMembers,\n })\n }\n close()\n }, [\n fieldLanguageMaps,\n documentId,\n runTranslate,\n close,\n toLanguages,\n fieldTranslationParams?.translatePath,\n fieldTranslationParams?.conditionalMembers,\n ])\n\n const runButton = (\n <Button\n text={`Translate`}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n onClick={onRunTranslation}\n />\n )\n\n return (\n <FieldTranslationContext.Provider value={contextValue}>\n {dialogOpen ? (\n <Dialog\n id={id}\n width={1}\n open={dialogOpen}\n onClose={close}\n header=\"Translate fields\"\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>There is nothing to translate in the selected from-language.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n {languages ? (\n <Flex padding={4} gap={5} align=\"flex-start\" justify=\"center\">\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">From</Text>\n </Box>\n {languages?.map((radioLanguage) => (\n <FromLanguageRadio\n key={radioLanguage.id}\n {...{\n radioLanguage,\n fromLanguage,\n selectFromLanguage,\n languages,\n fieldTranslationParams,\n }}\n />\n ))}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages.map((checkboxLanguage) => (\n <ToLanguageCheckbox\n key={checkboxLanguage.id}\n {...{checkboxLanguage, fromLanguage, toLanguages, toggleToLanguage, languages}}\n />\n ))}\n </Stack>\n </Flex>\n ) : (\n <Flex padding={4} gap={2} align=\"flex-start\" justify=\"center\">\n <Box>\n <Spinner />\n </Box>\n <Text>Loading languages...</Text>\n </Flex>\n )}\n </Dialog>\n ) : null}\n {props.children}\n </FieldTranslationContext.Provider>\n )\n}\n\nfunction ToLanguageCheckbox(props: {\n checkboxLanguage: Language\n fromLanguage: Language | undefined\n toLanguages: Language[] | undefined\n toggleToLanguage: (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => void\n languages: Language[]\n}) {\n const {checkboxLanguage, fromLanguage, toLanguages, toggleToLanguage, languages} = props\n const langId = checkboxLanguage.id\n const onChange = useCallback(\n () => toggleToLanguage(checkboxLanguage, toLanguages, languages),\n [toggleToLanguage, checkboxLanguage, toLanguages, languages]\n )\n return (\n <Flex\n key={langId}\n gap={3}\n align=\"center\"\n as={'label'}\n style={langId === fromLanguage?.id ? {opacity: 0.5} : undefined}\n >\n <Checkbox\n name=\"toLang\"\n value={langId}\n checked={langId !== fromLanguage?.id && !!toLanguages?.find((tl) => tl.id === langId)}\n onChange={onChange}\n disabled={langId === fromLanguage?.id}\n />\n <Text muted={langId === fromLanguage?.id}>{checkboxLanguage.title ?? langId}</Text>\n </Flex>\n )\n}\n\nfunction FromLanguageRadio(props: {\n radioLanguage: Language\n fromLanguage: Language | undefined\n selectFromLanguage: (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => void\n languages: Language[] | undefined\n fieldTranslationParams: FieldTranslationParams | undefined\n}) {\n const {languages, radioLanguage, selectFromLanguage, fromLanguage, fieldTranslationParams} = props\n const langId = radioLanguage.id\n\n const onChange = useCallback(\n () => selectFromLanguage(radioLanguage, languages, fieldTranslationParams),\n [selectFromLanguage, radioLanguage, languages, fieldTranslationParams]\n )\n return (\n <Flex key={langId} gap={3} align=\"center\" as={'label'}>\n <Radio\n name=\"fromLang\"\n value={langId}\n checked={langId === fromLanguage?.id}\n onChange={onChange}\n />\n <Text>{radioLanguage.title ?? radioLanguage.id}</Text>\n </Flex>\n )\n}\n","import {useState} from 'react'\nimport {LayoutProps} from 'sanity'\nimport {Connector, ConnectorsProvider} from '../_lib/connector'\nimport {AssistConnectorsOverlay} from '../assistConnectors'\nimport {AssistPluginConfig} from '../plugin'\nimport {AiAssistanceConfigProvider} from './AiAssistanceConfigContext'\nimport {RunInstructionRequest} from '../useApiClient'\nimport {StudioInstruction} from '../types'\nimport {RunInstructionProvider} from './RunInstructionProvider'\nimport {ThemeProvider} from '@sanity/ui'\nimport {FieldTranslationProvider} from '../translate/FieldTranslationProvider'\n\nexport interface AIStudioLayoutProps extends LayoutProps {\n config: AssistPluginConfig\n}\n\nexport type RunInstructionArgs = Omit<RunInstructionRequest, 'instructionKey' | 'userText'> & {\n instruction: StudioInstruction\n}\n\nexport function AssistLayout(props: AIStudioLayoutProps) {\n const [connectors, setConnectors] = useState<Connector[]>([])\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n <RunInstructionProvider>\n <FieldTranslationProvider>\n <ConnectorsProvider onConnectorsChange={setConnectors}>\n {props.renderDefault(props)}\n <ThemeProvider tone=\"default\">\n <AssistConnectorsOverlay connectors={connectors} />\n </ThemeProvider>\n </ConnectorsProvider>\n </FieldTranslationProvider>\n </RunInstructionProvider>\n </AiAssistanceConfigProvider>\n )\n}\n","import {InputProps, isArraySchemaType, PatchEvent, unset} from 'sanity'\nimport {ErrorInfo, PropsWithChildren, useCallback, useMemo, useState} from 'react'\nimport {Box, Button, Card, ErrorBoundary, Flex, Stack, Text} from '@sanity/ui'\nimport {isPortableTextArray} from '../helpers/typeUtils'\nimport styled from 'styled-components'\n\nconst WrapPreCard = styled(Card)`\n & pre {\n white-space: pre-wrap !important;\n }\n`\n\nexport function SafeValueInput(props: InputProps) {\n return (\n <ErrorWrapper onChange={props.onChange}>\n <PteValueFixer {...props} />\n </ErrorWrapper>\n )\n}\n\nexport function ErrorWrapper(\n props: PropsWithChildren<{onChange: (patchEvent: PatchEvent) => void}>\n) {\n const {onChange} = props\n const [error, setError] = useState<Error | undefined>()\n\n const catchError = useCallback(\n (params: {error: Error; info: ErrorInfo}) => {\n setError(params.error)\n },\n [setError]\n )\n\n const unsetValue = useCallback(() => {\n onChange(PatchEvent.from(unset()))\n setError(undefined)\n }, [onChange])\n const dismiss = useCallback(() => setError(undefined), [])\n const catcher = <ErrorBoundary onCatch={catchError}>{props.children}</ErrorBoundary>\n\n return error ? (\n <Card border tone=\"critical\" padding={2} contentEditable={false}>\n <Stack space={3}>\n <Text muted weight=\"semibold\">\n An error occurred.\n </Text>\n\n <WrapPreCard flex={1} padding={2} tone=\"critical\" border>\n {catcher}\n </WrapPreCard>\n\n <Flex width=\"fill\" flex={1} gap={3}>\n <Box flex={1}>\n <Button text=\"Dismiss\" onClick={dismiss} tone=\"primary\" />\n </Box>\n <Button text=\"Unset value\" onClick={unsetValue} tone=\"critical\" />\n </Flex>\n </Stack>\n </Card>\n ) : (\n catcher\n )\n}\n\nfunction PteValueFixer(props: InputProps) {\n const isPortableText = useMemo(\n () => isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType),\n [props.schemaType]\n )\n const value = props.value\n if (isPortableText && value && !(value as any[]).length) {\n return props.renderDefault({...props, value: undefined})\n }\n\n return props.renderDefault(props)\n}\n","import {BlockProps, PatchEvent, useFormCallbacks} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {ErrorWrapper} from '../components/SafeValueInput'\nimport {useCallback} from 'react'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistFormBlock(props: BlockProps) {\n const presence = useAssistPresence(props.path, true)\n const {onChange} = useFormCallbacks()\n const key = props.value._key\n const localOnChange = useCallback(\n (patchEvent: PatchEvent) => {\n if (!key) {\n return\n }\n onChange(PatchEvent.from(patchEvent).prefixAll({_key: key}))\n },\n [onChange, key]\n )\n const singlePresence = presence[0]\n return (\n <ErrorWrapper onChange={localOnChange}>\n <Flex align=\"center\" justify=\"space-between\">\n <Box flex={1}>{props.renderDefault(props)}</Box>\n {singlePresence && <AiFieldPresence presence={singlePresence} />}\n </Flex>\n </ErrorWrapper>\n )\n}\n","import {ItemProps} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistItem(props: ItemProps) {\n const {path} = props\n const presence = useAssistPresence(path, true)\n\n return (\n <Flex align=\"center\" width=\"fill\" style={{position: 'relative'}}>\n <Box flex={1}>{props.renderDefault({...props})}</Box>\n {presence.map((pre) => (\n <Box key={pre.user.id} style={{position: 'absolute', right: 35}}>\n <AiFieldPresence presence={pre} />\n </Box>\n ))}\n </Flex>\n )\n}\n","import {FieldError, FieldMember, FieldSetMember, ObjectMember} from 'sanity'\n\nexport function findFieldMember(\n members: ObjectMember[],\n fieldName: string\n): FieldMember | FieldError | undefined {\n return members.find(\n (m): m is FieldMember | FieldError =>\n (m.kind === 'field' && m.name === fieldName) ||\n (m.kind === 'error' && m.fieldName === fieldName)\n )\n}\n\nexport function findFieldsetMember(\n members: ObjectMember[],\n fieldsetName: string\n): FieldSetMember | undefined {\n return members.find(\n (m): m is FieldSetMember => m.kind === 'fieldSet' && m.fieldSet.name === fieldsetName\n )\n}\n","import {FieldError, FieldMember, ObjectInputMember, ObjectInputProps} from 'sanity'\nimport {findFieldMember, findFieldsetMember} from '../helpers'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useId, useMemo} from 'react'\n\nexport function InstructionInput(props: ObjectInputProps) {\n return (\n <Stack space={[4, 4, 4, 5]}>\n <NameField {...props} />\n <ShareField {...props} />\n <ObjectMember fieldName={'prompt'} {...props} />\n <ObjectMember fieldName={'output'} {...props} />\n </Stack>\n )\n}\n\nfunction ObjectMember({fieldName, ...props}: ObjectInputProps & {fieldName: string}) {\n const member = findFieldMember(props.members, fieldName)\n return member ? <ObjectInputMember {...props} member={member} /> : null\n}\n\nconst NONE: (FieldMember | FieldError)[] = []\n\nfunction NameField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const titleId = useId()\n\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const iconMember = findFieldMember(members, 'icon')\n const titleMember = findFieldMember(members, 'title')\n\n const titlePlaceholder = 'Untitled'\n const moddedTitleMember = useMemo(() => {\n if (!titleMember) {\n return undefined\n }\n if (titleMember.kind === 'error') {\n return titleMember\n }\n return {\n ...titleMember,\n field: {\n ...titleMember?.field,\n schemaType: {\n ...titleMember?.field.schemaType,\n placeholder: titlePlaceholder,\n },\n },\n }\n }, [titleMember, titlePlaceholder])\n\n return (\n <Stack space={5}>\n <Stack space={2}>\n <Flex gap={1}>\n <Text as=\"label\" weight=\"semibold\" size={1} htmlFor={titleId}>\n Name\n </Text>\n </Flex>\n\n <Text muted size={1}>\n How this instruction appears in menus\n </Text>\n\n <Flex align=\"center\">\n {iconMember && (\n <Box flex=\"none\">\n <ObjectInputMember {...props} member={iconMember} />\n </Box>\n )}\n {moddedTitleMember && (\n <Box flex={1} style={{marginLeft: -1}}>\n <ObjectInputMember {...props} member={moddedTitleMember} />\n </Box>\n )}\n </Flex>\n </Stack>\n </Stack>\n )\n}\n\nfunction ShareField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const visibilityMember = findFieldMember(members, 'userId')\n\n return <>{visibilityMember && <ObjectInputMember {...props} member={visibilityMember} />}</>\n}\n","import {FieldProps} from 'sanity'\n\nexport function HiddenFieldTitle(props: FieldProps) {\n return props.renderDefault({...props, title: '', level: props.level - 2, changed: false})\n}\n","import {set, StringInputProps, unset, useCurrentUser} from 'sanity'\nimport {Card, Flex, Switch, Text} from '@sanity/ui'\nimport {useCallback, useId} from 'react'\n\nexport function InstructionVisibility(props: StringInputProps) {\n const {value, onChange} = props\n\n const user = useCurrentUser()\n\n const handleChange = useCallback(() => {\n const newValue = value ? '' : user?.id ?? ''\n onChange(newValue ? set(newValue) : unset())\n }, [onChange, user, value])\n\n const id = useId()\n\n return (\n <Card>\n <Flex gap={2} align=\"flex-start\">\n <div style={{margin: '-3px 0'}}>\n <Switch\n {...props.elementProps}\n id={id}\n value={`${!value}`}\n checked={!value}\n onChange={handleChange}\n disabled={props.elementProps.readOnly}\n />\n </div>\n\n <Text muted size={1} weight=\"medium\">\n <label htmlFor={id}>Make visible to all Studio members</label>\n </Text>\n </Flex>\n </Card>\n )\n}\n","import {icons} from '@sanity/icons'\nimport {set, StringInputProps} from 'sanity'\nimport {Button, Menu, MenuButton, MenuItem} from '@sanity/ui'\nimport {ElementType, ReactNode, useCallback, useId, useMemo} from 'react'\n\nexport function IconInput(props: StringInputProps) {\n const {value, onChange} = props\n const id = useId()\n const items = useMemo(\n () =>\n Object.entries(icons).map(([key, icon]) => (\n <IconItem key={key} iconKey={key} icon={icon} onChange={onChange} />\n )),\n [onChange]\n )\n\n const selectedIcon = useMemo(() => getIcon(value), [value])\n\n return (\n <MenuButton\n button={\n <Button icon={selectedIcon} title=\"Select icon\" padding={3} mode=\"ghost\" radius={1} />\n }\n id={id}\n menu={<Menu style={{maxHeight: 300}}>{items}</Menu>}\n popover={{portal: true}}\n />\n )\n}\n\nfunction IconItem({\n icon,\n iconKey: key,\n onChange,\n}: {\n iconKey: string\n icon: ElementType | ReactNode\n onChange: StringInputProps['onChange']\n}) {\n const onClick = useCallback(() => onChange(set(key)), [onChange, key])\n return <MenuItem icon={icon} title={key} text={key} onClick={onClick} />\n}\n\nexport function getIcon(iconName?: string) {\n return Object.entries(icons).find(([key]) => key === iconName)?.[1] ?? icons.sparkles\n}\n","import {set, StringInputProps} from 'sanity'\nimport {useCallback, useContext, useEffect, useId, useRef} from 'react'\nimport {Box} from '@sanity/ui'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {FieldAutocomplete} from '../../../assistInspector/FieldAutocomplete'\nimport {FieldRef} from '../../../assistInspector/helpers'\nimport {TypePathContext} from '../AssistDocumentForm'\n\nexport function FieldRefPathInput(props: StringInputProps) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const typePath = useContext(TypePathContext)\n const ref = useRef<HTMLDivElement>(null)\n const id = useId()\n const {onChange} = props\n\n useEffect(() => {\n ref.current?.querySelector('input')?.focus()\n }, [])\n\n const onSelect = useCallback((path: string) => onChange(set(path)), [onChange])\n\n const filter = useCallback(\n (field: FieldRef) => {\n if (!field.key.includes('|') || !typePath) {\n return true\n }\n if (field.key.includes('|') && !typePath.includes('|')) {\n return false\n }\n\n const fieldSegments = field.key.split('.')\n const lastArrayItemIndex = fieldSegments.findLastIndex((s) => s.includes('|'))\n const mustStartWith = fieldSegments.slice(0, lastArrayItemIndex + 1).join('.')\n return typePath.startsWith(mustStartWith)\n },\n [typePath]\n )\n if (!documentSchema) {\n return props.renderDefault(props)\n }\n\n return (\n <Box flex={1} style={{minWidth: 300}} ref={ref}>\n <FieldAutocomplete\n id={id}\n schemaType={documentSchema}\n onSelect={onSelect}\n fieldPath={props.value}\n filter={filter}\n />\n </Box>\n )\n}\n","import {ArrayOfObjectsInputProps, useCurrentUser} from 'sanity'\nimport {useMemo} from 'react'\nimport {StudioInstruction} from '../../types'\n\nexport function InstructionsArrayInput(props: ArrayOfObjectsInputProps) {\n const user = useCurrentUser()\n\n const originalValue = props.value as StudioInstruction[] | undefined\n const originalMembers = props.members\n const value = useMemo(\n () => (originalValue ?? []).filter((v) => !v.userId || v.userId === user?.id),\n [originalValue, user]\n )\n const members = useMemo(\n () =>\n (originalMembers ?? []).filter((v) => {\n if (v.kind === 'error') {\n return true\n }\n const value = v?.item?.value as any\n return !value.userId || value.userId === user?.id\n }),\n [originalMembers, user]\n )\n return props.renderDefault({...props, value, members})\n}\n","import {BlockProps} from 'sanity'\nimport {createContext} from 'react'\n\n// workaround for preview value sometimes lagging behind\nexport const InlineBlockValueContext = createContext<unknown>(undefined)\n\nexport function AssistInlineFormBlock(props: BlockProps) {\n return (\n <InlineBlockValueContext.Provider value={props.value}>\n <>{props.renderDefault(props)}</>\n </InlineBlockValueContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {useSelectedField} from '../../assistInspector/helpers'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {PreviewProps} from 'sanity'\nimport {SelectedFieldContext} from './SelectedFieldContext'\nimport {InlineBlockValueContext} from '../../assistFormComponents/AssistInlineFormBlock'\n\nexport function FieldRefPreview(props: PreviewProps & {path?: string}) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const path = (useContext(InlineBlockValueContext) as {path?: string})?.path ?? props.path\n const selectedField = useSelectedField(documentSchema, path)\n return (\n <Flex gap={2} align=\"center\" style={{width: '100%'}}>\n <Flex flex={1} gap={2} align=\"center\" paddingY={3} paddingX={1}>\n {/*<Box>\n <Text>{selectedField?.icon ? createElement(selectedField?.icon) : <CodeIcon />}</Text>\n </Box>*/}\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {selectedField?.title ?? 'Select field'}\n </Text>\n </Box>\n </Flex>\n <>{props.actions}</>\n </Flex>\n )\n}\n","import {ObjectInputProps} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport {useEffect, useRef} from 'react'\n\nexport function HideReferenceChangedBannerInput(props: ObjectInputProps) {\n const ref = useRef<HTMLDivElement>(null)\n\n // hides \"reference was changed\" banner (it is incorrectly flashing because the pane handler does not support the way wie use the assist pane)\n useEffect(() => {\n const parent = ref.current?.closest('[data-testid=\"pane-content\"]')\n if (!parent) {\n return\n }\n const style = document.createElement('style')\n const parentId = `id-${Math.random()}`.replace('.', '-')\n parent.id = parentId\n\n style.innerText = `\n #${parentId} [data-testid=\"reference-changed-banner\"] { display: none; }\n `\n parent.prepend(style)\n }, [ref])\n\n return <Box ref={ref}>{props.renderDefault(props)}</Box>\n}\n","import {defineArrayMember, defineField, defineType} from 'sanity'\nimport {contextDocumentTypeName} from '../types'\nimport {DocumentTextIcon, TokenIcon} from '@sanity/icons'\nimport {HideReferenceChangedBannerInput} from '../components/HideReferenceChangedBannerInput'\n\nexport const contextDocumentSchema = defineType({\n type: 'document',\n name: contextDocumentTypeName,\n title: 'AI context',\n liveEdit: true,\n icon: TokenIcon,\n components: {\n input: HideReferenceChangedBannerInput,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n name: 'context',\n type: 'array',\n title: 'Context',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n }),\n ],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n context: 'context',\n },\n prepare({title, context}) {\n const text = context\n ?.flatMap((block: any) => block?.children)\n .flatMap((child: any) => child?.text?.split(' '))\n .filter(Boolean)\n const words = text?.length ?? 0\n return {\n title,\n subtitle: `Words: ${words}`,\n media: DocumentTextIcon,\n }\n },\n },\n})\n","// Strict ESM env, designed to run outside Node.js in envs that provide WebCrypto (deno, browsers, etc)\n\nexport default function getRandomValues(typedArray) {\n const crypto =\n typeof window !== 'undefined' && 'crypto' in window\n ? window.crypto\n : globalThis.crypto\n\n if (!crypto || !crypto.getRandomValues) {\n throw new Error('WebCrypto not available in this environment')\n }\n\n return crypto.getRandomValues(typedArray)\n}\n","import getRandomValues from 'get-random-values-esm'\n\n// WHATWG crypto RNG - https://w3c.github.io/webcrypto/Overview.html\nfunction whatwgRNG(length = 16) {\n const rnds8 = new Uint8Array(length)\n getRandomValues(rnds8)\n return rnds8\n}\n\nconst getByteHexTable = (() => {\n let table: string[]\n return () => {\n if (table) {\n return table\n }\n table = []\n for (let i = 0; i < 256; ++i) {\n table[i] = (i + 0x100).toString(16).substring(1)\n }\n return table\n }\n})()\n\nexport function randomKey(length?: number) {\n const table = getByteHexTable()\n return whatwgRNG(length)\n .reduce((str, n) => str + table[n], '')\n .slice(0, length)\n}\n","import {ArrayOfObjectsInputProps, set, typed} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport styled from 'styled-components'\nimport {useEffect} from 'react'\nimport {ContextBlock, FieldRef, PromptBlock, PromptTextBlock, UserInputBlock} from '../../../types'\nimport {randomKey} from '../../../_lib/randomKey'\n\nconst PteMods = styled(Box)`\n & [data-testid='pt-editor__toolbar-card'] > div > div:last-child {\n display: none;\n }\n & [data-testid='pt-editor'] {\n min-height: 300px;\n }\n & [data-testid='pt-editor'] .pt-inline-object * {\n max-width: 400px;\n }\n`\n\nexport function PromptInput(props: ArrayOfObjectsInputProps) {\n // quickfixes the model (converts blocks to inline blocks for alpha customers)\n // backend supports both types, but this prevents \"missing block\" schema errors\n useOnlyInlineBlocks(props)\n return <PteMods>{props.renderDefault(props)}</PteMods>\n}\n\nfunction useOnlyInlineBlocks(props: ArrayOfObjectsInputProps) {\n useEffect(() => {\n let needsFix = false\n const val = ((props.value as PromptBlock[]) ?? []).map((block) => {\n if (block._type === 'block') {\n return block\n }\n\n needsFix = true\n return typed<PromptTextBlock>({\n _key: randomKey(12),\n _type: 'block',\n level: 0,\n markDefs: [],\n style: 'normal',\n children: [block as FieldRef | ContextBlock | UserInputBlock],\n })\n })\n\n if (needsFix) {\n props.onChange(set(val))\n }\n // only run this once when loading the field\n // eslint-disable-next-line\n }, [])\n}\n","import {ArrayFieldProps} from 'sanity'\n\nexport function InstructionsArrayField(props: ArrayFieldProps) {\n return props.renderDefault({\n ...props,\n title: ' ',\n })\n}\n","import {\n ArrayFieldProps,\n ArraySchemaType,\n isArrayOfObjectsSchemaType,\n isObjectSchemaType,\n ObjectSchemaType,\n} from 'sanity'\nimport {useCallback, useContext, useState} from 'react'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\n\nexport function InstructionOutputField(props: ArrayFieldProps) {\n const {fieldSchema} = useContext(SelectedFieldContext) ?? {}\n\n if (\n !fieldSchema ||\n !(isObjectSchemaType(fieldSchema) || isArrayOfObjectsSchemaType(fieldSchema))\n ) {\n return null\n }\n\n return (\n <EnabledOutputField {...props} fieldSchema={fieldSchema}>\n {props.children}\n </EnabledOutputField>\n )\n}\n\nfunction EnabledOutputField({\n fieldSchema,\n ...props\n}: ArrayFieldProps & {fieldSchema: ObjectSchemaType | ArraySchemaType<ObjectSchemaType>}) {\n const [open, setOpen] = useState(!!props.value?.length)\n const onExpand = useCallback(() => setOpen(true), [])\n const onCollapse = useCallback(() => setOpen(false), [])\n\n return props.renderDefault({\n ...props,\n collapsible: true,\n onExpand,\n onCollapse,\n collapsed: !open,\n level: 1,\n title: isObjectSchemaType(fieldSchema) ? 'Allowed fields' : 'Allowed types',\n })\n}\n","import {\n ArrayOfObjectsInputProps,\n ArraySchemaType,\n FormPatch,\n insert,\n isArrayOfObjectsSchemaType,\n isObjectSchemaType,\n ObjectSchemaType,\n PatchEvent,\n setIfMissing,\n typed,\n unset,\n} from 'sanity'\nimport {useCallback, useContext, useEffect, useMemo} from 'react'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {Card, Checkbox, Flex, Stack, Text} from '@sanity/ui'\nimport {isType} from '../../../helpers/typeUtils'\nimport {isAssistSupported} from '../../../helpers/assistSupported'\nimport {OutputFieldItem, outputFieldTypeName, OutputTypeItem} from '../../../types'\n\nexport function InstructionOutputInput(props: ArrayOfObjectsInputProps) {\n const {fieldSchema} = useContext(SelectedFieldContext) ?? {}\n\n if (!fieldSchema) {\n return null\n }\n\n if (isObjectSchemaType(fieldSchema)) {\n return <ObjectOutputInput {...props} fieldSchema={fieldSchema} />\n }\n\n if (isArrayOfObjectsSchemaType(fieldSchema)) {\n return <ArrayOutputInput {...props} fieldSchema={fieldSchema} />\n }\n return null\n}\n\nfunction useEmptySelectAllValue(\n value: (OutputTypeItem | OutputFieldItem)[],\n allowedValues: {name: string}[],\n onChange: (patch: FormPatch | FormPatch[] | PatchEvent) => void\n) {\n useEffect(() => {\n const validValues = value?.filter((v) =>\n allowedValues.find(\n (f) => f.name === (v._type === outputFieldTypeName ? v.relativePath : v.type)\n )\n )\n const valueLength = value?.length ?? 0\n const validLength = validValues?.length ?? 0\n if ((!validLength && valueLength) || validLength >= allowedValues.length) {\n // if we end up here, we consider this a \"no selected fields/types\" selections. This should render and behave as all values selected.\n // we need this behaviour to accommodate new fields/types being added to the model, so they get visited by instructions without having to update the filter\n // when things have been explicitly selected, we let the selection remain as is\n onChange(PatchEvent.from([unset()]))\n }\n }, [allowedValues, value, onChange])\n}\n\nfunction ObjectOutputInput({\n fieldSchema,\n ...props\n}: ArrayOfObjectsInputProps & {fieldSchema: ObjectSchemaType}) {\n const {value, onChange} = props\n\n const fields = useMemo(\n () => fieldSchema.fields.filter((field) => isAssistSupported(field.type)),\n [fieldSchema.fields]\n )\n\n useEmptySelectAllValue(value as OutputTypeItem[], fields, onChange)\n\n const onSelectChange = useCallback(\n (checked: boolean, selectedValue: string) => {\n if (checked) {\n if (value?.length) {\n onChange(PatchEvent.from(unset([{_key: selectedValue}])))\n } else {\n // we went from empty array to everything selected but one\n const items = fields\n .filter((f) => f.name !== selectedValue)\n .map((field) =>\n typed<OutputFieldItem>({\n _key: field.name,\n _type: 'sanity.assist.output.field',\n relativePath: field.name,\n })\n )\n onChange(PatchEvent.from([setIfMissing([]), insert(items, 'after', [-1])]))\n }\n } else {\n const patchValue: OutputFieldItem = {\n _key: selectedValue,\n _type: 'sanity.assist.output.field',\n relativePath: selectedValue,\n }\n onChange(PatchEvent.from([setIfMissing([]), insert([patchValue], 'after', [-1])]))\n }\n },\n [onChange, value, fields]\n )\n\n return (\n <Stack space={2}>\n {fields.map((field) => {\n return (\n <Flex key={field.name} align=\"center\" gap={2}>\n <Selectable\n value={field.name}\n title={field.type.title ?? field.name}\n arrayValue={value as OutputFieldItem[]}\n onChange={onSelectChange}\n />\n </Flex>\n )\n })}\n </Stack>\n )\n}\n\nfunction ArrayOutputInput({\n fieldSchema,\n ...props\n}: ArrayOfObjectsInputProps & {fieldSchema: ArraySchemaType}) {\n const {value, onChange} = props\n\n const ofItems = useMemo(\n () => fieldSchema.of.filter((itemType) => isAssistSupported(itemType)),\n [fieldSchema.of]\n )\n\n useEmptySelectAllValue(value as OutputTypeItem[], ofItems, onChange)\n\n const onSelectChange = useCallback(\n (checked: boolean, selectedValue: string) => {\n if (checked) {\n if (value?.length) {\n onChange(PatchEvent.from(unset([{_key: selectedValue}])))\n } else {\n // we went from empty array to everything selected but one\n const items = ofItems\n .filter((f) => f.name !== selectedValue)\n .map((field) =>\n typed<OutputTypeItem>({\n _key: field.name,\n _type: 'sanity.assist.output.type',\n type: field.name,\n })\n )\n onChange(PatchEvent.from([setIfMissing([]), insert(items, 'after', [-1])]))\n }\n } else {\n const patchValue: OutputTypeItem = {\n _key: selectedValue,\n _type: 'sanity.assist.output.type',\n type: selectedValue,\n }\n onChange(PatchEvent.from([setIfMissing([]), insert([patchValue], 'after', [-1])]))\n }\n },\n [onChange, value, ofItems]\n )\n return (\n <Stack space={2}>\n {ofItems.map((itemType) => {\n return (\n <Flex key={itemType.name}>\n <Selectable\n value={itemType.name}\n title={isType(itemType, 'block') ? 'Text' : itemType.title ?? itemType.name}\n arrayValue={value as OutputTypeItem[] | undefined}\n onChange={onSelectChange}\n />\n </Flex>\n )\n })}\n </Stack>\n )\n}\n\nfunction Selectable({\n title,\n arrayValue,\n value,\n onChange,\n}: {\n title: string\n value: string\n arrayValue?: {_key: string}[]\n onChange: (checked: boolean, value: string) => void\n}) {\n const checked = !arrayValue?.length || !!arrayValue?.find((v) => v._key === value)\n const handleChange = useCallback(() => onChange(checked, value), [onChange, checked, value])\n\n return (\n <Flex gap={2} align=\"flex-start\">\n <Checkbox checked={checked} onChange={handleChange} />\n <Card marginTop={1} onClick={handleChange}>\n <Text style={{cursor: 'default'}} size={1}>\n {title}\n </Text>\n </Card>\n </Flex>\n )\n}\n","import {defineArrayMember, defineField, defineType, ObjectSchemaType} from 'sanity'\nimport {\n ArrowRightIcon,\n CodeIcon,\n ComposeIcon,\n icons,\n IconSymbol,\n LockIcon,\n SparklesIcon,\n ThListIcon,\n} from '@sanity/icons'\nimport {\n assistDocumentIdPrefix,\n assistDocumentTypeName,\n assistFieldTypeName,\n assistTasksStatusTypeName,\n fieldReferenceTypeName,\n instructionContextTypeName,\n instructionTaskTypeName,\n instructionTypeName,\n outputFieldTypeName,\n outputTypeTypeName,\n promptTypeName,\n userInputTypeName,\n} from '../types'\nimport {Box, Flex, Stack, Text, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {AssistDocumentForm} from '../assistDocument/components/AssistDocumentForm'\nimport {InstructionInput} from '../assistDocument/components/instruction/InstructionInput'\nimport {HiddenFieldTitle} from '../assistDocument/components/generic/HiddenFieldTitle'\nimport {InstructionVisibility} from '../assistDocument/components/instruction/appearance/InstructionVisibility'\nimport {IconInput} from '../assistDocument/components/instruction/appearance/IconInput'\nimport {FieldRefPathInput} from '../assistDocument/components/instruction/FieldRefInput'\nimport {InstructionsArrayInput} from '../assistDocument/components/InstructionsArrayInput'\nimport {FieldRefPreview} from '../assistDocument/components/FieldRefPreview'\nimport {createElement} from 'react'\nimport {contextDocumentSchema} from './contextDocumentSchema'\nimport {PromptInput} from '../assistDocument/components/instruction/PromptInput'\nimport {instructionGuideUrl} from '../constants'\nimport {InstructionsArrayField} from '../assistDocument/components/InstructionsArrayField'\nimport {getFieldRefsWithDocument} from '../assistInspector/helpers'\nimport {InstructionOutputField} from '../assistDocument/components/instruction/InstructionOutputField'\nimport {InstructionOutputInput} from '../assistDocument/components/instruction/InstructionOutputInput'\n\nexport const fieldReference = defineType({\n type: 'object',\n name: fieldReferenceTypeName,\n title: 'Field',\n icon: ThListIcon,\n\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Field',\n components: {\n input: FieldRefPathInput,\n },\n validation: (rule) =>\n rule.custom((value, context) => {\n if (!value) {\n return 'Please select a field'\n }\n try {\n const docId = context.document?._id\n if (!docId) {\n return `Field reference cannot be used outside document inspector context. Could not resolve document id.`\n }\n const targetDocType = docId.replace(new RegExp(`^${assistDocumentIdPrefix}`), '')\n const schema = context.schema.get(targetDocType)\n if (!schema) {\n return `Field reference cannot be used outside document inspector context. Could not resolve schema: ${targetDocType}`\n }\n const refs = getFieldRefsWithDocument(schema as ObjectSchemaType)\n const fieldRef = refs.find((r) => r.key === value)\n if (!fieldRef) {\n return `Field with path \"${value}\" does not exist in the schema.`\n }\n return true\n } catch (e) {\n console.error('Failed to resolve field reference', e)\n return 'Invalid field reference.'\n }\n }),\n }),\n ],\n preview: {\n select: {\n path: 'path',\n },\n prepare({path}) {\n return {\n title: path,\n path,\n icon: CodeIcon,\n }\n },\n },\n components: {\n preview: FieldRefPreview,\n },\n options: {\n modal: {\n type: 'popover',\n },\n },\n})\n\nexport const userInput = defineType({\n type: 'object',\n name: userInputTypeName,\n title: 'User input',\n icon: ComposeIcon,\n fields: [\n defineField({\n type: 'string',\n name: 'message',\n title: 'User input title',\n placeholder: 'Provide instruction text',\n description: 'The header above the user input text field',\n validation: (rule) => rule.required(),\n }),\n defineField({\n type: 'text',\n rows: 3,\n name: 'description',\n title: 'User input description',\n description: 'The description above the user input text field',\n }),\n ],\n preview: {\n select: {\n title: 'message',\n },\n },\n options: {\n modal: {\n type: 'popover',\n width: 1,\n },\n },\n})\n\nexport const promptContext = defineType({\n type: 'object',\n name: instructionContextTypeName,\n title: contextDocumentSchema.title,\n icon: contextDocumentSchema.icon,\n fields: [\n defineField({\n type: 'reference',\n name: 'reference',\n to: [{type: contextDocumentSchema.name}],\n title: 'Context',\n description: 'The referenced context will be inserted into the instruction',\n validation: (rule) => rule.required(),\n components: {\n input: function Fix(props) {\n return <Box style={{maxWidth: 300}}>{props.renderDefault(props)}</Box>\n },\n },\n }),\n ],\n preview: {\n select: {\n ref: 'reference._ref',\n title: 'reference.title',\n context: 'reference.context',\n },\n prepare(select) {\n return select.ref\n ? contextDocumentSchema?.preview?.prepare?.(select) ?? select\n : {title: 'No reference selected', media: contextDocumentSchema.icon}\n },\n },\n options: {\n modal: {\n type: 'popover',\n width: 'auto',\n },\n },\n})\n\nexport const prompt = defineType({\n type: 'array',\n name: promptTypeName,\n title: 'Prompt',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n of: [\n defineArrayMember({\n type: fieldReference.name,\n }),\n defineArrayMember({\n type: promptContext.name,\n }),\n defineArrayMember({\n type: userInput.name,\n }),\n ],\n }),\n /* defineArrayMember({\n type: fieldReference.name,\n }),\n defineArrayMember({\n type: promptContext.name,\n }),\n defineArrayMember({\n type: userInput.name,\n }),*/\n ],\n})\n\nexport const instruction = defineType({\n type: 'object',\n name: instructionTypeName,\n title: 'Instruction',\n fieldsets: [\n {name: 'appearance', title: 'Appearance', options: {collapsible: true, collapsed: true}},\n ],\n preview: {\n select: {\n icon: 'icon',\n title: 'title',\n userId: 'userId',\n },\n prepare: ({icon, title, userId}) => {\n return {\n title,\n icon: icon ? icons[icon as IconSymbol] : SparklesIcon,\n userId,\n }\n },\n },\n components: {\n input: InstructionInput,\n preview: (props: any) => {\n return (\n <Flex gap={3} align=\"center\" padding={2}>\n {props.icon && (\n <Box flex=\"none\">\n <Text size={1}>{createElement(props.icon)}</Text>\n </Box>\n )}\n\n <Stack flex={1} space={2}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {getInstructionTitle(props)}\n </Text>\n </Stack>\n\n {props.userId && (\n <Text size={1}>\n <Tooltip\n content={<Text size={1}>Only visible to you</Text>}\n padding={2}\n placement=\"top\"\n portal\n >\n <LockIcon />\n </Tooltip>\n </Text>\n )}\n </Flex>\n )\n },\n },\n fields: [\n defineField({\n type: prompt.name,\n name: 'prompt',\n title: 'Instruction',\n description: (\n <>\n Learn from{' '}\n <a href={instructionGuideUrl} target=\"_blank\" rel=\"noreferrer\">\n our instruction guide <ArrowRightIcon />\n </a>\n </>\n ),\n components: {\n input: PromptInput,\n },\n }),\n defineField({\n type: 'string',\n name: 'icon',\n title: 'Icon',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n input: IconInput,\n },\n }),\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n },\n }),\n defineField({\n type: 'string',\n name: 'userId',\n title: 'Visibility',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n input: InstructionVisibility,\n },\n initialValue: (params, context) => context.currentUser?.id ?? '',\n readOnly: (context) =>\n Boolean(\n context.parent?.createdById && context.parent?.createdById !== context.currentUser?.id\n ),\n }),\n defineField({\n type: 'string',\n name: 'createdById',\n title: 'Created by',\n hidden: true,\n fieldset: 'appearance',\n initialValue: (params, context) => {\n return context.currentUser?.id ?? ''\n },\n }),\n defineField({\n type: 'array',\n name: 'output',\n title: 'Output filter',\n components: {\n input: InstructionOutputInput,\n field: InstructionOutputField,\n },\n of: [\n defineArrayMember({\n type: 'object' as const,\n name: outputFieldTypeName,\n title: 'Output field',\n fields: [\n {\n type: 'string',\n name: 'path',\n title: 'Path',\n },\n ],\n }),\n defineArrayMember({\n type: 'object' as const,\n name: outputTypeTypeName,\n title: 'Output type',\n fields: [\n {\n type: 'string',\n name: 'type',\n title: 'Type',\n },\n ],\n }),\n ],\n }),\n ],\n})\n\nexport const fieldInstructions = defineType({\n type: 'object',\n name: assistFieldTypeName,\n title: 'Field prompt',\n /* components: {\n input: FieldPromptInput,\n },*/\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Path',\n readOnly: true,\n hidden: true,\n }),\n defineField({\n type: 'array',\n name: 'instructions',\n title: 'Instructions',\n of: [{type: instruction.name}],\n components: {\n field: InstructionsArrayField,\n input: InstructionsArrayInput,\n },\n }),\n ],\n preview: {\n select: {\n title: 'path',\n },\n },\n})\n\nexport const assistDocumentSchema = defineType({\n //NOTE: this is a document type. Using object here ensures it does not appear in structure menus\n type: 'object',\n //workaround for using object and not document\n ...({liveEdit: true} as any),\n name: assistDocumentTypeName,\n title: 'AI Document',\n\n components: {\n input: AssistDocumentForm,\n field: (props) => {\n return props.renderDefault({...props, title: ''})\n },\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n type: 'array',\n name: 'fields',\n title: 'Fields',\n of: [{type: fieldInstructions.name}],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n },\n },\n})\n\nexport const instructionTask = defineType({\n type: 'object',\n name: instructionTaskTypeName,\n title: 'Instruction task',\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Path',\n }),\n defineField({\n type: 'string',\n name: 'instructionKey',\n title: 'Instruction key',\n }),\n defineField({\n type: 'datetime',\n name: 'started',\n title: 'Started',\n }),\n defineField({\n type: 'datetime',\n name: 'updated',\n title: 'Updated',\n }),\n defineField({\n type: 'string',\n name: 'info',\n title: 'Info',\n }),\n ],\n})\n\nexport const documentInstructionStatus = defineType({\n //NOTE: this is a document type. Using object here ensures it does not appear in structure menus\n type: 'object',\n //workaround for using object and not document\n ...({liveEdit: true} as any),\n name: assistTasksStatusTypeName,\n title: 'Document instruction status',\n fields: [\n defineField({\n type: 'array',\n name: 'tasks',\n title: 'Tasks',\n of: [{type: instructionTask.name}],\n }),\n ],\n})\n","/* eslint-disable camelcase */\nimport {\n assistDocumentSchema,\n documentInstructionStatus,\n fieldInstructions,\n fieldReference,\n instruction,\n instructionTask,\n prompt,\n promptContext,\n userInput,\n} from './assistDocumentSchema'\nimport {contextDocumentSchema} from './contextDocumentSchema'\nimport {FieldProps, SchemaTypeDefinition, ArrayOfType} from 'sanity'\n\nfunction excludeComments<T extends SchemaTypeDefinition | ArrayOfType>(type: T): T {\n const existingRender = (type as any)?.components?.field\n return {\n ...type,\n ...('components' in type\n ? {\n components: {\n ...type.components,\n field: (props: FieldProps) => {\n const newProps = {...props, ...{__internal_comments: undefined}}\n if (typeof existingRender === 'function') {\n return existingRender(newProps)\n }\n return props.renderDefault(newProps)\n },\n },\n }\n : {}),\n ...('fields' in type\n ? {\n // recursively disable comments in fields\n fields: type.fields?.map((field) => excludeComments(field)),\n }\n : {}),\n ...('of' in type\n ? {\n // recursively disable comments in array items\n of: type.of?.map((arrayItemType) => excludeComments(arrayItemType)),\n }\n : {}),\n }\n}\n\nconst instructionForm = [\n fieldInstructions,\n instruction,\n fieldReference,\n prompt,\n userInput,\n promptContext,\n].map(excludeComments)\n\nexport const schemaTypes = [\n ...instructionForm,\n assistDocumentSchema,\n documentInstructionStatus,\n instructionTask,\n contextDocumentSchema,\n]\n","import {Path, SchemaType} from 'sanity'\nimport {useMemo} from 'react'\nimport {isAssistSupported} from './assistSupported'\n\nexport function useAssistSupported(path: Path, schemaType: SchemaType) {\n return useMemo(() => isAssistSupported(schemaType), [schemaType])\n}\n","import {getPublishedId, ObjectSchemaType, useEditState} from 'sanity'\nimport {useStudioAssistDocument} from './useStudioAssistDocument'\nimport {AssistDocumentContextValue} from '../AssistDocumentContext'\nimport {useMemo} from 'react'\nimport {isDocAssistable} from '../RequestRunInstructionProvider'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useAiPaneRouter} from '../../assistInspector/helpers'\nimport {fieldPathParam} from '../../types'\n\nexport function useAssistDocumentContextValue(\n documentId: string,\n documentSchemaType: ObjectSchemaType\n) {\n const {published, draft} = useEditState(\n getPublishedId(documentId),\n documentSchemaType.name,\n 'low'\n )\n const assistableDocumentId = draft?._id || published?._id || documentId\n const documentIsNew = Boolean(!draft?._id && !published?._id)\n const documentIsAssistable = isDocAssistable(documentSchemaType, published, draft)\n\n const {params} = useAiPaneRouter()\n const selectedPath = params[fieldPathParam]\n const {openInspector, closeInspector, inspector, onChange: documentOnChange} = useDocumentPane()\n\n const assistDocument = useStudioAssistDocument({\n documentId,\n schemaType: documentSchemaType,\n })\n\n const value: AssistDocumentContextValue = useMemo(() => {\n const base = {\n documentId,\n assistableDocumentId,\n documentSchemaType,\n documentIsNew,\n documentIsAssistable,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n selectedPath,\n }\n if (!assistDocument) {\n return {...base, loading: true, assistDocument: undefined}\n }\n return {\n ...base,\n loading: false,\n assistDocument: assistDocument,\n }\n }, [\n assistDocument,\n documentIsAssistable,\n documentId,\n assistableDocumentId,\n documentSchemaType,\n documentIsNew,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n selectedPath,\n ])\n\n return value\n}\n","import {LockIcon} from '@sanity/icons'\nimport {Text, Tooltip} from '@sanity/ui'\n\nexport function PrivateIcon() {\n return (\n <Tooltip\n content={\n <Text size={1} style={{whiteSpace: 'nowrap'}}>\n Only visible to you\n </Text>\n }\n fallbackPlacements={['bottom']}\n padding={2}\n placement=\"top\"\n portal\n >\n <LockIcon />\n </Tooltip>\n )\n}\n","import {createContext, useEffect, useMemo, useState} from 'react'\nimport {InputProps, pathToString, useSyncState} from 'sanity'\nimport {getDescriptionFieldOption, getImageInstructionFieldOption} from '../helpers/typeUtils'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {canUseAssist, useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {publicId} from '../helpers/ids'\nimport {usePaneRouter} from 'sanity/desk'\n\nexport interface ImageContextValue {\n imageDescriptionPath?: string\n imageInstructionPath?: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue>({})\n\nexport function ImageContextProvider(props: InputProps) {\n const {schemaType, path, value, readOnly} = props\n const assetRef = (value as any)?.asset?._ref\n const [assetRefState, setAssetRefState] = useState<string | undefined>(assetRef)\n\n const {documentId, documentSchemaType} = useAssistDocumentContext()\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption} = useGenerateCaption(apiClient)\n\n const {isSyncing} = useSyncState(publicId(documentId), documentSchemaType.name)\n\n const router = usePaneRouter()\n const isShowingOlderRevision = !!router.params?.rev\n\n useEffect(() => {\n const descriptionField = getDescriptionFieldOption(schemaType)\n if (\n assetRef &&\n documentId &&\n descriptionField &&\n assetRef !== assetRefState &&\n !isSyncing &&\n !isShowingOlderRevision &&\n !readOnly\n ) {\n setAssetRefState(assetRef)\n if (canUseAssist(status)) {\n generateCaption({path: pathToString([...path, descriptionField]), documentId: documentId})\n }\n }\n }, [\n schemaType,\n path,\n assetRef,\n assetRefState,\n documentId,\n generateCaption,\n isSyncing,\n status,\n readOnly,\n isShowingOlderRevision,\n ])\n\n const context: ImageContextValue = useMemo(() => {\n const descriptionField = getDescriptionFieldOption(schemaType)\n const imageInstructionField = getImageInstructionFieldOption(schemaType)\n return {\n imageDescriptionPath: descriptionField\n ? pathToString([...path, descriptionField])\n : undefined,\n imageInstructionPath: imageInstructionField\n ? pathToString([...path, imageInstructionField])\n : undefined,\n assetRef,\n }\n }, [schemaType, path, assetRef])\n\n return <ImageContext.Provider value={context}>{props.renderDefault(props)}</ImageContext.Provider>\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {canUseAssist, useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../assistInspector/constants'\nimport {fieldPathParam, instructionParam} from '../types'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateCaptionsActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-captions',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n const {openInspector} = useDocumentPane()\n\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption, loading} = useGenerateCaption(apiClient)\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imageDescriptionPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image description',\n onAction: () => {\n if (loading) {\n return\n }\n if (!canUseAssist(status)) {\n openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n })\n return\n }\n\n generateCaption({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n hidden: !imageContext.assetRef,\n })\n }, [generateCaption, pathKey, documentId, loading, imageContext, status, openInspector])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n DocumentFieldActionProps,\n ObjectSchemaType,\n} from 'sanity'\nimport {TranslateIcon} from '@sanity/icons'\nimport {useMemo, useRef} from 'react'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {Box, Spinner} from '@sanity/ui'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useFieldTranslation} from './FieldTranslationProvider'\nimport {useDraftDelayedTask} from '../assistDocument/RequestRunInstructionProvider'\nimport {AssistOptions} from '../schemas/typeDefExtensions'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport type TranslateProps = DocumentFieldActionProps & {\n documentIsAssistable?: boolean\n documentSchemaType?: ObjectSchemaType\n}\nexport const translateActions: DocumentFieldAction = {\n name: 'sanity-assist-translate',\n useAction(props: TranslateProps) {\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n\n const {\n schemaType: fieldSchemaType,\n path,\n documentId,\n documentSchemaType,\n documentIsAssistable,\n } = props\n const isDocumentLevel = path.length === 0\n const readOnly = fieldSchemaType.readOnly === true\n\n const docTransTypes = config.translate?.document?.documentTypes\n const options = fieldSchemaType?.options as AssistOptions | undefined\n const addFieldAction = isDocumentLevel || options?.aiAssist?.translateAction\n\n //All props used here MUST have the same value always, or we break the rules of hooks (conditional hook usage)\n const fieldTransEnabled =\n addFieldAction &&\n documentSchemaType &&\n config.translate?.field?.documentTypes?.includes(documentSchemaType.name)\n const documentTranslationEnabled =\n addFieldAction &&\n documentSchemaType &&\n ((!docTransTypes && isAssistSupported(fieldSchemaType)) ||\n docTransTypes?.includes(documentSchemaType.name))\n\n // these checks are stable (ie, does not change after mount), so not breaking rules of hooks\n if (documentSchemaType && (documentTranslationEnabled || fieldTransEnabled)) {\n const {value: documentValue, onChange: documentOnChange, formState} = useDocumentPane()\n const docRef = useRef(documentValue)\n docRef.current = documentValue\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const translationApi = useTranslate(apiClient)\n const translate = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: translationApi.translate,\n })\n\n const languagePath = config.translate?.document?.languageField\n\n // if this is true, it is stable, and not breaking rules of hooks\n const translateDocumentAction = useMemo(() => {\n if (!languagePath || !documentTranslationEnabled) {\n return undefined\n }\n const title = path.length ? `Translate` : `Translate document`\n return node({\n type: 'action',\n icon: translationApi.loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title,\n onAction: () => {\n if (translationApi.loading || !languagePath || !documentId) {\n return\n }\n translate({\n languagePath,\n translatePath: path,\n documentId: documentId ?? '',\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: translationApi.loading || readOnly,\n })\n }, [\n languagePath,\n translate,\n documentId,\n translationApi.loading,\n documentTranslationEnabled,\n path,\n readOnly,\n ])\n const fieldTranslate = useFieldTranslation()\n const openFieldTranslation = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: fieldTranslate.openFieldTranslation,\n })\n\n const translateFieldsAction = useMemo(\n () =>\n fieldTransEnabled\n ? node({\n type: 'action',\n icon: fieldTranslate.translationLoading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title: `Translate fields...`,\n onAction: () => {\n if (fieldTranslate.translationLoading || !documentId) {\n return\n }\n if (formStateRef.current) {\n getConditionalMembers(formStateRef.current)\n }\n openFieldTranslation({\n document: docRef.current,\n documentSchema: documentSchemaType,\n translatePath: path,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: fieldTranslate.translationLoading || readOnly,\n })\n : undefined,\n [\n openFieldTranslation,\n documentSchemaType,\n documentId,\n fieldTranslate.translationLoading,\n fieldTransEnabled,\n path,\n readOnly,\n ]\n )\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n if (!status?.initialized) {\n return undefined as unknown as DocumentFieldActionItem\n }\n return node({\n type: 'group',\n icon: () => null,\n title: 'Translation',\n children: [translateDocumentAction, translateFieldsAction].filter(\n (c): c is DocumentFieldActionItem => !!c\n ),\n expanded: true,\n })\n }, [translateDocumentAction, translateFieldsAction, status])\n }\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {useApiClient, useGenerateImage} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateImagActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-image',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateImage, loading} = useGenerateImage(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imageInstructionPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image from prompt',\n onAction: () => {\n if (loading) {\n return\n }\n generateImage({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n })\n }, [generateImage, pathKey, documentId, loading])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n ObjectSchemaType,\n typed,\n useCurrentUser,\n} from 'sanity'\nimport {ControlsIcon, SparklesIcon} from '@sanity/icons'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {pluginTitleShort} from '../constants'\nimport {useAssistSupported} from '../helpers/useAssistSupported'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {getInstructionTitle, usePathKey} from '../helpers/misc'\nimport {documentRootKey, fieldPathParam, instructionParam, StudioInstruction} from '../types'\nimport {aiInspectorId} from '../assistInspector/constants'\nimport {getIcon} from '../assistDocument/components/instruction/appearance/IconInput'\nimport {useAssistDocumentContextValue} from '../assistDocument/hooks/useAssistDocumentContextValue'\nimport {\n getAssistableDocId,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {PrivateIcon} from './PrivateIcon'\nimport {generateCaptionsActions} from './generateCaptionActions'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useSelectedField, useTypePath} from '../assistInspector/helpers'\nimport {isSchemaAssistEnabled} from '../helpers/assistSupported'\nimport {translateActions, TranslateProps} from '../translate/translateActions'\nimport {generateImagActions} from './generateImageActions'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const assistFieldActions: DocumentFieldAction = {\n name: 'sanity-assist-actions',\n useAction(props) {\n const {schemaType} = props\n\n const isDocumentLevel = props.path.length === 0\n\n const {\n assistDocument,\n documentIsNew,\n documentIsAssistable,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n documentSchemaType,\n documentId,\n selectedPath,\n assistableDocumentId,\n } =\n // document field actions do not have access to the document context\n // conditional hook _should_ be safe here since the logical path will be stable\n isDocumentLevel\n ? // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContextValue(props.documentId, schemaType as ObjectSchemaType)\n : // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContext()\n\n const {value: docValue, formState} = useDocumentPane()\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const currentUser = useCurrentUser()\n const isHidden = !assistDocument\n const pathKey = usePathKey(props.path)\n const typePath = useTypePath(docValue, pathKey)\n const assistDocumentId = assistDocument?._id\n\n const assistableDocId = getAssistableDocId(documentSchemaType, documentId)\n const {requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n })\n\n const isSelectable = !!useSelectedField(documentSchemaType, typePath)\n const assistSupported =\n useAssistSupported(props.path, schemaType) &&\n isSelectable &&\n isSchemaAssistEnabled(documentSchemaType) &&\n schemaType.readOnly !== true\n\n const fieldAssist = useMemo(\n () =>\n (assistDocument?.fields ?? []).find(\n (f) => f.path === typePath || (pathKey === documentRootKey && f.path === pathKey)\n ),\n [assistDocument?.fields, pathKey, typePath]\n )\n\n const fieldAssistKey = fieldAssist?._key\n const isInspectorOpen = inspector?.name === aiInspectorId\n const isPathSelected = pathKey === selectedPath\n const isSelected = isInspectorOpen && isPathSelected\n\n const imageCaptionAction = generateCaptionsActions.useAction(props)\n const imageGenAction = generateImagActions.useAction(props)\n const translateAction = translateActions.useAction(\n typed<TranslateProps>({\n ...props,\n documentId: assistableDocumentId,\n documentIsAssistable,\n documentSchemaType,\n })\n )\n const manageInstructions = useCallback(\n () =>\n isSelected\n ? closeInspector(aiInspectorId)\n : openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n }),\n [openInspector, closeInspector, isSelected, pathKey]\n )\n\n const onInstructionAction = useCallback(\n (instruction: StudioInstruction) => {\n if (!pathKey || !fieldAssistKey || !assistDocumentId || !assistableDocId) {\n return\n }\n requestRunInstruction({\n documentId: assistableDocId,\n assistDocumentId,\n path: pathKey,\n typePath,\n instruction,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n [requestRunInstruction, assistableDocId, pathKey, typePath, assistDocumentId, fieldAssistKey]\n )\n\n const privateInstructions = useMemo(\n () =>\n fieldAssist?.instructions?.filter((i) => i.userId && i.userId === currentUser?.id) || [],\n [fieldAssist?.instructions, currentUser]\n )\n\n const sharedInstructions = useMemo(\n () => fieldAssist?.instructions?.filter((i) => !i.userId) || [],\n [fieldAssist?.instructions]\n )\n\n const instructions = useMemo(\n () => [...privateInstructions, ...sharedInstructions],\n [privateInstructions, sharedInstructions]\n )\n\n const runInstructionsGroup = useMemo(() => {\n return instructions?.length || imageCaptionAction || translateAction || imageGenAction\n ? node({\n type: 'group',\n icon: () => null,\n title: 'Run instructions',\n children: [\n ...instructions?.map((instruction) =>\n instructionItem({\n instruction,\n isPrivate: Boolean(instruction.userId && instruction.userId === currentUser?.id),\n onInstructionAction,\n hidden: isHidden,\n documentIsNew: !!documentIsNew,\n assistSupported,\n })\n ),\n imageCaptionAction,\n imageGenAction,\n ].filter((a): a is DocumentFieldActionItem => !!a),\n expanded: true,\n })\n : undefined\n }, [\n instructions,\n currentUser?.id,\n onInstructionAction,\n isHidden,\n documentIsNew,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ])\n\n const instructionsLength = instructions?.length || 0\n\n const manageInstructionsItem = useMemo(\n () =>\n node({\n type: 'action',\n icon: ControlsIcon,\n title: 'Manage instructions',\n onAction: manageInstructions,\n selected: isSelected,\n }),\n [manageInstructions, isSelected]\n )\n\n const group = useMemo(\n () =>\n node({\n type: 'group',\n icon: SparklesIcon,\n title: pluginTitleShort,\n children: [\n runInstructionsGroup,\n translateAction,\n assistSupported && manageInstructionsItem,\n ]\n .filter((c): c is DocumentFieldActionItem | DocumentFieldActionGroup => !!c)\n .filter((c) => (c.type === 'group' ? c.children.length : true)),\n expanded: false,\n renderAsButton: true,\n hidden: !assistSupported && !imageCaptionAction && !translateAction && !imageGenAction,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ]\n )\n\n const emptyAction = useMemo(\n () =>\n node({\n type: 'action',\n hidden: !assistSupported,\n icon: SparklesIcon,\n onAction: manageInstructions,\n renderAsButton: true,\n title: pluginTitleShort,\n selected: isSelected,\n }),\n [assistSupported, manageInstructions, isSelected]\n )\n\n // If there are no instructions, we don't want to render the group\n if (instructionsLength === 0 && !imageCaptionAction && !translateAction && !imageGenAction) {\n return emptyAction\n }\n\n return group\n },\n}\n\nfunction instructionItem(props: {\n instruction: StudioInstruction\n isPrivate: boolean\n onInstructionAction: (ins: StudioInstruction) => void\n assistSupported: boolean\n documentIsNew: boolean\n hidden: boolean\n}) {\n const {hidden, isPrivate, onInstructionAction, assistSupported, instruction} = props\n return node({\n type: 'action',\n icon: getIcon(instruction.icon),\n iconRight: isPrivate ? PrivateIcon : undefined,\n title: getInstructionTitle(instruction),\n onAction: () => onInstructionAction(instruction),\n disabled: !assistSupported,\n hidden,\n })\n}\n","import {ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContext} from './AssistDocumentContext'\nimport {useAssistDocumentContextValue} from './hooks/useAssistDocumentContextValue'\nimport {PropsWithChildren} from 'react'\n\nexport interface AIDocumentInputProps {\n documentId: string\n schemaType: ObjectSchemaType\n}\n\nexport function AssistDocumentContextProvider(props: PropsWithChildren<AIDocumentInputProps>) {\n const {documentId, schemaType} = props\n const value = useAssistDocumentContextValue(documentId, schemaType)\n return (\n <AssistDocumentContext.Provider value={value}>{props.children}</AssistDocumentContext.Provider>\n )\n}\n","import {useEffect, useRef} from 'react'\nimport {InstructionTask} from '../../types'\nimport {addSeconds, isAfter} from 'date-fns'\nimport {getInstructionTitle} from '../../helpers/misc'\nimport {useStudioAssistDocument} from './useStudioAssistDocument'\nimport {ObjectSchemaType, useCurrentUser} from 'sanity'\nimport {useToast} from '@sanity/ui'\n\nconst NO_TASKS: InstructionTask[] = []\n\nexport function useInstructionToaster(documentId: string, documentSchemaType: ObjectSchemaType) {\n const assistDocument = useStudioAssistDocument({documentId, schemaType: documentSchemaType})\n\n const assistDocLoaded = !!assistDocument\n const currentUser = useCurrentUser()\n const toast = useToast()\n const tasks = assistDocument?.tasks\n const previousTasks = useRef<InstructionTask[] | undefined | 'initial'>('initial')\n\n useEffect(() => {\n if (!assistDocLoaded) {\n return\n }\n\n if (previousTasks.current !== 'initial') {\n const prevTaskByKey = Object.fromEntries(\n (previousTasks.current ?? NO_TASKS).map((run) => [run._key, run])\n )\n const endedTasks = tasks\n ?.filter((task) => task.startedByUserId === currentUser?.id)\n .filter((task) => {\n const prevTask = prevTaskByKey[task._key]\n return (!prevTask && task.ended) || (!prevTask?.ended && task.ended)\n })\n // filter out old stuff\n .filter((task) => task.ended && isAfter(addSeconds(new Date(task.ended), 30), new Date()))\n\n endedTasks?.forEach((task) => {\n const title = task.title ?? getInstructionTitle(task.instruction)\n if (task.reason === 'error') {\n toast.push({\n title: `Failed: ${title}`,\n status: 'error',\n description: `Instruction failed. ${task.message ?? ''}`,\n closable: true,\n duration: 10000,\n })\n } else if (task.reason === 'timeout') {\n toast.push({\n title: `Timeout: ${title}`,\n status: 'error',\n description: `Instruction timed out.`,\n closable: true,\n })\n } else if (task.reason === 'success') {\n toast.push({\n title: `Success: ${title}`,\n status: 'success',\n description: `Instruction completed.`,\n closable: true,\n })\n } else if (task.reason === 'aborted') {\n toast.push({\n title: `Canceled: ${title}`,\n status: 'warning',\n description: `Instruction canceled.`,\n closable: true,\n })\n }\n })\n }\n previousTasks.current = tasks\n }, [tasks, previousTasks, toast, currentUser, assistDocLoaded])\n}\n","import {InputProps, ObjectInputProps, ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContextProvider} from './AssistDocumentContextProvider'\nimport {FirstAssistedPathProvider} from '../onboarding/FirstAssistedPathProvider'\nimport {useInstructionToaster} from './hooks/useInstructionToaster'\nimport {isType} from '../helpers/typeUtils'\nimport {useLayer} from '@sanity/ui'\nimport {useDocumentPane} from 'sanity/desk'\nimport {usePathKey} from '../helpers/misc'\nimport {ConnectFromRegion} from '../_lib/connector'\nimport {assistDocumentTypeName} from '../types'\nimport {useMemo} from 'react'\nimport {assistFormId} from '../_lib/form/constants'\n\nexport function AssistDocumentInputWrapper(props: InputProps) {\n if (!isType(props.schemaType, 'document') && props.id !== 'root' && props.id !== assistFormId) {\n return <AssistInput {...props} />\n }\n\n const documentId = (props.value as any)?._id as string | undefined\n if (!documentId) {\n return props.renderDefault(props)\n }\n\n return <AssistDocumentInput {...(props as ObjectInputProps)} documentId={documentId} />\n}\n\nfunction AssistDocumentInput({documentId, ...props}: ObjectInputProps & {documentId: string}) {\n useInstructionToaster(documentId, props.schemaType)\n\n const schemaType = useMemo(() => {\n if (props.schemaType.name !== assistDocumentTypeName) {\n return props.schemaType\n }\n return {\n ...props.schemaType,\n type: {\n ...props.schemaType.type,\n // compatability with i18nArrays plugin that requires this to be document\n name: 'document',\n },\n } as ObjectSchemaType\n }, [props.schemaType])\n\n return (\n <FirstAssistedPathProvider members={props.members}>\n <AssistDocumentContextProvider schemaType={schemaType} documentId={documentId}>\n {props.renderDefault({\n ...props,\n schemaType,\n })}\n </AssistDocumentContextProvider>\n </FirstAssistedPathProvider>\n )\n}\n\nfunction AssistInput(props: InputProps) {\n const {zIndex} = useLayer()\n const {paneKey} = useDocumentPane()\n const pathKey = usePathKey(props.path)\n\n return (\n <ConnectFromRegion _key={`${paneKey}_${pathKey}`} zIndex={zIndex} style={{minWidth: 0}}>\n {props.renderDefault(props)}\n </ConnectFromRegion>\n )\n}\n","import {ObjectSchemaType} from 'sanity'\nimport {useMemo} from 'react'\nimport {useAssistDocumentContextValue} from '../assistDocument/hooks/useAssistDocumentContextValue'\nimport {aiPresence} from './useAssistPresence'\nimport {documentRootKey, fieldPresenceTypeName} from '../types'\nimport {Card, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from './AiFieldPresence'\n\nexport function createAssistDocumentPresence(\n documentId: string | undefined,\n schemaType: ObjectSchemaType\n) {\n return function AssistDocumentPresenceWrapper() {\n return documentId ? (\n <AssistDocumentPresence documentId={documentId} schemaType={schemaType} />\n ) : null\n }\n}\n\nfunction AssistDocumentPresence(props: {documentId: string; schemaType: ObjectSchemaType}) {\n const {assistDocument} = useAssistDocumentContextValue(\n props.documentId,\n props.schemaType as ObjectSchemaType\n )\n const anyPresence = useMemo(() => {\n const anyPresence = assistDocument?.tasks\n ?.filter((run) => !run.ended && !run.reason)\n ?.flatMap((run) => run.presence ?? [])\n .find((f) => f.started && new Date().getTime() - new Date(f.started).getTime() < 30000)\n if (anyPresence) {\n return aiPresence(anyPresence, [])\n }\n const anyRun = assistDocument?.tasks\n ?.filter((run) => !run.ended && !run.reason)\n ?.find((f) => f.started && new Date().getTime() - new Date(f.started).getTime() < 30000)\n return anyRun\n ? aiPresence(\n {\n started: anyRun.started,\n path: documentRootKey,\n _key: anyRun._key,\n _type: fieldPresenceTypeName,\n },\n []\n )\n : undefined\n }, [assistDocument?.tasks])\n\n return (\n <Card>\n <Flex flex={1} justify=\"flex-end\">\n <Flex gap={2} align={'center'}>\n {anyPresence && <AiFieldPresence presence={anyPresence} />}\n </Flex>\n </Flex>\n </Card>\n )\n}\n","import {definePlugin, isObjectSchemaType} from 'sanity'\nimport {assistInspector} from './assistInspector'\nimport {AssistFieldWrapper} from './assistFormComponents/AssistField'\nimport {AssistLayout} from './assistLayout/AssistLayout'\nimport {AssistFormBlock} from './assistFormComponents/AssistFormBlock'\nimport {AssistItem} from './assistFormComponents/AssistItem'\nimport {SanityClient} from '@sanity/client'\nimport {SafeValueInput} from './components/SafeValueInput'\nimport {schemaTypes} from './schemas'\nimport {AssistInlineFormBlock} from './assistFormComponents/AssistInlineFormBlock'\nimport {assistFieldActions} from './fieldActions/assistFieldActions'\nimport {packageName} from './constants'\nimport {AssistDocumentInputWrapper} from './assistDocument/AssistDocumentInput'\nimport {createAssistDocumentPresence} from './presence/AssistDocumentPresence'\nimport {isSchemaAssistEnabled} from './helpers/assistSupported'\nimport {isImage} from './helpers/typeUtils'\nimport {ImageContextProvider} from './components/ImageContext'\nimport {TranslationConfig} from './translate/types'\nimport {assistDocumentTypeName, AssistPreset} from './types'\n\nexport interface AssistPluginConfig {\n translate?: TranslationConfig\n\n /**\n * @internal\n */\n __customApiClient?: (defaultClient: SanityClient) => SanityClient\n\n /**\n * @internal\n */\n __presets?: Record<string, AssistPreset>\n}\n\nexport const assist = definePlugin<AssistPluginConfig | void>((config) => {\n const configWithDefaults = config ?? {}\n return {\n name: packageName,\n\n schema: {\n types: schemaTypes,\n },\n i18n: {\n bundles: [{}],\n },\n\n document: {\n inspectors: (prev, context) => {\n const documentType = context.documentType\n const docSchema = context.schema.get(documentType)\n if (docSchema && isSchemaAssistEnabled(docSchema)) {\n return [...prev, assistInspector]\n }\n return prev\n },\n unstable_fieldActions: (prev, {documentType, schema}) => {\n if (documentType === assistDocumentTypeName) {\n return []\n }\n const docSchema = schema.get(documentType)\n if (docSchema && isSchemaAssistEnabled(docSchema)) {\n return [...prev, assistFieldActions]\n }\n return prev\n },\n unstable_languageFilter: (prev, {documentId, schema, schemaType}) => {\n if (schemaType === assistDocumentTypeName) {\n return []\n }\n const docSchema = schema.get(schemaType)\n if (docSchema && isObjectSchemaType(docSchema) && isSchemaAssistEnabled(docSchema)) {\n return [...prev, createAssistDocumentPresence(documentId, docSchema)]\n }\n return prev\n },\n },\n\n studio: {\n components: {\n layout: function Layout(props) {\n return <AssistLayout {...props} config={configWithDefaults} />\n },\n },\n },\n\n form: {\n components: {\n input: AssistDocumentInputWrapper,\n field: AssistFieldWrapper,\n item: AssistItem,\n block: AssistFormBlock,\n inlineBlock: AssistInlineFormBlock,\n },\n },\n\n plugins: [\n definePlugin({\n name: `${packageName}/safe-value-input`,\n form: {components: {input: SafeValueInput}},\n })(),\n\n definePlugin({\n name: `${packageName}/generate-caption`,\n form: {\n components: {\n input: (props) => {\n const {schemaType} = props\n\n if (isImage(schemaType)) {\n return <ImageContextProvider {...props} />\n }\n return props.renderDefault(props)\n },\n },\n },\n })(),\n ],\n }\n})\n"],"names":["assistDocumentIdPrefix","assistDocumentStatusIdPrefix","assistSchemaIdPrefix","assistDocumentTypeName","assistFieldTypeName","instructionTypeName","promptTypeName","userInputTypeName","instructionContextTypeName","fieldReferenceTypeName","contextDocumentTypeName","assistTasksStatusTypeName","instructionTaskTypeName","fieldPresenceTypeName","assistSerializedTypeName","assistSerializedFieldTypeName","outputFieldTypeName","outputTypeTypeName","fieldPathParam","instructionParam","documentRootKey","fetch","client","query","params","options","defer","observable","tag","filterResponse","listen","events","includeResult","visibility","isWelcomeEvent","event","type","listenQuery","arguments","length","undefined","fetchQuery","listenerQuery","fetchOnce$","events$","pipe","mergeMap","ev","i","isFirst","throwError","Error","concat","of","share","welcome$","mutationAndReconnect$","partition","isRelevantEvent","transitions","includes","transition","merge","take","filter","switchMap","delay","throttleTime","exhaustMapToWithTrailing","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","useListeningQuery","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","useClient","useEffect","current","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","hiddenTypes","isPortableTextArray","find","t","isType","schemaType","typeName","name","isImage","getDescriptionFieldOption","_a","_b","descriptionField","aiAssist","imageDescriptionField","getImageInstructionFieldOption","imageInstructionField","isSchemaAssistEnabled","exclude","isAssistSupported","isDisabled","jsonType","unsupportedArray","every","unsupportedObject","fields","field","isUnsupportedType","embeddingsIndex","inlineTypes","serializeSchema","schema","list","getTypeNames","startsWith","map","get","getSchemaStub","to","sort","a","b","localeCompare","baseSchema","leanFormat","_id","_type","title","getBaseFields","removeUndef","_c","_d","_e","_f","schemaOptions","imagePromptField","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","annotations","serializeAnnotations","inlineOf","serializeInlineOf","hidden","readOnly","fieldsets","flatMap","fs","single","f","serializeMember","typeNameExists","blockSchemaType","childrenField","childrenType","isArraySchemaType","markDefs","marksType","arrayType","typed","obj","forEach","key","NO_DATA","defaultTitle","SchemaTypeTool","useSchema","saving","setSaving","syncTitle","setSyncTitle","types","useMemo","storeTypes","useCallback","canSave","store","transaction","createOrReplace","commit","reset","catch","finally","jsx","Card","padding","overflow","style","height","children","jsxs","Stack","space","Box","Button","icon","Spinner","marginTop","SyncIcon","text","disabled","onClick","Flex","gap","Label","SchemaEntry","schemaStub","_ref","out","JSON","stringify","MAX_DEPTH","getDocumentMembersFlat","doc","isDocumentSchemaType","extractPaths","path","maxDepth","reduce","acc","fieldPath","fieldSchema","extractWithPath","pathToString","thisFieldWithPath","innerFields","some","item","arrayValue","arrayPaths","itemPath","_key","itemSchema","warn","arrayMember","defaultLanguageOutputs","member","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","slice","language","isKeySegment","translateToId","id","outputPath","getFieldLanguageMap","documentSchema","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","push","inputLanguageId","inputPath","outputs","aiInspectorId","assistFormId","preventDefault","DocumentForm","props","collapsedFieldSets","collapsedPaths","displayed","documentId","documentType","editState","formState","onBlur","onChange","onFocus","onPathOpen","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","ready","validation","useDocumentPane","documentStore","useDocumentStore","presence","useDocumentPresence","patchChannel","createPatchChannel","isLocked","transactionSyncLock","enabled","sub","pair","documentEvents","tap","publish","prepareMutationEvent","prepareRebaseEvent","hasRev","Boolean","_rev","patches","snapshot","formRef","focusFirstDescendant","as","ref","align","direction","justify","sizing","Text","size","onSubmit","FormBuilder","__internal_patchChannel","focusPath","changed","focused","groups","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","parent","depth","fieldRef","patchableKey","join","syntheticFields","getSyntheticFields","itemType","segment","synthetic","getTypePath","pathString","stringToPath","currentPath","valid","syntheticPath","match","pathKey","replace","useTypePath","useSelectedField","documentSchemaType","selectableFields","isObjectSchemaType","getFieldTitle","useAiPaneRouter","paneRouter","usePaneRouter","useDocumentState","docType","state","useEditState","draft","published","aiDocPrefixPattern","RegExp","publicId","assistDocumentId","documentTypeFromAiDocumentId","assistTasksStatusId","releaseAnnouncementUrl","instructionGuideUrl","giveFeedbackUrl","salesUrl","packageName","pluginTitle","pluginTitleShort","maxHistoryVisibilityMs","minutesToMilliseconds","useStudioAssistDocument","_ref2","initDoc","documentTypeName","currentUser","useCurrentUser","assistDocument","assistTasksStatus","createIfNotExists","e","tasks","assistField","task","instructions","p","userId","instruction","asStudioInstruction","instructionKey","run","started","Date","getTime","useInterval","ms","tick","update","useReducer","n","setInterval","clearInterval","TimeAgo","_ref3","date","timeSince","formatDistanceToNow","usePathKey","getPathKey","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","r","ended","hasErrors","reason","open","setOpen","toggleOpen","button","setButton","popover","setPopover","handleClickOutside","useClickOutside","handleEscape","focus","Popover","constrainSize","content","TaskList","onEscape","placement","portal","width","TaskStatusButton","selected","TASK_STATUS_BUTTON_TOOLTIP_PROPS","forwardRef","StatusButton","label","mode","tooltipProps","isTopLayer","useLayer","useGlobalKeyDown","TaskItem","taskType","radius","flex","createElement","weight","Fragment","message","fontSize","canUseAssist","status","initialized","validToken","useApiClient","customApiClient","useTranslate","apiClient","user","toast","useToast","translate","_ref4","languagePath","translatePath","fieldLanguageMap","conditionalMembers","request","method","url","config","dataset","projectId","body","description","setTimeout","useGenerateCaption","generateCaption","_ref5","useGenerateImage","generateImage","_ref6","useGetInstructStatus","getInstructStatus","useInitInstruct","initInstruct","useRunInstructionApi","runInstruction","AiAssistanceConfigContext","useAiAssistanceConfig","context","useContext","AiAssistanceConfigProvider","setStatus","__customApiClient","statusLoading","initLoading","then","s","init","NO_INPUT","RunInstructionContext","instructionLoading","useRunInstruction","isUserInputBlock","block","RunInstructionProvider","runInstructionRequest","useId","inputs","setInputs","runRequest","setRunRequest","req","userInputBlocks","prompt","userTexts","close","runWithInput","entries","_ref7","blockKey","userInput","runDisabled","_ref8","runButton","PlayIcon","contextValue","Dialog","onClose","header","footer","Tooltip","UserInput","autoFocus","textAreaRef","currentTarget","target","FormFieldHeaderText","TextArea","rows","resize","isDocAssistable","liveEdit","getAssistableDocId","baseId","useRequestRunInstruction","args","requestRunInstruction","useDraftDelayedTask","documentOnChange","queuedArgs","setQueuedArgs","taskArgs","PatchEvent","from","unset","SparklesIllustration","SparklesIcon","strokeWidth","InspectorOnboarding","onDismiss","Container","textAlign","href","rel","inspectorOnboardingKey","fieldOnboardingKey","isFeatureOnboardingDismissed","featureKey","localStorage","getItem","dismissFeatureOnboarding","setItem","useOnboardingFeature","showOnboarding","setShowOnboarding","dismissOnboarding","BackToInstructionListLink","openInspector","goBack","ArrowLeftIcon","EMPTY_FIELDS","TypePathContext","AssistDocumentForm","border","AssistDocumentFormEditable","targetDocumentType","setParams","typePath","activeKey","activePath","base","useSelectedSchema","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","currentSchema","_ref9","__presets","presets","existingField","documentPresets","missingPresetInstructions","existingInstructions","presetField","ei","setIfMissing","append","insert","preset","FieldAutocomplete","onSelect","includeDocument","fieldRefs","currentField","autocompleteOptions","renderOption","option","accent","FieldTitle","renderValue","filterOption","lQuery","toLowerCase","Autocomplete","SearchIcon","openButton","placeholder","splitTitle","split","Breadcrumbs","display","flexWrap","alignItems","separator","pt","trim","getConditionalMembers","docState","conditional","extractConditionalPaths","_ref10","isConditional","conditionalState","memberState","node","kind","array","isObjectsArray","conditionalFieldset","fieldSet","CardWithShadowBelow","CardWithShadowAbove","AssistInspectorWrapper","DocumentInspectorHeader","closeButtonLabel","RetryIcon","AssistInspector","boundary","documentPane","docValue","formStateRef","assistableDocId","selectedField","aiDocId","promptValue","isEmptyPrompt","firstBlock","paneNode","runCurrentInstruction","Region","_props","AiInspectorHeader","fieldTitle","minHeight","PresenceOverlay","VirtualizerScrollInstanceProvider","scrollElement","containerElement","DocumentPaneProvider","paneKey","index","itemId","pane","whiteSpace","ArrowRightIcon","paddingX","paddingY","justifySelf","wrap","CloseIcon","assistInspector","useMenuItem","showAsAction","component","_ref11","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref12","durationMs","animationDuration","purple","hex","Root","span","dash","Outline","svg","IconDisc","AssistAvatar","scheme","useColorSchemeValue","viewBox","fill","xmlns","cx","cy","color","AiFieldPresence","position","background","contentEditable","AssistFeatureBadge","Badge","margin","AssistOnboardingPopover","dismiss","AssistIntroCard","shadow","buttonRef","CheckmarkIcon","FirstAssistedPathContext","FirstAssistedPathProvider","firstAssistedPath","firstAssisted","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isFirstAssisted","singlePresence","actions","__internal_slot","ConnectorsStoreContext","useConnectorsStore","hasOverflowScroll","el","getComputedStyle","useRegionRects","relativeBoundsRect","setRelativeBoundsRect","relativeElementRect","setRelativeElementRect","boundsScroll","setBoundsScroll","x","y","scroll","setScroll","boundsScrollXRef","boundsScrollYRef","elementScrollXRef","elementScrollYRef","scrollParents","parentElement","handleResize","scrollParent","boundsRect","getBoundingClientRect","window","innerWidth","innerHeight","domRect","w","h","handleScroll","scrollX","scrollY","scrollLeft","scrollTop","addEventListener","passive","ro","ResizeObserver","observe","unobserve","removeEventListener","disconnect","bounds","element","ConnectorRegion","onRectsChange","restProps","ConnectFromRegion","zIndex","rects","setRects","next","createConnectorsStore","configKeys","fieldKeys","channels","Map","payloads","observers","notifyObservers","connectors","toRects","toPayload","fromRects","fromPayload","payload","observer","delete","idx","indexOf","splice","ConnectorsProvider","onConnectorsChange","getConnectorLinePoint","rect","centerY","isAbove","arrow","marginY","isBelow","startY","endY","outOfBounds","mapConnectorToLine","connector","fromBounds","threshold","fromBottom","toBounds","toBottom","maxStartY","Math","max","min","arrowPath","dir","moveTo","lineTo","strings","delim","quadCurve","x1","y1","drawConnectorPath","line","cornerRadius","fromX","fromY","_toX","toY","toX","dividerX","divider","offsetX","fromPathX","marginX","r0","abs","r1","cmds","ConnectorPath","theme","useTheme","d","stroke","sanity","bg","rgba","DEBUG","AssistConnectorsOverlay","setRedraw","top","left","pointerEvents","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","self","root","Function","_root","Symbol","_Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","getRawTag$1","isOwn","call","unmasked","result","_getRawTag","objectToString","objectToString$1","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","baseGetTag$2","_baseGetTag","isObjectLike","isObjectLike$1","isObjectLike_1","symbolTag","isSymbol","isSymbol$3","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","isKey$1","object","test","_isKey","isObject","isObject$2","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction$1","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","isMasked$1","func","_isMasked","funcProto","funcToString","toSource","toSource$1","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","baseIsNative$1","pattern","_baseIsNative","getValue","getValue$1","_getValue","getNative","getNative$2","_getNative","nativeCreate","_nativeCreate","hashClear","hashClear$1","__data__","_hashClear","hashDelete","hashDelete$1","has","_hashDelete","HASH_UNDEFINED","hashGet","hashGet$1","_hashGet","hashHas","hashHas$1","_hashHas","hashSet","hashSet$1","_hashSet","require$$4","Hash","Hash$1","clear","entry","_Hash","listCacheClear","listCacheClear$1","_listCacheClear","eq","eq$1","other","eq_1","assocIndexOf","assocIndexOf$4","_assocIndexOf","arrayProto","listCacheDelete","listCacheDelete$1","lastIndex","pop","_listCacheDelete","listCacheGet","listCacheGet$1","_listCacheGet","listCacheHas","listCacheHas$1","_listCacheHas","listCacheSet","listCacheSet$1","_listCacheSet","ListCache","ListCache$1","_ListCache","_Map","mapCacheClear","mapCacheClear$1","_mapCacheClear","isKeyable","isKeyable$1","_isKeyable","getMapData","getMapData$4","_getMapData","mapCacheDelete","mapCacheDelete$1","_mapCacheDelete","mapCacheGet","mapCacheGet$1","_mapCacheGet","mapCacheHas","mapCacheHas$1","_mapCacheHas","mapCacheSet","mapCacheSet$1","_mapCacheSet","MapCache","MapCache$1","_MapCache","FUNC_ERROR_TEXT","memoize","memoize$1","resolver","TypeError","memoized","apply","cache","Cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","memoizeCapped$1","_memoizeCapped","rePropName","reEscapeChar","string","charCodeAt","number","quote","subString","_stringToPath","arrayMap","arrayMap$1","iteratee","_arrayMap","INFINITY","symbolProto","symbolToString","baseToString","baseToString$1","_baseToString","toString$1","toString_1","castPath","castPath$1","_castPath","toKey","toKey$1","_toKey","baseGet","baseGet$1","_baseGet","defaultValue","get_1","getLanguageParams","select","selection","selectedValue","toFieldLanguagesKeyPrefix","getPreferredToFieldLanguages","fromLanguageId","parse","setPreferredToFieldLanguages","languageIds","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","hasValuesToTranslate","fieldLanguageMaps","fromLanguage","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","fieldTranslationParams","setFieldTranslationParams","languages","setLanguages","setFromLanguage","toLanguages","setToLanguages","setFieldLanguageMaps","languageClient","selectFromLanguage","preferred","allToLanguages","l","filteredToLanguages","fromId","allToIds","docMembers","transMap","toId","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","radioLanguage","FromLanguageRadio","checkboxLanguage","ToLanguageCheckbox","langId","opacity","Checkbox","checked","tl","Radio","AssistLayout","setConnectors","ThemeProvider","WrapPreCard","SafeValueInput","ErrorWrapper","PteValueFixer","unsetValue","catcher","ErrorBoundary","onCatch","AssistFormBlock","localOnChange","patchEvent","prefixAll","AssistItem","pre","right","findFieldMember","fieldName","findFieldsetMember","fieldsetName","InstructionInput","NameField","ShareField","ObjectMember","_ref13","ObjectInputMember","NONE","fieldsetMember","titleId","iconMember","titleMember","titlePlaceholder","moddedTitleMember","htmlFor","marginLeft","visibilityMember","HiddenFieldTitle","level","InstructionVisibility","handleChange","newValue","Switch","elementProps","IconInput","items","icons","_ref14","IconItem","iconKey","selectedIcon","getIcon","MenuButton","menu","Menu","maxHeight","_ref15","MenuItem","iconName","_ref16","sparkles","FieldRefPathInput","querySelector","fieldSegments","lastArrayItemIndex","findLastIndex","mustStartWith","minWidth","InstructionsArrayInput","originalValue","originalMembers","InlineBlockValueContext","AssistInlineFormBlock","FieldRefPreview","textOverflow","HideReferenceChangedBannerInput","closest","parentId","random","innerText","prepend","contextDocumentSchema","defineType","TokenIcon","components","input","defineField","defineArrayMember","styles","lists","marks","decorators","preview","prepare","_ref17","child","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","globalThis","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","InstructionsArrayField","InstructionOutputField","isArrayOfObjectsSchemaType","EnabledOutputField","_ref18","onExpand","onCollapse","collapsible","collapsed","InstructionOutputInput","ObjectOutputInput","ArrayOutputInput","useEmptySelectAllValue","allowedValues","validValues","relativePath","valueLength","validLength","_ref19","onSelectChange","patchValue","Selectable","_ref20","ofItems","_ref21","cursor","fieldReference","ThListIcon","rule","custom","docId","targetDocType","refs","_ref22","CodeIcon","modal","ComposeIcon","required","promptContext","Fix","maxWidth","_ref23","LockIcon","fieldset","initialValue","createdById","fieldInstructions","assistDocumentSchema","instructionTask","documentInstructionStatus","excludeComments","existingRender","newProps","__internal_comments","arrayItemType","instructionForm","schemaTypes","useAssistSupported","useAssistDocumentContextValue","getPublishedId","assistableDocumentId","documentIsNew","documentIsAssistable","selectedPath","closeInspector","inspector","PrivateIcon","fallbackPlacements","ImageContext","ImageContextProvider","assetRef","asset","assetRefState","setAssetRefState","isSyncing","useSyncState","router","isShowingOlderRevision","rev","imageDescriptionPath","imageInstructionPath","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_g","_h","fieldSchemaType","isDocumentLevel","docTransTypes","documentTypes","addFieldAction","translateAction","fieldTransEnabled","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","TranslateIcon","fieldTranslate","translateFieldsAction","c","expanded","generateImagActions","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","imageGenAction","manageInstructions","onInstructionAction","privateInstructions","sharedInstructions","runInstructionsGroup","instructionItem","isPrivate","instructionsLength","manageInstructionsItem","ControlsIcon","group","emptyAction","iconRight","AssistDocumentContextProvider","NO_TASKS","useInstructionToaster","assistDocLoaded","previousTasks","prevTaskByKey","fromEntries","endedTasks","startedByUserId","prevTask","isAfter","addSeconds","closable","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_ref24","createAssistDocumentPresence","AssistDocumentPresenceWrapper","AssistDocumentPresence","anyPresence","anyRun","assist","definePlugin","configWithDefaults","i18n","bundles","inspectors","prev","docSchema","unstable_fieldActions","_ref25","unstable_languageFilter","_ref26","studio","layout","Layout","form","inlineBlock","plugins"],"mappings":"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","x_google_ignoreList":[36,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,126]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/types.ts","../src/_lib/fixedListenQuery.ts","../src/_lib/useListeningQuery.ts","../src/schemas/serialize/schemaUtils.ts","../src/helpers/typeUtils.ts","../src/helpers/assistSupported.ts","../src/schemas/serialize/serializeSchema.ts","../src/schemas/serialize/SchemTypeTool.tsx","../src/translate/paths.ts","../src/assistInspector/constants.ts","../src/_lib/form/constants.ts","../src/_lib/form/DocumentForm.tsx","../src/assistDocument/components/SelectedFieldContext.tsx","../src/assistInspector/helpers.ts","../src/assistDocument/hooks/useDocumentState.ts","../src/helpers/ids.ts","../src/constants.ts","../src/assistDocument/hooks/useStudioAssistDocument.ts","../src/components/TimeAgo.tsx","../src/helpers/misc.ts","../src/assistInspector/InstructionTaskHistoryButton.tsx","../src/useApiClient.ts","../src/assistLayout/AiAssistanceConfigContext.tsx","../src/assistLayout/RunInstructionProvider.tsx","../src/assistDocument/RequestRunInstructionProvider.tsx","../src/onboarding/InspectorOnboarding.tsx","../src/onboarding/onboardingStore.ts","../src/assistDocument/components/instruction/BackToInstructionsLink.tsx","../src/assistDocument/components/AssistDocumentForm.tsx","../src/assistInspector/FieldAutocomplete.tsx","../src/helpers/conditionalMembers.ts","../src/assistInspector/AssistInspector.tsx","../src/assistInspector/index.ts","../src/assistDocument/AssistDocumentContext.tsx","../src/presence/useAssistPresence.ts","../src/components/FadeInContent.tsx","../../node_modules/@sanity/color/dist/index.js","../src/presence/AssistAvatar.tsx","../src/presence/AiFieldPresence.tsx","../src/components/AssistFeatureBadge.tsx","../src/onboarding/FieldActionsOnboarding.tsx","../src/onboarding/FirstAssistedPathProvider.tsx","../src/assistFormComponents/AssistField.tsx","../src/_lib/connector/ConnectorsStoreContext.ts","../src/_lib/connector/useConnectorsStore.ts","../src/_lib/connector/helpers.ts","../src/_lib/connector/useRegionRects.ts","../src/_lib/connector/ConnectorRegion.tsx","../src/_lib/connector/ConnectFromRegion.tsx","../src/_lib/connector/ConnectorsStore.ts","../src/_lib/connector/ConnectorsProvider.tsx","../src/_lib/connector/mapConnectorToLine.ts","../src/assistConnectors/draw/arrowPath.ts","../src/assistConnectors/draw/connectorPath.ts","../src/assistConnectors/ConnectorPath.tsx","../src/assistConnectors/AssistConnectorsOverlay.tsx","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../src/translate/getLanguageParams.ts","../src/translate/languageStore.ts","../src/translate/FieldTranslationProvider.tsx","../src/assistLayout/AssistLayout.tsx","../src/components/SafeValueInput.tsx","../src/assistFormComponents/AssistFormBlock.tsx","../src/assistFormComponents/AssistItem.tsx","../src/assistDocument/components/helpers.ts","../src/assistDocument/components/instruction/InstructionInput.tsx","../src/assistDocument/components/generic/HiddenFieldTitle.tsx","../src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx","../src/assistDocument/components/instruction/appearance/IconInput.tsx","../src/assistDocument/components/instruction/FieldRefInput.tsx","../src/assistDocument/components/InstructionsArrayInput.tsx","../src/assistFormComponents/AssistInlineFormBlock.tsx","../src/assistDocument/components/FieldRefPreview.tsx","../src/components/HideReferenceChangedBannerInput.tsx","../src/schemas/contextDocumentSchema.tsx","../../node_modules/get-random-values-esm/index.mjs","../src/_lib/randomKey.ts","../src/assistDocument/components/instruction/PromptInput.tsx","../src/assistDocument/components/InstructionsArrayField.tsx","../src/assistDocument/components/instruction/InstructionOutputField.tsx","../src/assistDocument/components/instruction/InstructionOutputInput.tsx","../src/schemas/assistDocumentSchema.tsx","../src/schemas/index.ts","../src/helpers/useAssistSupported.ts","../src/assistDocument/hooks/useAssistDocumentContextValue.tsx","../src/fieldActions/PrivateIcon.tsx","../src/components/ImageContext.tsx","../src/fieldActions/generateCaptionActions.tsx","../src/translate/translateActions.tsx","../src/fieldActions/generateImageActions.tsx","../src/fieldActions/assistFieldActions.tsx","../src/assistDocument/AssistDocumentContextProvider.tsx","../src/assistDocument/hooks/useInstructionToaster.tsx","../src/assistDocument/AssistDocumentInput.tsx","../src/presence/AssistDocumentPresence.tsx","../src/plugin.tsx"],"sourcesContent":["import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const assistDocumentIdPrefix = 'sanity.assist.schemaType.'\nexport const assistDocumentStatusIdPrefix = 'sanity.assist.status.'\nexport const assistSchemaIdPrefix = 'sanity.assist.schema.'\n\n// type names\nexport const assistDocumentTypeName = 'sanity.assist.schemaType.annotations' as const\nexport const assistFieldTypeName = 'sanity.assist.schemaType.field' as const\nexport const instructionTypeName = 'sanity.assist.instruction' as const\nexport const promptTypeName = 'sanity.assist.instruction.prompt' as const\n\nexport const userInputTypeName = 'sanity.assist.instruction.userInput' as const\nexport const instructionContextTypeName = 'sanity.assist.instruction.context' as const\nexport const fieldReferenceTypeName = 'sanity.assist.instruction.fieldRef' as const\n\n// user-facing type. Intentionally does not have sanity. prefix\nexport const contextDocumentTypeName = 'assist.instruction.context' as const\n\nexport const assistTasksStatusTypeName = 'sanity.assist.task.status' as const\nexport const instructionTaskTypeName = 'sanity.assist.instructionTask' as const\nexport const fieldPresenceTypeName = 'sanity.assist.instructionTask.presence' as const\n\nexport const assistSerializedTypeName = 'sanity.assist.serialized.type' as const\nexport const assistSerializedFieldTypeName = 'sanity.assist.serialized.field' as const\n\nexport const outputFieldTypeName = 'sanity.assist.output.field' as const\nexport const outputTypeTypeName = 'sanity.assist.output.type' as const\n\n//url params\nexport const inspectParam = 'inspect' as const\nexport const fieldPathParam = 'pathKey' as const\nexport const instructionParam = 'instruction' as const\n\n// other constants\nexport const documentRootKey = '<document>'\n\nexport type SerializedSchemaMember = Omit<SerializedSchemaType, 'name' | '_type'> & {\n _type?: typeof assistSerializedFieldTypeName\n name?: string\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n name: string\n title?: string\n fields?: SerializedSchemaMember[]\n of?: SerializedSchemaMember[]\n to?: SerializedSchemaMember[]\n annotations?: SerializedSchemaMember[]\n inlineOf?: SerializedSchemaMember[]\n values?: string[] | {value: string; title?: string}[]\n hidden?: boolean | 'function'\n readOnly?: boolean | 'function'\n options?: {\n /** equivalent to options.aiAssist.imageDescriptionField - not renamed in the api for backwards compatability */\n imagePromptField?: string\n embeddingsIndex?: string\n }\n}\n\nexport interface AssistDocument extends SanityDocument {\n fields?: AssistField[]\n instructions?: StudioInstruction[]\n}\n\nexport interface PresetInstruction {\n _key: string\n prompt?: PromptTextBlock[]\n\n title?: string\n /**\n * String key from @sanity/icons IconMap\n */\n icon?: string\n\n /**\n * Type/field filter\n */\n output?: (OutputFieldItem | OutputTypeItem)[]\n}\n\nexport interface PresetField {\n path?: string\n instructions?: PresetInstruction[]\n}\n\nexport interface AssistPreset {\n fields?: PresetField[]\n}\n\nexport interface SanityAssistDocument {\n _id: string\n _type: typeof assistDocumentTypeName\n fields?: StudioAssistField[]\n}\n\nexport interface StudioAssistDocument extends SanityAssistDocument {\n // added after loading\n tasks?: InstructionTask[]\n}\n\nexport interface AssistField {\n _key: string\n _type: typeof assistFieldTypeName\n path?: string\n instructions?: StudioInstruction[]\n}\n\nexport interface StudioAssistField {\n _key: string\n path?: string\n instructions?: StudioInstruction[]\n\n // added\n tasks?: InstructionTask[]\n}\n\nexport interface FieldRef extends PortableTextMarkDefinition {\n _type: typeof fieldReferenceTypeName\n path?: string\n}\n\nexport interface ContextBlock {\n _type: typeof instructionContextTypeName\n reference?: {\n _type: 'reference'\n _ref?: string\n }\n}\n\nexport interface UserInputBlock {\n _type: typeof userInputTypeName\n _key: string\n message?: string\n description?: string\n}\n\nexport type InlinePromptBlock = PortableTextSpan | FieldRef | UserInputBlock | ContextBlock\nexport type PromptTextBlock = Omit<\n PortableTextBlock<never, InlinePromptBlock, 'normal', never>,\n '_type'\n> & {_type: 'block'}\n\nexport type PromptBlock = PromptTextBlock | FieldRef | ContextBlock | UserInputBlock\n\nexport interface AiPresence {\n _key: string\n _type: typeof fieldPresenceTypeName\n path?: string\n started?: string\n}\n\nexport type TaskEndedReason = 'success' | 'error' | 'aborted' | 'timeout'\n\nexport interface InstructionTask {\n _key: string\n _type: typeof instructionTaskTypeName\n instructionKey?: string\n title?: string\n path?: string\n started?: string\n updated?: string\n ended?: string\n message?: string\n reason?: TaskEndedReason\n presence?: AiPresence[]\n startedByUserId?: string\n\n //added by studio\n // eslint-disable-next-line no-use-before-define\n instruction?: StudioInstruction\n}\n\nexport interface StudioInstruction {\n _key: string\n _type: typeof instructionTypeName\n prompt?: PromptBlock[]\n\n icon?: string\n userId?: string\n title?: string\n placeholder?: string\n output?: (OutputFieldItem | OutputTypeItem)[]\n\n //added after query / synthetic fields\n tasks?: InstructionTask[]\n}\n\nexport interface AssistTasksStatus {\n _id: string\n _type: typeof assistTasksStatusTypeName\n tasks?: InstructionTask[]\n}\n\nexport interface AssistInspectorRouteParams {\n [inspectParam]?: string\n [fieldPathParam]?: string\n [instructionParam]?: string\n}\n\nexport interface OutputFieldItem {\n _type: typeof outputFieldTypeName\n _key: string\n //path relative to the field the instruction is for (same as _key)\n relativePath?: string\n}\n\nexport interface OutputTypeItem {\n _type: typeof outputTypeTypeName\n _key: string\n /* array item type name */\n type?: string\n //path relative to the array-field the instruction is for, can be empty string (the array itself, same as _key)\n relativePath?: string\n}\n","import {SanityClient} from '@sanity/client'\nimport {defer, delay, merge, Observable, of, partition, switchMap, throwError} from 'rxjs'\nimport {filter, mergeMap, share, take} from 'rxjs/operators'\nimport {exhaustMapToWithTrailing} from 'rxjs-exhaustmap-with-trailing'\nimport {MutationEvent, ReconnectEvent, WelcomeEvent} from 'sanity'\n\n/** @internal */\nexport type ListenQueryParams = Record<string, string | number | boolean | string[]>\n\n/** @beta */\nexport interface ListenQueryOptions {\n tag?: string\n apiVersion?: string\n throttleTime?: number\n transitions?: ('update' | 'appear' | 'disappear')[]\n}\n\nconst fetch = (\n client: SanityClient,\n query: string,\n params: ListenQueryParams,\n options: ListenQueryOptions\n) =>\n defer(() =>\n // getVersionedClient(options.apiVersion)\n client.observable.fetch(query, params, {\n tag: options.tag,\n filterResponse: true,\n })\n )\n\nconst listen = (\n client: SanityClient,\n query: string,\n params: ListenQueryParams,\n options: ListenQueryOptions\n) =>\n defer(() =>\n // getVersionedClient(options.apiVersion)\n client.listen(query, params, {\n events: ['welcome', 'mutation', 'reconnect'],\n includeResult: false,\n visibility: 'query',\n tag: options.tag,\n })\n ) as Observable<ReconnectEvent | WelcomeEvent | MutationEvent>\n\nfunction isWelcomeEvent(\n event: MutationEvent | ReconnectEvent | WelcomeEvent\n): event is WelcomeEvent {\n return event.type === 'welcome'\n}\n\n/** @internal */\nexport const listenQuery = (\n client: SanityClient,\n query: string | {fetch: string; listen: string},\n params: ListenQueryParams = {},\n options: ListenQueryOptions = {}\n) => {\n const fetchQuery = typeof query === 'string' ? query : query.fetch\n const listenerQuery = typeof query === 'string' ? query : query.listen\n\n const fetchOnce$ = fetch(client, fetchQuery, params, options)\n\n const events$ = listen(client, listenerQuery, params, options).pipe(\n mergeMap((ev, i) => {\n const isFirst = i === 0\n if (isFirst && !isWelcomeEvent(ev)) {\n // if the first event is not welcome, it is most likely a reconnect and\n // if it's not a reconnect something is very wrong\n return throwError(\n new Error(\n ev.type === 'reconnect'\n ? 'Could not establish EventSource connection'\n : `Received unexpected type of first event \"${ev.type}\"`\n )\n )\n }\n return of(ev)\n }),\n share()\n )\n\n const [welcome$, mutationAndReconnect$] = partition(events$, isWelcomeEvent)\n const isRelevantEvent = (event: MutationEvent | ReconnectEvent | WelcomeEvent): boolean => {\n if (!options.transitions || event.type !== 'mutation') {\n return true\n }\n\n return options.transitions.includes(event.transition)\n }\n\n return merge(\n welcome$.pipe(take(1)),\n mutationAndReconnect$.pipe(\n filter(isRelevantEvent),\n switchMap((event) => merge(of(event), of(event).pipe(delay(options.throttleTime || 1000))))\n )\n ).pipe(exhaustMapToWithTrailing(fetchOnce$))\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {ListenQueryOptions, useClient} from 'sanity'\nimport {listenQuery} from './fixedListenQuery'\n\ntype Params = Record<string, string | number | boolean | string[]>\n\ntype ReturnShape<T> = {\n loading: boolean\n error: boolean\n data: T | null\n}\n\ntype Observable = {\n unsubscribe: () => void\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS: ListenQueryOptions = {apiVersion: `v2022-05-09`}\n\nexport function useListeningQuery<T>(\n query: string,\n params: Params = DEFAULT_PARAMS,\n options: ListenQueryOptions = DEFAULT_OPTIONS\n): ReturnShape<T> {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [data, setData] = useState<T | null>(null)\n const subscription = useRef<null | Observable>(null)\n\n const client = useClient({apiVersion: `v2022-05-09`})\n\n useEffect(() => {\n if (query) {\n subscription.current = listenQuery(client, query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current) => (isEqual(current, documents) ? current : documents))\n setLoading(false)\n setError(false)\n })\n }\n\n return () => {\n return subscription.current ? subscription.current.unsubscribe() : undefined\n }\n }, [query, params, options, client])\n\n return {loading, error, data}\n}\n","import {assistSerializedFieldTypeName, assistSerializedTypeName} from '../../types'\n\nexport const hiddenTypes = [\n 'any',\n 'array',\n 'block',\n 'boolean',\n 'crossDatasetReference',\n 'date',\n 'datetime',\n 'document',\n 'email',\n 'file',\n 'image',\n 'number',\n 'object',\n 'reference',\n 'span',\n 'string',\n 'text',\n 'url',\n 'slug',\n 'geopoint',\n 'sanity.assetSourceData',\n 'sanity.imageAsset',\n 'sanity.fileAsset',\n 'sanity.imageCrop',\n 'sanity.imageHotspot',\n 'sanity.imageMetadata',\n 'sanity.imageDimensions',\n 'sanity.imagePalette',\n 'sanity.imagePaletteSwatch',\n\n assistSerializedTypeName,\n assistSerializedFieldTypeName,\n 'sanity-agent.job.document',\n]\n","import {ArraySchemaType, ImageOptions, SchemaType} from 'sanity'\n\nexport function isPortableTextArray(type: ArraySchemaType) {\n return type.of.find((t) => isType(t, 'block'))\n}\n\nexport function isType(schemaType: SchemaType, typeName: string): boolean {\n if (schemaType.name === typeName) {\n return true\n }\n if (!schemaType.type) {\n return false\n }\n return isType(schemaType.type, typeName)\n}\n\nexport function isImage(schemaType: SchemaType) {\n return isType(schemaType, 'image')\n}\n\nexport function getDescriptionFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const descriptionField = (schemaType.options as ImageOptions)?.aiAssist?.imageDescriptionField\n if (descriptionField) {\n return descriptionField\n }\n return getDescriptionFieldOption(schemaType.type)\n}\n\nexport function getImageInstructionFieldOption(\n schemaType: SchemaType | undefined\n): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const imageInstructionField = (schemaType.options as ImageOptions)?.aiAssist\n ?.imageInstructionField\n if (imageInstructionField) {\n return imageInstructionField\n }\n return getImageInstructionFieldOption(schemaType.type)\n}\n","import {ReferenceOptions, SchemaType} from 'sanity'\nimport {AssistOptions} from '../schemas/typeDefExtensions'\nimport {isType} from './typeUtils'\n\nexport function isSchemaAssistEnabled(type: SchemaType) {\n return !(type.options as AssistOptions | undefined)?.aiAssist?.exclude\n}\n\nexport function isAssistSupported(type: SchemaType) {\n if (!isSchemaAssistEnabled(type)) {\n return false\n }\n\n if (isDisabled(type)) {\n return false\n }\n\n if (type.jsonType === 'array') {\n const unsupportedArray = type.of.every((t) => isDisabled(t))\n return !unsupportedArray\n }\n\n if (type.jsonType === 'object') {\n const unsupportedObject = type.fields.every((field) => isDisabled(field.type))\n return !unsupportedObject\n }\n return true\n}\n\nfunction isDisabled(type: SchemaType) {\n return !isSchemaAssistEnabled(type) || isUnsupportedType(type)\n}\n\nfunction isUnsupportedType(type: SchemaType) {\n return (\n type.jsonType === 'number' ||\n type.name === 'sanity.imageCrop' ||\n type.name === 'sanity.imageHotspot' ||\n (isType(type, 'reference') &&\n !(type?.options as ReferenceOptions)?.aiAssist?.embeddingsIndex) ||\n isType(type, 'crossDatasetReference') ||\n isType(type, 'slug') ||\n isType(type, 'url') ||\n isType(type, 'date') ||\n isType(type, 'datetime') ||\n isType(type, 'file')\n )\n}\n","import {\n ArraySchemaType,\n ImageOptions,\n isArraySchemaType,\n ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSchemaIdPrefix,\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaMember,\n SerializedSchemaType,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\nimport {isType} from '../../helpers/typeUtils'\n\ninterface Options {\n leanFormat?: boolean\n}\n\nconst inlineTypes = ['document', 'object', 'image', 'file']\n\nexport function serializeSchema(schema: Schema, options?: Options): SerializedSchemaType[] {\n const list = schema\n .getTypeNames()\n .filter((t) => !(hiddenTypes.includes(t) || t.startsWith('sanity.')))\n .map((t) => schema.get(t))\n .filter((t): t is SchemaType => !!t)\n // because a field can override exclude at the type level, we have to also serialize excluded types\n // so don't do this: .filter((t) => isAssistSupported(t))\n .map((t) => getSchemaStub(t, schema, options))\n .filter((t) => {\n if ('to' in t && t.to && !t.to.length) {\n return false\n }\n if ('of' in t && t.of && !t.of.length) {\n return false\n }\n if ('fields' in t && t.fields && !t.fields.length) {\n return false\n }\n return true\n })\n list.sort((a, b) => (a?.name ?? '').localeCompare(b?.name ?? ''))\n return list\n}\n\nfunction getSchemaStub(\n schemaType: SchemaType,\n schema: Schema,\n options?: Options\n): SerializedSchemaType {\n if (!schemaType.type?.name) {\n console.error('Missing type name', schemaType.type)\n throw new Error('Type is missing name!')\n }\n const baseSchema: SerializedSchemaType = {\n // we dont need type or id when we send using POST, so leave these out to save bandwidth\n ...(options?.leanFormat\n ? {}\n : {_id: `${assistSchemaIdPrefix}${schemaType.name}`, _type: assistSerializedTypeName}),\n name: schemaType.name,\n title: schemaType.title,\n type: schemaType.type.name,\n ...getBaseFields(schema, schemaType, schemaType.type.name, options),\n }\n\n return removeUndef(baseSchema)\n}\n\nfunction getBaseFields(\n schema: Schema,\n type: SchemaType,\n typeName: string,\n options: Options | undefined\n) {\n const schemaOptions: SerializedSchemaType['options'] = removeUndef({\n imagePromptField: (type.options as ImageOptions)?.aiAssist?.imageInstructionField,\n embeddingsIndex: (type.options as ReferenceOptions)?.aiAssist?.embeddingsIndex,\n })\n return removeUndef({\n options: Object.keys(schemaOptions).length ? schemaOptions : undefined,\n values: Array.isArray(type?.options?.list)\n ? type?.options?.list.map((v: string | {value: string; title: string}) =>\n typeof v === 'string' ? v : v.value ?? `${v.title}`\n )\n : undefined,\n of: 'of' in type && typeName === 'array' ? arrayOf(type, schema, options) : undefined,\n to:\n 'to' in type && typeName === 'reference'\n ? refToTypeNames(type as ReferenceSchemaType)\n : undefined,\n fields:\n 'fields' in type && inlineTypes.includes(typeName)\n ? serializeFields(schema, type, options)\n : undefined,\n annotations:\n typeName === 'block' && 'fields' in type\n ? serializeAnnotations(type, schema, options)\n : undefined,\n inlineOf:\n typeName === 'block' && 'fields' in type\n ? serializeInlineOf(type, schema, options)\n : undefined,\n hidden:\n typeof type.hidden === 'function' ? ('function' as const) : type.hidden ? true : undefined,\n readOnly:\n typeof type.readOnly === 'function'\n ? ('function' as const)\n : type.readOnly\n ? true\n : undefined,\n })\n}\n\nfunction serializeFields(\n schema: Schema,\n schemaType: ObjectSchemaType,\n options: Options | undefined\n) {\n const fields = schemaType.fieldsets\n ? schemaType.fieldsets.flatMap((fs) =>\n fs.single\n ? fs.field\n : fs.fields.map((f) => ({\n ...f,\n type: {\n ...f.type,\n // if fieldset is (conditionally) hidden, the field must be considered the same way\n // ie, if the field does not show up in conditionalMembers, it is hidden\n // regardless of weather or not it is the field function or the fieldset function that hides it\n hidden:\n typeof fs.hidden === 'function' ? fs.hidden : fs.hidden ? true : f.type.hidden,\n },\n }))\n )\n : schemaType.fields\n\n return fields\n .filter((f) => !['sanity.imageHotspot', 'sanity.imageCrop'].includes(f.type?.name ?? ''))\n .filter((f) => isAssistSupported(f.type))\n .map((field) => serializeMember(schema, field.type, field.name, options))\n}\n\nfunction serializeMember(\n schema: Schema,\n type: SchemaType,\n name: string,\n options: Options | undefined\n): SerializedSchemaMember {\n const typeNameExists = !!schema.get(type?.name)\n const typeName = typeNameExists ? type.name : type.type?.name ?? ''\n return removeUndef({\n ...(options?.leanFormat ? {} : {_type: assistSerializedFieldTypeName}),\n name: name,\n type: typeName,\n title: type.title,\n ...getBaseFields(schema, type, typeName, options),\n })\n}\n\nfunction serializeInlineOf(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const childrenField = blockSchemaType.fields.find((f) => f.name === 'children')\n const childrenType = childrenField?.type\n if (!childrenType || !isArraySchemaType(childrenType)) {\n return undefined\n }\n return arrayOf(\n {\n ...childrenType,\n of: childrenType.of.filter((t) => !isType(t, 'span')),\n },\n schema,\n options\n )\n}\n\nfunction serializeAnnotations(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const markDefs = blockSchemaType.fields.find((f) => f.name === 'markDefs')\n const marksType = markDefs?.type\n if (!marksType || !isArraySchemaType(marksType)) {\n return undefined\n }\n return arrayOf(marksType, schema, options)\n}\n\nfunction arrayOf(\n arrayType: ArraySchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] {\n return arrayType.of\n .filter((type) => isAssistSupported(type))\n .map((t) => {\n return serializeMember(schema, t, t.name, options)\n })\n}\n\nfunction refToTypeNames(type: ReferenceSchemaType) {\n return type.to.map((t) => ({\n type: typed<string>(t.name),\n }))\n}\n\nfunction removeUndef<T extends Record<string, any>>(obj: T): T {\n Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}))\n return obj\n}\n","import {useClient, useSchema} from 'sanity'\nimport {Box, Button, Card, Flex, Label, Spinner, Stack} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {assistSerializedTypeName, SerializedSchemaType} from '../../types'\nimport {SyncIcon} from '@sanity/icons'\nimport {useListeningQuery} from '../../_lib/useListeningQuery'\nimport {serializeSchema} from './serializeSchema'\n\nconst NO_DATA: SerializedSchemaType[] = []\n\nconst defaultTitle = 'Sync schema'\n\nexport function SchemaTypeTool() {\n const schema = useSchema()\n const client = useClient({apiVersion: '2023-01-01'})\n const [saving, setSaving] = useState(false)\n const [syncTitle, setSyncTitle] = useState(defaultTitle)\n\n const {data} = useListeningQuery<SerializedSchemaType[]>('*[_type==$type] | order(_type)', {\n type: assistSerializedTypeName,\n })\n\n const types = useMemo(() => {\n return serializeSchema(schema)\n }, [schema])\n\n const storeTypes = useCallback(() => {\n setSaving(true)\n let canSave = true\n async function store() {\n setSyncTitle(`Syncing 0/${types.length}`)\n const transaction = client.transaction()\n for (let i = 0; i < types.length; i++) {\n if (!canSave) {\n break\n }\n const type = types[i]\n await transaction.createOrReplace(type as Required<typeof type>)\n if (i > 0 && i % 50 === 0) {\n await transaction.commit()\n transaction.reset()\n setSyncTitle(`Syncing ${i}/${types.length}`)\n }\n }\n await transaction.commit()\n }\n store()\n .catch(console.error)\n .finally(() => {\n setSaving(false)\n setSyncTitle(defaultTitle)\n })\n return () => {\n canSave = false\n setSaving(false)\n setSyncTitle(defaultTitle)\n }\n }, [types, client, setSaving, setSyncTitle])\n\n return (\n <Card padding={4} overflow=\"auto\" style={{height: 'calc(100vh - 81px)'}}>\n <Stack space={4}>\n <Box>\n <Button\n icon={saving ? <Spinner style={{marginTop: 5}} /> : SyncIcon}\n text={syncTitle}\n disabled={saving}\n onClick={storeTypes}\n />\n </Box>\n <Flex gap={2}>\n <Stack space={2}>\n <Label>Studio schema</Label>\n <ul>\n {types.map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n\n <Stack space={2}>\n <Label>Stored schema</Label>\n <ul>\n {(data ?? NO_DATA).map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n </Flex>\n </Stack>\n </Card>\n )\n}\n\nfunction SchemaEntry({schemaStub}: {schemaStub: SerializedSchemaType}) {\n const out = useMemo(() => JSON.stringify(schemaStub, null, 2), [schemaStub])\n return <pre>{out}</pre>\n}\n","import {\n isDocumentSchemaType,\n isKeySegment,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n} from 'sanity'\nimport {extractWithPath} from '@sanity/mutator'\nimport {DocumentMember, TranslationOutput, TranslationOutputsFunction} from './types'\n\nexport interface FieldLanguageMap {\n inputLanguageId: string\n inputPath: Path\n outputs: TranslationOutput[]\n}\n\nconst MAX_DEPTH = 6\n\nexport function getDocumentMembersFlat(doc: SanityDocumentLike, schemaType: ObjectSchemaType) {\n if (!isDocumentSchemaType(schemaType)) {\n console.error(`Schema type is not a document`)\n return []\n }\n\n return extractPaths(doc, schemaType, [], MAX_DEPTH)\n}\n\nfunction extractPaths(\n doc: SanityDocumentLike,\n schemaType: ObjectSchemaType,\n path: Path,\n maxDepth: number\n): DocumentMember[] {\n if (path.length >= maxDepth) {\n return []\n }\n\n return schemaType.fields.reduce<DocumentMember[]>((acc, field) => {\n const fieldPath = [...path, field.name]\n const fieldSchema = field.type\n const {value} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n if (!value) {\n return acc\n }\n\n const thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\n value,\n }\n\n if (fieldSchema.jsonType === 'object') {\n const innerFields = extractPaths(doc, fieldSchema, fieldPath, maxDepth)\n\n return [...acc, thisFieldWithPath, ...innerFields]\n } else if (\n fieldSchema.jsonType === 'array' &&\n fieldSchema.of.length &&\n fieldSchema.of.some((item) => 'fields' in item)\n ) {\n const {value: arrayValue} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n\n let arrayPaths: DocumentMember[] = []\n if ((arrayValue as any)?.length) {\n for (const item of arrayValue as any[]) {\n const itemPath = [...fieldPath, {_key: item._key}]\n let itemSchema = fieldSchema.of.find((t) => t.name === item._type)\n if (!item._type) {\n itemSchema = fieldSchema.of[0]\n console.warn(\n 'Array item is missing _type - using the first defined type in the array.of schema',\n {\n itemPath,\n item,\n itemSchema,\n }\n )\n }\n if (item._key && itemSchema) {\n const innerFields = extractPaths(\n doc,\n itemSchema as ObjectSchemaType,\n itemPath,\n maxDepth\n )\n const arrayMember = {\n path: itemPath,\n name: item._key,\n schemaType: itemSchema,\n value: item,\n }\n arrayPaths = [...arrayPaths, arrayMember, ...innerFields]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\n\n/**\n * Default implementation for plugin config `translate.field.translationOutputs`\n *\n * @see FieldTranslationConfig#translationOutputs\n */\nexport const defaultLanguageOutputs: TranslationOutputsFunction = function (\n member,\n enclosingType,\n translateFromLanguageId,\n translateToLanguageIds\n) {\n if (\n member.schemaType.jsonType === 'object' &&\n member.schemaType.name.startsWith('internationalizedArray')\n ) {\n const pathEnd = member.path.slice(-1)\n\n const language = isKeySegment(pathEnd[0]) ? pathEnd[0]._key : null\n return language === translateFromLanguageId\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), {_key: translateToId}],\n }))\n : undefined\n }\n\n if (enclosingType.jsonType === 'object' && enclosingType.name.startsWith('locale')) {\n return translateFromLanguageId === member.name\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), translateToId],\n }))\n : undefined\n }\n\n return undefined\n}\n\nexport function getFieldLanguageMap(\n documentSchema: ObjectSchemaType,\n documentMembers: DocumentMember[],\n translateFromLanguageId: string,\n outputLanguageIds: string[],\n langFn: TranslationOutputsFunction\n): FieldLanguageMap[] {\n const translationMaps: FieldLanguageMap[] = []\n for (const member of documentMembers) {\n const parentPath = member.path.slice(0, -1)\n const enclosingType =\n documentMembers.find((m) => pathToString(m.path) === pathToString(parentPath))?.schemaType ??\n documentSchema\n\n const translations = langFn(\n member,\n enclosingType,\n translateFromLanguageId,\n outputLanguageIds\n )?.filter((translation) => translation.id !== translateFromLanguageId)\n\n if (translations) {\n translationMaps.push({\n inputLanguageId: translateFromLanguageId,\n inputPath: member.path,\n outputs: translations,\n })\n }\n }\n\n return translationMaps\n}\n","export const aiInspectorId = 'ai-assistance'\n","export const assistFormId = 'assist'\n","import {Box, BoxProps, Flex, focusFirstDescendant, Spinner, Text} from '@sanity/ui'\nimport React, {HTMLProps, useEffect, useMemo, useRef} from 'react'\nimport {tap} from 'rxjs/operators'\nimport {\n createPatchChannel,\n DocumentMutationEvent,\n DocumentRebaseEvent,\n FormBuilder,\n fromMutationPatches,\n PatchMsg,\n useDocumentPresence,\n useDocumentStore,\n} from 'sanity'\nimport {useDocumentPane} from 'sanity/desk'\nimport {assistFormId} from './constants'\n\nconst preventDefault = (ev: React.FormEvent) => ev.preventDefault()\n\nexport function DocumentForm(\n props: Omit<BoxProps, 'as'> & Omit<HTMLProps<HTMLDivElement>, 'as' | 'onSubmit' | 'ref'>\n) {\n const {\n collapsedFieldSets,\n collapsedPaths,\n displayed: value,\n documentId,\n documentType,\n editState,\n formState,\n onBlur,\n onChange,\n onFocus,\n onPathOpen,\n onSetActiveFieldGroup,\n onSetCollapsedFieldSet,\n onSetCollapsedPath,\n ready,\n validation,\n } = useDocumentPane()\n\n const documentStore = useDocumentStore()\n const presence = useDocumentPresence(documentId)\n\n // The `patchChannel` is an INTERNAL publish/subscribe channel that we use to notify form-builder\n // nodes about both remote and local patches.\n // - Used by the Portable Text input to modify selections.\n // - Used by `withDocument` to reset value.\n const patchChannel = useMemo(() => createPatchChannel(), [])\n\n const isLocked = editState?.transactionSyncLock?.enabled\n\n useEffect(() => {\n const sub = documentStore.pair\n .documentEvents(documentId, documentType)\n .pipe(\n tap((event) => {\n if (event.type === 'mutation') {\n patchChannel.publish(prepareMutationEvent(event))\n }\n\n if (event.type === 'rebase') {\n patchChannel.publish(prepareRebaseEvent(event))\n }\n })\n )\n .subscribe()\n\n return () => {\n sub.unsubscribe()\n }\n }, [documentId, documentStore, documentType, patchChannel])\n\n const hasRev = Boolean(value?._rev)\n useEffect(() => {\n if (hasRev) {\n // this is a workaround for an issue that caused the document pushed to withDocument to get\n // stuck at the first initial value.\n // This effect is triggered only when the document goes from not having a revision, to getting one\n // so it will kick in as soon as the document is received from the backend\n patchChannel.publish({\n type: 'mutation',\n patches: [],\n snapshot: value,\n })\n }\n // React to changes in hasRev only\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasRev])\n\n const formRef = useRef<null | HTMLDivElement>(null)\n\n useEffect(() => {\n focusFirstDescendant(formRef.current!)\n }, [])\n\n if (isLocked) {\n return (\n <Box as=\"form\" {...props} ref={formRef}>\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Text size={1}>\n Please hold tight while the document is synced. This usually happens right after the\n document has been published, and it shouldn’t take more than a few seconds\n </Text>\n </Flex>\n </Box>\n )\n }\n\n return (\n <Box as=\"form\" {...props} onSubmit={preventDefault} ref={formRef}>\n {ready ? (\n formState === null ? (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Text size={1}>This form is hidden</Text>\n </Flex>\n ) : (\n <FormBuilder\n __internal_patchChannel={patchChannel}\n collapsedFieldSets={collapsedFieldSets}\n collapsedPaths={collapsedPaths}\n focusPath={formState.focusPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n id={assistFormId}\n members={formState.members}\n onChange={onChange}\n onFieldGroupSelect={onSetActiveFieldGroup}\n onPathBlur={onBlur}\n onPathFocus={onFocus}\n onPathOpen={onPathOpen}\n onSetFieldSetCollapsed={onSetCollapsedFieldSet}\n onSetPathCollapsed={onSetCollapsedPath}\n presence={presence}\n readOnly={formState.readOnly}\n schemaType={formState.schemaType}\n validation={validation}\n value={formState.value as any}\n />\n )\n ) : (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n padding={3}\n sizing=\"border\"\n >\n <Spinner muted />\n\n <Box marginTop={3}>\n <Text align=\"center\" muted size={1}>\n Loading document\n </Text>\n </Box>\n </Flex>\n )}\n </Box>\n )\n}\n\nfunction prepareMutationEvent(event: DocumentMutationEvent): PatchMsg {\n const patches = event.mutations.map((mut) => mut.patch).filter(Boolean)\n\n return {\n type: 'mutation',\n snapshot: event.document,\n patches: fromMutationPatches(event.origin, patches),\n }\n}\n\nfunction prepareRebaseEvent(event: DocumentRebaseEvent): PatchMsg {\n const remotePatches = event.remoteMutations.map((mut) => mut.patch).filter(Boolean)\n const localPatches = event.localMutations.map((mut) => mut.patch).filter(Boolean)\n\n return {\n type: 'rebase',\n snapshot: event.document,\n patches: fromMutationPatches('remote', remotePatches).concat(\n fromMutationPatches('local', localPatches)\n ),\n }\n}\n","import {ObjectSchemaType, SchemaType} from 'sanity'\nimport {createContext} from 'react'\n\nexport interface SelectedFieldContextValue {\n documentSchema?: ObjectSchemaType\n fieldSchema?: SchemaType\n}\n\nexport const SelectedFieldContext = createContext<SelectedFieldContextValue | undefined>(undefined)\nexport const SelectedFieldContextProvider = SelectedFieldContext.Provider\n","import {\n BlockContentIcon,\n BlockquoteIcon,\n DocumentIcon,\n ImageIcon,\n LinkIcon,\n OlistIcon,\n StringIcon,\n} from '@sanity/icons'\nimport {\n ArraySchemaType,\n isKeySegment,\n isObjectSchemaType,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n SchemaType,\n stringToPath,\n} from 'sanity'\nimport {ComponentType, useContext, useMemo} from 'react'\nimport {AssistInspectorRouteParams, documentRootKey, fieldPathParam} from '../types'\nimport {type PaneRouterContextValue, usePaneRouter} from 'sanity/desk'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {SelectedFieldContext} from '../assistDocument/components/SelectedFieldContext'\nimport {extractWithPath} from '@sanity/mutator'\n\nexport interface FieldRef {\n key: string\n path: Path\n title: string\n schemaType: SchemaType\n icon: ComponentType\n synthetic?: boolean\n}\n\nconst maxDepth = 6\n\nexport function getTypeIcon(schemaType: SchemaType) {\n let t: SchemaType | undefined = schemaType\n\n while (t) {\n if (t.icon) return t.icon\n t = t.type\n }\n\n if (isType(schemaType, 'slug')) return LinkIcon\n if (isType(schemaType, 'image')) return ImageIcon\n if (schemaType.jsonType === 'array' && isPortableTextArray(schemaType)) return BlockContentIcon\n\n if (schemaType.jsonType === 'array') return OlistIcon\n if (schemaType.jsonType === 'object') return BlockquoteIcon\n if (schemaType.jsonType === 'string') return StringIcon\n\n return DocumentIcon\n}\n\nexport function getFieldRefsWithDocument(schemaType: ObjectSchemaType): FieldRef[] {\n const fields = getFieldRefs(schemaType)\n return [\n {\n key: documentRootKey,\n icon: schemaType.icon ?? DocumentIcon,\n title: `The entire document`,\n path: [],\n schemaType: schemaType,\n },\n\n ...fields,\n ]\n}\n\nexport function getFieldRefs(\n schemaType: ObjectSchemaType,\n parent?: FieldRef,\n depth = 0\n): FieldRef[] {\n if (depth >= maxDepth) {\n return []\n }\n return schemaType.fields\n .filter((f) => !f.name.startsWith('_'))\n .flatMap((field) => {\n const path: Path = parent ? [...parent.path, field.name] : [field.name]\n const title = field.type.title ?? field.name\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: field.type,\n icon: getTypeIcon(field.type),\n }\n const fields =\n field.type.jsonType === 'object' ? getFieldRefs(field.type, fieldRef, depth + 1) : []\n\n const syntheticFields =\n field.type.jsonType === 'array' ? getSyntheticFields(field.type, fieldRef, depth + 1) : []\n if (!isAssistSupported(field.type)) {\n return [...fields, ...syntheticFields]\n }\n return [fieldRef, ...fields, ...syntheticFields]\n })\n}\n\nfunction getSyntheticFields(schemaType: ArraySchemaType, parent?: FieldRef, depth = 0) {\n if (depth >= maxDepth) {\n return []\n }\n\n return schemaType.of\n .filter((itemType) => !isType(itemType, 'block'))\n .flatMap((itemType) => {\n const segment = {_key: itemType.name}\n const title = itemType.title ?? itemType.name\n const path: Path = parent ? [...parent.path, segment] : [segment]\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: itemType,\n icon: getTypeIcon(itemType),\n synthetic: true,\n }\n const fields =\n itemType.jsonType === 'object' ? getFieldRefs(itemType, fieldRef, depth + 1) : []\n\n if (!isAssistSupported(itemType)) {\n return fields\n }\n return [fieldRef, ...fields]\n })\n}\n\nexport function getTypePath(doc: SanityDocumentLike, pathString: string) {\n if (!pathString) {\n return undefined\n }\n\n const path = stringToPath(pathString)\n const currentPath: Path = []\n let valid = true\n const syntheticPath = path.map((segment) => {\n currentPath.push(segment)\n\n if (isKeySegment(segment)) {\n const match = extractWithPath(pathToString(currentPath), doc)[0]\n const value = match?.value\n if (match && value && typeof value === 'object' && '_type' in value) {\n return {_key: value._type as string}\n }\n valid = false\n }\n return segment\n })\n\n return valid ? patchableKey(pathToString(syntheticPath)) : undefined\n}\n\n/**\n * mutator crashes if path contains certain letters\n * @param pathKey\n */\nfunction patchableKey(pathKey: string) {\n return pathKey.replace(/[=]=/g, ':').replace(/[[\\]]/g, '|').replace(/\"/g, '')\n}\n\nexport function useTypePath(doc: SanityDocumentLike, pathString: string) {\n return useMemo(() => getTypePath(doc, pathString), [doc, pathString])\n}\n\nexport function useSelectedField(\n documentSchemaType?: SchemaType,\n path?: string\n): FieldRef | undefined {\n const selectableFields = useMemo(\n () =>\n documentSchemaType && isObjectSchemaType(documentSchemaType)\n ? getFieldRefsWithDocument(documentSchemaType)\n : [],\n [documentSchemaType]\n )\n\n return useMemo(() => {\n return path ? selectableFields?.find((f) => f.key === path) : undefined\n }, [selectableFields, path])\n}\n\nexport function useSelectedFieldTitle() {\n const {params} = useAiPaneRouter()\n const {documentSchema} = useContext(SelectedFieldContext) ?? {}\n const selectedField = useSelectedField(documentSchema, params[fieldPathParam])\n return getFieldTitle(selectedField)\n}\n\nexport function getFieldTitle(field?: FieldRef) {\n const schemaType = field?.schemaType\n return field?.title ?? schemaType?.title ?? schemaType?.name ?? 'Untitled'\n}\n\nexport type AiPaneRouter = Omit<PaneRouterContextValue, 'setParams' | 'params'> & {\n params: AssistInspectorRouteParams\n setParams: (p: Record<keyof AssistInspectorRouteParams, string | undefined>) => void\n}\n\nexport function useAiPaneRouter() {\n const paneRouter = usePaneRouter()\n\n return useMemo(\n () => ({...paneRouter, params: paneRouter.params ?? {}} as AiPaneRouter),\n [paneRouter]\n )\n}\n","import {useEditState} from 'sanity'\n\nexport function useDocumentState<T>(id: string, docType: string): T | undefined {\n const state = useEditState(id, docType)\n return (state.draft || state.published) as T | undefined\n}\n","import {assistDocumentIdPrefix, assistDocumentStatusIdPrefix} from '../types'\n\nconst aiDocPrefixPattern = new RegExp(`^${assistDocumentIdPrefix}`)\n\nexport function publicId(id: string) {\n return id.replace('drafts.', '')\n}\n\nexport function assistDocumentId(documentType: string) {\n return `${assistDocumentIdPrefix}${documentType}`\n}\n\nexport function documentTypeFromAiDocumentId(id: string) {\n return id.replace(aiDocPrefixPattern, '')\n}\n\nexport function assistTasksStatusId(documentId: string) {\n return `${assistDocumentStatusIdPrefix}${publicId(documentId)}`\n}\n","import {minutesToMilliseconds} from 'date-fns'\n\nexport const releaseAnnouncementUrl =\n 'https://www.sanity.io/blog/sanity-ai-assist-announcement?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const instructionGuideUrl =\n 'https://sanity.io/guides/getting-started-with-ai-assist-instructions?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const giveFeedbackUrl = 'https://forms.gle/Kwz7CThxGeA2GiEU8'\n\nexport const salesUrl =\n 'https://www.sanity.io/contact/sales?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const packageName = '@sanity/assist'\n\nexport const pluginTitle = 'Sanity AI Assist'\n\nexport const pluginTitleShort = 'AI Assist'\n\nexport const maxHistoryVisibilityMs = minutesToMilliseconds(30)\n","import {useEffect, useMemo} from 'react'\nimport {\n assistDocumentTypeName,\n AssistTasksStatus,\n assistTasksStatusTypeName,\n InstructionTask,\n StudioAssistDocument,\n StudioAssistField,\n StudioInstruction,\n} from '../../types'\nimport {ObjectSchemaType, typed, useClient, useCurrentUser} from 'sanity'\nimport {useDocumentState} from './useDocumentState'\nimport {assistDocumentId, assistTasksStatusId} from '../../helpers/ids'\nimport {maxHistoryVisibilityMs} from '../../constants'\n\ninterface UseAssistDocumentProps {\n documentId: string\n schemaType: ObjectSchemaType\n initDoc?: boolean\n}\n\nexport function useStudioAssistDocument({\n documentId,\n schemaType,\n initDoc,\n}: UseAssistDocumentProps): StudioAssistDocument | undefined {\n const documentTypeName = schemaType.name\n const currentUser = useCurrentUser()\n\n const assistDocument = useDocumentState<StudioAssistDocument>(\n assistDocumentId(documentTypeName),\n assistDocumentTypeName\n )\n const assistTasksStatus = useDocumentState<AssistTasksStatus>(\n assistTasksStatusId(documentId ?? ''),\n assistTasksStatusTypeName\n )\n\n const client = useClient({apiVersion: '2023-01-01'})\n\n useEffect(() => {\n if (!assistDocument && initDoc) {\n client\n .createIfNotExists({\n _id: assistDocumentId(documentTypeName),\n _type: assistDocumentTypeName,\n })\n .catch((e) => {\n // best effort\n })\n }\n }, [client, assistDocument, documentTypeName, initDoc])\n\n return useMemo(() => {\n if (!assistDocument) {\n return undefined\n }\n const tasks = assistTasksStatus?.tasks ?? []\n const fields = (assistDocument?.fields ?? []).map((assistField): StudioAssistField => {\n return {\n ...assistField,\n tasks: tasks.filter((task) => task.path === assistField.path),\n instructions: assistField.instructions\n ?.filter((p) => !p.userId || p.userId === currentUser?.id)\n .map((instruction) => asStudioInstruction(instruction, tasks)),\n }\n })\n return typed<StudioAssistDocument>({\n ...assistDocument,\n tasks: tasks?.map((task) => {\n const instruction = fields\n .find((f) => f.path === task.path)\n ?.instructions?.find((i) => i._key === task.instructionKey)\n return {\n ...task,\n instruction,\n }\n }),\n fields: fields,\n })\n }, [assistDocument, assistTasksStatus, currentUser])\n}\n\nfunction asStudioInstruction(\n instruction: StudioInstruction,\n run: InstructionTask[]\n): StudioInstruction {\n return {\n ...instruction,\n tasks: run\n .filter((task) => task.instructionKey === instruction._key)\n .filter(\n (task) =>\n task.started &&\n new Date().getTime() - new Date(task.started).getTime() < maxHistoryVisibilityMs\n ),\n }\n}\n","import {useEffect, useReducer} from 'react'\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow'\n\nfunction useInterval(ms: number) {\n const [tick, update] = useReducer((n) => n + 1, 0)\n\n useEffect(() => {\n const i = setInterval(update, ms)\n return () => clearInterval(i)\n }, [ms])\n return tick\n}\n\nexport function TimeAgo({date}: {date?: string}) {\n useInterval(1000)\n const timeSince = formatDistanceToNow(date ? new Date(date) : new Date())\n return <span title={timeSince}>{timeSince} ago</span>\n}\n","import {documentRootKey, StudioInstruction} from '../types'\nimport {Path, pathToString} from 'sanity'\nimport {useMemo} from 'react'\n\nexport function usePathKey(path: Path | string) {\n return useMemo(() => {\n return getPathKey(path)\n }, [path])\n}\n\nexport function getPathKey(path: Path | string) {\n if (path.length) {\n return Array.isArray(path) ? pathToString(path) : path\n }\n return documentRootKey\n}\n\nexport function getInstructionTitle(instruction?: StudioInstruction) {\n return instruction?.title ?? 'Untitled'\n}\n","import {AssistTasksStatus, InstructionTask, StudioInstruction, TaskEndedReason} from '../types'\nimport {createElement, ForwardedRef, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {\n Box,\n Button,\n Card,\n Flex,\n Popover,\n Spinner,\n Stack,\n Text,\n useClickOutside,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {\n CheckmarkCircleIcon,\n ClockIcon,\n CloseCircleIcon,\n ErrorOutlineIcon,\n SyncIcon,\n} from '@sanity/icons'\nimport {TimeAgo} from '../components/TimeAgo'\nimport {StatusButton, StatusButtonProps, typed, useClient} from 'sanity'\nimport {getInstructionTitle} from '../helpers/misc'\nimport styled, {keyframes} from 'styled-components'\nimport {assistTasksStatusId} from '../helpers/ids'\nimport {maxHistoryVisibilityMs, pluginTitle} from '../constants'\n\nexport interface InstructionTaskHistoryButtonProps {\n documentId?: string\n tasks: InstructionTask[] | undefined\n instructions: StudioInstruction[] | undefined\n showTitles: boolean\n}\n\ninterface CancelableInstructionTask extends InstructionTask {\n cancel: () => void\n title?: string\n}\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n`\n\nconst SyncSpinningIcon = styled(SyncIcon)`\n animation: ${rotate} 1s linear infinite;\n`\n\nconst TASK_CONFIG = {\n aborted: {\n title: 'Canceled',\n icon: CloseCircleIcon,\n tone: 'transparent',\n },\n error: {\n title: 'Error',\n icon: ErrorOutlineIcon,\n tone: 'critical',\n },\n success: {\n title: 'Completed',\n icon: CheckmarkCircleIcon,\n tone: 'positive',\n },\n timeout: {\n title: 'Timeout',\n icon: ClockIcon,\n tone: 'caution',\n },\n} as const\n\nexport function InstructionTaskHistoryButton(props: InstructionTaskHistoryButtonProps) {\n const {tasks, instructions, documentId, showTitles} = props\n\n const client = useClient({apiVersion: '2023-01-01'})\n const cancelRun = useCallback(\n (taskKey: string) => {\n if (!documentId) {\n return\n }\n const statusDocId = assistTasksStatusId(documentId)\n const basePath = `${typed<keyof AssistTasksStatus>('tasks')}[_key==\"${taskKey}\"]`\n client\n .patch(statusDocId)\n .set({\n [`${basePath}.${typed<keyof InstructionTask>('ended')}`]: new Date().toISOString(),\n [`${basePath}.${typed<keyof InstructionTask>('reason')}`]:\n typed<TaskEndedReason>('aborted'),\n })\n .commit()\n .catch(console.error)\n },\n [client, documentId]\n )\n\n const titledTasks = useMemo(() => {\n const t =\n tasks\n ?.filter(\n (task) =>\n task.started &&\n new Date().getTime() - new Date(task.started).getTime() < maxHistoryVisibilityMs\n )\n .map((task): CancelableInstructionTask => {\n const instruction = instructions?.find((i) => i._key === task.instructionKey)\n return {\n ...task,\n title: showTitles ? task.title ?? getInstructionTitle(instruction) : undefined,\n cancel: () => cancelRun(task._key),\n }\n }) ?? []\n t.sort((a, b) => new Date(b.started ?? '').getTime() - new Date(a.started ?? '').getTime())\n return t\n }, [tasks, instructions, cancelRun, showTitles])\n\n // const id = useId()\n\n const isRunning = useMemo(() => titledTasks.some((r) => !r.ended), [titledTasks])\n const hasErrors = useMemo(\n () => titledTasks.some((r) => r.reason === 'error' || r.reason === 'timeout'),\n [titledTasks]\n )\n\n const [open, setOpen] = useState(false)\n\n const toggleOpen = useCallback(() => setOpen((v) => !v), [])\n\n const [button, setButton] = useState<HTMLButtonElement | null>(null)\n const [popover, setPopover] = useState<HTMLDivElement | null>(null)\n\n const handleClickOutside = useCallback(() => {\n setOpen(false)\n }, [])\n\n useClickOutside(handleClickOutside, [button, popover])\n\n const handleEscape = useCallback(() => {\n setOpen(false)\n button?.focus()\n }, [button])\n\n return (\n <Popover\n constrainSize\n content={<TaskList onEscape={handleEscape} tasks={titledTasks} />}\n open={open && !!titledTasks?.length}\n placement=\"top\"\n portal\n ref={setPopover}\n width={0}\n >\n <TaskStatusButton\n disabled={!titledTasks?.length}\n hasErrors={hasErrors}\n isRunning={isRunning}\n onClick={toggleOpen}\n ref={setButton}\n selected={open}\n />\n </Popover>\n )\n}\n\nconst TASK_STATUS_BUTTON_TOOLTIP_PROPS: StatusButtonProps['tooltipProps'] = {\n placement: 'top',\n}\n\nconst TaskStatusButton = forwardRef(function TaskStatusButton(\n props: {\n disabled: boolean\n hasErrors: boolean\n isRunning: boolean\n onClick: () => void\n selected: boolean\n },\n ref: ForwardedRef<HTMLButtonElement>\n) {\n const {disabled, hasErrors, isRunning, onClick, selected} = props\n\n return (\n <StatusButton\n label={`${pluginTitle} status`}\n icon={isRunning ? SyncSpinningIcon : hasErrors ? ErrorOutlineIcon : CheckmarkCircleIcon}\n mode=\"bleed\"\n onClick={onClick}\n tone={hasErrors ? 'critical' : undefined}\n disabled={disabled}\n ref={ref}\n selected={selected}\n tooltipProps={TASK_STATUS_BUTTON_TOOLTIP_PROPS}\n />\n )\n})\n\nfunction TaskList(props: {onEscape: () => void; tasks: CancelableInstructionTask[]}) {\n const {onEscape, tasks} = props\n\n const {isTopLayer} = useLayer()\n\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (isTopLayer && event.key === 'Escape') {\n onEscape()\n }\n },\n [isTopLayer, onEscape]\n )\n )\n\n return (\n <Stack padding={1} space={1}>\n {tasks.map((task) => (\n <TaskItem key={task._key} task={task} />\n ))}\n </Stack>\n )\n}\n\nfunction TaskItem(props: {task: CancelableInstructionTask}) {\n const {task} = props\n\n const taskType = task.reason && TASK_CONFIG[task.reason]\n return (\n <Card radius={2} tone={taskType && taskType?.tone}>\n <Flex align=\"center\" gap={1}>\n <Flex align=\"flex-start\" flex={1} gap={3} padding={3}>\n <Box flex=\"none\">\n <Text size={1}>\n {taskType && createElement(taskType.icon)}\n {!task.reason && <Spinner />}\n </Text>\n </Box>\n <Stack flex={1} space={2}>\n <Text size={1} weight=\"medium\">\n {taskType ? taskType.title : 'Running'}\n {task.title && <>: {task.title}</>}\n </Text>\n {task.message ? <Text size={1}>{task.message}</Text> : null}\n <Text muted size={1}>\n <TimeAgo date={task.ended ?? task.started} />\n </Text>\n </Stack>\n </Flex>\n\n {!task.ended && (\n <Box flex=\"none\" padding={1}>\n <Button fontSize={1} mode=\"bleed\" onClick={task.cancel} text=\"Cancel\" />\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {Path, pathToString, useClient, useCurrentUser, useSchema} from 'sanity'\nimport {useCallback, useMemo, useState} from 'react'\nimport {serializeSchema} from './schemas/serialize/serializeSchema'\nimport {useToast} from '@sanity/ui'\nimport {SanityClient} from '@sanity/client'\nimport {FieldLanguageMap} from './translate/paths'\nimport {documentRootKey} from './types'\nimport {ConditionalMemberState} from './helpers/conditionalMembers'\n\nexport interface UserTextInstance {\n blockKey: string\n userInput: string\n}\n\nexport interface RunInstructionRequest {\n documentId: string\n assistDocumentId: string\n path: string\n typePath?: string\n instructionKey: string\n userId?: string\n userTexts?: UserTextInstance[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nexport interface InstructStatus {\n enabled: boolean\n initialized: boolean\n validToken: boolean\n}\n\nexport interface TranslateRequest {\n documentId: string\n translatePath: Path\n languagePath?: string\n fieldLanguageMap?: FieldLanguageMap[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nconst basePath = '/assist/tasks/instruction'\n\nexport function canUseAssist(status: InstructStatus | undefined) {\n return status?.enabled && status.initialized && status.validToken\n}\n\nexport function useApiClient(customApiClient?: (defaultClient: SanityClient) => SanityClient) {\n const client = useClient({apiVersion: '2023-06-05'})\n return useMemo(\n () => (customApiClient ? customApiClient(client) : client),\n [client, customApiClient]\n )\n}\n\nexport function useTranslate(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const translate = useCallback(\n ({\n documentId,\n languagePath,\n translatePath,\n fieldLanguageMap,\n conditionalMembers,\n }: TranslateRequest) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/translate/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n documentId,\n types,\n languagePath,\n fieldLanguageMap,\n conditionalMembers,\n translatePath:\n translatePath.length === 0 ? documentRootKey : pathToString(translatePath),\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Translate failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n translate,\n loading,\n }),\n [translate, loading]\n )\n}\n\nexport function useGenerateCaption(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateCaption = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-caption/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image description failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateCaption,\n loading,\n }),\n [generateCaption, loading]\n )\n}\n\nexport function useGenerateImage(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateImage = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-image/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image from prompt failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateImage,\n loading,\n }),\n [generateImage, loading]\n )\n}\n\nexport function useGetInstructStatus(apiClient: SanityClient) {\n const [loading, setLoading] = useState(true)\n\n const getInstructStatus = useCallback(async () => {\n setLoading(true)\n\n const projectId = apiClient.config().projectId\n try {\n const status = await apiClient.request<InstructStatus>({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/status?projectId=${projectId}`,\n })\n\n return status\n } finally {\n setLoading(false)\n }\n }, [setLoading, apiClient])\n\n return {\n loading,\n getInstructStatus,\n }\n}\n\nexport function useInitInstruct(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const initInstruct = useCallback(() => {\n setLoading(true)\n return apiClient\n .request({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/init?projectId=${\n apiClient.config().projectId\n }`,\n })\n .finally(() => {\n setLoading(false)\n })\n }, [setLoading, apiClient])\n\n return {\n loading,\n initInstruct,\n }\n}\n\nexport function useRunInstructionApi(apiClient: SanityClient) {\n const toast = useToast()\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n\n const runInstruction = useCallback(\n (request: RunInstructionRequest) => {\n setLoading(true)\n return apiClient\n .request({\n method: 'POST',\n url: `${basePath}/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n ...request,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Instruction failed',\n description: e.message,\n })\n throw e\n })\n .finally(() => {\n setLoading(false)\n })\n },\n [apiClient, types, user, toast]\n )\n\n return useMemo(\n () => ({\n runInstruction,\n loading,\n }),\n [runInstruction, loading]\n )\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {AssistPluginConfig} from '../plugin'\nimport {InstructStatus, useApiClient, useGetInstructStatus, useInitInstruct} from '../useApiClient'\n\nexport interface AiAssistanceConfigContextValue {\n config: AssistPluginConfig\n status?: InstructStatus\n statusLoading: boolean\n initLoading: boolean\n init: () => void\n error?: Error\n}\n\nexport const AiAssistanceConfigContext = createContext<AiAssistanceConfigContextValue>({} as any)\n\nexport function useAiAssistanceConfig() {\n const context = useContext(AiAssistanceConfigContext)\n if (!context) {\n throw new Error('Missing AiAssistanceConfigContext')\n }\n return context\n}\n\nexport function AiAssistanceConfigProvider(props: {\n children?: ReactNode\n config: AssistPluginConfig\n}) {\n const [status, setStatus] = useState<InstructStatus | undefined>()\n const [error, setError] = useState<Error | undefined>()\n\n const apiClient = useApiClient(props.config?.__customApiClient)\n const {getInstructStatus, loading: statusLoading} = useGetInstructStatus(apiClient)\n const {initInstruct, loading: initLoading} = useInitInstruct(apiClient)\n\n useEffect(() => {\n getInstructStatus()\n .then((s) => setStatus(s))\n .catch((e) => {\n console.error(e)\n setError(e as Error)\n })\n }, [getInstructStatus])\n\n const init = useCallback(async () => {\n setError(undefined)\n try {\n await initInstruct()\n const status = await getInstructStatus()\n setStatus(status)\n } catch (e) {\n console.error('Failed to init ai assistance', e)\n setError(e as Error)\n }\n }, [initInstruct, getInstructStatus, setStatus])\n\n const {config, children} = props\n const context = useMemo<AiAssistanceConfigContextValue>(() => {\n return {\n config,\n status,\n statusLoading,\n init,\n initLoading,\n error,\n }\n }, [config, status, init, statusLoading, initLoading, error])\n\n return (\n <AiAssistanceConfigContext.Provider value={context}>\n {children}\n </AiAssistanceConfigContext.Provider>\n )\n}\n","import {Button, Dialog, Flex, Stack, Text, TextArea, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {PlayIcon} from '@sanity/icons'\nimport {\n createContext,\n Dispatch,\n FormEvent,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {UserInputBlock, userInputTypeName} from '../types'\nimport {RunInstructionArgs} from './AssistLayout'\nimport {useApiClient, useRunInstructionApi} from '../useApiClient'\nimport {useAiAssistanceConfig} from './AiAssistanceConfigContext'\nimport {FormFieldHeaderText} from 'sanity'\n\ntype BlockInputs = Record<string, string>\nconst NO_INPUT: BlockInputs = {}\n\nexport interface RunInstructionContextValue {\n runInstruction: (req: RunInstructionArgs) => void\n instructionLoading: boolean\n}\n\nexport const RunInstructionContext = createContext<RunInstructionContextValue>({\n runInstruction: () => {},\n instructionLoading: false,\n})\n\nexport function useRunInstruction() {\n return useContext(RunInstructionContext)\n}\n\nfunction isUserInputBlock(block: {_type: string}): block is UserInputBlock {\n return block._type === userInputTypeName\n}\n\nexport function RunInstructionProvider(props: PropsWithChildren<{}>) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {runInstruction: runInstructionRequest, loading} = useRunInstructionApi(apiClient)\n\n const id = useId()\n\n const [inputs, setInputs] = useState(NO_INPUT)\n const [runRequest, setRunRequest] = useState<\n (RunInstructionArgs & {userInputBlocks: UserInputBlock[]}) | undefined\n >()\n\n const runInstruction = useCallback(\n (req: RunInstructionArgs) => {\n if (loading) {\n return\n }\n const {instruction, ...request} = req\n const instructionKey = instruction._key\n const userInputBlocks = instruction?.prompt\n ?.flatMap((block) =>\n block._type === 'block' ? block.children.filter(isUserInputBlock) : [block]\n )\n .filter(isUserInputBlock)\n\n if (!userInputBlocks?.length) {\n runInstructionRequest({\n ...request,\n instructionKey,\n userTexts: undefined,\n })\n return\n }\n\n setRunRequest({\n ...req,\n userInputBlocks,\n })\n },\n [setRunRequest, runInstructionRequest, loading]\n )\n\n const close = useCallback(() => {\n setRunRequest(undefined)\n setInputs(NO_INPUT)\n }, [setRunRequest, setInputs])\n\n const runWithInput = useCallback(() => {\n if (runRequest) {\n const {instruction, userTexts, ...request} = runRequest\n runInstructionRequest({\n ...request,\n instructionKey: instruction._key,\n userTexts: Object.entries(inputs).map(([key, value]) => ({\n blockKey: key,\n userInput: value,\n })),\n })\n }\n close()\n }, [close, runInstructionRequest, runRequest, inputs])\n\n const open = !!runRequest\n\n const runDisabled = useMemo(\n () =>\n (runRequest?.userInputBlocks?.length ?? 0) >\n Object.entries(inputs).filter(([, value]) => !!value).length,\n [runRequest?.userInputBlocks, inputs]\n )\n\n const runButton = (\n <Button\n text=\"Run instruction\"\n onClick={runWithInput}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n />\n )\n\n const contextValue: RunInstructionContextValue = useMemo(\n () => ({runInstruction, instructionLoading: loading}),\n [runInstruction, loading]\n )\n\n return (\n <RunInstructionContext.Provider value={contextValue}>\n {open ? (\n <Dialog\n id={id}\n open={open}\n onClose={close}\n width={1}\n header={getInstructionTitle(runRequest?.instruction)}\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>Unable to run instruction. All fields must have a value.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n <Stack padding={4} space={2}>\n {runRequest?.userInputBlocks?.map((block, i) => (\n <UserInput\n key={block._key}\n block={block}\n autoFocus={i === 0}\n inputs={inputs}\n setInputs={setInputs}\n />\n ))}\n </Stack>\n </Dialog>\n ) : null}\n {props.children}\n </RunInstructionContext.Provider>\n )\n}\n\nfunction UserInput(props: {\n block: UserInputBlock\n inputs: BlockInputs\n setInputs: Dispatch<SetStateAction<BlockInputs>>\n autoFocus?: boolean\n}) {\n const {block, autoFocus, setInputs, inputs} = props\n const key = block._key\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n\n const onChange = useCallback(\n (e: FormEvent<HTMLTextAreaElement>) => {\n setInputs((current) => ({\n ...current,\n [key]: (e.currentTarget ?? e.target).value,\n }))\n },\n [key, setInputs]\n )\n\n const value = useMemo(() => inputs[key], [inputs, key])\n\n useEffect(() => {\n if (!autoFocus) {\n return\n }\n setTimeout(() => textAreaRef.current?.focus(), 0)\n }, [autoFocus])\n\n return (\n <Stack padding={2} space={3}>\n <FormFieldHeaderText\n title={block?.message ?? 'Provide more context'}\n description={block.description}\n />\n <TextArea\n ref={textAreaRef}\n rows={4}\n value={value}\n onChange={onChange}\n style={{resize: 'vertical'}}\n />\n </Stack>\n )\n}\n","import {useRunInstruction} from '../assistLayout/RunInstructionProvider'\nimport {useCallback, useEffect, useState} from 'react'\nimport {ObjectSchemaType, PatchEvent, SanityDocument, unset} from 'sanity'\nimport {publicId} from '../helpers/ids'\n\nexport interface DraftDelayedTaskArgs<T> {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n task: (args: T) => void\n}\n\nexport function isDocAssistable(\n documentSchemaType: ObjectSchemaType,\n published?: SanityDocument | null,\n draft?: SanityDocument | null\n) {\n return !!(documentSchemaType.liveEdit ? published : draft)\n}\n\nexport function getAssistableDocId(documentSchemaType: ObjectSchemaType, documentId: string) {\n const baseId = publicId(documentId)\n return documentSchemaType.liveEdit ? baseId : `drafts.${baseId}`\n}\n\nexport function useRequestRunInstruction(args: {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n}) {\n const {runInstruction, instructionLoading} = useRunInstruction()\n const requestRunInstruction = useDraftDelayedTask({\n ...args,\n task: runInstruction,\n })\n\n return {\n instructionLoading,\n requestRunInstruction,\n }\n}\n\n/**\n * Ensures that the current document is a draft before running task\n */\nexport function useDraftDelayedTask<T>(args: DraftDelayedTaskArgs<T>) {\n const {documentOnChange, isDocAssistable, task} = args\n\n const [queuedArgs, setQueuedArgs] = useState<T | undefined>(undefined)\n\n useEffect(() => {\n if (queuedArgs && isDocAssistable) {\n task(queuedArgs)\n setQueuedArgs(undefined)\n }\n }, [queuedArgs, isDocAssistable, task])\n\n return useCallback(\n (taskArgs: T) => {\n // make a dummy edit: this will trigger the document/draft to be created\n documentOnChange(PatchEvent.from([unset(['_force_document_creation'])]))\n setQueuedArgs(taskArgs)\n },\n [setQueuedArgs, documentOnChange]\n )\n}\n","import {Box, Button, Container, Flex, Stack, Text} from '@sanity/ui'\nimport {SparklesIcon} from '@sanity/icons'\nimport {releaseAnnouncementUrl} from '../constants'\nimport styled from 'styled-components'\n\nconst SparklesIllustration = styled(SparklesIcon)({\n fontSize: '3.125em',\n '& path': {\n strokeWidth: `0.6px !important`,\n },\n})\n\nexport function InspectorOnboarding(props: {onDismiss: () => void}) {\n const {onDismiss} = props\n return (\n <Box padding={4}>\n <Container width={0}>\n <Stack space={4}>\n <div style={{textAlign: 'center'}}>\n <SparklesIllustration />\n </div>\n <Text align=\"center\" size={1}>\n Create reusable AI instructions that can be applied across all documents of a certain\n type.\n </Text>\n\n <Flex align=\"center\" gap={2} justify=\"center\">\n <Button\n as=\"a\"\n href={releaseAnnouncementUrl}\n rel=\"noreferrer\"\n target=\"_blank\"\n fontSize={1}\n mode=\"default\"\n onClick={onDismiss}\n padding={2}\n text=\"Learn more\"\n tone=\"primary\"\n />\n <Button fontSize={1} mode=\"bleed\" onClick={onDismiss} padding={2} text=\"Dismiss\" />\n </Flex>\n </Stack>\n </Container>\n </Box>\n )\n}\n","import {useCallback, useState} from 'react'\n\nexport const inspectorOnboardingKey = 'sanityStudio:assist:inspector:onboarding:dismissed'\nexport const fieldOnboardingKey = 'sanityStudio:assist:field:onboarding:dismissed'\n\nexport function isFeatureOnboardingDismissed(featureKey: string): boolean {\n if (typeof localStorage === 'undefined') {\n return false\n }\n\n const value = localStorage.getItem(featureKey)\n return value === 'true'\n}\n\nexport function dismissFeatureOnboarding(featureKey: string) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(featureKey, 'true')\n}\n\nexport function useOnboardingFeature(featureKey: string) {\n const [showOnboarding, setShowOnboarding] = useState(\n () => !isFeatureOnboardingDismissed(featureKey)\n )\n const dismissOnboarding = useCallback(() => {\n setShowOnboarding(false)\n dismissFeatureOnboarding(featureKey)\n }, [setShowOnboarding, featureKey])\n\n return {showOnboarding, dismissOnboarding}\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {instructionParam} from '../../../types'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../../../assistInspector/constants'\n\nexport function BackToInstructionListLink() {\n const {openInspector} = useDocumentPane()\n\n const goBack = useCallback(\n () => openInspector(aiInspectorId, {[instructionParam]: undefined as any}),\n [openInspector]\n )\n\n return (\n <div>\n <Button\n as=\"a\"\n fontSize={1}\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n padding={1}\n space={2}\n onClick={goBack}\n text=\" Instructions\"\n textAlign=\"left\"\n />\n </div>\n )\n}\n","import {\n AssistDocument,\n AssistField,\n assistFieldTypeName,\n AssistInspectorRouteParams,\n documentRootKey,\n fieldPathParam,\n instructionParam,\n StudioInstruction,\n} from '../../types'\nimport {createContext, useContext, useEffect, useMemo, useRef} from 'react'\nimport {\n FormCallbacksProvider,\n FormCallbacksValue,\n FormInput,\n insert,\n KeyedSegment,\n ObjectInputProps,\n ObjectSchemaType,\n PatchEvent,\n Path,\n SchemaType,\n set,\n setIfMissing,\n stringToPath,\n typed,\n useFormCallbacks,\n useSchema,\n} from 'sanity'\nimport {BackToInstructionListLink} from './instruction/BackToInstructionsLink'\nimport {useAiPaneRouter} from '../../assistInspector/helpers'\nimport {SelectedFieldContextProvider, SelectedFieldContextValue} from './SelectedFieldContext'\nimport {Card, Stack, Text} from '@sanity/ui'\nimport {documentTypeFromAiDocumentId} from '../../helpers/ids'\nimport {useAiAssistanceConfig} from '../../assistLayout/AiAssistanceConfigContext'\n\nconst EMPTY_FIELDS: AssistField[] = []\n\nexport const TypePathContext = createContext<string | undefined>(undefined)\n\nexport function AssistDocumentForm(props: ObjectInputProps) {\n if (props.readOnly) {\n return (\n <Card border tone=\"caution\" padding={2}>\n <Text size={1}> You do not have sufficient permissions to manage instructions.</Text>\n </Card>\n )\n }\n return <AssistDocumentFormEditable {...props} />\n}\nfunction AssistDocumentFormEditable(props: ObjectInputProps) {\n const {onChange} = props\n const value = props.value as AssistDocument | undefined\n const id = value?._id\n const fields = value?.fields\n\n const targetDocumentType = useMemo(() => {\n if (!id) {\n return undefined\n }\n return documentTypeFromAiDocumentId(id)\n }, [id])\n\n const {params, setParams} = useAiPaneRouter()\n const pathKey = params[fieldPathParam]\n const typePath = useContext(TypePathContext)\n const instruction = params[instructionParam]\n\n const activeKey = useMemo(() => {\n if (!typePath) {\n return undefined\n }\n return (fields ?? EMPTY_FIELDS).find((f) => f.path === typePath)?._key\n }, [fields, typePath])\n\n const activePath: Path | undefined = useMemo(() => {\n if (!activeKey) {\n return undefined\n }\n const base = ['fields', {_key: activeKey}]\n return instruction ? [...base, 'instructions', {_key: instruction}] : base\n }, [activeKey, instruction])\n\n const schema = useSchema()\n const documentSchema: ObjectSchemaType | undefined = useMemo(() => {\n if (!targetDocumentType) {\n return undefined\n }\n return schema.get(targetDocumentType) as ObjectSchemaType\n }, [schema, targetDocumentType])\n\n const fieldSchema = useSelectedSchema(pathKey, documentSchema)\n\n const context: SelectedFieldContextValue = useMemo(\n () => ({\n documentSchema,\n fieldSchema: fieldSchema ?? documentSchema,\n }),\n [fieldSchema, documentSchema]\n )\n\n const title = value?.title\n\n useEffect(() => {\n if (!title && documentSchema && !id?.startsWith('drafts.')) {\n onChange(set(documentSchema.title ?? documentSchema.name, ['title']))\n }\n }, [title, documentSchema, onChange, id])\n\n const {onPathOpen, ...formCallbacks} = useFormCallbacks()\n\n const newCallbacks: FormCallbacksValue = useMemo(\n () => ({\n ...formCallbacks,\n onPathOpen: (path) => {\n if (!instruction && path.length === 4 && path[2] === 'instructions') {\n setParams(\n typed<AssistInspectorRouteParams>({\n ...params,\n [instructionParam]: (path[3] as KeyedSegment)?._key,\n }) as Record<keyof AssistInspectorRouteParams, string | undefined>\n )\n onPathOpen([])\n } else {\n setTimeout(() => onPathOpen(path), 0)\n }\n },\n }),\n [formCallbacks, onPathOpen, params, setParams, instruction]\n )\n\n useEffect(() => {\n if (activePath && !instruction) {\n onPathOpen([])\n }\n }, [activePath, instruction, onPathOpen])\n\n return (\n <SelectedFieldContextProvider value={context}>\n <Stack space={5}>\n <FieldsInitializer\n key={typePath}\n pathKey={typePath}\n activePath={activePath}\n fields={fields}\n documentSchema={documentSchema}\n onChange={onChange}\n />\n {instruction && <BackToInstructionListLink />}\n\n {activePath && (\n <FormCallbacksProvider {...newCallbacks}>\n <div style={{lineHeight: '1.25em'}}>\n <FormInput {...props} absolutePath={activePath} />\n </div>\n </FormCallbacksProvider>\n )}\n\n {!activePath && props.renderDefault(props)}\n </Stack>\n </SelectedFieldContextProvider>\n )\n}\n\nfunction useSelectedSchema(\n fieldPath: string | undefined,\n documentSchema: ObjectSchemaType | undefined\n): SchemaType | undefined {\n return useMemo(() => {\n if (!fieldPath) {\n return undefined\n }\n if (fieldPath === documentRootKey) {\n return documentSchema\n }\n\n const path = stringToPath(fieldPath)\n let currentSchema: ObjectSchemaType | undefined = documentSchema\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n const field = currentSchema?.fields.find((f) => f.name === segment)\n if (!field) {\n return undefined\n }\n if (i === path.length - 1) {\n return field.type\n }\n if (field.type.jsonType !== 'object') {\n return undefined\n }\n currentSchema = field.type\n }\n return currentSchema\n }, [documentSchema, fieldPath])\n}\n\nfunction FieldsInitializer({\n pathKey,\n activePath,\n fields,\n documentSchema,\n onChange,\n}: {\n pathKey?: string\n activePath?: Path\n fields: AssistField[] | undefined\n documentSchema: ObjectSchemaType | undefined\n onChange: ObjectInputProps['onChange']\n}) {\n const {\n config: {__presets: presets},\n } = useAiAssistanceConfig()\n\n const existingField = fields?.find((f) => f._key === pathKey)\n const documentPresets = !!documentSchema?.name && presets?.[documentSchema?.name]\n\n const missingPresetInstructions = useMemo(() => {\n if (!documentPresets || !pathKey) {\n return undefined\n }\n const existingInstructions = existingField?.instructions\n const presetField = documentPresets.fields?.find((f) => f.path === pathKey)\n return presetField?.instructions?.filter(\n (i) => !existingInstructions?.some((ei) => ei._key === i._key)\n )\n }, [documentPresets, pathKey, existingField])\n\n // need this to not fire onChange twice in React strict mode\n const initialized = useRef(false)\n useEffect(() => {\n if (initialized.current || !pathKey) {\n return\n }\n if (existingField && !missingPresetInstructions?.length) {\n return\n }\n\n let event = PatchEvent.from([setIfMissing([], ['fields'])])\n if (!existingField) {\n event = event.append(\n insert(\n [\n typed<AssistField>({\n _key: pathKey,\n _type: assistFieldTypeName,\n path: pathKey,\n instructions: [],\n }),\n ],\n 'after',\n ['fields', -1]\n )\n )\n }\n\n if (!existingField?.instructions?.length) {\n event = event.append([setIfMissing([], ['fields', {_key: pathKey}, 'instructions'])])\n }\n\n if (missingPresetInstructions?.length) {\n event = event.append(\n insert(\n missingPresetInstructions.map(\n (preset): StudioInstruction => ({\n ...preset,\n _type: 'sanity.assist.instruction',\n prompt: preset.prompt?.map((p) => ({markDefs: [], ...p})),\n })\n ),\n 'after',\n ['fields', {_key: pathKey}, 'instructions', -1]\n )\n )\n }\n onChange(event)\n initialized.current = true\n }, [activePath, onChange, pathKey, existingField, missingPresetInstructions])\n\n return null\n}\n","import {SearchIcon} from '@sanity/icons'\nimport {Autocomplete, Box, Breadcrumbs, Card, Flex, Text} from '@sanity/ui'\nimport {createElement, useCallback, useMemo} from 'react'\nimport {FieldRef, getFieldRefs, getFieldRefsWithDocument} from './helpers'\nimport {ObjectSchemaType} from 'sanity'\nimport {isType} from '../helpers/typeUtils'\n\ninterface FieldSelectorProps {\n id: string\n schemaType: ObjectSchemaType\n fieldPath?: string\n onSelect: (path: string) => void\n includeDocument?: boolean\n filter?: (field: FieldRef) => boolean\n}\n\nexport function FieldAutocomplete(props: FieldSelectorProps) {\n const {id, schemaType, fieldPath, onSelect, includeDocument, filter} = props\n\n const fieldRefs = useMemo(() => {\n if (includeDocument) {\n return getFieldRefsWithDocument(schemaType)\n }\n return getFieldRefs(schemaType)\n }, [schemaType, includeDocument])\n const currentField = useMemo(\n () => fieldRefs.find((f) => f.key === fieldPath),\n [fieldPath, fieldRefs]\n )\n\n const autocompleteOptions = useMemo(\n () =>\n fieldRefs\n .filter((field) => (filter ? filter(field) : true))\n .filter((f) => !isType(f.schemaType, 'reference'))\n .map((field) => ({value: field.key, field})),\n [fieldRefs, filter]\n )\n\n const renderOption = useCallback((option: {value: string; field: FieldRef}) => {\n const {value, field} = option\n\n if (!value) {\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Text accent size={1}>\n {option.value}\n </Text>\n </Card>\n )\n }\n\n if (isType(field.schemaType, 'document')) {\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Text size={1} weight=\"semibold\">\n The entire document\n </Text>\n </Card>\n )\n }\n\n return (\n <Card as=\"button\" padding={3} radius={1}>\n <Flex gap={3}>\n <Text size={1}>{createElement(field.icon)}</Text>\n\n <FieldTitle field={field} />\n </Flex>\n </Card>\n )\n }, [])\n\n const renderValue = useCallback((value: string, option?: {value: string; field: FieldRef}) => {\n return option?.field.title ?? value\n }, [])\n\n const filterOption = useCallback((query: string, option: {value: string; field: FieldRef}) => {\n const lQuery = query.toLowerCase()\n return (\n option?.value?.toLowerCase().includes(lQuery) ||\n option?.field?.title?.toLowerCase().includes(lQuery)\n )\n }, [])\n\n return (\n <Autocomplete\n fontSize={1}\n icon={currentField ? currentField.icon : SearchIcon}\n onChange={onSelect}\n openButton\n id={id}\n options={autocompleteOptions}\n placeholder=\"Search for a field\"\n radius={2}\n renderOption={renderOption}\n renderValue={renderValue}\n value={currentField?.key}\n filterOption={filterOption}\n />\n )\n}\n\nexport function FieldTitle(props: {field: FieldRef}) {\n const splitTitle = props.field.title.split('/')\n return (\n <Box flex=\"none\">\n <Breadcrumbs\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n marginTop: '-4px',\n }}\n separator={\n <Box marginTop={1}>\n <Text muted size={1}>\n /\n </Text>\n </Box>\n }\n space={1}\n >\n {splitTitle.slice(0, splitTitle.length - 1).map((pt, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Box key={i} marginTop={1}>\n <Text muted size={1}>\n {pt.trim()}\n </Text>\n </Box>\n ))}\n <Box marginTop={1}>\n <Text size={1} weight=\"medium\">\n {splitTitle[splitTitle.length - 1]}\n </Text>\n </Box>\n </Breadcrumbs>\n </Box>\n )\n}\n","/* eslint-disable max-depth */\nimport {\n ArrayOfObjectsFormNode,\n ArrayOfObjectsItemMember,\n ArrayOfPrimitivesFormNode,\n DocumentFormNode,\n FieldsetState,\n isObjectSchemaType,\n ObjectFormNode,\n Path,\n pathToString,\n SchemaType,\n} from 'sanity'\n\nconst MAX_DEPTH = 8\n\nexport interface ConditionalMemberState {\n path: string\n hidden: boolean\n readOnly: boolean\n}\n\ninterface ConditionalMemberInnerState extends ConditionalMemberState {\n conditional: boolean\n}\n\n/**\n * This is used to statically determine the state of the functions on the server-side.\n * Paths which has a schema with conditional config should be considered hidden: true and/or readOnly: true\n * Only conditional paths are included, as static props can be determined from schema.\n *\n * Returns paths that has conditional hidden or readOnly schema config (function) and that.\n * Form-state does not contain hidden members.\n *\n * Note:\n * * If a parent path is hidden, no child paths are included\n * * If a parent path is readOnly, no child paths are included\n * * If a path is hidden, it is not included; only conditionally visible paths will be returned, with hidden: false\n */\nexport function getConditionalMembers(docState: DocumentFormNode): ConditionalMemberState[] {\n const doc: ConditionalMemberInnerState = {\n path: '',\n hidden: false,\n readOnly: !!docState.readOnly,\n conditional: typeof docState.schemaType.hidden === 'function',\n }\n return [doc, ...extractConditionalPaths(docState, MAX_DEPTH)]\n .filter((v) => v.conditional)\n .map(({conditional, ...state}) => ({...state}))\n}\n\nfunction isConditional(schemaType: SchemaType) {\n return typeof schemaType.hidden === 'function' || typeof schemaType.readOnly === 'function'\n}\n\nfunction conditionalState(memberState: {\n path: Path\n schemaType: SchemaType\n readOnly?: boolean\n}): ConditionalMemberInnerState {\n return {\n path: pathToString(memberState.path),\n readOnly: !!memberState.readOnly,\n hidden: false, // if its in members, its not hidden\n conditional: isConditional(memberState.schemaType),\n }\n}\n\nfunction extractConditionalPaths(\n node: ObjectFormNode | FieldsetState,\n maxDepth: number\n): ConditionalMemberInnerState[] {\n if (node.path.length >= maxDepth) {\n return []\n }\n\n return node.members.reduce<ConditionalMemberInnerState[]>((acc, member) => {\n if (member.kind === 'error') {\n return acc\n }\n if (member.kind === 'field') {\n const schemaType = member.field.schemaType\n if (schemaType.jsonType === 'object') {\n const innerFields = member.field.readOnly\n ? []\n : extractConditionalPaths(member.field as ObjectFormNode, maxDepth)\n return [...acc, conditionalState(member.field), ...innerFields]\n } else if (schemaType.jsonType === 'array') {\n const array = member.field as ArrayOfObjectsFormNode | ArrayOfPrimitivesFormNode\n\n let arrayPaths: ConditionalMemberInnerState[] = []\n const isObjectsArray = array.members.some(\n (m) => m.kind === 'item' && isObjectSchemaType(m.item.schemaType)\n )\n if (!array.readOnly) {\n for (const arrayMember of array.members) {\n if (arrayMember.kind === 'error') {\n continue\n }\n\n const innerFields =\n isObjectsArray && !arrayMember.item.readOnly\n ? extractConditionalPaths((arrayMember as ArrayOfObjectsItemMember).item, maxDepth)\n : []\n\n arrayPaths = [...arrayPaths, conditionalState(arrayMember.item), ...innerFields]\n }\n }\n return [...acc, conditionalState(array), ...arrayPaths]\n }\n\n return [...acc, conditionalState(member.field)]\n } else if (member.kind === 'fieldSet') {\n const conditionalFieldset = !!(node as ObjectFormNode).schemaType?.fieldsets?.some(\n (f) => !f.single && f.name === member.fieldSet.name && typeof f.hidden === 'function'\n )\n const innerFields = extractConditionalPaths(member.fieldSet, maxDepth).map((f) => ({\n ...f,\n // if fieldset is conditional, visible fields must also be considered conditional\n conditional: conditionalFieldset ?? f.conditional,\n }))\n return [...acc, ...innerFields]\n }\n\n return acc\n }, [])\n}\n","import {ArrowRightIcon, CloseIcon, PlayIcon, RetryIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {\n DocumentInspectorProps,\n PresenceOverlay,\n useEditState,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {\n DocumentInspectorHeader,\n DocumentPaneNode,\n DocumentPaneProvider,\n useDocumentPane,\n} from 'sanity/desk'\nimport {DocumentForm} from '../_lib/form'\nimport {assistDocumentTypeName, fieldPathParam, instructionParam} from '../types'\nimport {FieldRef, getFieldTitle, useAiPaneRouter, useSelectedField, useTypePath} from './helpers'\nimport styled from 'styled-components'\nimport {useStudioAssistDocument} from '../assistDocument/hooks/useStudioAssistDocument'\nimport {InstructionTaskHistoryButton} from './InstructionTaskHistoryButton'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {giveFeedbackUrl, pluginTitle, releaseAnnouncementUrl, salesUrl} from '../constants'\nimport {assistDocumentId} from '../helpers/ids'\nimport {\n getAssistableDocId,\n isDocAssistable,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {InspectorOnboarding} from '../onboarding/InspectorOnboarding'\nimport {inspectorOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\nimport {TypePathContext} from '../assistDocument/components/AssistDocumentForm'\nimport {FieldTitle} from './FieldAutocomplete'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nconst CardWithShadowBelow = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nconst CardWithShadowAbove = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: -1px;\n border-top: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nexport function AssistInspectorWrapper(props: DocumentInspectorProps) {\n const context = useAiAssistanceConfig()\n\n if (context.statusLoading) {\n return (\n <Flex align=\"center\" height=\"fill\" justify=\"center\" padding={4} sizing=\"border\">\n <Stack space={3} style={{textAlign: 'center'}}>\n <Spinner muted />\n <Text muted size={1}>\n Loading {pluginTitle}...\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n const status = context.status\n\n if (!status?.enabled) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack flex={1} overflow=\"auto\" padding={4} space={3}>\n <Text as=\"p\" size={1} weight=\"semibold\">\n {pluginTitle} is not available\n </Text>\n\n <Text as=\"p\" muted size={1}>\n Please get in touch with a Sanity account manager or{' '}\n <a href={salesUrl} target=\"_blank\" rel=\"noreferrer\">\n contact our sales team\n </a>{' '}\n to get started with {pluginTitle}.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more &rarr;\n </a>\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n if (!status?.initialized || !status.validToken) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack padding={4} space={3}>\n {context.error ? (\n <Text size={1} weight=\"semibold\">\n Failed to start {pluginTitle}\n </Text>\n ) : null}\n\n {!context.error && !status?.initialized ? (\n <Text size={1} weight=\"semibold\">\n {pluginTitle} is not enabled\n </Text>\n ) : null}\n\n {!context.error && status?.initialized && !status.validToken ? (\n <>\n <Text size={1} weight=\"semibold\">\n Invalid token\n </Text>\n <Text muted size={1}>\n The token used by the AI Assistant is not valid and has to be regenerated.\n </Text>\n </>\n ) : null}\n\n {context.error && (\n <Text muted size={1}>\n Something went wrong. See console for details.\n </Text>\n )}\n\n {!context.error && !status?.initialized && (\n <Text size={1} muted>\n Please enable {pluginTitle}.\n </Text>\n )}\n\n <Button\n fontSize={1}\n icon={\n context.initLoading ? (\n <Box marginTop={1}>\n <Spinner />\n </Box>\n ) : context.error ? (\n RetryIcon\n ) : undefined\n }\n text={\n context.error\n ? 'Retry'\n : status?.initialized && !status.validToken\n ? `Restore ${pluginTitle}`\n : `Enable ${pluginTitle} now`\n }\n tone=\"primary\"\n onClick={context.init}\n disabled={context.initLoading}\n />\n </Stack>\n </Flex>\n )\n }\n\n return <AssistInspector {...props} />\n}\n\nexport function AssistInspector(props: DocumentInspectorProps) {\n const {params} = useAiPaneRouter()\n\n const boundary = useRef<HTMLDivElement | null>(null)\n const pathKey = params?.[fieldPathParam]\n const instructionKey = params?.[instructionParam]\n const documentPane = useDocumentPane()\n const {\n documentId,\n documentType,\n value: docValue,\n schemaType,\n onChange: documentOnChange,\n formState,\n } = documentPane\n const {published, draft} = useEditState(documentId, documentType, 'low')\n\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const assistableDocId = getAssistableDocId(schemaType, documentId)\n const {instructionLoading, requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: isDocAssistable(schemaType, published, draft),\n })\n\n const typePath = useTypePath(docValue, pathKey ?? '')\n const selectedField = useSelectedField(schemaType, typePath)\n\n const aiDocId = assistDocumentId(documentType)\n\n const assistDocument = useStudioAssistDocument({documentId, schemaType, initDoc: true})\n const assistField = assistDocument?.fields?.find((f) => f.path === typePath)\n const instruction = assistField?.instructions?.find((i) => i._key === instructionKey)\n const tasks = useMemo(\n () =>\n assistDocument?.tasks?.filter((i) => !instructionKey || i.instructionKey === instructionKey),\n [assistDocument?.tasks, instructionKey]\n )\n const instructions = useMemo(\n () => assistDocument?.fields?.flatMap((f) => f.instructions ?? []),\n [assistDocument?.fields]\n )\n\n const promptValue = instruction?.prompt\n const isEmptyPrompt = useMemo(() => {\n if (!promptValue?.length) {\n return true\n }\n const firstBlock = promptValue[0] as any\n const children = firstBlock?.children\n\n return promptValue.length == 1 && children?.length === 1 && !children?.[0]?.text?.length\n }, [promptValue])\n\n const paneNode: DocumentPaneNode = useMemo(\n () => ({\n type: 'document',\n id: aiDocId,\n title: pluginTitle,\n options: {\n id: aiDocId,\n type: assistDocumentTypeName,\n },\n }),\n [aiDocId]\n )\n\n const runCurrentInstruction = useCallback(\n () =>\n instruction &&\n pathKey &&\n typePath &&\n requestRunInstruction({\n documentId: assistableDocId,\n path: pathKey,\n typePath,\n assistDocumentId: assistDocumentId(documentType),\n instruction,\n conditionalMembers: formStateRef.current ? getConditionalMembers(formStateRef.current) : [],\n }),\n [pathKey, instruction, typePath, documentType, assistableDocId, requestRunInstruction]\n )\n\n const Region = useCallback((_props: any) => {\n // disabled for now\n /* return (\n <ConnectToRegion\n {..._props}\n _key={`${paneKey}_${selectedField?.key || '_field'}`}\n style={{height: '100%', flex: 1, overflow: 'auto'}}\n />\n )*/\n return <div {..._props} style={{height: '100%', flex: 1, overflow: 'auto'}} />\n }, [])\n\n if (!documentId || !schemaType || schemaType.jsonType !== 'object') {\n return (\n <Card flex={1} padding={4}>\n <Text>Document not ready yet.</Text>\n </Card>\n )\n }\n\n return (\n <Flex\n ref={boundary}\n direction=\"column\"\n height=\"fill\"\n overflow=\"hidden\"\n sizing=\"border\"\n style={{lineHeight: 0}}\n >\n <AiInspectorHeader\n onClose={props.onClose}\n field={selectedField}\n fieldTitle={getFieldTitle(selectedField)}\n />\n\n <Card as={Region} flex={1} overflow=\"auto\">\n <Flex direction=\"column\" style={{minHeight: '100%'}}>\n <Box flex={1}>\n <PresenceOverlay>\n <Box padding={4}>\n {selectedField && (\n <TypePathContext.Provider value={typePath}>\n <VirtualizerScrollInstanceProvider\n scrollElement={boundary.current}\n containerElement={boundary}\n >\n <DocumentPaneProvider\n paneKey={documentPane.paneKey}\n index={documentPane.index}\n itemId=\"ai\"\n pane={paneNode}\n >\n <DocumentForm />\n </DocumentPaneProvider>\n </VirtualizerScrollInstanceProvider>\n </TypePathContext.Provider>\n )}\n </Box>\n </PresenceOverlay>\n </Box>\n\n <Box flex=\"none\" padding={4}>\n <Text muted size={1}>\n How is Sanity AI Assist working for you?{' '}\n <a\n href={giveFeedbackUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{whiteSpace: 'nowrap'}}\n >\n Let us know <ArrowRightIcon />\n </a>\n </Text>\n </Box>\n </Flex>\n </Card>\n <CardWithShadowAbove flex=\"none\" paddingX={4} paddingY={3} style={{justifySelf: 'flex-end'}}>\n <Flex gap={2} flex={1} justify=\"flex-end\">\n {schemaType?.name && pathKey && instructionKey && (\n <Stack flex={1}>\n <Button\n mode=\"ghost\"\n disabled={isEmptyPrompt || instructionLoading}\n fontSize={1}\n icon={instructionLoading ? <Spinner /> : PlayIcon}\n onClick={runCurrentInstruction}\n padding={3}\n text={'Run instruction'}\n />\n </Stack>\n )}\n\n <InstructionTaskHistoryButton\n documentId={assistableDocId}\n tasks={tasks}\n instructions={instructions}\n showTitles={!instructionKey}\n />\n </Flex>\n </CardWithShadowAbove>\n </Flex>\n )\n}\n\nfunction AiInspectorHeader(props: {fieldTitle: string; field?: FieldRef; onClose: () => void}) {\n const {onClose, field, fieldTitle} = props\n const {showOnboarding, dismissOnboarding} = useOnboardingFeature(inspectorOnboardingKey)\n\n return (\n <CardWithShadowBelow flex=\"none\" padding={2}>\n <Flex flex={1} align=\"center\">\n <Flex flex={1} padding={3} gap={2} align=\"center\">\n <Flex gap={1} align=\"center\" wrap=\"wrap\" style={{marginTop: '-4px'}}>\n <Box marginTop={1}>\n <Text size={1} weight=\"semibold\">\n AI instructions for\n </Text>\n </Box>\n <Card radius={2} border padding={1} marginTop={1}>\n {field ? (\n <FieldTitle field={field} />\n ) : (\n <Text size={1} weight=\"semibold\">\n {fieldTitle}\n </Text>\n )}\n </Card>\n </Flex>\n </Flex>\n <Box flex=\"none\">\n <Button fontSize={1} icon={CloseIcon} mode=\"bleed\" onClick={onClose} />\n </Box>\n </Flex>\n\n {showOnboarding && <InspectorOnboarding onDismiss={dismissOnboarding} />}\n </CardWithShadowBelow>\n )\n}\n","import {SparklesIcon} from '@sanity/icons'\nimport {DocumentInspector, typed} from 'sanity'\nimport {aiInspectorId} from './constants'\nimport {AssistInspectorWrapper} from './AssistInspector'\nimport {AssistInspectorRouteParams, fieldPathParam, instructionParam} from '../types'\nimport {pluginTitle} from '../constants'\n\nexport const assistInspector: DocumentInspector = {\n name: aiInspectorId,\n useMenuItem: () => ({\n icon: SparklesIcon,\n title: pluginTitle,\n hidden: true,\n showAsAction: false,\n }),\n component: AssistInspectorWrapper,\n onClose({params}) {\n return {\n params: typed<AssistInspectorRouteParams>({\n ...params,\n [fieldPathParam]: undefined,\n [instructionParam]: undefined,\n }) as typeof params,\n }\n },\n}\n","import {DocumentInspector, ObjectSchemaType, PatchEvent} from 'sanity'\nimport {createContext, useContext} from 'react'\nimport {StudioAssistDocument} from '../types'\n\nexport type AssistDocumentContextValue = (\n | {assistDocument: StudioAssistDocument; loading: false}\n | {assistDocument: undefined; loading: true}\n) & {\n documentIsNew: boolean\n assistableDocumentId: string\n documentIsAssistable: boolean\n documentId: string\n documentSchemaType: ObjectSchemaType\n openInspector: (inspectorName: string, paneParams?: Record<string, string>) => void\n closeInspector: (inspectorName?: string) => void\n inspector: DocumentInspector | null\n selectedPath?: string\n documentOnChange: (event: PatchEvent) => void\n}\n\nexport const AssistDocumentContext = createContext<AssistDocumentContextValue | undefined>(\n undefined\n)\n\nexport function useAssistDocumentContext(): AssistDocumentContextValue {\n const context = useContext(AssistDocumentContext)\n if (!context) {\n throw new Error('AssistDocumentContext value is missing')\n }\n return context\n}\n","import {useMemo} from 'react'\nimport {FormNodePresence, isKeySegment, Path, stringToPath} from 'sanity'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {AiPresence} from '../types'\nimport {maxHistoryVisibilityMs, pluginTitle} from '../constants'\n\nconst NO_PRESENCE: FormNodePresence[] = []\n\nexport function useAssistPresence(path: Path, showFocusWithin?: boolean): FormNodePresence[] {\n const context = useAssistDocumentContext()\n const assistDocument = context && 'assistDocument' in context ? context.assistDocument : undefined\n const tasks = assistDocument?.tasks\n\n return useMemo(() => {\n const activePresence = tasks\n ?.filter((task) => !task.ended)\n ?.flatMap((task) => task.presence ?? [])\n ?.filter(\n (p) =>\n p.started && new Date().getTime() - new Date(p.started).getTime() < maxHistoryVisibilityMs\n )\n .filter((presence) => {\n if (!presence.path || !path.length) {\n return false\n }\n const statusPath = stringToPath(presence.path)\n\n if (!showFocusWithin && statusPath.length !== path.length) {\n return false\n }\n\n return path.every((pathSegment, i) => {\n const statusSegment = statusPath[i]\n if (typeof pathSegment === 'string') {\n return pathSegment === statusSegment\n }\n if (isKeySegment(pathSegment) && isKeySegment(statusSegment)) {\n return pathSegment._key === statusSegment._key\n }\n return false\n })\n })\n if (!activePresence?.length) {\n return NO_PRESENCE\n }\n\n return activePresence.map((status) => aiPresence(status, path))\n }, [showFocusWithin, tasks, path])\n}\n\nexport function aiPresence(presence: AiPresence, path: Path, title?: string): FormNodePresence {\n return {\n user: {\n id: `sanity-assistant_${presence._key}`,\n displayName: pluginTitle,\n },\n path: path,\n sessionId: 'not-available',\n lastActiveAt: presence?.started ?? new Date().toISOString(),\n }\n}\n","import {forwardRef, ReactElement, ReactNode} from 'react'\nimport styled, {keyframes} from 'styled-components'\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n transform: scale(0.75);\n }\n 40% {\n opacity: 0;\n transform: scale(0.75);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n`\n\nconst FadeInDiv = styled.div`\n animation-name: ${fadeIn};\n animation-timing-function: ease-in-out;\n`\n\nexport const FadeInContent = forwardRef(function FadeInContent(\n {\n children,\n durationMs = 250,\n }: {\n children?: ReactNode\n ms?: number\n durationMs?: number\n },\n ref: any\n): ReactElement {\n return (\n <FadeInDiv ref={ref} style={{animationDuration: `${durationMs}ms`}}>\n {children}\n </FadeInDiv>\n )\n})\n","const COLOR_HUES = [\"gray\", \"blue\", \"purple\", \"magenta\", \"red\", \"orange\", \"yellow\", \"green\", \"cyan\"];\nconst COLOR_TINTS = [\"50\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"950\"];\nfunction hslToRgb(hsl) {\n const h = hsl[0];\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n const k = n => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = n => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n return [255 * f(0), 255 * f(8), 255 * f(4)];\n}\nfunction rgbToHex(_ref) {\n let [r, g, b] = _ref;\n const _r = Math.round(r);\n const _g = Math.round(g);\n const _b = Math.round(b);\n return \"#\" + ((1 << 24) + (_r << 16) + (_g << 8) + _b).toString(16).slice(1);\n}\nfunction buildTints(options) {\n const {\n hueKey,\n color\n } = options;\n return COLOR_TINTS.reduce((acc, tintKey) => {\n const tint = Number(tintKey);\n const rgb = hslToRgb(color.tints[tintKey].hsl);\n const hex = rgbToHex([Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])]);\n acc[tintKey] = {\n title: \"\".concat(hueKey.slice(0, 1).toUpperCase()).concat(hueKey.slice(1), \" \").concat(tint),\n hex\n };\n return acc;\n }, {});\n}\nconst black = {\n title: \"Black\",\n hex: \"#0d0e12\"\n};\nconst white = {\n title: \"White\",\n hex: \"#ffffff\"\n};\nconst gray = {\n \"50\": {\n title: \"Gray 50\",\n hex: \"#f6f6f8\"\n },\n \"100\": {\n title: \"Gray 100\",\n hex: \"#eeeef1\"\n },\n \"200\": {\n title: \"Gray 200\",\n hex: \"#e3e4e8\"\n },\n \"300\": {\n title: \"Gray 300\",\n hex: \"#bbbdc9\"\n },\n \"400\": {\n title: \"Gray 400\",\n hex: \"#9499ad\"\n },\n \"500\": {\n title: \"Gray 500\",\n hex: \"#727892\"\n },\n \"600\": {\n title: \"Gray 600\",\n hex: \"#515870\"\n },\n \"700\": {\n title: \"Gray 700\",\n hex: \"#383d51\"\n },\n \"800\": {\n title: \"Gray 800\",\n hex: \"#252837\"\n },\n \"900\": {\n title: \"Gray 900\",\n hex: \"#1b1d27\"\n },\n \"950\": {\n title: \"Gray 950\",\n hex: \"#13141b\"\n }\n};\nconst blue = {\n \"50\": {\n title: \"Blue 50\",\n hex: \"#f5f8ff\"\n },\n \"100\": {\n title: \"Blue 100\",\n hex: \"#e5edff\"\n },\n \"200\": {\n title: \"Blue 200\",\n hex: \"#dbe5ff\"\n },\n \"300\": {\n title: \"Blue 300\",\n hex: \"#a8bfff\"\n },\n \"400\": {\n title: \"Blue 400\",\n hex: \"#7595ff\"\n },\n \"500\": {\n title: \"Blue 500\",\n hex: \"#556bfc\"\n },\n \"600\": {\n title: \"Blue 600\",\n hex: \"#4043e7\"\n },\n \"700\": {\n title: \"Blue 700\",\n hex: \"#2927aa\"\n },\n \"800\": {\n title: \"Blue 800\",\n hex: \"#192457\"\n },\n \"900\": {\n title: \"Blue 900\",\n hex: \"#161a41\"\n },\n \"950\": {\n title: \"Blue 950\",\n hex: \"#101228\"\n }\n};\nconst purple = {\n \"50\": {\n title: \"Purple 50\",\n hex: \"#f8f5ff\"\n },\n \"100\": {\n title: \"Purple 100\",\n hex: \"#f1ebff\"\n },\n \"200\": {\n title: \"Purple 200\",\n hex: \"#ece1fe\"\n },\n \"300\": {\n title: \"Purple 300\",\n hex: \"#ccb1fc\"\n },\n \"400\": {\n title: \"Purple 400\",\n hex: \"#b087f7\"\n },\n \"500\": {\n title: \"Purple 500\",\n hex: \"#8f57ef\"\n },\n \"600\": {\n title: \"Purple 600\",\n hex: \"#721fe5\"\n },\n \"700\": {\n title: \"Purple 700\",\n hex: \"#4c1a9e\"\n },\n \"800\": {\n title: \"Purple 800\",\n hex: \"#2f1862\"\n },\n \"900\": {\n title: \"Purple 900\",\n hex: \"#23173f\"\n },\n \"950\": {\n title: \"Purple 950\",\n hex: \"#181128\"\n }\n};\nconst magenta = {\n \"50\": {\n title: \"Magenta 50\",\n hex: \"#fef6f9\"\n },\n \"100\": {\n title: \"Magenta 100\",\n hex: \"#fde8ef\"\n },\n \"200\": {\n title: \"Magenta 200\",\n hex: \"#fcdee9\"\n },\n \"300\": {\n title: \"Magenta 300\",\n hex: \"#f7abc5\"\n },\n \"400\": {\n title: \"Magenta 400\",\n hex: \"#f0709b\"\n },\n \"500\": {\n title: \"Magenta 500\",\n hex: \"#e72767\"\n },\n \"600\": {\n title: \"Magenta 600\",\n hex: \"#b11651\"\n },\n \"700\": {\n title: \"Magenta 700\",\n hex: \"#7c1342\"\n },\n \"800\": {\n title: \"Magenta 800\",\n hex: \"#4b1130\"\n },\n \"900\": {\n title: \"Magenta 900\",\n hex: \"#341325\"\n },\n \"950\": {\n title: \"Magenta 950\",\n hex: \"#1f0f14\"\n }\n};\nconst red = {\n \"50\": {\n title: \"Red 50\",\n hex: \"#fff6f5\"\n },\n \"100\": {\n title: \"Red 100\",\n hex: \"#ffe7e5\"\n },\n \"200\": {\n title: \"Red 200\",\n hex: \"#ffdedc\"\n },\n \"300\": {\n title: \"Red 300\",\n hex: \"#fdada5\"\n },\n \"400\": {\n title: \"Red 400\",\n hex: \"#f77769\"\n },\n \"500\": {\n title: \"Red 500\",\n hex: \"#ef4434\"\n },\n \"600\": {\n title: \"Red 600\",\n hex: \"#cc2819\"\n },\n \"700\": {\n title: \"Red 700\",\n hex: \"#8b2018\"\n },\n \"800\": {\n title: \"Red 800\",\n hex: \"#4d1714\"\n },\n \"900\": {\n title: \"Red 900\",\n hex: \"#321615\"\n },\n \"950\": {\n title: \"Red 950\",\n hex: \"#1e1011\"\n }\n};\nconst orange = {\n \"50\": {\n title: \"Orange 50\",\n hex: \"#fff7f0\"\n },\n \"100\": {\n title: \"Orange 100\",\n hex: \"#ffeadb\"\n },\n \"200\": {\n title: \"Orange 200\",\n hex: \"#ffddc7\"\n },\n \"300\": {\n title: \"Orange 300\",\n hex: \"#ffb685\"\n },\n \"400\": {\n title: \"Orange 400\",\n hex: \"#ff8e42\"\n },\n \"500\": {\n title: \"Orange 500\",\n hex: \"#fa6400\"\n },\n \"600\": {\n title: \"Orange 600\",\n hex: \"#b14802\"\n },\n \"700\": {\n title: \"Orange 700\",\n hex: \"#7c3404\"\n },\n \"800\": {\n title: \"Orange 800\",\n hex: \"#461e07\"\n },\n \"900\": {\n title: \"Orange 900\",\n hex: \"#32160b\"\n },\n \"950\": {\n title: \"Orange 950\",\n hex: \"#21120d\"\n }\n};\nconst yellow = {\n \"50\": {\n title: \"Yellow 50\",\n hex: \"#fefae1\"\n },\n \"100\": {\n title: \"Yellow 100\",\n hex: \"#fcf3bb\"\n },\n \"200\": {\n title: \"Yellow 200\",\n hex: \"#f9e994\"\n },\n \"300\": {\n title: \"Yellow 300\",\n hex: \"#f7d455\"\n },\n \"400\": {\n title: \"Yellow 400\",\n hex: \"#f9bc15\"\n },\n \"500\": {\n title: \"Yellow 500\",\n hex: \"#d28a04\"\n },\n \"600\": {\n title: \"Yellow 600\",\n hex: \"#965908\"\n },\n \"700\": {\n title: \"Yellow 700\",\n hex: \"#653a0b\"\n },\n \"800\": {\n title: \"Yellow 800\",\n hex: \"#3b220c\"\n },\n \"900\": {\n title: \"Yellow 900\",\n hex: \"#271a11\"\n },\n \"950\": {\n title: \"Yellow 950\",\n hex: \"#181410\"\n }\n};\nconst green = {\n \"50\": {\n title: \"Green 50\",\n hex: \"#e7fef5\"\n },\n \"100\": {\n title: \"Green 100\",\n hex: \"#c5fce8\"\n },\n \"200\": {\n title: \"Green 200\",\n hex: \"#a9f9dc\"\n },\n \"300\": {\n title: \"Green 300\",\n hex: \"#59f3ba\"\n },\n \"400\": {\n title: \"Green 400\",\n hex: \"#0ff0a1\"\n },\n \"500\": {\n title: \"Green 500\",\n hex: \"#04b97a\"\n },\n \"600\": {\n title: \"Green 600\",\n hex: \"#01794f\"\n },\n \"700\": {\n title: \"Green 700\",\n hex: \"#015133\"\n },\n \"800\": {\n title: \"Green 800\",\n hex: \"#023120\"\n },\n \"900\": {\n title: \"Green 900\",\n hex: \"#06231a\"\n },\n \"950\": {\n title: \"Green 950\",\n hex: \"#071715\"\n }\n};\nconst cyan = {\n \"50\": {\n title: \"Cyan 50\",\n hex: \"#e7fefe\"\n },\n \"100\": {\n title: \"Cyan 100\",\n hex: \"#c5fcfc\"\n },\n \"200\": {\n title: \"Cyan 200\",\n hex: \"#96f8f8\"\n },\n \"300\": {\n title: \"Cyan 300\",\n hex: \"#62efef\"\n },\n \"400\": {\n title: \"Cyan 400\",\n hex: \"#18e2e2\"\n },\n \"500\": {\n title: \"Cyan 500\",\n hex: \"#04b8be\"\n },\n \"600\": {\n title: \"Cyan 600\",\n hex: \"#037782\"\n },\n \"700\": {\n title: \"Cyan 700\",\n hex: \"#024950\"\n },\n \"800\": {\n title: \"Cyan 800\",\n hex: \"#042f34\"\n },\n \"900\": {\n title: \"Cyan 900\",\n hex: \"#072227\"\n },\n \"950\": {\n title: \"Cyan 950\",\n hex: \"#0d181c\"\n }\n};\nconst hues = {\n gray,\n blue,\n purple,\n magenta,\n red,\n orange,\n yellow,\n green,\n cyan\n};\nconst color = {\n black,\n white,\n ...hues\n};\nconst config = {\n black: {\n title: \"Black\",\n hsl: [225, 16, 6]\n },\n white: {\n title: \"White\",\n hsl: [0, 0, 100]\n },\n gray: {\n title: \"Gray\",\n tints: {\n 50: {\n title: \"Gray 50\",\n hsl: [240, 12, 97]\n },\n 100: {\n title: \"Gray 100\",\n hsl: [240, 10, 94]\n },\n 200: {\n title: \"Gray 200\",\n hsl: [231, 10, 90]\n },\n 300: {\n title: \"Gray 300\",\n hsl: [232, 11, 76]\n },\n 400: {\n title: \"Gray 400\",\n hsl: [228, 13, 63]\n },\n 500: {\n title: \"Gray 500\",\n hsl: [229, 13, 51]\n },\n 600: {\n title: \"Gray 600\",\n hsl: [228, 16, 38]\n },\n 700: {\n title: \"Gray 700\",\n hsl: [229, 18, 27]\n },\n 800: {\n title: \"Gray 800\",\n hsl: [229, 19, 18]\n },\n 900: {\n title: \"Gray 900\",\n hsl: [228, 19, 13]\n },\n 950: {\n title: \"Gray 950\",\n hsl: [233, 17, 9]\n }\n }\n },\n blue: {\n title: \"Blue\",\n tints: {\n 50: {\n title: \"Blue 50\",\n hsl: [222, 100, 98]\n },\n 100: {\n title: \"Blue 100\",\n hsl: [222, 100, 95]\n },\n 200: {\n title: \"Blue 200\",\n hsl: [223, 100, 93]\n },\n 300: {\n title: \"Blue 300\",\n hsl: [224, 100, 83]\n },\n 400: {\n title: \"Blue 400\",\n hsl: [226, 100, 73]\n },\n 500: {\n title: \"Blue 500\",\n hsl: [232, 96, 66]\n },\n 600: {\n title: \"Blue 600\",\n hsl: [239, 78, 58]\n },\n 700: {\n title: \"Blue 700\",\n hsl: [241, 63, 41]\n },\n 800: {\n title: \"Blue 800\",\n hsl: [230, 55, 22]\n },\n 900: {\n title: \"Blue 900\",\n hsl: [234, 49, 17]\n },\n 950: {\n title: \"Blue 950\",\n hsl: [235, 43, 11]\n }\n }\n },\n purple: {\n title: \"Purple\",\n tints: {\n 50: {\n title: \"Purple 50\",\n hsl: [260, 95, 98]\n },\n 100: {\n title: \"Purple 100\",\n hsl: [260, 98, 96]\n },\n 200: {\n title: \"Purple 200\",\n hsl: [263, 96, 94]\n },\n 300: {\n title: \"Purple 300\",\n hsl: [262, 92, 84]\n },\n 400: {\n title: \"Purple 400\",\n hsl: [262, 88, 75]\n },\n 500: {\n title: \"Purple 500\",\n hsl: [262, 83, 64]\n },\n 600: {\n title: \"Purple 600\",\n hsl: [265, 79, 51]\n },\n 700: {\n title: \"Purple 700\",\n hsl: [263, 72, 36]\n },\n 800: {\n title: \"Purple 800\",\n hsl: [258, 60, 24]\n },\n 900: {\n title: \"Purple 900\",\n hsl: [257, 46, 17]\n },\n 950: {\n title: \"Purple 950\",\n hsl: [260, 41, 11]\n }\n }\n },\n magenta: {\n title: \"Magenta\",\n tints: {\n 50: {\n title: \"Magenta 50\",\n hsl: [340, 82, 98]\n },\n 100: {\n title: \"Magenta 100\",\n hsl: [339, 83, 95]\n },\n 200: {\n title: \"Magenta 200\",\n hsl: [339, 83, 93]\n },\n 300: {\n title: \"Magenta 300\",\n hsl: [340, 82, 82]\n },\n 400: {\n title: \"Magenta 400\",\n hsl: [340, 81, 69]\n },\n 500: {\n title: \"Magenta 500\",\n hsl: [340, 80, 53]\n },\n 600: {\n title: \"Magenta 600\",\n hsl: [337, 78, 39]\n },\n 700: {\n title: \"Magenta 700\",\n hsl: [333, 73, 28]\n },\n 800: {\n title: \"Magenta 800\",\n hsl: [328, 63, 18]\n },\n 900: {\n title: \"Magenta 900\",\n hsl: [327, 46, 14]\n },\n 950: {\n title: \"Magenta 950\",\n hsl: [341, 35, 9]\n }\n }\n },\n red: {\n title: \"Red\",\n tints: {\n 50: {\n title: \"Red 50\",\n hsl: [5, 100, 98]\n },\n 100: {\n title: \"Red 100\",\n hsl: [4, 100, 95]\n },\n 200: {\n title: \"Red 200\",\n hsl: [4, 98, 93]\n },\n 300: {\n title: \"Red 300\",\n hsl: [5, 95, 82]\n },\n 400: {\n title: \"Red 400\",\n hsl: [6, 90, 69]\n },\n 500: {\n title: \"Red 500\",\n hsl: [5, 85, 57]\n },\n 600: {\n title: \"Red 600\",\n hsl: [5, 78, 45]\n },\n 700: {\n title: \"Red 700\",\n hsl: [4, 70, 32]\n },\n 800: {\n title: \"Red 800\",\n hsl: [3, 58, 19]\n },\n 900: {\n title: \"Red 900\",\n hsl: [2, 41, 14]\n },\n 950: {\n title: \"Red 950\",\n hsl: [356, 30, 9]\n }\n }\n },\n orange: {\n title: \"Orange\",\n tints: {\n 50: {\n title: \"Orange 50\",\n hsl: [28, 100, 97]\n },\n 100: {\n title: \"Orange 100\",\n hsl: [25, 100, 93]\n },\n 200: {\n title: \"Orange 200\",\n hsl: [24, 100, 89]\n },\n 300: {\n title: \"Orange 300\",\n hsl: [24, 100, 76]\n },\n 400: {\n title: \"Orange 400\",\n hsl: [24, 100, 63]\n },\n 500: {\n title: \"Orange 500\",\n hsl: [24, 100, 49]\n },\n 600: {\n title: \"Orange 600\",\n hsl: [24, 98, 35]\n },\n 700: {\n title: \"Orange 700\",\n hsl: [24, 94, 25]\n },\n 800: {\n title: \"Orange 800\",\n hsl: [22, 82, 15]\n },\n 900: {\n title: \"Orange 900\",\n hsl: [17, 65, 12]\n },\n 950: {\n title: \"Orange 950\",\n hsl: [14, 43, 9]\n }\n }\n },\n yellow: {\n title: \"Yellow\",\n tints: {\n 50: {\n title: \"Yellow 50\",\n hsl: [51, 94, 94]\n },\n 100: {\n title: \"Yellow 100\",\n hsl: [52, 91, 86]\n },\n 200: {\n title: \"Yellow 200\",\n hsl: [50, 90, 78]\n },\n 300: {\n title: \"Yellow 300\",\n hsl: [47, 91, 65]\n },\n 400: {\n title: \"Yellow 400\",\n hsl: [44, 95, 53]\n },\n 500: {\n title: \"Yellow 500\",\n hsl: [39, 96, 42]\n },\n 600: {\n title: \"Yellow 600\",\n hsl: [34, 90, 31]\n },\n 700: {\n title: \"Yellow 700\",\n hsl: [31, 80, 22]\n },\n 800: {\n title: \"Yellow 800\",\n hsl: [28, 66, 14]\n },\n 900: {\n title: \"Yellow 900\",\n hsl: [24, 40, 11]\n },\n 950: {\n title: \"Yellow 950\",\n hsl: [24, 20, 8]\n }\n }\n },\n green: {\n title: \"Green\",\n tints: {\n 50: {\n title: \"Green 50\",\n hsl: [157, 89, 95]\n },\n 100: {\n title: \"Green 100\",\n hsl: [158, 89, 88]\n },\n 200: {\n title: \"Green 200\",\n hsl: [158, 87, 82]\n },\n 300: {\n title: \"Green 300\",\n hsl: [158, 86, 65]\n },\n 400: {\n title: \"Green 400\",\n hsl: [159, 88, 50]\n },\n 500: {\n title: \"Green 500\",\n hsl: [159, 96, 37]\n },\n 600: {\n title: \"Green 600\",\n hsl: [159, 98, 24]\n },\n 700: {\n title: \"Green 700\",\n hsl: [158, 98, 16]\n },\n 800: {\n title: \"Green 800\",\n hsl: [158, 91, 10]\n },\n 900: {\n title: \"Green 900\",\n hsl: [162, 72, 8]\n },\n 950: {\n title: \"Green 950\",\n hsl: [172, 51, 6]\n }\n }\n },\n cyan: {\n title: \"Cyan\",\n tints: {\n 50: {\n title: \"Cyan 50\",\n hsl: [180, 92, 95]\n },\n 100: {\n title: \"Cyan 100\",\n hsl: [180, 91, 88]\n },\n 200: {\n title: \"Cyan 200\",\n hsl: [180, 87, 78]\n },\n 300: {\n title: \"Cyan 300\",\n hsl: [180, 81, 66]\n },\n 400: {\n title: \"Cyan 400\",\n hsl: [180, 81, 49]\n },\n 500: {\n title: \"Cyan 500\",\n hsl: [182, 96, 38]\n },\n 600: {\n title: \"Cyan 600\",\n hsl: [185, 96, 26]\n },\n 700: {\n title: \"Cyan 700\",\n hsl: [185, 95, 16]\n },\n 800: {\n title: \"Cyan 800\",\n hsl: [187, 86, 11]\n },\n 900: {\n title: \"Cyan 900\",\n hsl: [188, 68, 9]\n },\n 950: {\n title: \"Cyan 950\",\n hsl: [196, 37, 8]\n }\n }\n }\n};\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n throw new Error(\"input is not valid hex\");\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n}\nfunction rgbToHsl(_ref2) {\n let [r, g, b] = _ref2;\n r /= 255;\n g /= 255;\n b /= 255;\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n if (delta == 0) h = 0;else if (cmax == r) h = (g - b) / delta % 6;else if (cmax == g) h = (b - r) / delta + 2;else h = (r - g) / delta + 4;\n h = Math.round(h * 60);\n if (h < 0) h += 360;\n l = (cmax + cmin) / 2;\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(0);\n l = +(l * 100).toFixed(0);\n return [h, s, l];\n}\nfunction clamp(num) {\n return Math.max(Math.min(num, 255), 0);\n}\nfunction darkenChannel(backdrop, source) {\n return Math.min(backdrop, source);\n}\nfunction darken(b, s) {\n return [Math.round(clamp(darkenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(darkenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(darkenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nfunction interpolate(min, max, val) {\n const size = max - min;\n return min + size * val;\n}\nfunction limit(darkest, lightest, source) {\n const r = Math.round(interpolate(darkest[0], lightest[0], source[0] / 255));\n const g = Math.round(interpolate(darkest[1], lightest[1], source[1] / 255));\n const b = Math.round(interpolate(darkest[2], lightest[2], source[2] / 255));\n return [r, g, b];\n}\nfunction screenChannel(backdrop, source) {\n return backdrop + source - backdrop * source;\n}\nfunction screen(b, s) {\n return [Math.round(clamp(screenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(screenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(screenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nexport { COLOR_HUES, COLOR_TINTS, black, blue, buildTints, color, config, cyan, darken, gray, green, hexToRgb, hslToRgb, hues, limit, magenta, orange, purple, red, rgbToHex, rgbToHsl, screen, white, yellow };\n//# sourceMappingURL=index.js.map\n","import {purple} from '@sanity/color'\nimport {SparklesIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {CSSProperties, useMemo} from 'react'\nimport {useColorSchemeValue} from 'sanity'\nimport styled, {keyframes} from 'styled-components'\n\nconst Root = styled.span`\n display: block;\n width: 25px;\n height: 25px;\n position: relative;\n`\n\nconst dash = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(43deg);\n }\n`\n\nconst Outline = styled.svg`\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n\n & > circle {\n stroke: var(--ai-avatar-stroke-color);\n stroke-width: 1.5px;\n stroke-linecap: round;\n transform-origin: center;\n animation: ${dash} 500ms ease-in-out infinite;\n transition: stroke-dasharray 200ms ease-in-out;\n\n stroke-dasharray: 2.34px 0;\n\n [data-state='active'] > & {\n stroke-dasharray: 2px 2.34px;\n }\n }\n`\n\nconst IconDisc = styled.span`\n background: var(--ai-avatar-disc-color);\n color: white;\n width: 21px;\n height: 21px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10.5px;\n position: absolute;\n top: 2px;\n left: 2px;\n`\n\nexport function AssistAvatar(props: {state?: 'present' | 'active'}) {\n const {state = 'present'} = props\n const scheme = useColorSchemeValue()\n\n const style = useMemo(() => {\n if (scheme === 'dark') {\n return {\n [`--ai-avatar-stroke-color`]: purple[400].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }\n\n return {\n [`--ai-avatar-stroke-color`]: purple[500].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }, [scheme])\n\n return (\n <Root data-state={state} style={style}>\n <Outline\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12.5\" cy=\"12.5\" r=\"11.75\" />\n </Outline>\n <IconDisc>\n <Text as=\"span\" size={0} style={{color: 'inherit'}}>\n <SparklesIcon style={{color: 'inherit'}} />\n </Text>\n </IconDisc>\n </Root>\n )\n}\n","// eslint-disable-next-line react/no-unused-prop-types\nimport {FormNodePresence} from 'sanity'\nimport {Card, Flex, Text, Tooltip} from '@sanity/ui'\nimport {FadeInContent} from '../components/FadeInContent'\nimport {AssistAvatar} from './AssistAvatar'\n\nexport function AiFieldPresence(props: {presence: FormNodePresence}) {\n return (\n <Card style={{position: 'relative', background: 'transparent'}} contentEditable={false}>\n <Tooltip\n placement=\"left\"\n content={\n <Card padding={3} border>\n <Flex align=\"center\">\n <Text size={1}>Running instruction...</Text>\n </Flex>\n </Card>\n }\n >\n <FadeInContent durationMs={300}>\n <AssistAvatar state=\"active\" />\n </FadeInContent>\n </Tooltip>\n </Card>\n )\n}\n","import {Badge} from '@sanity/ui'\n\nexport function AssistFeatureBadge() {\n return (\n <Badge fontSize={0} style={{margin: '-2px 0'}} tone=\"primary\">\n Beta\n </Badge>\n )\n}\n","import {Button, Card, Flex, Popover, Stack, Text} from '@sanity/ui'\nimport {useRef} from 'react'\nimport {AssistFeatureBadge} from '../components/AssistFeatureBadge'\nimport {ArrowRightIcon, CheckmarkIcon, SparklesIcon} from '@sanity/icons'\nimport {pluginTitle, releaseAnnouncementUrl} from '../constants'\n\nexport interface FieldActionsOnboardingProps {\n dismiss: () => void\n}\n\nexport function AssistOnboardingPopover(props: FieldActionsOnboardingProps) {\n const {dismiss} = props\n\n return (\n <Popover\n content={<AssistIntroCard dismiss={dismiss} />}\n open\n portal\n placeholder=\"bottom\"\n tone=\"default\"\n width={0}\n >\n <Card radius={2} shadow={2} style={{padding: 2, lineHeight: 0}}>\n <Button disabled fontSize={1} icon={SparklesIcon} mode=\"bleed\" padding={2} />\n </Card>\n </Popover>\n )\n}\n\nfunction AssistIntroCard(props: {dismiss: () => void}) {\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n return (\n <Stack as=\"section\" padding={3} space={3}>\n <Stack padding={2} space={4}>\n <Flex gap={2} align=\"center\">\n <Text as=\"h1\" size={1} weight=\"semibold\">\n {pluginTitle}\n </Text>\n <div aria-hidden style={{margin: '-3px 0', lineHeight: 0}}>\n <AssistFeatureBadge />\n </div>\n </Flex>\n\n <Stack space={3}>\n <Text as=\"p\" muted size={1}>\n Manage reusable AI instructions to boost your content creation and reduce amount of\n repetitive chores.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more <ArrowRightIcon />\n </a>\n </Text>\n </Stack>\n </Stack>\n\n <Button\n fontSize={1}\n icon={CheckmarkIcon}\n onClick={props.dismiss}\n padding={3}\n ref={buttonRef}\n text=\"Ok, good to know!\"\n tone=\"primary\"\n />\n </Stack>\n )\n}\n","import {ObjectInputProps, FieldMember, pathToString} from 'sanity'\nimport {createContext, PropsWithChildren, useMemo} from 'react'\nimport {isAssistSupported} from '../helpers/assistSupported'\n\nexport const FirstAssistedPathContext = createContext<string | undefined>(undefined)\n\nexport interface FirstAssistedPathProviderProps {\n members: ObjectInputProps['members']\n}\n\nexport function FirstAssistedPathProvider(\n props: PropsWithChildren<FirstAssistedPathProviderProps>\n) {\n const {members} = props\n\n const firstAssistedPath = useMemo(() => {\n const firstAssisted = members.find(\n (member): member is FieldMember =>\n member.kind === 'field' && isAssistSupported(member.field.schemaType)\n )\n return firstAssisted?.field.path ? pathToString(firstAssisted?.field.path) : undefined\n }, [members])\n\n return (\n <FirstAssistedPathContext.Provider value={firstAssistedPath}>\n {props.children}\n </FirstAssistedPathContext.Provider>\n )\n}\n","import {FieldProps, isArraySchemaType, pathToString} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {useContext, useMemo} from 'react'\nimport {Box, Flex} from '@sanity/ui'\nimport {contextDocumentTypeName} from '../types'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\nimport {AssistOnboardingPopover} from '../onboarding/FieldActionsOnboarding'\nimport {FirstAssistedPathContext} from '../onboarding/FirstAssistedPathProvider'\nimport {fieldOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\nimport {assistFormId} from '../_lib/form/constants'\n\nexport function AssistFieldWrapper(props: FieldProps) {\n const {schemaType} = props\n\n const isSupported = useMemo(() => isAssistSupported(schemaType), [schemaType])\n\n if (\n !isSupported ||\n schemaType.name.startsWith('sanity.') ||\n schemaType.name === contextDocumentTypeName\n ) {\n return props.renderDefault(props)\n }\n if (\n !isType(props.schemaType, 'document') &&\n props.inputId !== 'root' &&\n props.inputId !== assistFormId\n ) {\n return <AssistField {...props}>{props.children}</AssistField>\n }\n\n return props.renderDefault(props)\n}\n\nexport function AssistField(props: FieldProps) {\n const {path} = props\n\n const isPortableText = useMemo(\n () => !!(isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType)),\n [props.schemaType]\n )\n\n const presence = useAssistPresence(props.path, isPortableText)\n\n const firstAssistedPath = useContext(FirstAssistedPathContext)\n const isFirstAssisted = useMemo(\n () => pathToString(path) === firstAssistedPath,\n [path, firstAssistedPath]\n )\n\n const {showOnboarding, dismissOnboarding} = useOnboardingFeature(fieldOnboardingKey)\n const singlePresence = presence[0]\n\n const actions = (\n <Flex gap={2} align=\"center\" justify=\"space-between\">\n {singlePresence && (\n <Box>\n <AiFieldPresence presence={singlePresence} />\n </Box>\n )}\n\n {isFirstAssisted && showOnboarding && <AssistOnboardingPopover dismiss={dismissOnboarding} />}\n </Flex>\n )\n\n return props.renderDefault({\n ...props,\n\n // When showing the onboarding, prevent default field actions from being rendered\n actions: isFirstAssisted && showOnboarding ? [] : props.actions,\n\n // Render presence (and possibly onboarding) in the internal slot (between presence and the field actions)\n // eslint-disable-next-line camelcase\n __internal_slot: actions,\n })\n}\n","import {createContext} from 'react'\nimport {ConnectorsStore} from './ConnectorsStore'\n\nexport const ConnectorsStoreContext = createContext<ConnectorsStore | null>(null)\n","import {useContext} from 'react'\nimport {ConnectorsStoreContext} from './ConnectorsStoreContext'\nimport {ConnectorsStore} from './ConnectorsStore'\n\nexport function useConnectorsStore(): ConnectorsStore {\n const store = useContext(ConnectorsStoreContext)\n\n if (!store) {\n throw new Error('Missing connectors store context')\n }\n\n return store\n}\n","export function hasOverflowScroll(el: HTMLElement): boolean {\n const overflow = getComputedStyle(el).overflow\n\n return overflow.includes('auto') || overflow.includes('hidden') || overflow.includes('scroll')\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport {Rect, Scroll} from './types'\nimport {hasOverflowScroll} from './helpers'\n\nexport function useRegionRects() {\n const ref = useRef<HTMLDivElement>(null)\n\n const [relativeBoundsRect, setRelativeBoundsRect] = useState<Rect | null>(null)\n const [relativeElementRect, setRelativeElementRect] = useState<Rect | null>(null)\n const [boundsScroll, setBoundsScroll] = useState<Scroll>({x: 0, y: 0})\n const [scroll, setScroll] = useState<Scroll>({x: 0, y: 0})\n\n const boundsScrollXRef = useRef(0)\n const boundsScrollYRef = useRef(0)\n\n const elementScrollXRef = useRef(0)\n const elementScrollYRef = useRef(0)\n\n useEffect(() => {\n const el = ref.current\n\n if (!el) return undefined\n\n const scrollParents: HTMLElement[] = []\n let parent = el.parentElement\n\n while (parent && parent !== document.body) {\n if (\n hasOverflowScroll(parent)\n // || parent.scrollHeight > parent.clientHeight\n ) {\n scrollParents.push(parent)\n }\n\n parent = parent.parentElement\n }\n\n function handleResize() {\n const scrollParent = scrollParents[0]\n\n const boundsRect = scrollParent?.getBoundingClientRect() || {\n x: 0,\n y: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const domRect = el!.getBoundingClientRect()\n\n setRelativeBoundsRect({\n x: boundsRect.x + boundsScrollXRef.current,\n y: boundsRect.y + boundsScrollYRef.current,\n w: boundsRect.width,\n h: boundsRect.height,\n })\n\n setRelativeElementRect({\n x: domRect.x + elementScrollXRef.current,\n y: domRect.y + elementScrollYRef.current,\n w: domRect.width,\n h: domRect.height,\n })\n }\n\n function handleScroll() {\n let scrollX = window.scrollX\n let scrollY = window.scrollY\n\n for (const scrollParent of scrollParents) {\n scrollX += scrollParent.scrollLeft\n scrollY += scrollParent.scrollTop\n }\n\n const scrollParent = scrollParents[0]\n\n boundsScrollXRef.current = scrollX - (scrollParent?.scrollLeft || window.scrollX)\n\n boundsScrollYRef.current = scrollY - (scrollParent?.scrollTop || window.scrollY)\n\n setBoundsScroll({\n x: boundsScrollXRef.current,\n y: boundsScrollYRef.current,\n })\n\n elementScrollXRef.current = scrollX\n elementScrollYRef.current = scrollY\n\n setScroll({x: scrollX, y: scrollY})\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver(handleResize)\n\n ro.observe(el)\n\n for (const scrollParent of scrollParents) {\n scrollParent.addEventListener('scroll', handleScroll, {passive: true})\n ro.observe(scrollParent)\n }\n\n handleScroll()\n\n return () => {\n ro.unobserve(el)\n\n for (const scrollParent of scrollParents) {\n ro.unobserve(scrollParent)\n scrollParent.removeEventListener('scroll', handleScroll)\n }\n\n ro.disconnect()\n\n window.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n const bounds: Rect | null = useMemo(\n () =>\n relativeBoundsRect && {\n x: relativeBoundsRect.x - boundsScroll.x,\n y: relativeBoundsRect.y - boundsScroll.y,\n w: relativeBoundsRect.w,\n h: relativeBoundsRect.h,\n },\n [relativeBoundsRect, boundsScroll]\n )\n\n const element: Rect | null = useMemo(\n () =>\n relativeElementRect && {\n x: relativeElementRect.x - scroll.x,\n y: relativeElementRect.y - scroll.y,\n w: relativeElementRect.w,\n h: relativeElementRect.h,\n },\n [relativeElementRect, scroll]\n )\n\n return {bounds, element, ref}\n}\n","import {HTMLProps, useEffect} from 'react'\nimport {ConnectorRegionRects} from './types'\nimport {useRegionRects} from './useRegionRects'\n\nexport function ConnectorRegion(\n props: {\n onRectsChange?: (rects: ConnectorRegionRects | null) => void\n } & HTMLProps<HTMLDivElement>\n) {\n const {children, onRectsChange, ...restProps} = props\n\n const {bounds, element, ref} = useRegionRects()\n\n useEffect(() => {\n onRectsChange?.(bounds && element ? {bounds, element} : null)\n }, [bounds, element, onRectsChange])\n\n return (\n <div {...restProps} ref={ref}>\n {children}\n </div>\n )\n}\n","import {HTMLProps, useEffect, useState} from 'react'\nimport {useConnectorsStore} from './useConnectorsStore'\nimport {ConnectorRegionRects} from './types'\nimport {ConnectorRegion} from './ConnectorRegion'\n\nexport function ConnectFromRegion(\n props: {_key: string; zIndex: number} & HTMLProps<HTMLDivElement>\n) {\n const {children, _key: key, zIndex, ...restProps} = props\n const store = useConnectorsStore()\n const [rects, setRects] = useState<ConnectorRegionRects | null>(null)\n\n useEffect(() => store.from.subscribe(key, {zIndex}), [key, store, zIndex])\n\n useEffect(() => {\n if (rects) store.from.next(key, rects)\n }, [key, rects, store])\n\n return (\n <ConnectorRegion {...restProps} onRectsChange={setRects}>\n {children}\n </ConnectorRegion>\n )\n}\n","import {Connector, ConnectorRegionRects} from './types'\n\nexport interface ConnectorsStore {\n connectors: {\n subscribe: (observer: (connectors: Connector[]) => void) => () => void\n }\n\n from: {\n subscribe: (key: string, payload?: Record<string, unknown>) => () => void\n next: (key: string, rects: ConnectorRegionRects) => void\n }\n\n to: {\n subscribe: (key: string, payload?: Record<string, unknown>) => () => void\n next: (key: string, rects: ConnectorRegionRects) => void\n }\n}\n\nexport function createConnectorsStore(): ConnectorsStore {\n const configKeys: string[] = []\n const fieldKeys: string[] = []\n\n const channels = {\n from: new Map<string, ConnectorRegionRects | null>(),\n to: new Map<string, ConnectorRegionRects | null>(),\n }\n\n const payloads = {\n from: new Map<string, Record<string, unknown> | undefined>(),\n to: new Map<string, Record<string, unknown> | undefined>(),\n }\n\n const observers: ((connectors: Connector[]) => void)[] = []\n\n function notifyObservers() {\n const connectors: Connector[] = []\n\n for (const key of configKeys) {\n const toRects = channels.to.get(key)\n const toPayload = payloads.from.get(key)\n\n const fromRects = channels.from.get(key)\n const fromPayload = payloads.from.get(key)\n\n if (toRects && fromRects) {\n connectors.push({\n key,\n from: {...fromRects, payload: fromPayload},\n to: {...toRects, payload: toPayload},\n })\n }\n }\n\n for (const observer of observers) {\n observer(connectors)\n }\n }\n\n return {\n to: {\n subscribe(key, payload) {\n channels.to.set(key, null)\n payloads.to.set(key, payload)\n\n configKeys.push(key)\n\n return () => {\n channels.to.delete(key)\n payloads.to.delete(key)\n\n const idx = configKeys.indexOf(key)\n\n if (idx > -1) configKeys.splice(idx, 1)\n\n notifyObservers()\n }\n },\n next(key, rects) {\n channels.to.set(key, rects)\n\n if (fieldKeys.includes(key)) notifyObservers()\n },\n },\n\n connectors: {\n subscribe(observer) {\n observers.push(observer)\n\n return () => {\n const idx = observers.indexOf(observer)\n\n if (idx > -1) observers.splice(idx, 1)\n }\n },\n },\n\n from: {\n subscribe(key, payload) {\n channels.from.set(key, null)\n payloads.from.set(key, payload)\n\n fieldKeys.push(key)\n\n return () => {\n channels.from.delete(key)\n payloads.from.delete(key)\n\n const idx = fieldKeys.indexOf(key)\n\n if (idx > -1) fieldKeys.splice(idx, 1)\n\n notifyObservers()\n }\n },\n next(key, rects) {\n channels.from.set(key, rects)\n\n if (configKeys.includes(key)) notifyObservers()\n },\n },\n }\n}\n","import {ReactNode, useEffect, useMemo} from 'react'\nimport {ConnectorsStore, createConnectorsStore} from './ConnectorsStore'\nimport {ConnectorsStoreContext} from './ConnectorsStoreContext'\nimport {Connector} from './types'\n\nexport function ConnectorsProvider(props: {\n children?: ReactNode\n onConnectorsChange?: (connectors: Connector[]) => void\n}) {\n const {children, onConnectorsChange} = props\n const store: ConnectorsStore = useMemo(() => createConnectorsStore(), [])\n\n useEffect(\n () => onConnectorsChange && store.connectors.subscribe(onConnectorsChange),\n [onConnectorsChange, store]\n )\n\n return <ConnectorsStoreContext.Provider value={store}>{children}</ConnectorsStoreContext.Provider>\n}\n","import {\n ConnectorLine,\n ConnectorLinePoint,\n ConnectorOptions,\n ConnectorRegionRects,\n Rect,\n} from './types'\n\nfunction getConnectorLinePoint(\n options: ConnectorOptions,\n rect: Rect,\n bounds: Rect\n): ConnectorLinePoint {\n const centerY = rect.y + rect.h / 2\n const isAbove = rect.y + rect.h < bounds.y + options.arrow.marginY\n const isBelow = rect.y > bounds.y + bounds.h - options.arrow.marginY\n\n return {\n bounds,\n x: rect.x,\n y: centerY,\n centerY,\n startY: rect.y + options.path.marginY,\n endY: rect.y + rect.h - options.path.marginY,\n isAbove,\n isBelow,\n outOfBounds: isAbove || isBelow,\n }\n}\n\nexport function mapConnectorToLine(\n options: ConnectorOptions,\n connector: {from: ConnectorRegionRects; to: ConnectorRegionRects}\n): ConnectorLine {\n const fromBounds: Rect = {\n y: connector.from.bounds.y + options.arrow.threshold,\n // bottom: connector.from.bounds.y + connector.from.bounds.h - options.arrow.threshold,\n x: connector.from.bounds.x,\n // right: connector.from.bounds.x + connector.from.bounds.w,\n w: connector.from.bounds.w,\n h: connector.from.bounds.h - options.arrow.threshold * 2,\n }\n\n const from = getConnectorLinePoint(options, connector.from.element, fromBounds)\n from.x = connector.from.element.x + connector.from.element.w // + 1\n\n const fromBottom = fromBounds.y + fromBounds.h\n\n const toBounds: Rect = {\n y: connector.to.bounds.y + options.arrow.threshold,\n // bottom: connector.to.bounds.y + connector.to.bounds.h - options.arrow.threshold,\n x: connector.to.bounds.x,\n // right: connector.to.bounds.x + connector.to.bounds.w,\n w: connector.to.bounds.w,\n h: connector.to.bounds.h - options.arrow.threshold * 2,\n }\n\n const toBottom = toBounds.y + toBounds.h\n\n const to = getConnectorLinePoint(options, connector.to.element, toBounds)\n\n const maxStartY = Math.max(to.startY, from.startY)\n\n // Align from <-> to vertically\n from.y = Math.min(maxStartY, from.endY)\n if (from.y < toBounds.y) {\n from.y = Math.min(toBounds.y, from.endY)\n } else if (from.y > toBottom) {\n from.y = Math.max(toBottom, from.startY)\n }\n to.y = Math.min(maxStartY, to.endY)\n if (to.y < fromBounds.y) {\n to.y = Math.min(fromBounds.y, to.endY)\n } else if (to.y > fromBottom) {\n to.y = Math.max(fromBottom, to.startY)\n }\n\n // Keep within bounds\n from.y = Math.min(Math.max(from.y, fromBounds.y), fromBottom)\n to.y = Math.min(Math.max(to.y, toBounds.y), toBottom)\n\n return {from, to}\n}\n","import {ConnectorOptions} from '../../_lib/connector'\n\nexport function arrowPath(options: ConnectorOptions, x: number, y: number, dir: 1 | -1): string {\n return [\n `M ${x - options.arrow.size} ${y - options.arrow.size * dir} `,\n `L ${x} ${y}`,\n `L ${x + options.arrow.size} ${y - options.arrow.size * dir}`,\n ].join('')\n}\n","import {ConnectorLine, ConnectorOptions} from '../../_lib/connector'\n\nexport function drawArrowPath(\n options: ConnectorOptions,\n x: number,\n y: number,\n dir: number\n): string {\n return [\n `M ${x - options.arrow.size} ${y - options.arrow.size * dir} `,\n `L ${x} ${y}`,\n `L ${x + options.arrow.size} ${y - options.arrow.size * dir}`,\n ].join('')\n}\n\nfunction moveTo(x: number, y: number) {\n return `M${x} ${y}`\n}\n\nfunction lineTo(x: number, y: number) {\n return `L${x} ${y}`\n}\n\nfunction join(strings: string[], delim = '') {\n return strings.join(delim)\n}\n\nfunction quadCurve(x1: number, y1: number, x: number, y: number) {\n return `Q${x1} ${y1} ${x} ${y}`\n}\n\nexport function drawConnectorPath(options: ConnectorOptions, line: ConnectorLine): string {\n const {cornerRadius} = options.path\n const {from, to} = line\n const {x: fromX, y: fromY} = from\n const {x: _toX, y: toY} = to\n\n const toX = _toX - 1\n\n // Calculate divider position\n const dividerX = to.bounds.x + options.divider.offsetX\n\n // Calculate connector FROM path X position\n const fromPathX = from.isAbove || from.isBelow ? fromX + options.arrow.marginX : fromX\n\n // Calculate maximum corner radius\n const r0 = Math.min(cornerRadius, Math.abs(fromPathX - dividerX) / 2)\n const r1 = Math.min(cornerRadius, Math.abs(fromY - toY) / 2)\n\n const cmds: string[] = []\n\n // FROM\n if (from.isAbove) {\n cmds.push(\n moveTo(\n fromX + options.arrow.marginX,\n fromY - options.arrow.threshold + options.arrow.marginY\n ),\n lineTo(fromX + options.arrow.marginX, fromY - r0),\n quadCurve(fromX + options.arrow.marginX, fromY, fromX + options.arrow.marginX + r0, fromY)\n )\n } else if (from.isBelow) {\n cmds.push(\n moveTo(\n fromX + options.arrow.marginX,\n fromY + options.arrow.threshold - options.arrow.marginY\n ),\n lineTo(fromX + options.arrow.marginX, fromY + r0),\n quadCurve(fromX + options.arrow.marginX, fromY, fromX + options.arrow.marginX + r0, fromY)\n )\n } else {\n cmds.push(moveTo(fromX, fromY))\n }\n\n // TO\n if (to.isAbove) {\n if (fromY < to.bounds.y) {\n cmds.push(\n lineTo(dividerX - r1, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + r1),\n lineTo(dividerX, toY - r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(dividerX - cornerRadius, toY),\n quadCurve(dividerX, toY, dividerX, toY - cornerRadius),\n lineTo(dividerX, toY - options.arrow.threshold + options.arrow.marginY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - cornerRadius, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY - cornerRadius),\n lineTo(dividerX, toY - options.arrow.threshold + options.arrow.marginY)\n )\n }\n } else if (to.isBelow) {\n if (fromY > to.bounds.y + to.bounds.h) {\n // curl around\n cmds.push(\n lineTo(dividerX - options.arrow.marginX - r1, fromY),\n quadCurve(\n dividerX - options.arrow.marginX,\n fromY,\n dividerX - options.arrow.marginX,\n fromY - r1\n ),\n lineTo(dividerX - options.arrow.marginX, toY + r1),\n quadCurve(\n dividerX - options.arrow.marginX,\n toY,\n dividerX - options.arrow.marginX + r1,\n toY\n ),\n lineTo(dividerX - cornerRadius, toY),\n quadCurve(dividerX, toY, dividerX, toY + cornerRadius),\n lineTo(dividerX, toY + options.arrow.threshold - options.arrow.marginY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - cornerRadius, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + cornerRadius),\n lineTo(dividerX, toY + options.arrow.threshold - options.arrow.marginY)\n )\n }\n } else if (fromY < toY) {\n cmds.push(\n lineTo(dividerX - r0, fromY),\n quadCurve(dividerX, fromY, dividerX, fromY + r1),\n lineTo(dividerX, toY - r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(toX, toY)\n )\n } else {\n cmds.push(\n lineTo(dividerX - Math.min(r0, r1), fromY),\n quadCurve(dividerX, fromY, dividerX, fromY - Math.min(r0, r1)),\n lineTo(dividerX, toY + r1),\n quadCurve(dividerX, toY, dividerX + r1, toY),\n lineTo(toX, toY)\n )\n }\n\n return join(cmds)\n}\n","import {rgba, useTheme} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {ConnectorOptions, mapConnectorToLine, Rect} from '../_lib/connector'\nimport {arrowPath} from './draw/arrowPath'\nimport {drawConnectorPath} from './draw/connectorPath'\n\nexport function ConnectorPath(props: {\n from: {bounds: Rect; element: Rect}\n to: {bounds: Rect; element: Rect}\n options: ConnectorOptions\n}) {\n const {from, options, to} = props\n const {strokeWidth} = options.path\n const theme = useTheme()\n\n const line = useMemo(() => mapConnectorToLine(options, {from, to}), [from, options, to])\n\n return (\n <>\n <path\n d={drawConnectorPath(options, line)}\n stroke={theme.sanity.color.base.bg}\n strokeWidth={strokeWidth + 4}\n />\n\n <path\n d={drawConnectorPath(options, line)}\n stroke={rgba(theme.sanity.color.base.border, 0.5)}\n strokeWidth={strokeWidth}\n />\n\n {line.from.isAbove && (\n <path\n d={arrowPath(\n options,\n line.from.x + options.arrow.marginX,\n line.from.bounds.y - options.arrow.threshold + options.arrow.marginY,\n -1\n )}\n stroke={theme.sanity.color.base.border}\n strokeWidth={strokeWidth}\n />\n )}\n\n {line.from.isBelow && (\n <path\n d={arrowPath(\n options,\n line.from.x + options.arrow.marginX,\n line.from.bounds.y +\n line.from.bounds.h +\n options.arrow.threshold -\n options.arrow.marginY,\n 1\n )}\n stroke={theme.sanity.color.base.border}\n strokeWidth={strokeWidth}\n />\n )}\n </>\n )\n}\n","import {Fragment, useEffect, useState} from 'react'\nimport {Connector, ConnectorOptions} from '../_lib/connector'\nimport {ConnectorPath} from './ConnectorPath'\n\nconst DEBUG = false\n\nconst options: ConnectorOptions = {\n arrow: {\n marginX: 10.5,\n marginY: 5,\n size: 4,\n threshold: 16.5,\n },\n divider: {\n offsetX: -10.5,\n },\n path: {\n cornerRadius: 3,\n marginY: 10.5,\n strokeWidth: 1,\n },\n}\n\nexport function AssistConnectorsOverlay(props: {connectors: Connector[]}) {\n const {connectors} = props\n // const zIndexes = connectors.map((connector) => {\n // const zIndex = connector.from.payload?.zIndex\n\n // if (typeof zIndex === 'number') {\n // return zIndex\n // }\n\n // return 1\n // })\n const [, setRedraw] = useState(false)\n useEffect(() => {\n // hacky workaround to force redraw for connectors on initial render\n // this seem to improve initial measurements of elements\n setRedraw(true)\n }, [])\n\n // const zIndex = zIndexes.length ? Math.max(...zIndexes) : 1\n\n return (\n <>\n <svg\n fill=\"none\"\n width={window.innerWidth}\n height={window.innerHeight}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n zIndex: 150,\n // zIndex,\n }}\n >\n {connectors.map((connector) => (\n <ConnectorPath\n from={connector.from}\n key={connector.key}\n options={options}\n to={connector.to}\n />\n ))}\n </svg>\n {DEBUG &&\n connectors.map(({key, from, to}) => {\n return (\n <Fragment key={key}>\n <div\n style={{\n position: 'fixed',\n top: from.bounds.y,\n left: from.bounds.x,\n width: from.bounds.w,\n height: from.bounds.h,\n pointerEvents: 'none',\n overflow: 'hidden',\n outline: '1px dotted red',\n outlineOffset: -1,\n zIndex: 10000000 - 1,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: from.element.y - from.bounds.y,\n left: from.element.x - from.bounds.x,\n width: from.element.w,\n height: from.element.h,\n border: '1px solid red',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div\n style={{\n position: 'fixed',\n top: to.bounds.y,\n left: to.bounds.x,\n width: to.bounds.w,\n height: to.bounds.h,\n pointerEvents: 'none',\n overflow: 'hidden',\n outline: '1px dotted teal',\n outlineOffset: -1,\n zIndex: 10000000 - 1,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: to.element.y - to.bounds.y,\n left: to.element.x - to.bounds.x,\n width: to.element.w,\n height: to.element.h,\n border: '1px solid teal',\n boxSizing: 'border-box',\n }}\n />\n </div>\n </Fragment>\n )\n })}\n </>\n )\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import {SanityDocumentLike} from 'sanity'\nimport get from 'lodash/get'\n\nexport const getLanguageParams = (\n select: Record<string, string> | undefined,\n document: SanityDocumentLike | undefined\n): Record<string, unknown> => {\n if (!select || !document) {\n return {}\n }\n\n const selection: Record<string, string> = select || {}\n const selectedValue: Record<string, unknown> = {}\n for (const [key, path] of Object.entries(selection)) {\n let value = get(document, path)\n if (Array.isArray(value)) {\n // If there are references in the array, ensure they have `_ref` set, otherwise they are considered empty and can safely be ignored\n value = value.filter((item) =>\n typeof item === 'object' ? item?._type !== 'reference' || '_ref' in item : true\n )\n }\n selectedValue[key] = value\n }\n\n return selectedValue\n}\n","export const toFieldLanguagesKeyPrefix = 'sanityStudio:assist:field-languages:from:'\n\nexport function getPreferredToFieldLanguages(fromLanguageId: string): string[] {\n if (typeof localStorage === 'undefined') {\n return []\n }\n\n const value = localStorage.getItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`)\n return value ? (JSON.parse(value) as string[]) : []\n}\n\nexport function setPreferredToFieldLanguages(fromLanguageId: string, languageIds: string[]) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`, JSON.stringify(languageIds))\n}\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, Path, pathToString, SanityDocumentLike, useClient} from 'sanity'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {Box, Button, Checkbox, Dialog, Flex, Radio, Spinner, Stack, Text, Tooltip} from '@sanity/ui'\nimport {\n defaultLanguageOutputs,\n FieldLanguageMap,\n getDocumentMembersFlat,\n getFieldLanguageMap,\n} from './paths'\nimport {PlayIcon} from '@sanity/icons'\nimport {Language} from './types'\nimport {getLanguageParams} from './getLanguageParams'\nimport {getPreferredToFieldLanguages, setPreferredToFieldLanguages} from './languageStore'\nimport {ConditionalMemberState} from '../helpers/conditionalMembers'\n\ninterface FieldTranslationParams {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n translatePath: Path\n conditionalMembers: ConditionalMemberState[]\n}\n\nexport interface FieldTranslationContextValue {\n openFieldTranslation: (args: FieldTranslationParams) => void\n translationLoading: boolean\n}\n\nexport const FieldTranslationContext = createContext<FieldTranslationContextValue>({\n openFieldTranslation: () => {},\n translationLoading: false,\n})\n\nexport function useFieldTranslation() {\n return useContext(FieldTranslationContext)\n}\n\nfunction hasValuesToTranslate(\n fieldLanguageMaps: FieldLanguageMap[] | undefined,\n fromLanguage: Language | undefined,\n basePath: Path\n) {\n return fieldLanguageMaps?.some(\n (map) =>\n map.inputLanguageId === fromLanguage?.id &&\n map.inputPath &&\n pathToString(map.inputPath).startsWith(pathToString(basePath))\n )\n}\n\nexport function FieldTranslationProvider(props: PropsWithChildren<{}>) {\n const {config: assistConfig} = useAiAssistanceConfig()\n const apiClient = useApiClient(assistConfig.__customApiClient)\n const config = assistConfig.translate?.field\n const {translate: runTranslate} = useTranslate(apiClient)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const [fieldTranslationParams, setFieldTranslationParams] = useState<\n FieldTranslationParams | undefined\n >()\n const [languages, setLanguages] = useState<Language[] | undefined>()\n const [fromLanguage, setFromLanguage] = useState<Language | undefined>(undefined)\n const [toLanguages, setToLanguages] = useState<Language[] | undefined>(undefined)\n const [fieldLanguageMaps, setFieldLanguageMaps] = useState<FieldLanguageMap[] | undefined>()\n\n const close = useCallback(() => {\n setDialogOpen(false)\n setLanguages(undefined)\n setFieldTranslationParams(undefined)\n }, [])\n const languageClient = useClient({apiVersion: config?.apiVersion ?? '2022-11-27'})\n const documentId = fieldTranslationParams?.document?._id\n const id = useId()\n\n const selectFromLanguage = useCallback(\n (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => {\n const {document, documentSchema} = params ?? {}\n setFromLanguage(from)\n if (!document || !documentSchema || !params || !languages) {\n setFieldLanguageMaps(undefined)\n return\n }\n\n const preferred = getPreferredToFieldLanguages(from.id)\n const allToLanguages = languages.filter((l) => l.id !== from?.id)\n const filteredToLanguages = allToLanguages.filter(\n (l) => !preferred.length || preferred.includes(l.id)\n )\n\n setToLanguages(filteredToLanguages)\n const fromId = from?.id\n const allToIds = allToLanguages?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && allToIds?.length) {\n const transMap = getFieldLanguageMap(\n documentSchema,\n docMembers,\n fromId,\n allToIds.filter((toId) => fromId !== toId),\n config?.translationOutputs ?? defaultLanguageOutputs\n )\n setFieldLanguageMaps(transMap)\n } else {\n setFieldLanguageMaps(undefined)\n }\n },\n [config]\n )\n\n const toggleToLanguage = useCallback(\n (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => {\n if (!languages || !fromLanguage) {\n return\n }\n const wasSelected = !!toLanguages?.find((l) => l.id === toggledLang.id)\n const newToLangs = languages.filter(\n (anyLang) =>\n !!toLanguages?.find(\n (selectedLang) => toggledLang.id !== selectedLang.id && selectedLang.id === anyLang.id\n ) ||\n (toggledLang.id === anyLang.id && !wasSelected)\n )\n setToLanguages(newToLangs)\n setPreferredToFieldLanguages(\n fromLanguage.id,\n newToLangs.map((l) => l.id)\n )\n },\n [fromLanguage]\n )\n\n const openFieldTranslation = useCallback(\n async (params: FieldTranslationParams) => {\n setDialogOpen(true)\n const languageParams = getLanguageParams(config?.selectLanguageParams, params.document)\n const languages: Language[] | undefined = await (typeof config?.languages === 'function'\n ? config?.languages(languageClient, languageParams)\n : Promise.resolve(config?.languages))\n setLanguages(languages)\n setFieldTranslationParams(params)\n const fromLanguage = languages?.[0]\n if (fromLanguage) {\n selectFromLanguage(fromLanguage, languages, params)\n } else {\n console.error('No languages available for selected language params', languageParams)\n }\n },\n [selectFromLanguage, config, languageClient]\n )\n\n const contextValue: FieldTranslationContextValue = useMemo(() => {\n return {\n openFieldTranslation,\n translationLoading: false,\n }\n }, [openFieldTranslation])\n\n const runDisabled =\n !fromLanguage ||\n !toLanguages?.length ||\n !fieldLanguageMaps?.length ||\n !documentId ||\n !hasValuesToTranslate(fieldLanguageMaps, fromLanguage, fieldTranslationParams.translatePath)\n\n const onRunTranslation = useCallback(() => {\n const translatePath = fieldTranslationParams?.translatePath\n if (fieldLanguageMaps && documentId && translatePath) {\n runTranslate({\n documentId,\n translatePath: translatePath,\n fieldLanguageMap: fieldLanguageMaps.map((map) => ({\n ...map,\n // eslint-disable-next-line max-nested-callbacks\n outputs: map.outputs.filter((out) => !!toLanguages?.find((l) => l.id === out.id)),\n })),\n conditionalMembers: fieldTranslationParams?.conditionalMembers,\n })\n }\n close()\n }, [\n fieldLanguageMaps,\n documentId,\n runTranslate,\n close,\n toLanguages,\n fieldTranslationParams?.translatePath,\n fieldTranslationParams?.conditionalMembers,\n ])\n\n const runButton = (\n <Button\n text={`Translate`}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n onClick={onRunTranslation}\n />\n )\n\n return (\n <FieldTranslationContext.Provider value={contextValue}>\n {dialogOpen ? (\n <Dialog\n id={id}\n width={1}\n open={dialogOpen}\n onClose={close}\n header=\"Translate fields\"\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>There is nothing to translate in the selected from-language.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n {languages ? (\n <Flex padding={4} gap={5} align=\"flex-start\" justify=\"center\">\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">From</Text>\n </Box>\n {languages?.map((radioLanguage) => (\n <FromLanguageRadio\n key={radioLanguage.id}\n {...{\n radioLanguage,\n fromLanguage,\n selectFromLanguage,\n languages,\n fieldTranslationParams,\n }}\n />\n ))}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages.map((checkboxLanguage) => (\n <ToLanguageCheckbox\n key={checkboxLanguage.id}\n {...{checkboxLanguage, fromLanguage, toLanguages, toggleToLanguage, languages}}\n />\n ))}\n </Stack>\n </Flex>\n ) : (\n <Flex padding={4} gap={2} align=\"flex-start\" justify=\"center\">\n <Box>\n <Spinner />\n </Box>\n <Text>Loading languages...</Text>\n </Flex>\n )}\n </Dialog>\n ) : null}\n {props.children}\n </FieldTranslationContext.Provider>\n )\n}\n\nfunction ToLanguageCheckbox(props: {\n checkboxLanguage: Language\n fromLanguage: Language | undefined\n toLanguages: Language[] | undefined\n toggleToLanguage: (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => void\n languages: Language[]\n}) {\n const {checkboxLanguage, fromLanguage, toLanguages, toggleToLanguage, languages} = props\n const langId = checkboxLanguage.id\n const onChange = useCallback(\n () => toggleToLanguage(checkboxLanguage, toLanguages, languages),\n [toggleToLanguage, checkboxLanguage, toLanguages, languages]\n )\n return (\n <Flex\n key={langId}\n gap={3}\n align=\"center\"\n as={'label'}\n style={langId === fromLanguage?.id ? {opacity: 0.5} : undefined}\n >\n <Checkbox\n name=\"toLang\"\n value={langId}\n checked={langId !== fromLanguage?.id && !!toLanguages?.find((tl) => tl.id === langId)}\n onChange={onChange}\n disabled={langId === fromLanguage?.id}\n />\n <Text muted={langId === fromLanguage?.id}>{checkboxLanguage.title ?? langId}</Text>\n </Flex>\n )\n}\n\nfunction FromLanguageRadio(props: {\n radioLanguage: Language\n fromLanguage: Language | undefined\n selectFromLanguage: (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => void\n languages: Language[] | undefined\n fieldTranslationParams: FieldTranslationParams | undefined\n}) {\n const {languages, radioLanguage, selectFromLanguage, fromLanguage, fieldTranslationParams} = props\n const langId = radioLanguage.id\n\n const onChange = useCallback(\n () => selectFromLanguage(radioLanguage, languages, fieldTranslationParams),\n [selectFromLanguage, radioLanguage, languages, fieldTranslationParams]\n )\n return (\n <Flex key={langId} gap={3} align=\"center\" as={'label'}>\n <Radio\n name=\"fromLang\"\n value={langId}\n checked={langId === fromLanguage?.id}\n onChange={onChange}\n />\n <Text>{radioLanguage.title ?? radioLanguage.id}</Text>\n </Flex>\n )\n}\n","import {useState} from 'react'\nimport {LayoutProps} from 'sanity'\nimport {Connector, ConnectorsProvider} from '../_lib/connector'\nimport {AssistConnectorsOverlay} from '../assistConnectors'\nimport {AssistPluginConfig} from '../plugin'\nimport {AiAssistanceConfigProvider} from './AiAssistanceConfigContext'\nimport {RunInstructionRequest} from '../useApiClient'\nimport {StudioInstruction} from '../types'\nimport {RunInstructionProvider} from './RunInstructionProvider'\nimport {ThemeProvider} from '@sanity/ui'\nimport {FieldTranslationProvider} from '../translate/FieldTranslationProvider'\n\nexport interface AIStudioLayoutProps extends LayoutProps {\n config: AssistPluginConfig\n}\n\nexport type RunInstructionArgs = Omit<RunInstructionRequest, 'instructionKey' | 'userText'> & {\n instruction: StudioInstruction\n}\n\nexport function AssistLayout(props: AIStudioLayoutProps) {\n const [connectors, setConnectors] = useState<Connector[]>([])\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n <RunInstructionProvider>\n <FieldTranslationProvider>\n <ConnectorsProvider onConnectorsChange={setConnectors}>\n {props.renderDefault(props)}\n <ThemeProvider tone=\"default\">\n <AssistConnectorsOverlay connectors={connectors} />\n </ThemeProvider>\n </ConnectorsProvider>\n </FieldTranslationProvider>\n </RunInstructionProvider>\n </AiAssistanceConfigProvider>\n )\n}\n","import {InputProps, isArraySchemaType, PatchEvent, unset} from 'sanity'\nimport {ErrorInfo, PropsWithChildren, useCallback, useMemo, useState} from 'react'\nimport {Box, Button, Card, ErrorBoundary, Flex, Stack, Text} from '@sanity/ui'\nimport {isPortableTextArray} from '../helpers/typeUtils'\nimport styled from 'styled-components'\n\nconst WrapPreCard = styled(Card)`\n & pre {\n white-space: pre-wrap !important;\n }\n`\n\nexport function SafeValueInput(props: InputProps) {\n return (\n <ErrorWrapper onChange={props.onChange}>\n <PteValueFixer {...props} />\n </ErrorWrapper>\n )\n}\n\nexport function ErrorWrapper(\n props: PropsWithChildren<{onChange: (patchEvent: PatchEvent) => void}>\n) {\n const {onChange} = props\n const [error, setError] = useState<Error | undefined>()\n\n const catchError = useCallback(\n (params: {error: Error; info: ErrorInfo}) => {\n setError(params.error)\n },\n [setError]\n )\n\n const unsetValue = useCallback(() => {\n onChange(PatchEvent.from(unset()))\n setError(undefined)\n }, [onChange])\n const dismiss = useCallback(() => setError(undefined), [])\n const catcher = <ErrorBoundary onCatch={catchError}>{props.children}</ErrorBoundary>\n\n return error ? (\n <Card border tone=\"critical\" padding={2} contentEditable={false}>\n <Stack space={3}>\n <Text muted weight=\"semibold\">\n An error occurred.\n </Text>\n\n <WrapPreCard flex={1} padding={2} tone=\"critical\" border>\n {catcher}\n </WrapPreCard>\n\n <Flex width=\"fill\" flex={1} gap={3}>\n <Box flex={1}>\n <Button text=\"Dismiss\" onClick={dismiss} tone=\"primary\" />\n </Box>\n <Button text=\"Unset value\" onClick={unsetValue} tone=\"critical\" />\n </Flex>\n </Stack>\n </Card>\n ) : (\n catcher\n )\n}\n\nfunction PteValueFixer(props: InputProps) {\n const isPortableText = useMemo(\n () => isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType),\n [props.schemaType]\n )\n const value = props.value\n if (isPortableText && value && !(value as any[]).length) {\n return props.renderDefault({...props, value: undefined})\n }\n\n return props.renderDefault(props)\n}\n","import {BlockProps, PatchEvent, useFormCallbacks} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {ErrorWrapper} from '../components/SafeValueInput'\nimport {useCallback} from 'react'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistFormBlock(props: BlockProps) {\n const presence = useAssistPresence(props.path, true)\n const {onChange} = useFormCallbacks()\n const key = props.value._key\n const localOnChange = useCallback(\n (patchEvent: PatchEvent) => {\n if (!key) {\n return\n }\n onChange(PatchEvent.from(patchEvent).prefixAll({_key: key}))\n },\n [onChange, key]\n )\n const singlePresence = presence[0]\n return (\n <ErrorWrapper onChange={localOnChange}>\n <Flex align=\"center\" justify=\"space-between\">\n <Box flex={1}>{props.renderDefault(props)}</Box>\n {singlePresence && <AiFieldPresence presence={singlePresence} />}\n </Flex>\n </ErrorWrapper>\n )\n}\n","import {ItemProps} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistItem(props: ItemProps) {\n const {path} = props\n const presence = useAssistPresence(path, true)\n\n return (\n <Flex align=\"center\" width=\"fill\" style={{position: 'relative'}}>\n <Box flex={1}>{props.renderDefault({...props})}</Box>\n {presence.map((pre) => (\n <Box key={pre.user.id} style={{position: 'absolute', right: 35}}>\n <AiFieldPresence presence={pre} />\n </Box>\n ))}\n </Flex>\n )\n}\n","import {FieldError, FieldMember, FieldSetMember, ObjectMember} from 'sanity'\n\nexport function findFieldMember(\n members: ObjectMember[],\n fieldName: string\n): FieldMember | FieldError | undefined {\n return members.find(\n (m): m is FieldMember | FieldError =>\n (m.kind === 'field' && m.name === fieldName) ||\n (m.kind === 'error' && m.fieldName === fieldName)\n )\n}\n\nexport function findFieldsetMember(\n members: ObjectMember[],\n fieldsetName: string\n): FieldSetMember | undefined {\n return members.find(\n (m): m is FieldSetMember => m.kind === 'fieldSet' && m.fieldSet.name === fieldsetName\n )\n}\n","import {FieldError, FieldMember, ObjectInputMember, ObjectInputProps} from 'sanity'\nimport {findFieldMember, findFieldsetMember} from '../helpers'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useId, useMemo} from 'react'\n\nexport function InstructionInput(props: ObjectInputProps) {\n return (\n <Stack space={[4, 4, 4, 5]}>\n <NameField {...props} />\n <ShareField {...props} />\n <ObjectMember fieldName={'prompt'} {...props} />\n <ObjectMember fieldName={'output'} {...props} />\n </Stack>\n )\n}\n\nfunction ObjectMember({fieldName, ...props}: ObjectInputProps & {fieldName: string}) {\n const member = findFieldMember(props.members, fieldName)\n return member ? <ObjectInputMember {...props} member={member} /> : null\n}\n\nconst NONE: (FieldMember | FieldError)[] = []\n\nfunction NameField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const titleId = useId()\n\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const iconMember = findFieldMember(members, 'icon')\n const titleMember = findFieldMember(members, 'title')\n\n const titlePlaceholder = 'Untitled'\n const moddedTitleMember = useMemo(() => {\n if (!titleMember) {\n return undefined\n }\n if (titleMember.kind === 'error') {\n return titleMember\n }\n return {\n ...titleMember,\n field: {\n ...titleMember?.field,\n schemaType: {\n ...titleMember?.field.schemaType,\n placeholder: titlePlaceholder,\n },\n },\n }\n }, [titleMember, titlePlaceholder])\n\n return (\n <Stack space={5}>\n <Stack space={2}>\n <Flex gap={1}>\n <Text as=\"label\" weight=\"semibold\" size={1} htmlFor={titleId}>\n Name\n </Text>\n </Flex>\n\n <Text muted size={1}>\n How this instruction appears in menus\n </Text>\n\n <Flex align=\"center\">\n {iconMember && (\n <Box flex=\"none\">\n <ObjectInputMember {...props} member={iconMember} />\n </Box>\n )}\n {moddedTitleMember && (\n <Box flex={1} style={{marginLeft: -1}}>\n <ObjectInputMember {...props} member={moddedTitleMember} />\n </Box>\n )}\n </Flex>\n </Stack>\n </Stack>\n )\n}\n\nfunction ShareField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const visibilityMember = findFieldMember(members, 'userId')\n\n return <>{visibilityMember && <ObjectInputMember {...props} member={visibilityMember} />}</>\n}\n","import {FieldProps} from 'sanity'\n\nexport function HiddenFieldTitle(props: FieldProps) {\n return props.renderDefault({...props, title: '', level: props.level - 2, changed: false})\n}\n","import {set, StringInputProps, unset, useCurrentUser} from 'sanity'\nimport {Card, Flex, Switch, Text} from '@sanity/ui'\nimport {useCallback, useId} from 'react'\n\nexport function InstructionVisibility(props: StringInputProps) {\n const {value, onChange} = props\n\n const user = useCurrentUser()\n\n const handleChange = useCallback(() => {\n const newValue = value ? '' : user?.id ?? ''\n onChange(newValue ? set(newValue) : unset())\n }, [onChange, user, value])\n\n const id = useId()\n\n return (\n <Card>\n <Flex gap={2} align=\"flex-start\">\n <div style={{margin: '-3px 0'}}>\n <Switch\n {...props.elementProps}\n id={id}\n value={`${!value}`}\n checked={!value}\n onChange={handleChange}\n disabled={props.elementProps.readOnly}\n />\n </div>\n\n <Text muted size={1} weight=\"medium\">\n <label htmlFor={id}>Make visible to all Studio members</label>\n </Text>\n </Flex>\n </Card>\n )\n}\n","import {icons} from '@sanity/icons'\nimport {set, StringInputProps} from 'sanity'\nimport {Button, Menu, MenuButton, MenuItem} from '@sanity/ui'\nimport {ElementType, ReactNode, useCallback, useId, useMemo} from 'react'\n\nexport function IconInput(props: StringInputProps) {\n const {value, onChange} = props\n const id = useId()\n const items = useMemo(\n () =>\n Object.entries(icons).map(([key, icon]) => (\n <IconItem key={key} iconKey={key} icon={icon} onChange={onChange} />\n )),\n [onChange]\n )\n\n const selectedIcon = useMemo(() => getIcon(value), [value])\n\n return (\n <MenuButton\n button={\n <Button icon={selectedIcon} title=\"Select icon\" padding={3} mode=\"ghost\" radius={1} />\n }\n id={id}\n menu={<Menu style={{maxHeight: 300}}>{items}</Menu>}\n popover={{portal: true}}\n />\n )\n}\n\nfunction IconItem({\n icon,\n iconKey: key,\n onChange,\n}: {\n iconKey: string\n icon: ElementType | ReactNode\n onChange: StringInputProps['onChange']\n}) {\n const onClick = useCallback(() => onChange(set(key)), [onChange, key])\n return <MenuItem icon={icon} title={key} text={key} onClick={onClick} />\n}\n\nexport function getIcon(iconName?: string) {\n return Object.entries(icons).find(([key]) => key === iconName)?.[1] ?? icons.sparkles\n}\n","import {set, StringInputProps} from 'sanity'\nimport {useCallback, useContext, useEffect, useId, useRef} from 'react'\nimport {Box} from '@sanity/ui'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {FieldAutocomplete} from '../../../assistInspector/FieldAutocomplete'\nimport {FieldRef} from '../../../assistInspector/helpers'\nimport {TypePathContext} from '../AssistDocumentForm'\n\nexport function FieldRefPathInput(props: StringInputProps) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const typePath = useContext(TypePathContext)\n const ref = useRef<HTMLDivElement>(null)\n const id = useId()\n const {onChange} = props\n\n useEffect(() => {\n ref.current?.querySelector('input')?.focus()\n }, [])\n\n const onSelect = useCallback((path: string) => onChange(set(path)), [onChange])\n\n const filter = useCallback(\n (field: FieldRef) => {\n if (!field.key.includes('|') || !typePath) {\n return true\n }\n if (field.key.includes('|') && !typePath.includes('|')) {\n return false\n }\n\n const fieldSegments = field.key.split('.')\n const lastArrayItemIndex = fieldSegments.findLastIndex((s) => s.includes('|'))\n const mustStartWith = fieldSegments.slice(0, lastArrayItemIndex + 1).join('.')\n return typePath.startsWith(mustStartWith)\n },\n [typePath]\n )\n if (!documentSchema) {\n return props.renderDefault(props)\n }\n\n return (\n <Box flex={1} style={{minWidth: 300}} ref={ref}>\n <FieldAutocomplete\n id={id}\n schemaType={documentSchema}\n onSelect={onSelect}\n fieldPath={props.value}\n filter={filter}\n />\n </Box>\n )\n}\n","import {ArrayOfObjectsInputProps, useCurrentUser} from 'sanity'\nimport {useMemo} from 'react'\nimport {StudioInstruction} from '../../types'\n\nexport function InstructionsArrayInput(props: ArrayOfObjectsInputProps) {\n const user = useCurrentUser()\n\n const originalValue = props.value as StudioInstruction[] | undefined\n const originalMembers = props.members\n const value = useMemo(\n () => (originalValue ?? []).filter((v) => !v.userId || v.userId === user?.id),\n [originalValue, user]\n )\n const members = useMemo(\n () =>\n (originalMembers ?? []).filter((v) => {\n if (v.kind === 'error') {\n return true\n }\n const value = v?.item?.value as any\n return !value.userId || value.userId === user?.id\n }),\n [originalMembers, user]\n )\n return props.renderDefault({...props, value, members})\n}\n","import {BlockProps} from 'sanity'\nimport {createContext} from 'react'\n\n// workaround for preview value sometimes lagging behind\nexport const InlineBlockValueContext = createContext<unknown>(undefined)\n\nexport function AssistInlineFormBlock(props: BlockProps) {\n return (\n <InlineBlockValueContext.Provider value={props.value}>\n <>{props.renderDefault(props)}</>\n </InlineBlockValueContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {useSelectedField} from '../../assistInspector/helpers'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {PreviewProps} from 'sanity'\nimport {SelectedFieldContext} from './SelectedFieldContext'\nimport {InlineBlockValueContext} from '../../assistFormComponents/AssistInlineFormBlock'\n\nexport function FieldRefPreview(props: PreviewProps & {path?: string}) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const path = (useContext(InlineBlockValueContext) as {path?: string})?.path ?? props.path\n const selectedField = useSelectedField(documentSchema, path)\n return (\n <Flex gap={2} align=\"center\" style={{width: '100%'}}>\n <Flex flex={1} gap={2} align=\"center\" paddingY={3} paddingX={1}>\n {/*<Box>\n <Text>{selectedField?.icon ? createElement(selectedField?.icon) : <CodeIcon />}</Text>\n </Box>*/}\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {selectedField?.title ?? 'Select field'}\n </Text>\n </Box>\n </Flex>\n <>{props.actions}</>\n </Flex>\n )\n}\n","import {ObjectInputProps} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport {useEffect, useRef} from 'react'\n\nexport function HideReferenceChangedBannerInput(props: ObjectInputProps) {\n const ref = useRef<HTMLDivElement>(null)\n\n // hides \"reference was changed\" banner (it is incorrectly flashing because the pane handler does not support the way wie use the assist pane)\n useEffect(() => {\n const parent = ref.current?.closest('[data-testid=\"pane-content\"]')\n if (!parent) {\n return\n }\n const style = document.createElement('style')\n const parentId = `id-${Math.random()}`.replace('.', '-')\n parent.id = parentId\n\n style.innerText = `\n #${parentId} [data-testid=\"reference-changed-banner\"] { display: none; }\n `\n parent.prepend(style)\n }, [ref])\n\n return <Box ref={ref}>{props.renderDefault(props)}</Box>\n}\n","import {defineArrayMember, defineField, defineType} from 'sanity'\nimport {contextDocumentTypeName} from '../types'\nimport {DocumentTextIcon, TokenIcon} from '@sanity/icons'\nimport {HideReferenceChangedBannerInput} from '../components/HideReferenceChangedBannerInput'\n\nexport const contextDocumentSchema = defineType({\n type: 'document',\n name: contextDocumentTypeName,\n title: 'AI context',\n liveEdit: true,\n icon: TokenIcon,\n components: {\n input: HideReferenceChangedBannerInput,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n name: 'context',\n type: 'array',\n title: 'Context',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n }),\n ],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n context: 'context',\n },\n prepare({title, context}) {\n const text = context\n ?.flatMap((block: any) => block?.children)\n .flatMap((child: any) => child?.text?.split(' '))\n .filter(Boolean)\n const words = text?.length ?? 0\n return {\n title,\n subtitle: `Words: ${words}`,\n media: DocumentTextIcon,\n }\n },\n },\n})\n","// Strict ESM env, designed to run outside Node.js in envs that provide WebCrypto (deno, browsers, etc)\n\nexport default function getRandomValues(typedArray) {\n const crypto =\n typeof window !== 'undefined' && 'crypto' in window\n ? window.crypto\n : globalThis.crypto\n\n if (!crypto || !crypto.getRandomValues) {\n throw new Error('WebCrypto not available in this environment')\n }\n\n return crypto.getRandomValues(typedArray)\n}\n","import getRandomValues from 'get-random-values-esm'\n\n// WHATWG crypto RNG - https://w3c.github.io/webcrypto/Overview.html\nfunction whatwgRNG(length = 16) {\n const rnds8 = new Uint8Array(length)\n getRandomValues(rnds8)\n return rnds8\n}\n\nconst getByteHexTable = (() => {\n let table: string[]\n return () => {\n if (table) {\n return table\n }\n table = []\n for (let i = 0; i < 256; ++i) {\n table[i] = (i + 0x100).toString(16).substring(1)\n }\n return table\n }\n})()\n\nexport function randomKey(length?: number) {\n const table = getByteHexTable()\n return whatwgRNG(length)\n .reduce((str, n) => str + table[n], '')\n .slice(0, length)\n}\n","import {ArrayOfObjectsInputProps, set, typed} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport styled from 'styled-components'\nimport {useEffect} from 'react'\nimport {ContextBlock, FieldRef, PromptBlock, PromptTextBlock, UserInputBlock} from '../../../types'\nimport {randomKey} from '../../../_lib/randomKey'\n\nconst PteMods = styled(Box)`\n & [data-testid='pt-editor__toolbar-card'] > div > div:last-child {\n display: none;\n }\n & [data-testid='pt-editor'] {\n min-height: 300px;\n }\n & [data-testid='pt-editor'] .pt-inline-object * {\n max-width: 400px;\n }\n`\n\nexport function PromptInput(props: ArrayOfObjectsInputProps) {\n // quickfixes the model (converts blocks to inline blocks for alpha customers)\n // backend supports both types, but this prevents \"missing block\" schema errors\n useOnlyInlineBlocks(props)\n return <PteMods>{props.renderDefault(props)}</PteMods>\n}\n\nfunction useOnlyInlineBlocks(props: ArrayOfObjectsInputProps) {\n useEffect(() => {\n let needsFix = false\n const val = ((props.value as PromptBlock[]) ?? []).map((block) => {\n if (block._type === 'block') {\n return block\n }\n\n needsFix = true\n return typed<PromptTextBlock>({\n _key: randomKey(12),\n _type: 'block',\n level: 0,\n markDefs: [],\n style: 'normal',\n children: [block as FieldRef | ContextBlock | UserInputBlock],\n })\n })\n\n if (needsFix) {\n props.onChange(set(val))\n }\n // only run this once when loading the field\n // eslint-disable-next-line\n }, [])\n}\n","import {ArrayFieldProps} from 'sanity'\n\nexport function InstructionsArrayField(props: ArrayFieldProps) {\n return props.renderDefault({\n ...props,\n title: ' ',\n })\n}\n","import {\n ArrayFieldProps,\n ArraySchemaType,\n isArrayOfObjectsSchemaType,\n isObjectSchemaType,\n ObjectSchemaType,\n} from 'sanity'\nimport {useCallback, useContext, useState} from 'react'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\n\nexport function InstructionOutputField(props: ArrayFieldProps) {\n const {fieldSchema} = useContext(SelectedFieldContext) ?? {}\n\n if (\n !fieldSchema ||\n !(isObjectSchemaType(fieldSchema) || isArrayOfObjectsSchemaType(fieldSchema))\n ) {\n return null\n }\n\n return (\n <EnabledOutputField {...props} fieldSchema={fieldSchema}>\n {props.children}\n </EnabledOutputField>\n )\n}\n\nfunction EnabledOutputField({\n fieldSchema,\n ...props\n}: ArrayFieldProps & {fieldSchema: ObjectSchemaType | ArraySchemaType<ObjectSchemaType>}) {\n const [open, setOpen] = useState(!!props.value?.length)\n const onExpand = useCallback(() => setOpen(true), [])\n const onCollapse = useCallback(() => setOpen(false), [])\n\n return props.renderDefault({\n ...props,\n collapsible: true,\n onExpand,\n onCollapse,\n collapsed: !open,\n level: 1,\n title: isObjectSchemaType(fieldSchema) ? 'Allowed fields' : 'Allowed types',\n })\n}\n","import {\n ArrayOfObjectsInputProps,\n ArraySchemaType,\n FormPatch,\n insert,\n isArrayOfObjectsSchemaType,\n isObjectSchemaType,\n ObjectSchemaType,\n PatchEvent,\n setIfMissing,\n typed,\n unset,\n} from 'sanity'\nimport {useCallback, useContext, useEffect, useMemo} from 'react'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {Card, Checkbox, Flex, Stack, Text} from '@sanity/ui'\nimport {isType} from '../../../helpers/typeUtils'\nimport {isAssistSupported} from '../../../helpers/assistSupported'\nimport {OutputFieldItem, outputFieldTypeName, OutputTypeItem} from '../../../types'\n\nexport function InstructionOutputInput(props: ArrayOfObjectsInputProps) {\n const {fieldSchema} = useContext(SelectedFieldContext) ?? {}\n\n if (!fieldSchema) {\n return null\n }\n\n if (isObjectSchemaType(fieldSchema)) {\n return <ObjectOutputInput {...props} fieldSchema={fieldSchema} />\n }\n\n if (isArrayOfObjectsSchemaType(fieldSchema)) {\n return <ArrayOutputInput {...props} fieldSchema={fieldSchema} />\n }\n return null\n}\n\nfunction useEmptySelectAllValue(\n value: (OutputTypeItem | OutputFieldItem)[],\n allowedValues: {name: string}[],\n onChange: (patch: FormPatch | FormPatch[] | PatchEvent) => void\n) {\n useEffect(() => {\n const validValues = value?.filter((v) =>\n allowedValues.find(\n (f) => f.name === (v._type === outputFieldTypeName ? v.relativePath : v.type)\n )\n )\n const valueLength = value?.length ?? 0\n const validLength = validValues?.length ?? 0\n if ((!validLength && valueLength) || validLength >= allowedValues.length) {\n // if we end up here, we consider this a \"no selected fields/types\" selections. This should render and behave as all values selected.\n // we need this behaviour to accommodate new fields/types being added to the model, so they get visited by instructions without having to update the filter\n // when things have been explicitly selected, we let the selection remain as is\n onChange(PatchEvent.from([unset()]))\n }\n }, [allowedValues, value, onChange])\n}\n\nfunction ObjectOutputInput({\n fieldSchema,\n ...props\n}: ArrayOfObjectsInputProps & {fieldSchema: ObjectSchemaType}) {\n const {value, onChange} = props\n\n const fields = useMemo(\n () => fieldSchema.fields.filter((field) => isAssistSupported(field.type)),\n [fieldSchema.fields]\n )\n\n useEmptySelectAllValue(value as OutputTypeItem[], fields, onChange)\n\n const onSelectChange = useCallback(\n (checked: boolean, selectedValue: string) => {\n if (checked) {\n if (value?.length) {\n onChange(PatchEvent.from(unset([{_key: selectedValue}])))\n } else {\n // we went from empty array to everything selected but one\n const items = fields\n .filter((f) => f.name !== selectedValue)\n .map((field) =>\n typed<OutputFieldItem>({\n _key: field.name,\n _type: 'sanity.assist.output.field',\n relativePath: field.name,\n })\n )\n onChange(PatchEvent.from([setIfMissing([]), insert(items, 'after', [-1])]))\n }\n } else {\n const patchValue: OutputFieldItem = {\n _key: selectedValue,\n _type: 'sanity.assist.output.field',\n relativePath: selectedValue,\n }\n onChange(PatchEvent.from([setIfMissing([]), insert([patchValue], 'after', [-1])]))\n }\n },\n [onChange, value, fields]\n )\n\n return (\n <Stack space={2}>\n {fields.map((field) => {\n return (\n <Flex key={field.name} align=\"center\" gap={2}>\n <Selectable\n value={field.name}\n title={field.type.title ?? field.name}\n arrayValue={value as OutputFieldItem[]}\n onChange={onSelectChange}\n />\n </Flex>\n )\n })}\n </Stack>\n )\n}\n\nfunction ArrayOutputInput({\n fieldSchema,\n ...props\n}: ArrayOfObjectsInputProps & {fieldSchema: ArraySchemaType}) {\n const {value, onChange} = props\n\n const ofItems = useMemo(\n () => fieldSchema.of.filter((itemType) => isAssistSupported(itemType)),\n [fieldSchema.of]\n )\n\n useEmptySelectAllValue(value as OutputTypeItem[], ofItems, onChange)\n\n const onSelectChange = useCallback(\n (checked: boolean, selectedValue: string) => {\n if (checked) {\n if (value?.length) {\n onChange(PatchEvent.from(unset([{_key: selectedValue}])))\n } else {\n // we went from empty array to everything selected but one\n const items = ofItems\n .filter((f) => f.name !== selectedValue)\n .map((field) =>\n typed<OutputTypeItem>({\n _key: field.name,\n _type: 'sanity.assist.output.type',\n type: field.name,\n })\n )\n onChange(PatchEvent.from([setIfMissing([]), insert(items, 'after', [-1])]))\n }\n } else {\n const patchValue: OutputTypeItem = {\n _key: selectedValue,\n _type: 'sanity.assist.output.type',\n type: selectedValue,\n }\n onChange(PatchEvent.from([setIfMissing([]), insert([patchValue], 'after', [-1])]))\n }\n },\n [onChange, value, ofItems]\n )\n return (\n <Stack space={2}>\n {ofItems.map((itemType) => {\n return (\n <Flex key={itemType.name}>\n <Selectable\n value={itemType.name}\n title={isType(itemType, 'block') ? 'Text' : itemType.title ?? itemType.name}\n arrayValue={value as OutputTypeItem[] | undefined}\n onChange={onSelectChange}\n />\n </Flex>\n )\n })}\n </Stack>\n )\n}\n\nfunction Selectable({\n title,\n arrayValue,\n value,\n onChange,\n}: {\n title: string\n value: string\n arrayValue?: {_key: string}[]\n onChange: (checked: boolean, value: string) => void\n}) {\n const checked = !arrayValue?.length || !!arrayValue?.find((v) => v._key === value)\n const handleChange = useCallback(() => onChange(checked, value), [onChange, checked, value])\n\n return (\n <Flex gap={2} align=\"flex-start\">\n <Checkbox checked={checked} onChange={handleChange} />\n <Card marginTop={1} onClick={handleChange}>\n <Text style={{cursor: 'default'}} size={1}>\n {title}\n </Text>\n </Card>\n </Flex>\n )\n}\n","import {defineArrayMember, defineField, defineType, ObjectSchemaType} from 'sanity'\nimport {\n ArrowRightIcon,\n CodeIcon,\n ComposeIcon,\n icons,\n IconSymbol,\n LockIcon,\n SparklesIcon,\n ThListIcon,\n} from '@sanity/icons'\nimport {\n assistDocumentIdPrefix,\n assistDocumentTypeName,\n assistFieldTypeName,\n assistTasksStatusTypeName,\n fieldReferenceTypeName,\n instructionContextTypeName,\n instructionTaskTypeName,\n instructionTypeName,\n outputFieldTypeName,\n outputTypeTypeName,\n promptTypeName,\n userInputTypeName,\n} from '../types'\nimport {Box, Flex, Stack, Text, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {AssistDocumentForm} from '../assistDocument/components/AssistDocumentForm'\nimport {InstructionInput} from '../assistDocument/components/instruction/InstructionInput'\nimport {HiddenFieldTitle} from '../assistDocument/components/generic/HiddenFieldTitle'\nimport {InstructionVisibility} from '../assistDocument/components/instruction/appearance/InstructionVisibility'\nimport {IconInput} from '../assistDocument/components/instruction/appearance/IconInput'\nimport {FieldRefPathInput} from '../assistDocument/components/instruction/FieldRefInput'\nimport {InstructionsArrayInput} from '../assistDocument/components/InstructionsArrayInput'\nimport {FieldRefPreview} from '../assistDocument/components/FieldRefPreview'\nimport {createElement} from 'react'\nimport {contextDocumentSchema} from './contextDocumentSchema'\nimport {PromptInput} from '../assistDocument/components/instruction/PromptInput'\nimport {instructionGuideUrl} from '../constants'\nimport {InstructionsArrayField} from '../assistDocument/components/InstructionsArrayField'\nimport {getFieldRefsWithDocument} from '../assistInspector/helpers'\nimport {InstructionOutputField} from '../assistDocument/components/instruction/InstructionOutputField'\nimport {InstructionOutputInput} from '../assistDocument/components/instruction/InstructionOutputInput'\n\nexport const fieldReference = defineType({\n type: 'object',\n name: fieldReferenceTypeName,\n title: 'Field',\n icon: ThListIcon,\n\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Field',\n components: {\n input: FieldRefPathInput,\n },\n validation: (rule) =>\n rule.custom((value, context) => {\n if (!value) {\n return 'Please select a field'\n }\n try {\n const docId = context.document?._id\n if (!docId) {\n return `Field reference cannot be used outside document inspector context. Could not resolve document id.`\n }\n const targetDocType = docId.replace(new RegExp(`^${assistDocumentIdPrefix}`), '')\n const schema = context.schema.get(targetDocType)\n if (!schema) {\n return `Field reference cannot be used outside document inspector context. Could not resolve schema: ${targetDocType}`\n }\n const refs = getFieldRefsWithDocument(schema as ObjectSchemaType)\n const fieldRef = refs.find((r) => r.key === value)\n if (!fieldRef) {\n return `Field with path \"${value}\" does not exist in the schema.`\n }\n return true\n } catch (e) {\n console.error('Failed to resolve field reference', e)\n return 'Invalid field reference.'\n }\n }),\n }),\n ],\n preview: {\n select: {\n path: 'path',\n },\n prepare({path}) {\n return {\n title: path,\n path,\n icon: CodeIcon,\n }\n },\n },\n components: {\n preview: FieldRefPreview,\n },\n options: {\n modal: {\n type: 'popover',\n },\n },\n})\n\nexport const userInput = defineType({\n type: 'object',\n name: userInputTypeName,\n title: 'User input',\n icon: ComposeIcon,\n fields: [\n defineField({\n type: 'string',\n name: 'message',\n title: 'User input title',\n placeholder: 'Provide instruction text',\n description: 'The header above the user input text field',\n validation: (rule) => rule.required(),\n }),\n defineField({\n type: 'text',\n rows: 3,\n name: 'description',\n title: 'User input description',\n description: 'The description above the user input text field',\n }),\n ],\n preview: {\n select: {\n title: 'message',\n },\n },\n options: {\n modal: {\n type: 'popover',\n width: 1,\n },\n },\n})\n\nexport const promptContext = defineType({\n type: 'object',\n name: instructionContextTypeName,\n title: contextDocumentSchema.title,\n icon: contextDocumentSchema.icon,\n fields: [\n defineField({\n type: 'reference',\n name: 'reference',\n to: [{type: contextDocumentSchema.name}],\n title: 'Context',\n description: 'The referenced context will be inserted into the instruction',\n validation: (rule) => rule.required(),\n components: {\n input: function Fix(props) {\n return <Box style={{maxWidth: 300}}>{props.renderDefault(props)}</Box>\n },\n },\n }),\n ],\n preview: {\n select: {\n ref: 'reference._ref',\n title: 'reference.title',\n context: 'reference.context',\n },\n prepare(select) {\n return select.ref\n ? contextDocumentSchema?.preview?.prepare?.(select) ?? select\n : {title: 'No reference selected', media: contextDocumentSchema.icon}\n },\n },\n options: {\n modal: {\n type: 'popover',\n width: 'auto',\n },\n },\n})\n\nexport const prompt = defineType({\n type: 'array',\n name: promptTypeName,\n title: 'Prompt',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n of: [\n defineArrayMember({\n type: fieldReference.name,\n }),\n defineArrayMember({\n type: promptContext.name,\n }),\n defineArrayMember({\n type: userInput.name,\n }),\n ],\n }),\n /* defineArrayMember({\n type: fieldReference.name,\n }),\n defineArrayMember({\n type: promptContext.name,\n }),\n defineArrayMember({\n type: userInput.name,\n }),*/\n ],\n})\n\nexport const outputFieldType = defineType({\n type: 'object',\n name: outputFieldTypeName,\n title: 'Output field',\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Path',\n }),\n ],\n})\n\nexport const outputTypeType = defineType({\n type: 'object',\n name: outputTypeTypeName,\n title: 'Output type',\n fields: [\n defineField({\n type: 'string',\n name: 'type',\n title: 'Type',\n }),\n ],\n})\n\nexport const instruction = defineType({\n type: 'object',\n name: instructionTypeName,\n title: 'Instruction',\n fieldsets: [\n {name: 'appearance', title: 'Appearance', options: {collapsible: true, collapsed: true}},\n ],\n preview: {\n select: {\n icon: 'icon',\n title: 'title',\n userId: 'userId',\n },\n prepare: ({icon, title, userId}) => {\n return {\n title,\n icon: icon ? icons[icon as IconSymbol] : SparklesIcon,\n userId,\n }\n },\n },\n components: {\n input: InstructionInput,\n preview: (props: any) => {\n return (\n <Flex gap={3} align=\"center\" padding={2}>\n {props.icon && (\n <Box flex=\"none\">\n <Text size={1}>{createElement(props.icon)}</Text>\n </Box>\n )}\n\n <Stack flex={1} space={2}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {getInstructionTitle(props)}\n </Text>\n </Stack>\n\n {props.userId && (\n <Text size={1}>\n <Tooltip\n content={<Text size={1}>Only visible to you</Text>}\n padding={2}\n placement=\"top\"\n portal\n >\n <LockIcon />\n </Tooltip>\n </Text>\n )}\n </Flex>\n )\n },\n },\n fields: [\n defineField({\n type: prompt.name,\n name: 'prompt',\n title: 'Instruction',\n description: (\n <>\n Learn from{' '}\n <a href={instructionGuideUrl} target=\"_blank\" rel=\"noreferrer\">\n our instruction guide <ArrowRightIcon />\n </a>\n </>\n ),\n components: {\n input: PromptInput,\n },\n }),\n defineField({\n type: 'string',\n name: 'icon',\n title: 'Icon',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n input: IconInput,\n },\n }),\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n },\n }),\n defineField({\n type: 'string',\n name: 'userId',\n title: 'Visibility',\n fieldset: 'appearance',\n components: {\n field: HiddenFieldTitle,\n input: InstructionVisibility,\n },\n initialValue: (params, context) => context.currentUser?.id ?? '',\n readOnly: (context) =>\n Boolean(\n context.parent?.createdById && context.parent?.createdById !== context.currentUser?.id\n ),\n }),\n defineField({\n type: 'string',\n name: 'createdById',\n title: 'Created by',\n hidden: true,\n fieldset: 'appearance',\n initialValue: (params, context) => {\n return context.currentUser?.id ?? ''\n },\n }),\n defineField({\n type: 'array',\n name: 'output',\n title: 'Output filter',\n components: {\n input: InstructionOutputInput,\n field: InstructionOutputField,\n },\n of: [\n defineArrayMember({type: outputFieldType.name}),\n defineArrayMember({type: outputTypeType.name}),\n ],\n }),\n ],\n})\n\nexport const fieldInstructions = defineType({\n type: 'object',\n name: assistFieldTypeName,\n title: 'Field prompt',\n /* components: {\n input: FieldPromptInput,\n },*/\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Path',\n readOnly: true,\n hidden: true,\n }),\n defineField({\n type: 'array',\n name: 'instructions',\n title: 'Instructions',\n of: [{type: instruction.name}],\n components: {\n field: InstructionsArrayField,\n input: InstructionsArrayInput,\n },\n }),\n ],\n preview: {\n select: {\n title: 'path',\n },\n },\n})\n\nexport const assistDocumentSchema = defineType({\n //NOTE: this is a document type. Using object here ensures it does not appear in structure menus\n type: 'object',\n //workaround for using object and not document\n ...({liveEdit: true} as any),\n name: assistDocumentTypeName,\n title: 'AI Document',\n\n components: {\n input: AssistDocumentForm,\n field: (props) => {\n return props.renderDefault({...props, title: ''})\n },\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n type: 'array',\n name: 'fields',\n title: 'Fields',\n of: [{type: fieldInstructions.name}],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n },\n },\n})\n\nexport const instructionTask = defineType({\n type: 'object',\n name: instructionTaskTypeName,\n title: 'Instruction task',\n fields: [\n defineField({\n type: 'string',\n name: 'path',\n title: 'Path',\n }),\n defineField({\n type: 'string',\n name: 'instructionKey',\n title: 'Instruction key',\n }),\n defineField({\n type: 'datetime',\n name: 'started',\n title: 'Started',\n }),\n defineField({\n type: 'datetime',\n name: 'updated',\n title: 'Updated',\n }),\n defineField({\n type: 'string',\n name: 'info',\n title: 'Info',\n }),\n ],\n})\n\nexport const documentInstructionStatus = defineType({\n //NOTE: this is a document type. Using object here ensures it does not appear in structure menus\n type: 'object',\n //workaround for using object and not document\n ...({liveEdit: true} as any),\n name: assistTasksStatusTypeName,\n title: 'Document instruction status',\n fields: [\n defineField({\n type: 'array',\n name: 'tasks',\n title: 'Tasks',\n of: [{type: instructionTask.name}],\n }),\n ],\n})\n","/* eslint-disable camelcase */\nimport {\n assistDocumentSchema,\n documentInstructionStatus,\n fieldInstructions,\n fieldReference,\n instruction,\n instructionTask,\n outputFieldType,\n outputTypeType,\n prompt,\n promptContext,\n userInput,\n} from './assistDocumentSchema'\nimport {contextDocumentSchema} from './contextDocumentSchema'\nimport {FieldProps, SchemaTypeDefinition, ArrayOfType} from 'sanity'\n\nfunction excludeComments<T extends SchemaTypeDefinition | ArrayOfType>(type: T): T {\n const existingRender = (type as any)?.components?.field\n return {\n ...type,\n ...('components' in type\n ? {\n components: {\n ...type.components,\n field: (props: FieldProps) => {\n const newProps = {...props, ...{__internal_comments: undefined}}\n if (typeof existingRender === 'function') {\n return existingRender(newProps)\n }\n return props.renderDefault(newProps)\n },\n },\n }\n : {}),\n ...('fields' in type\n ? {\n // recursively disable comments in fields\n fields: type.fields?.map((field) => excludeComments(field)),\n }\n : {}),\n ...('of' in type\n ? {\n // recursively disable comments in array items\n of: type.of?.map((arrayItemType) => excludeComments(arrayItemType)),\n }\n : {}),\n }\n}\n\nconst instructionForm = [\n fieldInstructions,\n instruction,\n fieldReference,\n prompt,\n userInput,\n promptContext,\n].map(excludeComments)\n\nexport const schemaTypes = [\n ...instructionForm,\n outputFieldType,\n outputTypeType,\n assistDocumentSchema,\n documentInstructionStatus,\n instructionTask,\n contextDocumentSchema,\n]\n","import {Path, SchemaType} from 'sanity'\nimport {useMemo} from 'react'\nimport {isAssistSupported} from './assistSupported'\n\nexport function useAssistSupported(path: Path, schemaType: SchemaType) {\n return useMemo(() => isAssistSupported(schemaType), [schemaType])\n}\n","import {getPublishedId, ObjectSchemaType, useEditState} from 'sanity'\nimport {useStudioAssistDocument} from './useStudioAssistDocument'\nimport {AssistDocumentContextValue} from '../AssistDocumentContext'\nimport {useMemo} from 'react'\nimport {isDocAssistable} from '../RequestRunInstructionProvider'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useAiPaneRouter} from '../../assistInspector/helpers'\nimport {fieldPathParam} from '../../types'\n\nexport function useAssistDocumentContextValue(\n documentId: string,\n documentSchemaType: ObjectSchemaType\n) {\n const {published, draft} = useEditState(\n getPublishedId(documentId),\n documentSchemaType.name,\n 'low'\n )\n const assistableDocumentId = draft?._id || published?._id || documentId\n const documentIsNew = Boolean(!draft?._id && !published?._id)\n const documentIsAssistable = isDocAssistable(documentSchemaType, published, draft)\n\n const {params} = useAiPaneRouter()\n const selectedPath = params[fieldPathParam]\n const {openInspector, closeInspector, inspector, onChange: documentOnChange} = useDocumentPane()\n\n const assistDocument = useStudioAssistDocument({\n documentId,\n schemaType: documentSchemaType,\n })\n\n const value: AssistDocumentContextValue = useMemo(() => {\n const base = {\n documentId,\n assistableDocumentId,\n documentSchemaType,\n documentIsNew,\n documentIsAssistable,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n selectedPath,\n }\n if (!assistDocument) {\n return {...base, loading: true, assistDocument: undefined}\n }\n return {\n ...base,\n loading: false,\n assistDocument: assistDocument,\n }\n }, [\n assistDocument,\n documentIsAssistable,\n documentId,\n assistableDocumentId,\n documentSchemaType,\n documentIsNew,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n selectedPath,\n ])\n\n return value\n}\n","import {LockIcon} from '@sanity/icons'\nimport {Text, Tooltip} from '@sanity/ui'\n\nexport function PrivateIcon() {\n return (\n <Tooltip\n content={\n <Text size={1} style={{whiteSpace: 'nowrap'}}>\n Only visible to you\n </Text>\n }\n fallbackPlacements={['bottom']}\n padding={2}\n placement=\"top\"\n portal\n >\n <LockIcon />\n </Tooltip>\n )\n}\n","import {createContext, useEffect, useMemo, useState} from 'react'\nimport {InputProps, pathToString, useSyncState} from 'sanity'\nimport {getDescriptionFieldOption, getImageInstructionFieldOption} from '../helpers/typeUtils'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {canUseAssist, useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {publicId} from '../helpers/ids'\nimport {usePaneRouter} from 'sanity/desk'\n\nexport interface ImageContextValue {\n imageDescriptionPath?: string\n imageInstructionPath?: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue>({})\n\nexport function ImageContextProvider(props: InputProps) {\n const {schemaType, path, value, readOnly} = props\n const assetRef = (value as any)?.asset?._ref\n const [assetRefState, setAssetRefState] = useState<string | undefined>(assetRef)\n\n const {documentId, documentSchemaType} = useAssistDocumentContext()\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption} = useGenerateCaption(apiClient)\n\n const {isSyncing} = useSyncState(publicId(documentId), documentSchemaType.name)\n\n const router = usePaneRouter()\n const isShowingOlderRevision = !!router.params?.rev\n\n useEffect(() => {\n const descriptionField = getDescriptionFieldOption(schemaType)\n if (\n assetRef &&\n documentId &&\n descriptionField &&\n assetRef !== assetRefState &&\n !isSyncing &&\n !isShowingOlderRevision &&\n !readOnly\n ) {\n setAssetRefState(assetRef)\n if (canUseAssist(status)) {\n generateCaption({path: pathToString([...path, descriptionField]), documentId: documentId})\n }\n }\n }, [\n schemaType,\n path,\n assetRef,\n assetRefState,\n documentId,\n generateCaption,\n isSyncing,\n status,\n readOnly,\n isShowingOlderRevision,\n ])\n\n const context: ImageContextValue = useMemo(() => {\n const descriptionField = getDescriptionFieldOption(schemaType)\n const imageInstructionField = getImageInstructionFieldOption(schemaType)\n return {\n imageDescriptionPath: descriptionField\n ? pathToString([...path, descriptionField])\n : undefined,\n imageInstructionPath: imageInstructionField\n ? pathToString([...path, imageInstructionField])\n : undefined,\n assetRef,\n }\n }, [schemaType, path, assetRef])\n\n return <ImageContext.Provider value={context}>{props.renderDefault(props)}</ImageContext.Provider>\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {canUseAssist, useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../assistInspector/constants'\nimport {fieldPathParam, instructionParam} from '../types'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateCaptionsActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-captions',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n const {openInspector} = useDocumentPane()\n\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption, loading} = useGenerateCaption(apiClient)\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imageDescriptionPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image description',\n onAction: () => {\n if (loading) {\n return\n }\n if (!canUseAssist(status)) {\n openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n })\n return\n }\n\n generateCaption({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n hidden: !imageContext.assetRef,\n })\n }, [generateCaption, pathKey, documentId, loading, imageContext, status, openInspector])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n DocumentFieldActionProps,\n ObjectSchemaType,\n} from 'sanity'\nimport {TranslateIcon} from '@sanity/icons'\nimport {useMemo, useRef} from 'react'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {Box, Spinner} from '@sanity/ui'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useFieldTranslation} from './FieldTranslationProvider'\nimport {useDraftDelayedTask} from '../assistDocument/RequestRunInstructionProvider'\nimport {AssistOptions} from '../schemas/typeDefExtensions'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport type TranslateProps = DocumentFieldActionProps & {\n documentIsAssistable?: boolean\n documentSchemaType?: ObjectSchemaType\n}\nexport const translateActions: DocumentFieldAction = {\n name: 'sanity-assist-translate',\n useAction(props: TranslateProps) {\n const {config, status} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n\n const {\n schemaType: fieldSchemaType,\n path,\n documentId,\n documentSchemaType,\n documentIsAssistable,\n } = props\n const isDocumentLevel = path.length === 0\n const readOnly = fieldSchemaType.readOnly === true\n\n const docTransTypes = config.translate?.document?.documentTypes\n const options = fieldSchemaType?.options as AssistOptions | undefined\n const addFieldAction = isDocumentLevel || options?.aiAssist?.translateAction\n\n //All props used here MUST have the same value always, or we break the rules of hooks (conditional hook usage)\n const fieldTransEnabled =\n addFieldAction &&\n documentSchemaType &&\n config.translate?.field?.documentTypes?.includes(documentSchemaType.name)\n const documentTranslationEnabled =\n addFieldAction &&\n documentSchemaType &&\n ((!docTransTypes && isAssistSupported(fieldSchemaType)) ||\n docTransTypes?.includes(documentSchemaType.name))\n\n // these checks are stable (ie, does not change after mount), so not breaking rules of hooks\n if (documentSchemaType && (documentTranslationEnabled || fieldTransEnabled)) {\n const {value: documentValue, onChange: documentOnChange, formState} = useDocumentPane()\n const docRef = useRef(documentValue)\n docRef.current = documentValue\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const translationApi = useTranslate(apiClient)\n const translate = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: translationApi.translate,\n })\n\n const languagePath = config.translate?.document?.languageField\n\n // if this is true, it is stable, and not breaking rules of hooks\n const translateDocumentAction = useMemo(() => {\n if (!languagePath || !documentTranslationEnabled) {\n return undefined\n }\n const title = path.length ? `Translate` : `Translate document`\n return node({\n type: 'action',\n icon: translationApi.loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title,\n onAction: () => {\n if (translationApi.loading || !languagePath || !documentId) {\n return\n }\n translate({\n languagePath,\n translatePath: path,\n documentId: documentId ?? '',\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: translationApi.loading || readOnly,\n })\n }, [\n languagePath,\n translate,\n documentId,\n translationApi.loading,\n documentTranslationEnabled,\n path,\n readOnly,\n ])\n const fieldTranslate = useFieldTranslation()\n const openFieldTranslation = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: fieldTranslate.openFieldTranslation,\n })\n\n const translateFieldsAction = useMemo(\n () =>\n fieldTransEnabled\n ? node({\n type: 'action',\n icon: fieldTranslate.translationLoading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title: `Translate fields...`,\n onAction: () => {\n if (fieldTranslate.translationLoading || !documentId) {\n return\n }\n if (formStateRef.current) {\n getConditionalMembers(formStateRef.current)\n }\n openFieldTranslation({\n document: docRef.current,\n documentSchema: documentSchemaType,\n translatePath: path,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: fieldTranslate.translationLoading || readOnly,\n })\n : undefined,\n [\n openFieldTranslation,\n documentSchemaType,\n documentId,\n fieldTranslate.translationLoading,\n fieldTransEnabled,\n path,\n readOnly,\n ]\n )\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n if (!status?.initialized) {\n return undefined as unknown as DocumentFieldActionItem\n }\n return node({\n type: 'group',\n icon: () => null,\n title: 'Translation',\n children: [translateDocumentAction, translateFieldsAction].filter(\n (c): c is DocumentFieldActionItem => !!c\n ),\n expanded: true,\n })\n }, [translateDocumentAction, translateFieldsAction, status])\n }\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {useApiClient, useGenerateImage} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateImagActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-image',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateImage, loading} = useGenerateImage(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imageInstructionPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image from prompt',\n onAction: () => {\n if (loading) {\n return\n }\n generateImage({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n })\n }, [generateImage, pathKey, documentId, loading])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n ObjectSchemaType,\n typed,\n useCurrentUser,\n} from 'sanity'\nimport {ControlsIcon, SparklesIcon} from '@sanity/icons'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {pluginTitleShort} from '../constants'\nimport {useAssistSupported} from '../helpers/useAssistSupported'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {getInstructionTitle, usePathKey} from '../helpers/misc'\nimport {documentRootKey, fieldPathParam, instructionParam, StudioInstruction} from '../types'\nimport {aiInspectorId} from '../assistInspector/constants'\nimport {getIcon} from '../assistDocument/components/instruction/appearance/IconInput'\nimport {useAssistDocumentContextValue} from '../assistDocument/hooks/useAssistDocumentContextValue'\nimport {\n getAssistableDocId,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {PrivateIcon} from './PrivateIcon'\nimport {generateCaptionsActions} from './generateCaptionActions'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useSelectedField, useTypePath} from '../assistInspector/helpers'\nimport {isSchemaAssistEnabled} from '../helpers/assistSupported'\nimport {translateActions, TranslateProps} from '../translate/translateActions'\nimport {generateImagActions} from './generateImageActions'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const assistFieldActions: DocumentFieldAction = {\n name: 'sanity-assist-actions',\n useAction(props) {\n const {schemaType} = props\n\n const isDocumentLevel = props.path.length === 0\n\n const {\n assistDocument,\n documentIsNew,\n documentIsAssistable,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n documentSchemaType,\n documentId,\n selectedPath,\n assistableDocumentId,\n } =\n // document field actions do not have access to the document context\n // conditional hook _should_ be safe here since the logical path will be stable\n isDocumentLevel\n ? // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContextValue(props.documentId, schemaType as ObjectSchemaType)\n : // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContext()\n\n const {value: docValue, formState} = useDocumentPane()\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const currentUser = useCurrentUser()\n const isHidden = !assistDocument\n const pathKey = usePathKey(props.path)\n const typePath = useTypePath(docValue, pathKey)\n const assistDocumentId = assistDocument?._id\n\n const assistableDocId = getAssistableDocId(documentSchemaType, documentId)\n const {requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n })\n\n const isSelectable = !!useSelectedField(documentSchemaType, typePath)\n const assistSupported =\n useAssistSupported(props.path, schemaType) &&\n isSelectable &&\n isSchemaAssistEnabled(documentSchemaType) &&\n schemaType.readOnly !== true\n\n const fieldAssist = useMemo(\n () =>\n (assistDocument?.fields ?? []).find(\n (f) => f.path === typePath || (pathKey === documentRootKey && f.path === pathKey)\n ),\n [assistDocument?.fields, pathKey, typePath]\n )\n\n const fieldAssistKey = fieldAssist?._key\n const isInspectorOpen = inspector?.name === aiInspectorId\n const isPathSelected = pathKey === selectedPath\n const isSelected = isInspectorOpen && isPathSelected\n\n const imageCaptionAction = generateCaptionsActions.useAction(props)\n const imageGenAction = generateImagActions.useAction(props)\n const translateAction = translateActions.useAction(\n typed<TranslateProps>({\n ...props,\n documentId: assistableDocumentId,\n documentIsAssistable,\n documentSchemaType,\n })\n )\n const manageInstructions = useCallback(\n () =>\n isSelected\n ? closeInspector(aiInspectorId)\n : openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n }),\n [openInspector, closeInspector, isSelected, pathKey]\n )\n\n const onInstructionAction = useCallback(\n (instruction: StudioInstruction) => {\n if (!pathKey || !fieldAssistKey || !assistDocumentId || !assistableDocId) {\n return\n }\n requestRunInstruction({\n documentId: assistableDocId,\n assistDocumentId,\n path: pathKey,\n typePath,\n instruction,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n [requestRunInstruction, assistableDocId, pathKey, typePath, assistDocumentId, fieldAssistKey]\n )\n\n const privateInstructions = useMemo(\n () =>\n fieldAssist?.instructions?.filter((i) => i.userId && i.userId === currentUser?.id) || [],\n [fieldAssist?.instructions, currentUser]\n )\n\n const sharedInstructions = useMemo(\n () => fieldAssist?.instructions?.filter((i) => !i.userId) || [],\n [fieldAssist?.instructions]\n )\n\n const instructions = useMemo(\n () => [...privateInstructions, ...sharedInstructions],\n [privateInstructions, sharedInstructions]\n )\n\n const runInstructionsGroup = useMemo(() => {\n return instructions?.length || imageCaptionAction || translateAction || imageGenAction\n ? node({\n type: 'group',\n icon: () => null,\n title: 'Run instructions',\n children: [\n ...instructions?.map((instruction) =>\n instructionItem({\n instruction,\n isPrivate: Boolean(instruction.userId && instruction.userId === currentUser?.id),\n onInstructionAction,\n hidden: isHidden,\n documentIsNew: !!documentIsNew,\n assistSupported,\n })\n ),\n imageCaptionAction,\n imageGenAction,\n ].filter((a): a is DocumentFieldActionItem => !!a),\n expanded: true,\n })\n : undefined\n }, [\n instructions,\n currentUser?.id,\n onInstructionAction,\n isHidden,\n documentIsNew,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ])\n\n const instructionsLength = instructions?.length || 0\n\n const manageInstructionsItem = useMemo(\n () =>\n node({\n type: 'action',\n icon: ControlsIcon,\n title: 'Manage instructions',\n onAction: manageInstructions,\n selected: isSelected,\n }),\n [manageInstructions, isSelected]\n )\n\n const group = useMemo(\n () =>\n node({\n type: 'group',\n icon: SparklesIcon,\n title: pluginTitleShort,\n children: [\n runInstructionsGroup,\n translateAction,\n assistSupported && manageInstructionsItem,\n ]\n .filter((c): c is DocumentFieldActionItem | DocumentFieldActionGroup => !!c)\n .filter((c) => (c.type === 'group' ? c.children.length : true)),\n expanded: false,\n renderAsButton: true,\n hidden: !assistSupported && !imageCaptionAction && !translateAction && !imageGenAction,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ]\n )\n\n const emptyAction = useMemo(\n () =>\n node({\n type: 'action',\n hidden: !assistSupported,\n icon: SparklesIcon,\n onAction: manageInstructions,\n renderAsButton: true,\n title: pluginTitleShort,\n selected: isSelected,\n }),\n [assistSupported, manageInstructions, isSelected]\n )\n\n // If there are no instructions, we don't want to render the group\n if (instructionsLength === 0 && !imageCaptionAction && !translateAction && !imageGenAction) {\n return emptyAction\n }\n\n return group\n },\n}\n\nfunction instructionItem(props: {\n instruction: StudioInstruction\n isPrivate: boolean\n onInstructionAction: (ins: StudioInstruction) => void\n assistSupported: boolean\n documentIsNew: boolean\n hidden: boolean\n}) {\n const {hidden, isPrivate, onInstructionAction, assistSupported, instruction} = props\n return node({\n type: 'action',\n icon: getIcon(instruction.icon),\n iconRight: isPrivate ? PrivateIcon : undefined,\n title: getInstructionTitle(instruction),\n onAction: () => onInstructionAction(instruction),\n disabled: !assistSupported,\n hidden,\n })\n}\n","import {ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContext} from './AssistDocumentContext'\nimport {useAssistDocumentContextValue} from './hooks/useAssistDocumentContextValue'\nimport {PropsWithChildren} from 'react'\n\nexport interface AIDocumentInputProps {\n documentId: string\n schemaType: ObjectSchemaType\n}\n\nexport function AssistDocumentContextProvider(props: PropsWithChildren<AIDocumentInputProps>) {\n const {documentId, schemaType} = props\n const value = useAssistDocumentContextValue(documentId, schemaType)\n return (\n <AssistDocumentContext.Provider value={value}>{props.children}</AssistDocumentContext.Provider>\n )\n}\n","import {useEffect, useRef} from 'react'\nimport {InstructionTask} from '../../types'\nimport {addSeconds, isAfter} from 'date-fns'\nimport {getInstructionTitle} from '../../helpers/misc'\nimport {useStudioAssistDocument} from './useStudioAssistDocument'\nimport {ObjectSchemaType, useCurrentUser} from 'sanity'\nimport {useToast} from '@sanity/ui'\n\nconst NO_TASKS: InstructionTask[] = []\n\nexport function useInstructionToaster(documentId: string, documentSchemaType: ObjectSchemaType) {\n const assistDocument = useStudioAssistDocument({documentId, schemaType: documentSchemaType})\n\n const assistDocLoaded = !!assistDocument\n const currentUser = useCurrentUser()\n const toast = useToast()\n const tasks = assistDocument?.tasks\n const previousTasks = useRef<InstructionTask[] | undefined | 'initial'>('initial')\n\n useEffect(() => {\n if (!assistDocLoaded) {\n return\n }\n\n if (previousTasks.current !== 'initial') {\n const prevTaskByKey = Object.fromEntries(\n (previousTasks.current ?? NO_TASKS).map((run) => [run._key, run])\n )\n const endedTasks = tasks\n ?.filter((task) => task.startedByUserId === currentUser?.id)\n .filter((task) => {\n const prevTask = prevTaskByKey[task._key]\n return (!prevTask && task.ended) || (!prevTask?.ended && task.ended)\n })\n // filter out old stuff\n .filter((task) => task.ended && isAfter(addSeconds(new Date(task.ended), 30), new Date()))\n\n endedTasks?.forEach((task) => {\n const title = task.title ?? getInstructionTitle(task.instruction)\n if (task.reason === 'error') {\n toast.push({\n title: `Failed: ${title}`,\n status: 'error',\n description: `Instruction failed. ${task.message ?? ''}`,\n closable: true,\n duration: 10000,\n })\n } else if (task.reason === 'timeout') {\n toast.push({\n title: `Timeout: ${title}`,\n status: 'error',\n description: `Instruction timed out.`,\n closable: true,\n })\n } else if (task.reason === 'success') {\n toast.push({\n title: `Success: ${title}`,\n status: 'success',\n description: `Instruction completed.`,\n closable: true,\n })\n } else if (task.reason === 'aborted') {\n toast.push({\n title: `Canceled: ${title}`,\n status: 'warning',\n description: `Instruction canceled.`,\n closable: true,\n })\n }\n })\n }\n previousTasks.current = tasks\n }, [tasks, previousTasks, toast, currentUser, assistDocLoaded])\n}\n","import {InputProps, ObjectInputProps, ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContextProvider} from './AssistDocumentContextProvider'\nimport {FirstAssistedPathProvider} from '../onboarding/FirstAssistedPathProvider'\nimport {useInstructionToaster} from './hooks/useInstructionToaster'\nimport {isType} from '../helpers/typeUtils'\nimport {useLayer} from '@sanity/ui'\nimport {useDocumentPane} from 'sanity/desk'\nimport {usePathKey} from '../helpers/misc'\nimport {ConnectFromRegion} from '../_lib/connector'\nimport {assistDocumentTypeName} from '../types'\nimport {useMemo} from 'react'\nimport {assistFormId} from '../_lib/form/constants'\n\nexport function AssistDocumentInputWrapper(props: InputProps) {\n if (!isType(props.schemaType, 'document') && props.id !== 'root' && props.id !== assistFormId) {\n return <AssistInput {...props} />\n }\n\n const documentId = (props.value as any)?._id as string | undefined\n if (!documentId) {\n return props.renderDefault(props)\n }\n\n return <AssistDocumentInput {...(props as ObjectInputProps)} documentId={documentId} />\n}\n\nfunction AssistDocumentInput({documentId, ...props}: ObjectInputProps & {documentId: string}) {\n useInstructionToaster(documentId, props.schemaType)\n\n const schemaType = useMemo(() => {\n if (props.schemaType.name !== assistDocumentTypeName) {\n return props.schemaType\n }\n return {\n ...props.schemaType,\n type: {\n ...props.schemaType.type,\n // compatability with i18nArrays plugin that requires this to be document\n name: 'document',\n },\n } as ObjectSchemaType\n }, [props.schemaType])\n\n return (\n <FirstAssistedPathProvider members={props.members}>\n <AssistDocumentContextProvider schemaType={schemaType} documentId={documentId}>\n {props.renderDefault({\n ...props,\n schemaType,\n })}\n </AssistDocumentContextProvider>\n </FirstAssistedPathProvider>\n )\n}\n\nfunction AssistInput(props: InputProps) {\n const {zIndex} = useLayer()\n const {paneKey} = useDocumentPane()\n const pathKey = usePathKey(props.path)\n\n return (\n <ConnectFromRegion _key={`${paneKey}_${pathKey}`} zIndex={zIndex} style={{minWidth: 0}}>\n {props.renderDefault(props)}\n </ConnectFromRegion>\n )\n}\n","import {ObjectSchemaType} from 'sanity'\nimport {useMemo} from 'react'\nimport {useAssistDocumentContextValue} from '../assistDocument/hooks/useAssistDocumentContextValue'\nimport {aiPresence} from './useAssistPresence'\nimport {documentRootKey, fieldPresenceTypeName} from '../types'\nimport {Card, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from './AiFieldPresence'\n\nexport function createAssistDocumentPresence(\n documentId: string | undefined,\n schemaType: ObjectSchemaType\n) {\n return function AssistDocumentPresenceWrapper() {\n return documentId ? (\n <AssistDocumentPresence documentId={documentId} schemaType={schemaType} />\n ) : null\n }\n}\n\nfunction AssistDocumentPresence(props: {documentId: string; schemaType: ObjectSchemaType}) {\n const {assistDocument} = useAssistDocumentContextValue(\n props.documentId,\n props.schemaType as ObjectSchemaType\n )\n const anyPresence = useMemo(() => {\n const anyPresence = assistDocument?.tasks\n ?.filter((run) => !run.ended && !run.reason)\n ?.flatMap((run) => run.presence ?? [])\n .find((f) => f.started && new Date().getTime() - new Date(f.started).getTime() < 30000)\n if (anyPresence) {\n return aiPresence(anyPresence, [])\n }\n const anyRun = assistDocument?.tasks\n ?.filter((run) => !run.ended && !run.reason)\n ?.find((f) => f.started && new Date().getTime() - new Date(f.started).getTime() < 30000)\n return anyRun\n ? aiPresence(\n {\n started: anyRun.started,\n path: documentRootKey,\n _key: anyRun._key,\n _type: fieldPresenceTypeName,\n },\n []\n )\n : undefined\n }, [assistDocument?.tasks])\n\n return (\n <Card>\n <Flex flex={1} justify=\"flex-end\">\n <Flex gap={2} align={'center'}>\n {anyPresence && <AiFieldPresence presence={anyPresence} />}\n </Flex>\n </Flex>\n </Card>\n )\n}\n","import {definePlugin, isObjectSchemaType} from 'sanity'\nimport {assistInspector} from './assistInspector'\nimport {AssistFieldWrapper} from './assistFormComponents/AssistField'\nimport {AssistLayout} from './assistLayout/AssistLayout'\nimport {AssistFormBlock} from './assistFormComponents/AssistFormBlock'\nimport {AssistItem} from './assistFormComponents/AssistItem'\nimport {SanityClient} from '@sanity/client'\nimport {SafeValueInput} from './components/SafeValueInput'\nimport {schemaTypes} from './schemas'\nimport {AssistInlineFormBlock} from './assistFormComponents/AssistInlineFormBlock'\nimport {assistFieldActions} from './fieldActions/assistFieldActions'\nimport {packageName} from './constants'\nimport {AssistDocumentInputWrapper} from './assistDocument/AssistDocumentInput'\nimport {createAssistDocumentPresence} from './presence/AssistDocumentPresence'\nimport {isSchemaAssistEnabled} from './helpers/assistSupported'\nimport {isImage} from './helpers/typeUtils'\nimport {ImageContextProvider} from './components/ImageContext'\nimport {TranslationConfig} from './translate/types'\nimport {assistDocumentTypeName, AssistPreset} from './types'\n\nexport interface AssistPluginConfig {\n translate?: TranslationConfig\n\n /**\n * @internal\n */\n __customApiClient?: (defaultClient: SanityClient) => SanityClient\n\n /**\n * @internal\n */\n __presets?: Record<string, AssistPreset>\n}\n\nexport const assist = definePlugin<AssistPluginConfig | void>((config) => {\n const configWithDefaults = config ?? {}\n return {\n name: packageName,\n\n schema: {\n types: schemaTypes,\n },\n i18n: {\n bundles: [{}],\n },\n\n document: {\n inspectors: (prev, context) => {\n const documentType = context.documentType\n const docSchema = context.schema.get(documentType)\n if (docSchema && isSchemaAssistEnabled(docSchema)) {\n return [...prev, assistInspector]\n }\n return prev\n },\n unstable_fieldActions: (prev, {documentType, schema}) => {\n if (documentType === assistDocumentTypeName) {\n return []\n }\n const docSchema = schema.get(documentType)\n if (docSchema && isSchemaAssistEnabled(docSchema)) {\n return [...prev, assistFieldActions]\n }\n return prev\n },\n unstable_languageFilter: (prev, {documentId, schema, schemaType}) => {\n if (schemaType === assistDocumentTypeName) {\n return []\n }\n const docSchema = schema.get(schemaType)\n if (docSchema && isObjectSchemaType(docSchema) && isSchemaAssistEnabled(docSchema)) {\n return [...prev, createAssistDocumentPresence(documentId, docSchema)]\n }\n return prev\n },\n },\n\n studio: {\n components: {\n layout: function Layout(props) {\n return <AssistLayout {...props} config={configWithDefaults} />\n },\n },\n },\n\n form: {\n components: {\n input: AssistDocumentInputWrapper,\n field: AssistFieldWrapper,\n item: AssistItem,\n block: AssistFormBlock,\n inlineBlock: AssistInlineFormBlock,\n },\n },\n\n plugins: [\n definePlugin({\n name: `${packageName}/safe-value-input`,\n form: {components: {input: SafeValueInput}},\n })(),\n\n definePlugin({\n name: `${packageName}/generate-caption`,\n form: {\n components: {\n input: (props) => {\n const {schemaType} = props\n\n if (isImage(schemaType)) {\n return <ImageContextProvider {...props} />\n }\n return props.renderDefault(props)\n },\n },\n },\n })(),\n ],\n }\n})\n"],"names":["assistDocumentIdPrefix","assistDocumentStatusIdPrefix","assistSchemaIdPrefix","assistDocumentTypeName","assistFieldTypeName","instructionTypeName","promptTypeName","userInputTypeName","instructionContextTypeName","fieldReferenceTypeName","contextDocumentTypeName","assistTasksStatusTypeName","instructionTaskTypeName","fieldPresenceTypeName","assistSerializedTypeName","assistSerializedFieldTypeName","outputFieldTypeName","outputTypeTypeName","fieldPathParam","instructionParam","documentRootKey","fetch","client","query","params","options","defer","observable","tag","filterResponse","listen","events","includeResult","visibility","isWelcomeEvent","event","type","listenQuery","arguments","length","undefined","fetchQuery","listenerQuery","fetchOnce$","events$","pipe","mergeMap","ev","i","isFirst","throwError","Error","concat","of","share","welcome$","mutationAndReconnect$","partition","isRelevantEvent","transitions","includes","transition","merge","take","filter","switchMap","delay","throttleTime","exhaustMapToWithTrailing","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","useListeningQuery","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","useClient","useEffect","current","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","hiddenTypes","isPortableTextArray","find","t","isType","schemaType","typeName","name","isImage","getDescriptionFieldOption","_a","_b","descriptionField","aiAssist","imageDescriptionField","getImageInstructionFieldOption","imageInstructionField","isSchemaAssistEnabled","exclude","isAssistSupported","isDisabled","jsonType","unsupportedArray","every","unsupportedObject","fields","field","isUnsupportedType","embeddingsIndex","inlineTypes","serializeSchema","schema","list","getTypeNames","startsWith","map","get","getSchemaStub","to","sort","a","b","localeCompare","baseSchema","leanFormat","_id","_type","title","getBaseFields","removeUndef","_c","_d","_e","_f","schemaOptions","imagePromptField","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","annotations","serializeAnnotations","inlineOf","serializeInlineOf","hidden","readOnly","fieldsets","flatMap","fs","single","f","serializeMember","typeNameExists","blockSchemaType","childrenField","childrenType","isArraySchemaType","markDefs","marksType","arrayType","typed","obj","forEach","key","NO_DATA","defaultTitle","SchemaTypeTool","useSchema","saving","setSaving","syncTitle","setSyncTitle","types","useMemo","storeTypes","useCallback","canSave","store","transaction","createOrReplace","commit","reset","catch","finally","jsx","Card","padding","overflow","style","height","children","jsxs","Stack","space","Box","Button","icon","Spinner","marginTop","SyncIcon","text","disabled","onClick","Flex","gap","Label","SchemaEntry","schemaStub","_ref","out","JSON","stringify","MAX_DEPTH","getDocumentMembersFlat","doc","isDocumentSchemaType","extractPaths","path","maxDepth","reduce","acc","fieldPath","fieldSchema","extractWithPath","pathToString","thisFieldWithPath","innerFields","some","item","arrayValue","arrayPaths","itemPath","_key","itemSchema","warn","arrayMember","defaultLanguageOutputs","member","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","slice","language","isKeySegment","translateToId","id","outputPath","getFieldLanguageMap","documentSchema","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","push","inputLanguageId","inputPath","outputs","aiInspectorId","assistFormId","preventDefault","DocumentForm","props","collapsedFieldSets","collapsedPaths","displayed","documentId","documentType","editState","formState","onBlur","onChange","onFocus","onPathOpen","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","ready","validation","useDocumentPane","documentStore","useDocumentStore","presence","useDocumentPresence","patchChannel","createPatchChannel","isLocked","transactionSyncLock","enabled","sub","pair","documentEvents","tap","publish","prepareMutationEvent","prepareRebaseEvent","hasRev","Boolean","_rev","patches","snapshot","formRef","focusFirstDescendant","as","ref","align","direction","justify","sizing","Text","size","onSubmit","FormBuilder","__internal_patchChannel","focusPath","changed","focused","groups","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","parent","depth","fieldRef","patchableKey","join","syntheticFields","getSyntheticFields","itemType","segment","synthetic","getTypePath","pathString","stringToPath","currentPath","valid","syntheticPath","match","pathKey","replace","useTypePath","useSelectedField","documentSchemaType","selectableFields","isObjectSchemaType","getFieldTitle","useAiPaneRouter","paneRouter","usePaneRouter","useDocumentState","docType","state","useEditState","draft","published","aiDocPrefixPattern","RegExp","publicId","assistDocumentId","documentTypeFromAiDocumentId","assistTasksStatusId","releaseAnnouncementUrl","instructionGuideUrl","giveFeedbackUrl","salesUrl","packageName","pluginTitle","pluginTitleShort","maxHistoryVisibilityMs","minutesToMilliseconds","useStudioAssistDocument","_ref2","initDoc","documentTypeName","currentUser","useCurrentUser","assistDocument","assistTasksStatus","createIfNotExists","e","tasks","assistField","task","instructions","p","userId","instruction","asStudioInstruction","instructionKey","run","started","Date","getTime","useInterval","ms","tick","update","useReducer","n","setInterval","clearInterval","TimeAgo","_ref3","date","timeSince","formatDistanceToNow","usePathKey","getPathKey","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","r","ended","hasErrors","reason","open","setOpen","toggleOpen","button","setButton","popover","setPopover","handleClickOutside","useClickOutside","handleEscape","focus","Popover","constrainSize","content","TaskList","onEscape","placement","portal","width","TaskStatusButton","selected","TASK_STATUS_BUTTON_TOOLTIP_PROPS","forwardRef","StatusButton","label","mode","tooltipProps","isTopLayer","useLayer","useGlobalKeyDown","TaskItem","taskType","radius","flex","createElement","weight","Fragment","message","fontSize","canUseAssist","status","initialized","validToken","useApiClient","customApiClient","useTranslate","apiClient","user","toast","useToast","translate","_ref4","languagePath","translatePath","fieldLanguageMap","conditionalMembers","request","method","url","config","dataset","projectId","body","description","setTimeout","useGenerateCaption","generateCaption","_ref5","useGenerateImage","generateImage","_ref6","useGetInstructStatus","getInstructStatus","useInitInstruct","initInstruct","useRunInstructionApi","runInstruction","AiAssistanceConfigContext","useAiAssistanceConfig","context","useContext","AiAssistanceConfigProvider","setStatus","__customApiClient","statusLoading","initLoading","then","s","init","NO_INPUT","RunInstructionContext","instructionLoading","useRunInstruction","isUserInputBlock","block","RunInstructionProvider","runInstructionRequest","useId","inputs","setInputs","runRequest","setRunRequest","req","userInputBlocks","prompt","userTexts","close","runWithInput","entries","_ref7","blockKey","userInput","runDisabled","_ref8","runButton","PlayIcon","contextValue","Dialog","onClose","header","footer","Tooltip","UserInput","autoFocus","textAreaRef","currentTarget","target","FormFieldHeaderText","TextArea","rows","resize","isDocAssistable","liveEdit","getAssistableDocId","baseId","useRequestRunInstruction","args","requestRunInstruction","useDraftDelayedTask","documentOnChange","queuedArgs","setQueuedArgs","taskArgs","PatchEvent","from","unset","SparklesIllustration","SparklesIcon","strokeWidth","InspectorOnboarding","onDismiss","Container","textAlign","href","rel","inspectorOnboardingKey","fieldOnboardingKey","isFeatureOnboardingDismissed","featureKey","localStorage","getItem","dismissFeatureOnboarding","setItem","useOnboardingFeature","showOnboarding","setShowOnboarding","dismissOnboarding","BackToInstructionListLink","openInspector","goBack","ArrowLeftIcon","EMPTY_FIELDS","TypePathContext","AssistDocumentForm","border","AssistDocumentFormEditable","targetDocumentType","setParams","typePath","activeKey","activePath","base","useSelectedSchema","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","currentSchema","_ref9","__presets","presets","existingField","documentPresets","missingPresetInstructions","existingInstructions","presetField","ei","setIfMissing","append","insert","preset","FieldAutocomplete","onSelect","includeDocument","fieldRefs","currentField","autocompleteOptions","renderOption","option","accent","FieldTitle","renderValue","filterOption","lQuery","toLowerCase","Autocomplete","SearchIcon","openButton","placeholder","splitTitle","split","Breadcrumbs","display","flexWrap","alignItems","separator","pt","trim","getConditionalMembers","docState","conditional","extractConditionalPaths","_ref10","isConditional","conditionalState","memberState","node","kind","array","isObjectsArray","conditionalFieldset","fieldSet","CardWithShadowBelow","CardWithShadowAbove","AssistInspectorWrapper","DocumentInspectorHeader","closeButtonLabel","RetryIcon","AssistInspector","boundary","documentPane","docValue","formStateRef","assistableDocId","selectedField","aiDocId","promptValue","isEmptyPrompt","firstBlock","paneNode","runCurrentInstruction","Region","_props","AiInspectorHeader","fieldTitle","minHeight","PresenceOverlay","VirtualizerScrollInstanceProvider","scrollElement","containerElement","DocumentPaneProvider","paneKey","index","itemId","pane","whiteSpace","ArrowRightIcon","paddingX","paddingY","justifySelf","wrap","CloseIcon","assistInspector","useMenuItem","showAsAction","component","_ref11","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref12","durationMs","animationDuration","purple","hex","Root","span","dash","Outline","svg","IconDisc","AssistAvatar","scheme","useColorSchemeValue","viewBox","fill","xmlns","cx","cy","color","AiFieldPresence","position","background","contentEditable","AssistFeatureBadge","Badge","margin","AssistOnboardingPopover","dismiss","AssistIntroCard","shadow","buttonRef","CheckmarkIcon","FirstAssistedPathContext","FirstAssistedPathProvider","firstAssistedPath","firstAssisted","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isFirstAssisted","singlePresence","actions","__internal_slot","ConnectorsStoreContext","useConnectorsStore","hasOverflowScroll","el","getComputedStyle","useRegionRects","relativeBoundsRect","setRelativeBoundsRect","relativeElementRect","setRelativeElementRect","boundsScroll","setBoundsScroll","x","y","scroll","setScroll","boundsScrollXRef","boundsScrollYRef","elementScrollXRef","elementScrollYRef","scrollParents","parentElement","handleResize","scrollParent","boundsRect","getBoundingClientRect","window","innerWidth","innerHeight","domRect","w","h","handleScroll","scrollX","scrollY","scrollLeft","scrollTop","addEventListener","passive","ro","ResizeObserver","observe","unobserve","removeEventListener","disconnect","bounds","element","ConnectorRegion","onRectsChange","restProps","ConnectFromRegion","zIndex","rects","setRects","next","createConnectorsStore","configKeys","fieldKeys","channels","Map","payloads","observers","notifyObservers","connectors","toRects","toPayload","fromRects","fromPayload","payload","observer","delete","idx","indexOf","splice","ConnectorsProvider","onConnectorsChange","getConnectorLinePoint","rect","centerY","isAbove","arrow","marginY","isBelow","startY","endY","outOfBounds","mapConnectorToLine","connector","fromBounds","threshold","fromBottom","toBounds","toBottom","maxStartY","Math","max","min","arrowPath","dir","moveTo","lineTo","strings","delim","quadCurve","x1","y1","drawConnectorPath","line","cornerRadius","fromX","fromY","_toX","toY","toX","dividerX","divider","offsetX","fromPathX","marginX","r0","abs","r1","cmds","ConnectorPath","theme","useTheme","d","stroke","sanity","bg","rgba","DEBUG","AssistConnectorsOverlay","setRedraw","top","left","pointerEvents","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","self","root","Function","_root","Symbol","_Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","getRawTag$1","isOwn","call","unmasked","result","_getRawTag","objectToString","objectToString$1","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","baseGetTag$2","_baseGetTag","isObjectLike","isObjectLike$1","isObjectLike_1","symbolTag","isSymbol","isSymbol$3","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","isKey$1","object","test","_isKey","isObject","isObject$2","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction$1","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","isMasked$1","func","_isMasked","funcProto","funcToString","toSource","toSource$1","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","baseIsNative$1","pattern","_baseIsNative","getValue","getValue$1","_getValue","getNative","getNative$2","_getNative","nativeCreate","_nativeCreate","hashClear","hashClear$1","__data__","_hashClear","hashDelete","hashDelete$1","has","_hashDelete","HASH_UNDEFINED","hashGet","hashGet$1","_hashGet","hashHas","hashHas$1","_hashHas","hashSet","hashSet$1","_hashSet","require$$4","Hash","Hash$1","clear","entry","_Hash","listCacheClear","listCacheClear$1","_listCacheClear","eq","eq$1","other","eq_1","assocIndexOf","assocIndexOf$4","_assocIndexOf","arrayProto","listCacheDelete","listCacheDelete$1","lastIndex","pop","_listCacheDelete","listCacheGet","listCacheGet$1","_listCacheGet","listCacheHas","listCacheHas$1","_listCacheHas","listCacheSet","listCacheSet$1","_listCacheSet","ListCache","ListCache$1","_ListCache","_Map","mapCacheClear","mapCacheClear$1","_mapCacheClear","isKeyable","isKeyable$1","_isKeyable","getMapData","getMapData$4","_getMapData","mapCacheDelete","mapCacheDelete$1","_mapCacheDelete","mapCacheGet","mapCacheGet$1","_mapCacheGet","mapCacheHas","mapCacheHas$1","_mapCacheHas","mapCacheSet","mapCacheSet$1","_mapCacheSet","MapCache","MapCache$1","_MapCache","FUNC_ERROR_TEXT","memoize","memoize$1","resolver","TypeError","memoized","apply","cache","Cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","memoizeCapped$1","_memoizeCapped","rePropName","reEscapeChar","string","charCodeAt","number","quote","subString","_stringToPath","arrayMap","arrayMap$1","iteratee","_arrayMap","INFINITY","symbolProto","symbolToString","baseToString","baseToString$1","_baseToString","toString$1","toString_1","castPath","castPath$1","_castPath","toKey","toKey$1","_toKey","baseGet","baseGet$1","_baseGet","defaultValue","get_1","getLanguageParams","select","selection","selectedValue","toFieldLanguagesKeyPrefix","getPreferredToFieldLanguages","fromLanguageId","parse","setPreferredToFieldLanguages","languageIds","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","hasValuesToTranslate","fieldLanguageMaps","fromLanguage","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","fieldTranslationParams","setFieldTranslationParams","languages","setLanguages","setFromLanguage","toLanguages","setToLanguages","setFieldLanguageMaps","languageClient","selectFromLanguage","preferred","allToLanguages","l","filteredToLanguages","fromId","allToIds","docMembers","transMap","toId","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","radioLanguage","FromLanguageRadio","checkboxLanguage","ToLanguageCheckbox","langId","opacity","Checkbox","checked","tl","Radio","AssistLayout","setConnectors","ThemeProvider","WrapPreCard","SafeValueInput","ErrorWrapper","PteValueFixer","unsetValue","catcher","ErrorBoundary","onCatch","AssistFormBlock","localOnChange","patchEvent","prefixAll","AssistItem","pre","right","findFieldMember","fieldName","findFieldsetMember","fieldsetName","InstructionInput","NameField","ShareField","ObjectMember","_ref13","ObjectInputMember","NONE","fieldsetMember","titleId","iconMember","titleMember","titlePlaceholder","moddedTitleMember","htmlFor","marginLeft","visibilityMember","HiddenFieldTitle","level","InstructionVisibility","handleChange","newValue","Switch","elementProps","IconInput","items","icons","_ref14","IconItem","iconKey","selectedIcon","getIcon","MenuButton","menu","Menu","maxHeight","_ref15","MenuItem","iconName","_ref16","sparkles","FieldRefPathInput","querySelector","fieldSegments","lastArrayItemIndex","findLastIndex","mustStartWith","minWidth","InstructionsArrayInput","originalValue","originalMembers","InlineBlockValueContext","AssistInlineFormBlock","FieldRefPreview","textOverflow","HideReferenceChangedBannerInput","closest","parentId","random","innerText","prepend","contextDocumentSchema","defineType","TokenIcon","components","input","defineField","defineArrayMember","styles","lists","marks","decorators","preview","prepare","_ref17","child","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","globalThis","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","InstructionsArrayField","InstructionOutputField","isArrayOfObjectsSchemaType","EnabledOutputField","_ref18","onExpand","onCollapse","collapsible","collapsed","InstructionOutputInput","ObjectOutputInput","ArrayOutputInput","useEmptySelectAllValue","allowedValues","validValues","relativePath","valueLength","validLength","_ref19","onSelectChange","patchValue","Selectable","_ref20","ofItems","_ref21","cursor","fieldReference","ThListIcon","rule","custom","docId","targetDocType","refs","_ref22","CodeIcon","modal","ComposeIcon","required","promptContext","Fix","maxWidth","outputFieldType","outputTypeType","_ref23","LockIcon","fieldset","initialValue","createdById","fieldInstructions","assistDocumentSchema","instructionTask","documentInstructionStatus","excludeComments","existingRender","newProps","__internal_comments","arrayItemType","instructionForm","schemaTypes","useAssistSupported","useAssistDocumentContextValue","getPublishedId","assistableDocumentId","documentIsNew","documentIsAssistable","selectedPath","closeInspector","inspector","PrivateIcon","fallbackPlacements","ImageContext","ImageContextProvider","assetRef","asset","assetRefState","setAssetRefState","isSyncing","useSyncState","router","isShowingOlderRevision","rev","imageDescriptionPath","imageInstructionPath","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_g","_h","fieldSchemaType","isDocumentLevel","docTransTypes","documentTypes","addFieldAction","translateAction","fieldTransEnabled","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","TranslateIcon","fieldTranslate","translateFieldsAction","c","expanded","generateImagActions","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","imageGenAction","manageInstructions","onInstructionAction","privateInstructions","sharedInstructions","runInstructionsGroup","instructionItem","isPrivate","instructionsLength","manageInstructionsItem","ControlsIcon","group","emptyAction","iconRight","AssistDocumentContextProvider","NO_TASKS","useInstructionToaster","assistDocLoaded","previousTasks","prevTaskByKey","fromEntries","endedTasks","startedByUserId","prevTask","isAfter","addSeconds","closable","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_ref24","createAssistDocumentPresence","AssistDocumentPresenceWrapper","AssistDocumentPresence","anyPresence","anyRun","assist","definePlugin","configWithDefaults","i18n","bundles","inspectors","prev","docSchema","unstable_fieldActions","_ref25","unstable_languageFilter","_ref26","studio","layout","Layout","form","inlineBlock","plugins"],"mappings":"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","x_google_ignoreList":[36,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,126]}