@sanity/assist 1.2.15-lang.2 → 1.2.15-lang.3
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.
- package/README.md +135 -22
- package/dist/index.d.ts +60 -0
- package/dist/index.esm.js +145 -100
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +145 -100
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/assistDocument/AssistDocumentInput.tsx +22 -3
- package/src/components/SafeValueInput.tsx +4 -1
- package/src/fieldActions/assistFieldActions.tsx +5 -2
- package/src/plugin.tsx +9 -1
- package/src/schemas/typeDefExtensions.ts +62 -0
- package/src/translate/FieldTranslationProvider.tsx +42 -39
- package/src/translate/paths.test.ts +4 -4
- package/src/translate/paths.ts +5 -5
- package/src/{fieldActions → translate}/translateActions.tsx +73 -40
- package/src/useApiClient.ts +13 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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/assistInspector/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/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","../src/legacy-types.ts","../src/assistLayout/AlphaMigration.tsx","../src/translate/paths.ts","../../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/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/fieldActions/translateActions.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 interface SerializedSchemaMember {\n _type?: typeof assistSerializedFieldTypeName\n type: string\n name: string\n title?: string\n values?: string[]\n of?: SerializedSchemaMember[]\n to?: {type: string}[]\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n title?: string\n name?: string\n fields?: SerializedSchemaMember[]\n of?: {type: string}[]\n to?: {type: string}[]\n options?: {\n imagePromptField?: string\n }\n}\n\nexport interface AssistDocument extends SanityDocument {\n fields?: AssistField[]\n instructions?: StudioInstruction[]\n}\n\nexport interface StudioAssistDocument {\n _id: string\n _type: typeof assistDocumentTypeName\n fields?: StudioAssistField[]\n\n // added\n tasks?: InstructionTask[]\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 = PortableTextBlock<never, InlinePromptBlock, 'normal', never>\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 getCaptionFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const captionField = (schemaType.options as ImageOptions)?.captionField\n if (captionField) {\n return captionField\n }\n return getCaptionFieldOption(schemaType.type)\n}\n","import {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)?.aiWritingAssistance?.exclude\n}\n\nexport function isAssistSupported(type: SchemaType, allowReadonlyHidden = false) {\n if (!isSchemaAssistEnabled(type)) {\n return false\n }\n\n if (isDisabled(type, allowReadonlyHidden)) {\n return false\n }\n\n if (type.jsonType === 'array') {\n const unsupportedArray = type.of.every((t) => isDisabled(t, allowReadonlyHidden))\n return !unsupportedArray\n }\n\n if (type.jsonType === 'object') {\n const unsupportedObject = type.fields.every((field) =>\n isDisabled(field.type, allowReadonlyHidden)\n )\n return !unsupportedObject\n }\n return true\n}\n\nfunction isDisabled(type: SchemaType, allowReadonlyHidden: boolean) {\n const readonlyHidden = !!type.readOnly || !!type.hidden\n return (\n !isSchemaAssistEnabled(type) ||\n isUnsupportedType(type) ||\n (!allowReadonlyHidden && readonlyHidden)\n )\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') && !type?.options?.aiWritingAssistance?.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 ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaMember,\n SerializedSchemaType,\n assistSchemaIdPrefix,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\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 .filter((t) => !t.hidden && !t.readOnly)\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 = removeUndef({\n imagePromptField: (type.options as ImageOptions)?.imagePromptField,\n embeddingsIndex: (type.options as ReferenceOptions)?.aiWritingAssistance?.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 })\n}\n\nfunction serializeFields(\n schema: Schema,\n schemaType: ObjectSchemaType,\n options: Options | undefined\n) {\n return schemaType.fields\n .filter((f) => !['sanity.imageHotspot', 'sanity.imageCrop'].includes(f.type?.name ?? ''))\n .filter((f) => isAssistSupported(f.type))\n .filter((f) => !f.type.hidden && !f.type.readOnly)\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 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","export const aiInspectorId = 'ai-assistance'\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'\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=\"root\"\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 {usePaneRouter, type PaneRouterContextValue} 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, true)) {\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, true)) {\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 if (path.length) {\n return Array.isArray(path) ? pathToString(path) : path\n }\n return documentRootKey\n }, [path])\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 {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 {TranslationMap} from './translate/paths'\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}\n\nexport interface InstructStatus {\n enabled: boolean\n initialized: boolean\n validToken: boolean\n}\n\nconst basePath = '/assist/tasks/instruction'\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 fieldLanguageMap,\n }: {\n documentId: string\n languagePath?: string\n fieldLanguageMap?: TranslationMap[]\n }) => {\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 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 caption 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 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} 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 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'\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 fieldExists = !!fields?.some((f) => f._key === typePath)\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 fieldExists={fieldExists}\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 fieldExists,\n onChange,\n}: {\n pathKey?: string\n activePath?: Path\n fieldExists: boolean\n onChange: ObjectInputProps['onChange']\n}) {\n // need this to not fire onChange twice in React strict mode\n const initialized = useRef(false)\n useEffect(() => {\n if (initialized.current || fieldExists || activePath || !pathKey) {\n return\n }\n onChange([\n setIfMissing([], ['fields']),\n insert(\n [\n typed<AssistField>({\n _key: pathKey,\n _type: assistFieldTypeName,\n path: pathKey,\n }),\n ],\n 'after',\n ['fields', -1]\n ),\n ])\n initialized.current = true\n }, [activePath, onChange, pathKey, fieldExists])\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","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'\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 →\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 } = documentPane\n const {published, draft} = useEditState(documentId, documentType, 'low')\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 }),\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'\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 (!isType(props.schemaType, 'document') && props.inputId !== 'root') {\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","import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const legacyAssistDocumentIdPrefix = 'sanity.ai.'\n\nexport const legacyAssistDocumentTypeName = 'sanity.ai.docType' as const\nconst aiFieldTypeName = 'sanity.ai.docType.field' as const\nconst instructionTypeName = 'sanity.ai.field.instruction' as const\n\nconst userInputTypeName = 'sanity.ai.prompt.userInput' as const\nconst promptContextTypeName = 'sanity.ai.prompt.context' as const\nconst fieldReferenceTypeName = 'sanity.ai.prompt.fieldRef' as const\n\nexport const legacyContextDocumentTypeName = 'ai.instruction.context' as const\n\nexport const legacyAssistStatusDocumentTypeName = 'sanity.ai.instructionStatus' as const\n\nexport interface FieldPrompts {\n _key: string\n _type: typeof aiFieldTypeName\n path?: string\n instructions?: LegacyInstruction[]\n}\n\nexport interface LegacyAssistDocument extends SanityDocument {\n fields: FieldPrompts[]\n}\n\nexport interface LegacyFieldRef extends PortableTextMarkDefinition {\n _type: typeof fieldReferenceTypeName\n path?: string\n}\n\nexport interface LegacyContextBlock {\n _type: typeof promptContextTypeName\n reference?: {\n _type: 'reference'\n _ref?: string\n }\n}\n\nexport interface LegacyUserInputBlock {\n _type: typeof userInputTypeName\n _key: string\n message?: string\n description?: string\n}\n\nexport type LegacyPromptTextBlock = PortableTextBlock<\n never,\n PortableTextSpan | LegacyFieldRef | LegacyUserInputBlock | LegacyContextBlock,\n 'normal',\n never\n>\n\nexport type LegacyPromptBlock =\n | LegacyPromptTextBlock\n | LegacyFieldRef\n | LegacyContextBlock\n | LegacyUserInputBlock\n\nexport interface LegacyInstruction {\n _key: string\n _type: typeof instructionTypeName\n prompt?: LegacyPromptBlock[]\n\n icon?: string\n userId?: string\n title?: string\n placeholder?: string\n}\n","import {SanityClient, SanityDocument, useClient} from 'sanity'\nimport {useCallback, useEffect, useState} from 'react'\nimport {Box, Button, Card, Dialog, Spinner, Stack, Text, useToast} from '@sanity/ui'\nimport {CheckmarkIcon} from '@sanity/icons'\nimport {\n LegacyAssistDocument,\n legacyAssistDocumentIdPrefix,\n legacyAssistDocumentTypeName,\n legacyAssistStatusDocumentTypeName,\n LegacyContextBlock,\n legacyContextDocumentTypeName,\n LegacyFieldRef,\n LegacyPromptBlock,\n LegacyPromptTextBlock,\n LegacyUserInputBlock,\n} from '../legacy-types'\nimport {assistDocumentId} from '../helpers/ids'\nimport {\n assistDocumentIdPrefix,\n assistDocumentTypeName,\n AssistField,\n assistFieldTypeName,\n contextDocumentTypeName,\n fieldReferenceTypeName,\n InlinePromptBlock,\n instructionContextTypeName,\n instructionTypeName,\n PromptBlock,\n userInputTypeName,\n} from '../types'\nimport {PortableTextSpan} from '@portabletext/types'\nimport {pluginTitle} from '../constants'\n\nconst NO_ASSIST_DOCS: LegacyAssistDocument[] = []\nconst NO_CONTEXT_DOCS: SanityDocument[] = []\nconst NO_IDS: string[] = []\n\ninterface MigratedContextDoc {\n _id: string\n _alphaId: string\n}\n\ntype Task = (subtaskProgress: (percentage: number) => void) => Promise<void>\n\nexport function AlphaMigration() {\n const [alphaAssistDocs, setAlphaAssistDocs] = useState(NO_ASSIST_DOCS)\n const [contextDocs, setContextDocs] = useState(NO_CONTEXT_DOCS)\n const [staleStatusDocIds, setStaleStatusDocs] = useState(NO_IDS)\n const [error, setError] = useState<Error | undefined>(undefined)\n const [progress, setProgress] = useState<number | undefined>(undefined)\n const toast = useToast()\n const client = useClient({apiVersion: '2023-06-01'})\n\n useEffect(() => {\n let canUpdate = true\n client\n .fetch<{\n assistDocs?: LegacyAssistDocument[]\n staleStatusDocIds?: string[]\n contextDocs?: SanityDocument[]\n }>(\n `\n {\n \"assistDocs\": *[_type==\"${legacyAssistDocumentTypeName}\"],\n \"staleStatusDocIds\": *[_type==\"${legacyAssistStatusDocumentTypeName}\"]._id,\n \"contextDocs\": *[_type==\"${legacyContextDocumentTypeName}\"],\n }\n `\n )\n .then((result) => {\n if (!canUpdate || !result) {\n return\n }\n setAlphaAssistDocs(result?.assistDocs ?? NO_ASSIST_DOCS)\n setStaleStatusDocs(result?.staleStatusDocIds ?? NO_IDS)\n setContextDocs(result?.contextDocs ?? NO_CONTEXT_DOCS)\n })\n return () => {\n canUpdate = false\n }\n }, [client, setAlphaAssistDocs, setStaleStatusDocs, setContextDocs])\n\n const convert = useCallback(async () => {\n try {\n setProgress(0.0001)\n\n const tasks: Task[] = [\n () => convertContextDocs(client, contextDocs),\n (subtaskProgress) => deleteDocs(client, staleStatusDocIds, subtaskProgress),\n (subtaskProgress) => convertDocs(client, alphaAssistDocs, subtaskProgress),\n (subtaskProgress) =>\n deleteDocs(\n client,\n contextDocs.map((d) => d._id),\n subtaskProgress\n ),\n ]\n\n const taskSize = 1 / tasks.length\n for (let i = 0; i < tasks.length; i++) {\n const startProgress = i / tasks.length\n await tasks[i]((subProgress) => setProgress(startProgress + subProgress * taskSize))\n setProgress((i + 1) / tasks.length)\n }\n\n setProgress(1)\n setAlphaAssistDocs(NO_ASSIST_DOCS)\n setContextDocs(NO_CONTEXT_DOCS)\n setStaleStatusDocs(NO_IDS)\n toast.push({\n title: `Converted instructions to new format.`,\n status: 'success',\n closable: true,\n })\n } catch (e: any) {\n console.error(e)\n toast.push({\n title: `An error occurred`,\n status: 'error',\n closable: true,\n })\n setError(e)\n setProgress(undefined)\n }\n }, [contextDocs, client, alphaAssistDocs, staleStatusDocIds, setProgress, toast])\n\n if (\n (alphaAssistDocs.length || staleStatusDocIds.length || contextDocs.length) &&\n (!progress || progress < 1)\n ) {\n return (\n <Dialog id=\"outdated-assist-docs\" header={pluginTitle}>\n <Card padding={3}>\n <Stack space={4} style={{maxWidth: 500}}>\n <Text size={1}>\n It seems like this workspace contains documents from an{' '}\n <strong>older version of {pluginTitle}</strong>.\n </Text>\n <Text size={1}>Cleanup is required.</Text>\n {error ? (\n <Card padding={2} tone=\"critical\" border>\n <Text size={1}>An error occurred. See console for details.</Text>{' '}\n </Card>\n ) : null}\n <Button\n icon={\n progress ? (\n <Box style={{marginTop: 5}}>\n <Spinner />\n </Box>\n ) : (\n CheckmarkIcon\n )\n }\n disabled={!!progress}\n text={progress ? `${Math.floor(progress * 100)}%` : 'Ok, convert to new format!'}\n tone=\"primary\"\n onClick={convert}\n />\n </Stack>\n </Card>\n </Dialog>\n )\n }\n\n return null\n}\n\nasync function deleteDocs(\n client: SanityClient,\n ids: string[],\n updateProgress: (percentage: number) => void\n) {\n const chunkSize = 50\n for (let i = 0; i < ids.length; i += chunkSize) {\n const progressCount = Math.min(ids.length, i + chunkSize)\n const chunk = ids.slice(i, progressCount)\n const trans = client.transaction()\n chunk.forEach((id) => trans.delete(id))\n await trans.commit()\n updateProgress(progressCount / ids.length)\n }\n}\n\nasync function convertContextDocs(client: SanityClient, docs: SanityDocument[]) {\n const trans = client.transaction()\n\n for (const doc of docs) {\n const {_id, _type, ...rest} = doc\n trans.createOrReplace({\n ...rest,\n _id: `port.${_id}`,\n _alphaId: _id,\n _type: contextDocumentTypeName,\n })\n }\n\n await trans.commit()\n}\n\nasync function convertDocs(\n client: SanityClient,\n docs: LegacyAssistDocument[],\n updateProgress: (percentage: number) => void\n) {\n const chunkSize = 10\n for (let i = 0; i < docs.length; i += chunkSize) {\n const progressCount = Math.min(docs.length, i + chunkSize)\n const chunk = docs.slice(i, progressCount)\n\n const trans = client.transaction()\n const contextDocs: MigratedContextDoc[] = await client.fetch(\n `*[_type==\"${contextDocumentTypeName}\" && _alphaId != null]{_id, _alphaId}`\n )\n\n chunk.forEach((oldDoc) => {\n const documentType = oldDoc._id.replace(\n new RegExp(`^(${legacyAssistDocumentIdPrefix}|${assistDocumentIdPrefix})`),\n ''\n )\n\n const id = assistDocumentId(documentType)\n\n const fields: AssistField[] = (oldDoc.fields ?? [])\n .filter((field) => field.instructions?.length)\n .map((oldField) => {\n const instructions = (oldField.instructions ?? []).map((inst) => {\n // eslint-disable-next-line max-nested-callbacks\n const prompt = (inst.prompt ?? []).map((block) => {\n return mapBlock(block, contextDocs) as PromptBlock\n })\n return {\n ...inst,\n _type: instructionTypeName,\n prompt,\n }\n })\n return {\n ...oldField,\n _type: assistFieldTypeName,\n instructions,\n }\n })\n\n if (fields.length) {\n trans.createOrReplace({\n _id: id,\n _type: assistDocumentTypeName,\n fields,\n })\n }\n trans.delete(oldDoc._id)\n })\n await trans.commit()\n updateProgress(progressCount / docs.length)\n }\n}\n\ntype Blocks = LegacyPromptBlock | LegacyPromptTextBlock | PortableTextSpan\n\nfunction isFieldRef(block: Blocks): block is LegacyFieldRef {\n return block._type === 'sanity.ai.prompt.fieldRef'\n}\n\nfunction isContext(block: Blocks): block is LegacyContextBlock {\n return block._type === 'sanity.ai.prompt.context'\n}\n\nfunction isUserInput(block: Blocks): block is LegacyUserInputBlock {\n return block._type === 'sanity.ai.prompt.userInput'\n}\n\nfunction isSpan(block: Blocks): block is PortableTextSpan {\n return block._type === 'span'\n}\n\nfunction mapBlock(\n block: Blocks,\n migratedContexts: MigratedContextDoc[]\n): PromptBlock | InlinePromptBlock {\n if (isFieldRef(block)) {\n return {...block, _type: fieldReferenceTypeName}\n }\n if (isUserInput(block)) {\n return {...block, _type: userInputTypeName}\n }\n if (isContext(block)) {\n const newBlock = {\n ...block,\n _type: instructionContextTypeName,\n reference: {\n _type: 'reference',\n _ref:\n migratedContexts.find((c) => c._alphaId === block.reference?._ref)?._id ??\n block.reference?._ref,\n },\n } as const\n return newBlock\n }\n if (isSpan(block)) {\n return block\n }\n const textBlock = block\n return {\n ...textBlock,\n children: (textBlock.children ?? []).map(\n (child) => mapBlock(child, migratedContexts) as InlinePromptBlock\n ),\n }\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, TranslationOutputsFunction, TranslationOutput} from './types'\n\nexport interface TranslationMap {\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 thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\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 arrayItemSchema = fieldSchema.of.find((t) => t.name === item._type)\n if (item._key && arrayItemSchema) {\n const itemPath = [...fieldPath, {_key: item._key}]\n const innerFields = extractPaths(\n doc,\n arrayItemSchema as ObjectSchemaType,\n itemPath,\n maxDepth\n )\n arrayPaths = [\n ...arrayPaths,\n {path: itemPath, name: item._key, schemaType: arrayItemSchema},\n ...innerFields,\n ]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\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 getTranslationMap(\n documentSchema: ObjectSchemaType,\n documentMembers: DocumentMember[],\n translateFromLanguageId: string,\n outputLanguageIds: string[],\n langFn: TranslationOutputsFunction\n): TranslationMap[] {\n const translationMaps: TranslationMap[] = []\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","/**\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","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, 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 getDocumentMembersFlat,\n getTranslationMap,\n TranslationMap,\n} from './paths'\nimport {PlayIcon} from '@sanity/icons'\nimport {Language} from './types'\nimport {getLanguageParams} from './getLanguageParams'\n\nexport interface FieldTranslationContextValue {\n openFieldTranslation: (args: {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n }) => void\n translationLoading: boolean\n //loadLanguages: (document: SanityDocumentLike, documentSchema: ObjectSchemaType) => void\n}\n\nexport const FieldTranslationContext = createContext<FieldTranslationContextValue>({\n openFieldTranslation: () => {},\n translationLoading: false,\n //loadLanguages: () => {},\n})\n\nexport function useFieldTranslation() {\n return useContext(FieldTranslationContext)\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 [document, setDocument] = useState<SanityDocumentLike | undefined>()\n const [documentSchema, setDocumentSchema] = useState<ObjectSchemaType | undefined>()\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 [translationMap, setTranslationMap] = useState<TranslationMap[] | undefined>()\n\n const close = useCallback(() => {\n setDialogOpen(false)\n setLanguages(undefined)\n setDocument(undefined)\n setDocument(undefined)\n }, [])\n const languageClient = useClient({apiVersion: config?.apiVersion ?? '2022-11-27'})\n const documentId = document?._id\n const id = useId()\n\n const selectFromLanguage = useCallback(\n (\n from: Language,\n languages: Language[] | undefined,\n document: SanityDocumentLike | undefined,\n documentSchema: ObjectSchemaType | undefined\n ) => {\n setFromLanguage(from)\n if (!document || !documentSchema || !languages) {\n setTranslationMap(undefined)\n return\n }\n\n const to = languages.filter((l) => l.id !== from?.id)\n setToLanguages(to)\n const fromId = from?.id\n const toIds = to?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && toIds?.length) {\n const transMap = getTranslationMap(\n documentSchema,\n docMembers,\n fromId,\n toIds,\n config?.translationOutputs ?? defaultLanguageOutputs\n )\n setTranslationMap(transMap)\n } else {\n setTranslationMap(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) {\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 },\n []\n )\n\n const openFieldTranslation = useCallback(\n async ({\n document,\n documentSchema,\n }: {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n }) => {\n setDialogOpen(true)\n const languageParams = getLanguageParams(config?.selectLanguageParams, 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 setDocument(document)\n setDocumentSchema(documentSchema)\n const fromLanguage = languages?.[0]\n if (fromLanguage) {\n selectFromLanguage(fromLanguage, languages, document, documentSchema)\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 || !toLanguages?.length || !translationMap?.length || !documentId\n\n const onRunTranslation = useCallback(() => {\n if (translationMap && documentId) {\n runTranslate({\n documentId,\n fieldLanguageMap: translationMap.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 })\n }\n close()\n }, [translationMap, documentId, runTranslate, close, toLanguages])\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>Nothing to translate.</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((l) => (\n <Flex key={l.id} gap={3} align=\"center\">\n <Radio\n name=\"fromLang\"\n value={l.id}\n checked={l.id === fromLanguage?.id}\n onClick={() => selectFromLanguage(l, languages, document, documentSchema)}\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\n ))}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages\n ?.filter((l) => l.id !== fromLanguage?.id)\n .map((l) => (\n <Flex key={l.id} gap={3} align=\"center\">\n <Checkbox\n name=\"toLang\"\n value={l.id}\n checked={!!toLanguages?.find((tl) => tl.id === l.id)}\n onClick={() => toggleToLanguage(l, toLanguages, languages)}\n disabled={\n !translationMap?.find((tm) => tm.outputs.find((o) => o.id === l.id))\n }\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\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","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 {AlphaMigration} from './AlphaMigration'\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 const migrate = props.config.alphaMigration ?? true\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n {migrate ? <AlphaMigration /> : null}\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(() => onChange(PatchEvent.from(unset())), [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 return window.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: 'Document 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 {getCaptionFieldOption} from '../helpers/typeUtils'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {publicId} from '../helpers/ids'\n\nexport interface ImageContextValue {\n captionPath: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue | undefined>(undefined)\n\nexport function ImageContextProvider(props: InputProps) {\n const {schemaType, path, value} = 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} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption} = useGenerateCaption(apiClient)\n\n const {isSyncing} = useSyncState(publicId(documentId), documentSchemaType.name)\n\n useEffect(() => {\n const captionField = getCaptionFieldOption(schemaType)\n if (assetRef && documentId && captionField && assetRef !== assetRefState && !isSyncing) {\n setAssetRefState(assetRef)\n generateCaption({path: pathToString([...path, captionField]), documentId: documentId})\n }\n }, [schemaType, path, assetRef, assetRefState, documentId, generateCaption, isSyncing])\n\n const context: ImageContextValue | undefined = useMemo(() => {\n const captionField = getCaptionFieldOption(schemaType)\n return captionField ? {captionPath: pathToString([...path, captionField]), assetRef} : undefined\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 {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'\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\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption, loading} = useGenerateCaption(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.captionPath) {\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 caption',\n onAction: () => {\n if (loading) {\n return\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])\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 '../translate/FieldTranslationProvider'\nimport {useDraftDelayedTask} from '../assistDocument/RequestRunInstructionProvider'\nimport {getLanguageParams} from '../translate/getLanguageParams'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport type TranslateProps = DocumentFieldActionProps & {documentIsAssistable?: boolean}\nexport const translateActions: DocumentFieldAction = {\n name: 'sanity-assist-translate',\n useAction(props: TranslateProps) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n\n const isDocumentLevel = props.path.length === 0\n const {schemaType, documentId, documentIsAssistable} = props\n\n const fieldTransEnabled = config.translate?.field?.documentTypes?.includes(schemaType.name)\n const docTransTypes = config.translate?.document?.documentTypes\n const documentTranslationEnabled =\n isDocumentLevel &&\n ((!docTransTypes && isAssistSupported(schemaType)) ||\n docTransTypes?.includes(schemaType.name))\n\n // these checks are stable (ie, does not change after mount), so not breaking rules of hooks\n if (documentTranslationEnabled || fieldTransEnabled) {\n const {value: documentValue, onChange: documentOnChange} = useDocumentPane()\n const docRef = useRef(documentValue)\n\n const translationApi = useTranslate(apiClient)\n const translate = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: translationApi.translate,\n })\n docRef.current = documentValue\n const languagePath = config.translate?.document?.languageField\n\n //const {value: languageId} = extractWithPath(languagePath, documentValue)[0] ?? {}\n // if this is true, it is stable, and not breaking rules of hooks\n const translateDocumentAction = useMemo(\n () =>\n languagePath && documentTranslationEnabled\n ? 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: `Translate document`,\n onAction: () => {\n if (translationApi.loading || !languagePath || !documentId) {\n return\n }\n translate({languagePath, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: translationApi.loading,\n })\n : undefined,\n [languagePath, translate, documentId, translationApi.loading, documentTranslationEnabled]\n )\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 openFieldTranslation({\n document: docRef.current,\n documentSchema: schemaType as ObjectSchemaType,\n })\n },\n renderAsButton: true,\n disabled: fieldTranslate.translationLoading,\n })\n : undefined,\n [\n openFieldTranslation,\n schemaType,\n documentId,\n fieldTranslate.translationLoading,\n fieldTransEnabled,\n ]\n )\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'group',\n icon: () => null,\n title: 'Translate',\n children: [translateDocumentAction, translateFieldsAction].filter(\n (c): c is DocumentFieldActionItem => !!c\n ),\n expanded: true,\n })\n }, [translateDocumentAction, translateFieldsAction])\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} from 'react'\nimport {pluginTitle, 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 './translateActions'\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} = useDocumentPane()\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\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 translateAction = translateActions.useAction(\n typed<TranslateProps>({\n ...props,\n documentId: assistableDocumentId,\n documentIsAssistable,\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 })\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\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 ].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 ])\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 ].filter((c): c is DocumentFieldActionItem | DocumentFieldActionGroup => !!c),\n expanded: false,\n renderAsButton: true,\n hidden: !assistSupported && !imageCaptionAction && !translateAction,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\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) {\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 ? false : {reason: `${pluginTitle} is not supported for this field`},\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} 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'\n\nexport function AssistDocumentInputWrapper(props: InputProps) {\n if (!isType(props.schemaType, 'document') && props.id !== 'root') {\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 return (\n <FirstAssistedPathProvider members={props.members}>\n <AssistDocumentContextProvider schemaType={props.schemaType} documentId={documentId}>\n {props.renderDefault(props)}\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'\n\nexport interface AssistPluginConfig {\n translate?: TranslationConfig\n\n /**\n * Set this to false to disable model migration from the alpha version of this plugin\n */\n alphaMigration?: boolean\n\n /**\n * @internal\n */\n __customApiClient?: (defaultClient: SanityClient) => SanityClient\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 docSchema = context.schema.get(context.documentType)\n if (docSchema && isSchemaAssistEnabled(docSchema)) {\n return [...prev, assistInspector]\n }\n return prev\n },\n unstable_fieldActions: (prev, {documentType, schema}) => {\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 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","getCaptionFieldOption","_a","captionField","isSchemaAssistEnabled","_b","aiWritingAssistance","exclude","isAssistSupported","allowReadonlyHidden","isDisabled","jsonType","unsupportedArray","every","unsupportedObject","fields","field","readonlyHidden","readOnly","hidden","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","schemaOptions","imagePromptField","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","f","serializeMember","typeNameExists","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","aiInspectorId","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","id","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","maxDepth","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","path","parent","depth","flatMap","fieldRef","patchableKey","pathToString","join","syntheticFields","getSyntheticFields","itemType","segment","_key","synthetic","getTypePath","doc","pathString","stringToPath","currentPath","valid","syntheticPath","push","isKeySegment","match","extractWithPath","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","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","default","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","some","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","useApiClient","customApiClient","useTranslate","apiClient","user","toast","useToast","translate","_ref4","languagePath","fieldLanguageMap","request","method","url","config","dataset","projectId","body","status","description","setTimeout","useGenerateCaption","generateCaption","_ref5","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","_ref6","blockKey","userInput","runDisabled","_ref7","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","documentSchema","fieldSchema","useSelectedSchema","fieldExists","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","fieldPath","currentSchema","_ref8","initialized","setIfMissing","insert","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","slice","pt","trim","CardWithShadowBelow","CardWithShadowAbove","AssistInspectorWrapper","DocumentInspectorHeader","closeButtonLabel","validToken","RetryIcon","AssistInspector","boundary","documentPane","docValue","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","_ref9","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref10","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","member","kind","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isArraySchemaType","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","legacyAssistDocumentIdPrefix","legacyAssistDocumentTypeName","legacyContextDocumentTypeName","legacyAssistStatusDocumentTypeName","NO_ASSIST_DOCS","NO_CONTEXT_DOCS","NO_IDS","AlphaMigration","alphaAssistDocs","setAlphaAssistDocs","contextDocs","setContextDocs","staleStatusDocIds","setStaleStatusDocs","progress","setProgress","canUpdate","result","assistDocs","convert","convertContextDocs","subtaskProgress","deleteDocs","convertDocs","taskSize","startProgress","subProgress","closable","maxWidth","floor","ids","updateProgress","chunkSize","progressCount","chunk","trans","docs","rest","_alphaId","oldDoc","oldField","inst","mapBlock","isFieldRef","isContext","isUserInput","isSpan","migratedContexts","newBlock","reference","c","textBlock","child","MAX_DEPTH","getDocumentMembersFlat","isDocumentSchemaType","extractPaths","reduce","acc","thisFieldWithPath","innerFields","item","arrayValue","arrayPaths","arrayItemSchema","itemPath","defaultLanguageOutputs","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","language","translateToId","outputPath","getTranslationMap","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","inputLanguageId","inputPath","outputs","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","_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","array","_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","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","setDocument","setDocumentSchema","languages","setLanguages","fromLanguage","setFromLanguage","toLanguages","setToLanguages","translationMap","setTranslationMap","languageClient","selectFromLanguage","l","fromId","toIds","docMembers","transMap","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","_ref11","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","Radio","checked","Checkbox","tl","tm","o","AssistLayout","setConnectors","migrate","alphaMigration","ThemeProvider","WrapPreCard","SafeValueInput","ErrorWrapper","PteValueFixer","unsetValue","catcher","ErrorBoundary","onCatch","AssistFormBlock","localOnChange","patchEvent","prefixAll","AssistItem","pre","right","findFieldMember","fieldName","findFieldsetMember","fieldsetName","fieldSet","InstructionInput","NameField","ShareField","ObjectMember","_ref12","ObjectInputMember","NONE","fieldsetMember","titleId","iconMember","titleMember","titlePlaceholder","moddedTitleMember","htmlFor","marginLeft","visibilityMember","HiddenFieldTitle","level","InstructionVisibility","handleChange","newValue","Switch","elementProps","IconInput","items","icons","_ref13","IconItem","iconKey","selectedIcon","getIcon","MenuButton","menu","Menu","maxHeight","_ref14","MenuItem","iconName","_ref15","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","annotations","preview","prepare","_ref16","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","markDefs","InstructionsArrayField","InstructionOutputField","isArrayOfObjectsSchemaType","EnabledOutputField","_ref17","onExpand","onCollapse","collapsible","collapsed","InstructionOutputInput","ObjectOutputInput","ArrayOutputInput","useEmptySelectAllValue","allowedValues","validValues","relativePath","valueLength","validLength","_ref18","onSelectChange","patchValue","Selectable","_ref19","ofItems","_ref20","cursor","fieldReference","ThListIcon","rule","custom","docId","targetDocType","refs","_ref21","CodeIcon","modal","ComposeIcon","required","promptContext","Fix","fieldsets","_ref22","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","captionPath","node","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_f","_g","isDocumentLevel","fieldTransEnabled","documentTypes","docTransTypes","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","TranslateIcon","fieldTranslate","translateFieldsAction","expanded","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","translateAction","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","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_ref23","createAssistDocumentPresence","AssistDocumentPresenceWrapper","AssistDocumentPresence","anyPresence","anyRun","assist","definePlugin","configWithDefaults","i18n","bundles","inspectors","prev","docSchema","unstable_fieldActions","_ref24","unstable_languageFilter","_ref25","studio","layout","Layout","form","inlineBlock","plugins"],"mappings":"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","x_google_ignoreList":[33,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,125]}
|
|
1
|
+
{"version":3,"file":"index.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/assistInspector/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/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","../src/legacy-types.ts","../src/assistLayout/AlphaMigration.tsx","../src/translate/paths.ts","../../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/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/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 interface SerializedSchemaMember {\n _type?: typeof assistSerializedFieldTypeName\n type: string\n name: string\n title?: string\n values?: string[]\n of?: SerializedSchemaMember[]\n to?: {type: string}[]\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n title?: string\n name?: string\n fields?: SerializedSchemaMember[]\n of?: {type: string}[]\n to?: {type: string}[]\n options?: {\n imagePromptField?: string\n }\n}\n\nexport interface AssistDocument extends SanityDocument {\n fields?: AssistField[]\n instructions?: StudioInstruction[]\n}\n\nexport interface StudioAssistDocument {\n _id: string\n _type: typeof assistDocumentTypeName\n fields?: StudioAssistField[]\n\n // added\n tasks?: InstructionTask[]\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 = PortableTextBlock<never, InlinePromptBlock, 'normal', never>\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 getCaptionFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const captionField = (schemaType.options as ImageOptions)?.captionField\n if (captionField) {\n return captionField\n }\n return getCaptionFieldOption(schemaType.type)\n}\n","import {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)?.aiWritingAssistance?.exclude\n}\n\nexport function isAssistSupported(type: SchemaType, allowReadonlyHidden = false) {\n if (!isSchemaAssistEnabled(type)) {\n return false\n }\n\n if (isDisabled(type, allowReadonlyHidden)) {\n return false\n }\n\n if (type.jsonType === 'array') {\n const unsupportedArray = type.of.every((t) => isDisabled(t, allowReadonlyHidden))\n return !unsupportedArray\n }\n\n if (type.jsonType === 'object') {\n const unsupportedObject = type.fields.every((field) =>\n isDisabled(field.type, allowReadonlyHidden)\n )\n return !unsupportedObject\n }\n return true\n}\n\nfunction isDisabled(type: SchemaType, allowReadonlyHidden: boolean) {\n const readonlyHidden = !!type.readOnly || !!type.hidden\n return (\n !isSchemaAssistEnabled(type) ||\n isUnsupportedType(type) ||\n (!allowReadonlyHidden && readonlyHidden)\n )\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') && !type?.options?.aiWritingAssistance?.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 ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaMember,\n SerializedSchemaType,\n assistSchemaIdPrefix,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\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 .filter((t) => !t.hidden && !t.readOnly)\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 = removeUndef({\n imagePromptField: (type.options as ImageOptions)?.imagePromptField,\n embeddingsIndex: (type.options as ReferenceOptions)?.aiWritingAssistance?.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 })\n}\n\nfunction serializeFields(\n schema: Schema,\n schemaType: ObjectSchemaType,\n options: Options | undefined\n) {\n return schemaType.fields\n .filter((f) => !['sanity.imageHotspot', 'sanity.imageCrop'].includes(f.type?.name ?? ''))\n .filter((f) => isAssistSupported(f.type))\n .filter((f) => !f.type.hidden && !f.type.readOnly)\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 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","export const aiInspectorId = 'ai-assistance'\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'\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=\"root\"\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 {usePaneRouter, type PaneRouterContextValue} 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, true)) {\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, true)) {\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 if (path.length) {\n return Array.isArray(path) ? pathToString(path) : path\n }\n return documentRootKey\n }, [path])\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'\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}\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}\n\nconst basePath = '/assist/tasks/instruction'\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 ({documentId, languagePath, translatePath, fieldLanguageMap}: 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 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 caption 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 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} 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 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'\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 fieldExists = !!fields?.some((f) => f._key === typePath)\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 fieldExists={fieldExists}\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 fieldExists,\n onChange,\n}: {\n pathKey?: string\n activePath?: Path\n fieldExists: boolean\n onChange: ObjectInputProps['onChange']\n}) {\n // need this to not fire onChange twice in React strict mode\n const initialized = useRef(false)\n useEffect(() => {\n if (initialized.current || fieldExists || activePath || !pathKey) {\n return\n }\n onChange([\n setIfMissing([], ['fields']),\n insert(\n [\n typed<AssistField>({\n _key: pathKey,\n _type: assistFieldTypeName,\n path: pathKey,\n }),\n ],\n 'after',\n ['fields', -1]\n ),\n ])\n initialized.current = true\n }, [activePath, onChange, pathKey, fieldExists])\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","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'\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 →\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 } = documentPane\n const {published, draft} = useEditState(documentId, documentType, 'low')\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 }),\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'\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 (!isType(props.schemaType, 'document') && props.inputId !== 'root') {\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","import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const legacyAssistDocumentIdPrefix = 'sanity.ai.'\n\nexport const legacyAssistDocumentTypeName = 'sanity.ai.docType' as const\nconst aiFieldTypeName = 'sanity.ai.docType.field' as const\nconst instructionTypeName = 'sanity.ai.field.instruction' as const\n\nconst userInputTypeName = 'sanity.ai.prompt.userInput' as const\nconst promptContextTypeName = 'sanity.ai.prompt.context' as const\nconst fieldReferenceTypeName = 'sanity.ai.prompt.fieldRef' as const\n\nexport const legacyContextDocumentTypeName = 'ai.instruction.context' as const\n\nexport const legacyAssistStatusDocumentTypeName = 'sanity.ai.instructionStatus' as const\n\nexport interface FieldPrompts {\n _key: string\n _type: typeof aiFieldTypeName\n path?: string\n instructions?: LegacyInstruction[]\n}\n\nexport interface LegacyAssistDocument extends SanityDocument {\n fields: FieldPrompts[]\n}\n\nexport interface LegacyFieldRef extends PortableTextMarkDefinition {\n _type: typeof fieldReferenceTypeName\n path?: string\n}\n\nexport interface LegacyContextBlock {\n _type: typeof promptContextTypeName\n reference?: {\n _type: 'reference'\n _ref?: string\n }\n}\n\nexport interface LegacyUserInputBlock {\n _type: typeof userInputTypeName\n _key: string\n message?: string\n description?: string\n}\n\nexport type LegacyPromptTextBlock = PortableTextBlock<\n never,\n PortableTextSpan | LegacyFieldRef | LegacyUserInputBlock | LegacyContextBlock,\n 'normal',\n never\n>\n\nexport type LegacyPromptBlock =\n | LegacyPromptTextBlock\n | LegacyFieldRef\n | LegacyContextBlock\n | LegacyUserInputBlock\n\nexport interface LegacyInstruction {\n _key: string\n _type: typeof instructionTypeName\n prompt?: LegacyPromptBlock[]\n\n icon?: string\n userId?: string\n title?: string\n placeholder?: string\n}\n","import {SanityClient, SanityDocument, useClient} from 'sanity'\nimport {useCallback, useEffect, useState} from 'react'\nimport {Box, Button, Card, Dialog, Spinner, Stack, Text, useToast} from '@sanity/ui'\nimport {CheckmarkIcon} from '@sanity/icons'\nimport {\n LegacyAssistDocument,\n legacyAssistDocumentIdPrefix,\n legacyAssistDocumentTypeName,\n legacyAssistStatusDocumentTypeName,\n LegacyContextBlock,\n legacyContextDocumentTypeName,\n LegacyFieldRef,\n LegacyPromptBlock,\n LegacyPromptTextBlock,\n LegacyUserInputBlock,\n} from '../legacy-types'\nimport {assistDocumentId} from '../helpers/ids'\nimport {\n assistDocumentIdPrefix,\n assistDocumentTypeName,\n AssistField,\n assistFieldTypeName,\n contextDocumentTypeName,\n fieldReferenceTypeName,\n InlinePromptBlock,\n instructionContextTypeName,\n instructionTypeName,\n PromptBlock,\n userInputTypeName,\n} from '../types'\nimport {PortableTextSpan} from '@portabletext/types'\nimport {pluginTitle} from '../constants'\n\nconst NO_ASSIST_DOCS: LegacyAssistDocument[] = []\nconst NO_CONTEXT_DOCS: SanityDocument[] = []\nconst NO_IDS: string[] = []\n\ninterface MigratedContextDoc {\n _id: string\n _alphaId: string\n}\n\ntype Task = (subtaskProgress: (percentage: number) => void) => Promise<void>\n\nexport function AlphaMigration() {\n const [alphaAssistDocs, setAlphaAssistDocs] = useState(NO_ASSIST_DOCS)\n const [contextDocs, setContextDocs] = useState(NO_CONTEXT_DOCS)\n const [staleStatusDocIds, setStaleStatusDocs] = useState(NO_IDS)\n const [error, setError] = useState<Error | undefined>(undefined)\n const [progress, setProgress] = useState<number | undefined>(undefined)\n const toast = useToast()\n const client = useClient({apiVersion: '2023-06-01'})\n\n useEffect(() => {\n let canUpdate = true\n client\n .fetch<{\n assistDocs?: LegacyAssistDocument[]\n staleStatusDocIds?: string[]\n contextDocs?: SanityDocument[]\n }>(\n `\n {\n \"assistDocs\": *[_type==\"${legacyAssistDocumentTypeName}\"],\n \"staleStatusDocIds\": *[_type==\"${legacyAssistStatusDocumentTypeName}\"]._id,\n \"contextDocs\": *[_type==\"${legacyContextDocumentTypeName}\"],\n }\n `\n )\n .then((result) => {\n if (!canUpdate || !result) {\n return\n }\n setAlphaAssistDocs(result?.assistDocs ?? NO_ASSIST_DOCS)\n setStaleStatusDocs(result?.staleStatusDocIds ?? NO_IDS)\n setContextDocs(result?.contextDocs ?? NO_CONTEXT_DOCS)\n })\n return () => {\n canUpdate = false\n }\n }, [client, setAlphaAssistDocs, setStaleStatusDocs, setContextDocs])\n\n const convert = useCallback(async () => {\n try {\n setProgress(0.0001)\n\n const tasks: Task[] = [\n () => convertContextDocs(client, contextDocs),\n (subtaskProgress) => deleteDocs(client, staleStatusDocIds, subtaskProgress),\n (subtaskProgress) => convertDocs(client, alphaAssistDocs, subtaskProgress),\n (subtaskProgress) =>\n deleteDocs(\n client,\n contextDocs.map((d) => d._id),\n subtaskProgress\n ),\n ]\n\n const taskSize = 1 / tasks.length\n for (let i = 0; i < tasks.length; i++) {\n const startProgress = i / tasks.length\n await tasks[i]((subProgress) => setProgress(startProgress + subProgress * taskSize))\n setProgress((i + 1) / tasks.length)\n }\n\n setProgress(1)\n setAlphaAssistDocs(NO_ASSIST_DOCS)\n setContextDocs(NO_CONTEXT_DOCS)\n setStaleStatusDocs(NO_IDS)\n toast.push({\n title: `Converted instructions to new format.`,\n status: 'success',\n closable: true,\n })\n } catch (e: any) {\n console.error(e)\n toast.push({\n title: `An error occurred`,\n status: 'error',\n closable: true,\n })\n setError(e)\n setProgress(undefined)\n }\n }, [contextDocs, client, alphaAssistDocs, staleStatusDocIds, setProgress, toast])\n\n if (\n (alphaAssistDocs.length || staleStatusDocIds.length || contextDocs.length) &&\n (!progress || progress < 1)\n ) {\n return (\n <Dialog id=\"outdated-assist-docs\" header={pluginTitle}>\n <Card padding={3}>\n <Stack space={4} style={{maxWidth: 500}}>\n <Text size={1}>\n It seems like this workspace contains documents from an{' '}\n <strong>older version of {pluginTitle}</strong>.\n </Text>\n <Text size={1}>Cleanup is required.</Text>\n {error ? (\n <Card padding={2} tone=\"critical\" border>\n <Text size={1}>An error occurred. See console for details.</Text>{' '}\n </Card>\n ) : null}\n <Button\n icon={\n progress ? (\n <Box style={{marginTop: 5}}>\n <Spinner />\n </Box>\n ) : (\n CheckmarkIcon\n )\n }\n disabled={!!progress}\n text={progress ? `${Math.floor(progress * 100)}%` : 'Ok, convert to new format!'}\n tone=\"primary\"\n onClick={convert}\n />\n </Stack>\n </Card>\n </Dialog>\n )\n }\n\n return null\n}\n\nasync function deleteDocs(\n client: SanityClient,\n ids: string[],\n updateProgress: (percentage: number) => void\n) {\n const chunkSize = 50\n for (let i = 0; i < ids.length; i += chunkSize) {\n const progressCount = Math.min(ids.length, i + chunkSize)\n const chunk = ids.slice(i, progressCount)\n const trans = client.transaction()\n chunk.forEach((id) => trans.delete(id))\n await trans.commit()\n updateProgress(progressCount / ids.length)\n }\n}\n\nasync function convertContextDocs(client: SanityClient, docs: SanityDocument[]) {\n const trans = client.transaction()\n\n for (const doc of docs) {\n const {_id, _type, ...rest} = doc\n trans.createOrReplace({\n ...rest,\n _id: `port.${_id}`,\n _alphaId: _id,\n _type: contextDocumentTypeName,\n })\n }\n\n await trans.commit()\n}\n\nasync function convertDocs(\n client: SanityClient,\n docs: LegacyAssistDocument[],\n updateProgress: (percentage: number) => void\n) {\n const chunkSize = 10\n for (let i = 0; i < docs.length; i += chunkSize) {\n const progressCount = Math.min(docs.length, i + chunkSize)\n const chunk = docs.slice(i, progressCount)\n\n const trans = client.transaction()\n const contextDocs: MigratedContextDoc[] = await client.fetch(\n `*[_type==\"${contextDocumentTypeName}\" && _alphaId != null]{_id, _alphaId}`\n )\n\n chunk.forEach((oldDoc) => {\n const documentType = oldDoc._id.replace(\n new RegExp(`^(${legacyAssistDocumentIdPrefix}|${assistDocumentIdPrefix})`),\n ''\n )\n\n const id = assistDocumentId(documentType)\n\n const fields: AssistField[] = (oldDoc.fields ?? [])\n .filter((field) => field.instructions?.length)\n .map((oldField) => {\n const instructions = (oldField.instructions ?? []).map((inst) => {\n // eslint-disable-next-line max-nested-callbacks\n const prompt = (inst.prompt ?? []).map((block) => {\n return mapBlock(block, contextDocs) as PromptBlock\n })\n return {\n ...inst,\n _type: instructionTypeName,\n prompt,\n }\n })\n return {\n ...oldField,\n _type: assistFieldTypeName,\n instructions,\n }\n })\n\n if (fields.length) {\n trans.createOrReplace({\n _id: id,\n _type: assistDocumentTypeName,\n fields,\n })\n }\n trans.delete(oldDoc._id)\n })\n await trans.commit()\n updateProgress(progressCount / docs.length)\n }\n}\n\ntype Blocks = LegacyPromptBlock | LegacyPromptTextBlock | PortableTextSpan\n\nfunction isFieldRef(block: Blocks): block is LegacyFieldRef {\n return block._type === 'sanity.ai.prompt.fieldRef'\n}\n\nfunction isContext(block: Blocks): block is LegacyContextBlock {\n return block._type === 'sanity.ai.prompt.context'\n}\n\nfunction isUserInput(block: Blocks): block is LegacyUserInputBlock {\n return block._type === 'sanity.ai.prompt.userInput'\n}\n\nfunction isSpan(block: Blocks): block is PortableTextSpan {\n return block._type === 'span'\n}\n\nfunction mapBlock(\n block: Blocks,\n migratedContexts: MigratedContextDoc[]\n): PromptBlock | InlinePromptBlock {\n if (isFieldRef(block)) {\n return {...block, _type: fieldReferenceTypeName}\n }\n if (isUserInput(block)) {\n return {...block, _type: userInputTypeName}\n }\n if (isContext(block)) {\n const newBlock = {\n ...block,\n _type: instructionContextTypeName,\n reference: {\n _type: 'reference',\n _ref:\n migratedContexts.find((c) => c._alphaId === block.reference?._ref)?._id ??\n block.reference?._ref,\n },\n } as const\n return newBlock\n }\n if (isSpan(block)) {\n return block\n }\n const textBlock = block\n return {\n ...textBlock,\n children: (textBlock.children ?? []).map(\n (child) => mapBlock(child, migratedContexts) as InlinePromptBlock\n ),\n }\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 thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\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 arrayItemSchema = fieldSchema.of.find((t) => t.name === item._type)\n if (item._key && arrayItemSchema) {\n const itemPath = [...fieldPath, {_key: item._key}]\n const innerFields = extractPaths(\n doc,\n arrayItemSchema as ObjectSchemaType,\n itemPath,\n maxDepth\n )\n arrayPaths = [\n ...arrayPaths,\n {path: itemPath, name: item._key, schemaType: arrayItemSchema},\n ...innerFields,\n ]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\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","/**\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","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, Path, 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'\n\ninterface FieldTranslationParams {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n translatePath: Path\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\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 to = languages.filter((l) => l.id !== from?.id)\n setToLanguages(to)\n const fromId = from?.id\n const toIds = to?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && toIds?.length) {\n const transMap = getFieldLanguageMap(\n documentSchema,\n docMembers,\n fromId,\n toIds,\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) {\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 },\n []\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 || !toLanguages?.length || !fieldLanguageMaps?.length || !documentId\n\n const onRunTranslation = useCallback(() => {\n const translatePath = fieldTranslationParams?.translatePath\n if (fieldLanguageMaps && documentId && translatePath) {\n runTranslate({\n documentId,\n translatePath: fieldTranslationParams?.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 })\n }\n close()\n }, [\n fieldLanguageMaps,\n documentId,\n runTranslate,\n close,\n toLanguages,\n fieldTranslationParams?.translatePath,\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>Nothing to translate.</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((l) => (\n <Flex key={l.id} gap={3} align=\"center\">\n <Radio\n name=\"fromLang\"\n value={l.id}\n checked={l.id === fromLanguage?.id}\n onClick={() => selectFromLanguage(l, languages, fieldTranslationParams)}\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\n ))}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages\n ?.filter((l) => l.id !== fromLanguage?.id)\n .map((l) => (\n <Flex key={l.id} gap={3} align=\"center\">\n <Checkbox\n name=\"toLang\"\n value={l.id}\n checked={!!toLanguages?.find((tl) => tl.id === l.id)}\n onClick={() => toggleToLanguage(l, toLanguages, languages)}\n disabled={\n !fieldLanguageMaps?.find((tm) => tm.outputs.find((o) => o.id === l.id))\n }\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\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","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 {AlphaMigration} from './AlphaMigration'\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 const migrate = props.config.alphaMigration ?? true\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n {migrate ? <AlphaMigration /> : null}\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 return window.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: 'Document 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 {getCaptionFieldOption} from '../helpers/typeUtils'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {useApiClient, useGenerateCaption} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {publicId} from '../helpers/ids'\n\nexport interface ImageContextValue {\n captionPath: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue | undefined>(undefined)\n\nexport function ImageContextProvider(props: InputProps) {\n const {schemaType, path, value} = 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} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption} = useGenerateCaption(apiClient)\n\n const {isSyncing} = useSyncState(publicId(documentId), documentSchemaType.name)\n\n useEffect(() => {\n const captionField = getCaptionFieldOption(schemaType)\n if (assetRef && documentId && captionField && assetRef !== assetRefState && !isSyncing) {\n setAssetRefState(assetRef)\n generateCaption({path: pathToString([...path, captionField]), documentId: documentId})\n }\n }, [schemaType, path, assetRef, assetRefState, documentId, generateCaption, isSyncing])\n\n const context: ImageContextValue | undefined = useMemo(() => {\n const captionField = getCaptionFieldOption(schemaType)\n return captionField ? {captionPath: pathToString([...path, captionField]), assetRef} : undefined\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 {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'\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\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateCaption, loading} = useGenerateCaption(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.captionPath) {\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 caption',\n onAction: () => {\n if (loading) {\n return\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])\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 {extractWithPath} from '@sanity/mutator'\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} = 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\n const docTransTypes = config.translate?.document?.documentTypes\n const options = fieldSchemaType?.options as AssistOptions | undefined\n const addFieldAction = isDocumentLevel || options?.aiWritingAssistance?.translateAction\n\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} = useDocumentPane()\n const docRef = useRef(documentValue)\n\n const translationApi = useTranslate(apiClient)\n const translate = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: translationApi.translate,\n })\n docRef.current = documentValue\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 {value: languageId} = extractWithPath(languagePath, documentValue)[0] ?? {}\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 })\n },\n renderAsButton: true,\n disabled:\n translationApi.loading || !languageId\n ? {reason: 'Language is not set for this document'}\n : undefined,\n })\n }, [\n languagePath,\n translate,\n documentId,\n translationApi.loading,\n documentTranslationEnabled,\n path,\n ])\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 openFieldTranslation({\n document: docRef.current,\n documentSchema: documentSchemaType,\n translatePath: path,\n })\n },\n renderAsButton: true,\n disabled: fieldTranslate.translationLoading,\n })\n : undefined,\n [\n openFieldTranslation,\n documentSchemaType,\n documentId,\n fieldTranslate.translationLoading,\n fieldTransEnabled,\n path,\n ]\n )\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\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])\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} from 'react'\nimport {pluginTitle, 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'\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} = useDocumentPane()\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\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 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 })\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\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 ].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 ])\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,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\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) {\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 ? false : {reason: `${pluginTitle} is not supported for this field`},\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'\n\nexport function AssistDocumentInputWrapper(props: InputProps) {\n if (!isType(props.schemaType, 'document') && props.id !== 'root') {\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} from './types'\n\nexport interface AssistPluginConfig {\n translate?: TranslationConfig\n\n /**\n * Set this to false to disable model migration from the alpha version of this plugin\n */\n alphaMigration?: boolean\n\n /**\n * @internal\n */\n __customApiClient?: (defaultClient: SanityClient) => SanityClient\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","getCaptionFieldOption","_a","captionField","isSchemaAssistEnabled","_b","aiWritingAssistance","exclude","isAssistSupported","allowReadonlyHidden","isDisabled","jsonType","unsupportedArray","every","unsupportedObject","fields","field","readonlyHidden","readOnly","hidden","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","schemaOptions","imagePromptField","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","f","serializeMember","typeNameExists","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","aiInspectorId","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","id","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","maxDepth","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","path","parent","depth","flatMap","fieldRef","patchableKey","pathToString","join","syntheticFields","getSyntheticFields","itemType","segment","_key","synthetic","getTypePath","doc","pathString","stringToPath","currentPath","valid","syntheticPath","push","isKeySegment","match","extractWithPath","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","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","default","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","some","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","useApiClient","customApiClient","useTranslate","apiClient","user","toast","useToast","translate","_ref4","languagePath","translatePath","fieldLanguageMap","request","method","url","config","dataset","projectId","body","status","description","setTimeout","useGenerateCaption","generateCaption","_ref5","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","_ref6","blockKey","userInput","runDisabled","_ref7","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","documentSchema","fieldSchema","useSelectedSchema","fieldExists","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","fieldPath","currentSchema","_ref8","initialized","setIfMissing","insert","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","slice","pt","trim","CardWithShadowBelow","CardWithShadowAbove","AssistInspectorWrapper","DocumentInspectorHeader","closeButtonLabel","validToken","RetryIcon","AssistInspector","boundary","documentPane","docValue","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","_ref9","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref10","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","member","kind","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isArraySchemaType","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","legacyAssistDocumentIdPrefix","legacyAssistDocumentTypeName","legacyContextDocumentTypeName","legacyAssistStatusDocumentTypeName","NO_ASSIST_DOCS","NO_CONTEXT_DOCS","NO_IDS","AlphaMigration","alphaAssistDocs","setAlphaAssistDocs","contextDocs","setContextDocs","staleStatusDocIds","setStaleStatusDocs","progress","setProgress","canUpdate","result","assistDocs","convert","convertContextDocs","subtaskProgress","deleteDocs","convertDocs","taskSize","startProgress","subProgress","closable","maxWidth","floor","ids","updateProgress","chunkSize","progressCount","chunk","trans","docs","rest","_alphaId","oldDoc","oldField","inst","mapBlock","isFieldRef","isContext","isUserInput","isSpan","migratedContexts","newBlock","reference","c","textBlock","child","MAX_DEPTH","getDocumentMembersFlat","isDocumentSchemaType","extractPaths","reduce","acc","thisFieldWithPath","innerFields","item","arrayValue","arrayPaths","arrayItemSchema","itemPath","defaultLanguageOutputs","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","language","translateToId","outputPath","getFieldLanguageMap","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","inputLanguageId","inputPath","outputs","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","_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","array","_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","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","fieldTranslationParams","setFieldTranslationParams","languages","setLanguages","fromLanguage","setFromLanguage","toLanguages","setToLanguages","fieldLanguageMaps","setFieldLanguageMaps","languageClient","selectFromLanguage","l","fromId","toIds","docMembers","transMap","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","Radio","checked","Checkbox","tl","tm","o","AssistLayout","setConnectors","migrate","alphaMigration","ThemeProvider","WrapPreCard","SafeValueInput","ErrorWrapper","PteValueFixer","unsetValue","catcher","ErrorBoundary","onCatch","AssistFormBlock","localOnChange","patchEvent","prefixAll","AssistItem","pre","right","findFieldMember","fieldName","findFieldsetMember","fieldsetName","fieldSet","InstructionInput","NameField","ShareField","ObjectMember","_ref11","ObjectInputMember","NONE","fieldsetMember","titleId","iconMember","titleMember","titlePlaceholder","moddedTitleMember","htmlFor","marginLeft","visibilityMember","HiddenFieldTitle","level","InstructionVisibility","handleChange","newValue","Switch","elementProps","IconInput","items","icons","_ref12","IconItem","iconKey","selectedIcon","getIcon","MenuButton","menu","Menu","maxHeight","_ref13","MenuItem","iconName","_ref14","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","annotations","preview","prepare","_ref15","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","markDefs","InstructionsArrayField","InstructionOutputField","isArrayOfObjectsSchemaType","EnabledOutputField","_ref16","onExpand","onCollapse","collapsible","collapsed","InstructionOutputInput","ObjectOutputInput","ArrayOutputInput","useEmptySelectAllValue","allowedValues","validValues","relativePath","valueLength","validLength","_ref17","onSelectChange","patchValue","Selectable","_ref18","ofItems","_ref19","cursor","fieldReference","ThListIcon","rule","custom","docId","targetDocType","refs","_ref20","CodeIcon","modal","ComposeIcon","required","promptContext","Fix","fieldsets","_ref21","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","captionPath","node","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_f","_g","_h","fieldSchemaType","isDocumentLevel","docTransTypes","documentTypes","addFieldAction","translateAction","fieldTransEnabled","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","languageId","TranslateIcon","fieldTranslate","translateFieldsAction","expanded","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","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","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_ref22","createAssistDocumentPresence","AssistDocumentPresenceWrapper","AssistDocumentPresence","anyPresence","anyRun","assist","definePlugin","configWithDefaults","i18n","bundles","inspectors","prev","docSchema","unstable_fieldActions","_ref23","unstable_languageFilter","_ref24","studio","layout","Layout","form","inlineBlock","plugins"],"mappings":"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","x_google_ignoreList":[33,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,125]}
|