@sanity/assist 1.2.15-lang.7 → 1.2.15-lang.8
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 +15 -3
- package/dist/index.esm.js +166 -66
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +166 -66
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/assistInspector/AssistInspector.tsx +6 -0
- package/src/assistInspector/helpers.ts +3 -3
- package/src/coverage/.tmp/coverage-0.json +1 -0
- package/src/coverage/base.css +224 -0
- package/src/coverage/block-navigation.js +87 -0
- package/src/coverage/clover.xml +8613 -0
- package/src/coverage/coverage-final.json +107 -0
- package/src/coverage/favicon.png +0 -0
- package/src/coverage/index.html +461 -0
- package/src/coverage/lcov-report/base.css +224 -0
- package/src/coverage/lcov-report/block-navigation.js +87 -0
- package/src/coverage/lcov-report/favicon.png +0 -0
- package/src/coverage/lcov-report/index.html +461 -0
- package/src/coverage/lcov-report/prettify.css +1 -0
- package/src/coverage/lcov-report/prettify.js +2 -0
- package/src/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/src/coverage/lcov-report/sorter.js +196 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectFromRegion.tsx.html +157 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectToRegion.tsx.html +151 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectorRegion.tsx.html +154 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectorsProvider.tsx.html +142 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectorsStore.ts.html +451 -0
- package/src/coverage/lcov-report/src/_lib/connector/ConnectorsStoreContext.ts.html +97 -0
- package/src/coverage/lcov-report/src/_lib/connector/helpers.ts.html +100 -0
- package/src/coverage/lcov-report/src/_lib/connector/index.html +281 -0
- package/src/coverage/lcov-report/src/_lib/connector/index.ts.html +112 -0
- package/src/coverage/lcov-report/src/_lib/connector/mapConnectorToLine.ts.html +334 -0
- package/src/coverage/lcov-report/src/_lib/connector/types.ts.html +253 -0
- package/src/coverage/lcov-report/src/_lib/connector/useConnectorsStore.ts.html +124 -0
- package/src/coverage/lcov-report/src/_lib/connector/useRegionRects.ts.html +508 -0
- package/src/coverage/lcov-report/src/_lib/fixedListenQuery.ts.html +388 -0
- package/src/coverage/lcov-report/src/_lib/form/DocumentForm.tsx.html +676 -0
- package/src/coverage/lcov-report/src/_lib/form/helpers.ts.html +178 -0
- package/src/coverage/lcov-report/src/_lib/form/index.html +146 -0
- package/src/coverage/lcov-report/src/_lib/form/index.ts.html +88 -0
- package/src/coverage/lcov-report/src/_lib/index.html +161 -0
- package/src/coverage/lcov-report/src/_lib/randomKey.ts.html +172 -0
- package/src/coverage/lcov-report/src/_lib/useListeningQuery.ts.html +268 -0
- package/src/coverage/lcov-report/src/_lib/usePrevious.ts.html +112 -0
- package/src/coverage/lcov-report/src/assistConnectors/AssistConnectorsOverlay.tsx.html +481 -0
- package/src/coverage/lcov-report/src/assistConnectors/ConnectorPath.tsx.html +271 -0
- package/src/coverage/lcov-report/src/assistConnectors/draw/arrowPath.ts.html +112 -0
- package/src/coverage/lcov-report/src/assistConnectors/draw/connectorPath.ts.html +511 -0
- package/src/coverage/lcov-report/src/assistConnectors/draw/index.html +131 -0
- package/src/coverage/lcov-report/src/assistConnectors/index.html +146 -0
- package/src/coverage/lcov-report/src/assistConnectors/index.ts.html +88 -0
- package/src/coverage/lcov-report/src/assistDocument/AssistDocumentContext.tsx.html +178 -0
- package/src/coverage/lcov-report/src/assistDocument/AssistDocumentContextProvider.tsx.html +136 -0
- package/src/coverage/lcov-report/src/assistDocument/AssistDocumentInput.tsx.html +280 -0
- package/src/coverage/lcov-report/src/assistDocument/RequestRunInstructionProvider.tsx.html +283 -0
- package/src/coverage/lcov-report/src/assistDocument/components/AssistDocumentForm.tsx.html +775 -0
- package/src/coverage/lcov-report/src/assistDocument/components/FieldRefPreview.tsx.html +166 -0
- package/src/coverage/lcov-report/src/assistDocument/components/InstructionsArrayField.tsx.html +109 -0
- package/src/coverage/lcov-report/src/assistDocument/components/InstructionsArrayInput.tsx.html +163 -0
- package/src/coverage/lcov-report/src/assistDocument/components/SelectedFieldContext.tsx.html +115 -0
- package/src/coverage/lcov-report/src/assistDocument/components/generic/HiddenFieldTitle.tsx.html +100 -0
- package/src/coverage/lcov-report/src/assistDocument/components/generic/index.html +116 -0
- package/src/coverage/lcov-report/src/assistDocument/components/helpers.ts.html +148 -0
- package/src/coverage/lcov-report/src/assistDocument/components/index.html +191 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/BackToInstructionsLink.tsx.html +178 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/FieldRefInput.tsx.html +244 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/InstructionInput.tsx.html +349 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/InstructionOutputField.tsx.html +220 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/InstructionOutputInput.tsx.html +700 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/PromptInput.tsx.html +241 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/appearance/IconInput.tsx.html +223 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx.html +196 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/appearance/index.html +131 -0
- package/src/coverage/lcov-report/src/assistDocument/components/instruction/index.html +191 -0
- package/src/coverage/lcov-report/src/assistDocument/hooks/index.html +161 -0
- package/src/coverage/lcov-report/src/assistDocument/hooks/useAssistDocumentContextValue.tsx.html +289 -0
- package/src/coverage/lcov-report/src/assistDocument/hooks/useDocumentState.ts.html +103 -0
- package/src/coverage/lcov-report/src/assistDocument/hooks/useInstructionToaster.tsx.html +307 -0
- package/src/coverage/lcov-report/src/assistDocument/hooks/useStudioAssistDocument.ts.html +379 -0
- package/src/coverage/lcov-report/src/assistDocument/index.html +176 -0
- package/src/coverage/lcov-report/src/assistDocument/index.ts.html +88 -0
- package/src/coverage/lcov-report/src/assistFormComponents/AssistField.tsx.html +301 -0
- package/src/coverage/lcov-report/src/assistFormComponents/AssistFormBlock.tsx.html +175 -0
- package/src/coverage/lcov-report/src/assistFormComponents/AssistInlineFormBlock.tsx.html +124 -0
- package/src/coverage/lcov-report/src/assistFormComponents/AssistItem.tsx.html +145 -0
- package/src/coverage/lcov-report/src/assistFormComponents/index.html +161 -0
- package/src/coverage/lcov-report/src/assistFormComponents/validation/index.html +131 -0
- package/src/coverage/lcov-report/src/assistFormComponents/validation/listItem.tsx.html +274 -0
- package/src/coverage/lcov-report/src/assistFormComponents/validation/validationList.tsx.html +352 -0
- package/src/coverage/lcov-report/src/assistInspector/AssistInspector.tsx.html +1318 -0
- package/src/coverage/lcov-report/src/assistInspector/FieldAutocomplete.tsx.html +505 -0
- package/src/coverage/lcov-report/src/assistInspector/InstructionTaskHistoryButton.tsx.html +865 -0
- package/src/coverage/lcov-report/src/assistInspector/constants.ts.html +88 -0
- package/src/coverage/lcov-report/src/assistInspector/helpers.ts.html +724 -0
- package/src/coverage/lcov-report/src/assistInspector/index.html +191 -0
- package/src/coverage/lcov-report/src/assistInspector/index.ts.html +163 -0
- package/src/coverage/lcov-report/src/assistLayout/AiAssistanceConfigContext.tsx.html +331 -0
- package/src/coverage/lcov-report/src/assistLayout/AssistLayout.tsx.html +199 -0
- package/src/coverage/lcov-report/src/assistLayout/RunInstructionProvider.tsx.html +751 -0
- package/src/coverage/lcov-report/src/assistLayout/index.html +146 -0
- package/src/coverage/lcov-report/src/components/AssistFeatureBadge.tsx.html +112 -0
- package/src/coverage/lcov-report/src/components/FadeInContent.tsx.html +205 -0
- package/src/coverage/lcov-report/src/components/HideReferenceChangedBannerInput.tsx.html +160 -0
- package/src/coverage/lcov-report/src/components/ImageContext.tsx.html +229 -0
- package/src/coverage/lcov-report/src/components/SafeValueInput.tsx.html +313 -0
- package/src/coverage/lcov-report/src/components/TimeAgo.tsx.html +139 -0
- package/src/coverage/lcov-report/src/components/index.html +191 -0
- package/src/coverage/lcov-report/src/constants.ts.html +145 -0
- package/src/coverage/lcov-report/src/fieldActions/PrivateIcon.tsx.html +145 -0
- package/src/coverage/lcov-report/src/fieldActions/assistFieldActions.tsx.html +907 -0
- package/src/coverage/lcov-report/src/fieldActions/generateCaptionActions.tsx.html +259 -0
- package/src/coverage/lcov-report/src/fieldActions/generateImageActions.tsx.html +256 -0
- package/src/coverage/lcov-report/src/fieldActions/index.html +161 -0
- package/src/coverage/lcov-report/src/helpers/assistSupported.ts.html +226 -0
- package/src/coverage/lcov-report/src/helpers/conditionalMembers.ts.html +466 -0
- package/src/coverage/lcov-report/src/helpers/ids.ts.html +142 -0
- package/src/coverage/lcov-report/src/helpers/index.html +191 -0
- package/src/coverage/lcov-report/src/helpers/misc.ts.html +133 -0
- package/src/coverage/lcov-report/src/helpers/typeUtils.ts.html +208 -0
- package/src/coverage/lcov-report/src/helpers/useAssistSupported.ts.html +106 -0
- package/src/coverage/lcov-report/src/index.html +176 -0
- package/src/coverage/lcov-report/src/index.ts.html +112 -0
- package/src/coverage/lcov-report/src/onboarding/FieldActionsOnboarding.tsx.html +286 -0
- package/src/coverage/lcov-report/src/onboarding/FirstAssistedPathProvider.tsx.html +172 -0
- package/src/coverage/lcov-report/src/onboarding/InspectorOnboarding.tsx.html +223 -0
- package/src/coverage/lcov-report/src/onboarding/index.html +161 -0
- package/src/coverage/lcov-report/src/onboarding/onboardingStore.ts.html +184 -0
- package/src/coverage/lcov-report/src/plugin.tsx.html +427 -0
- package/src/coverage/lcov-report/src/presence/AiFieldPresence.tsx.html +163 -0
- package/src/coverage/lcov-report/src/presence/AssistAvatar.tsx.html +373 -0
- package/src/coverage/lcov-report/src/presence/AssistDocumentPresence.tsx.html +259 -0
- package/src/coverage/lcov-report/src/presence/index.html +161 -0
- package/src/coverage/lcov-report/src/presence/useAssistPresence.ts.html +268 -0
- package/src/coverage/lcov-report/src/schemas/assistDocumentSchema.tsx.html +1552 -0
- package/src/coverage/lcov-report/src/schemas/contextDocumentSchema.tsx.html +253 -0
- package/src/coverage/lcov-report/src/schemas/index.html +176 -0
- package/src/coverage/lcov-report/src/schemas/index.ts.html +277 -0
- package/src/coverage/lcov-report/src/schemas/serialize/SchemTypeTool.tsx.html +391 -0
- package/src/coverage/lcov-report/src/schemas/serialize/index.html +146 -0
- package/src/coverage/lcov-report/src/schemas/serialize/schemaUtils.ts.html +196 -0
- package/src/coverage/lcov-report/src/schemas/serialize/serializeSchema.ts.html +754 -0
- package/src/coverage/lcov-report/src/schemas/serializedSchemaTypeSchema.ts.html +262 -0
- package/src/coverage/lcov-report/src/schemas/typeDefExtensions.ts.html +397 -0
- package/src/coverage/lcov-report/src/translate/FieldTranslationProvider.tsx.html +1003 -0
- package/src/coverage/lcov-report/src/translate/getLanguageParams.ts.html +163 -0
- package/src/coverage/lcov-report/src/translate/index.html +191 -0
- package/src/coverage/lcov-report/src/translate/languageStore.ts.html +139 -0
- package/src/coverage/lcov-report/src/translate/paths.ts.html +577 -0
- package/src/coverage/lcov-report/src/translate/translateActions.tsx.html +637 -0
- package/src/coverage/lcov-report/src/translate/types.ts.html +565 -0
- package/src/coverage/lcov-report/src/types.ts.html +649 -0
- package/src/coverage/lcov-report/src/useApiClient.ts.html +1015 -0
- package/src/coverage/lcov.info +9519 -0
- package/src/coverage/prettify.css +1 -0
- package/src/coverage/prettify.js +2 -0
- package/src/coverage/sort-arrow-sprite.png +0 -0
- package/src/coverage/sorter.js +196 -0
- package/src/coverage/src/_lib/connector/ConnectFromRegion.tsx.html +157 -0
- package/src/coverage/src/_lib/connector/ConnectToRegion.tsx.html +151 -0
- package/src/coverage/src/_lib/connector/ConnectorRegion.tsx.html +154 -0
- package/src/coverage/src/_lib/connector/ConnectorsProvider.tsx.html +142 -0
- package/src/coverage/src/_lib/connector/ConnectorsStore.ts.html +451 -0
- package/src/coverage/src/_lib/connector/ConnectorsStoreContext.ts.html +97 -0
- package/src/coverage/src/_lib/connector/helpers.ts.html +100 -0
- package/src/coverage/src/_lib/connector/index.html +281 -0
- package/src/coverage/src/_lib/connector/index.ts.html +112 -0
- package/src/coverage/src/_lib/connector/mapConnectorToLine.ts.html +334 -0
- package/src/coverage/src/_lib/connector/types.ts.html +253 -0
- package/src/coverage/src/_lib/connector/useConnectorsStore.ts.html +124 -0
- package/src/coverage/src/_lib/connector/useRegionRects.ts.html +508 -0
- package/src/coverage/src/_lib/fixedListenQuery.ts.html +388 -0
- package/src/coverage/src/_lib/form/DocumentForm.tsx.html +676 -0
- package/src/coverage/src/_lib/form/helpers.ts.html +178 -0
- package/src/coverage/src/_lib/form/index.html +146 -0
- package/src/coverage/src/_lib/form/index.ts.html +88 -0
- package/src/coverage/src/_lib/index.html +161 -0
- package/src/coverage/src/_lib/randomKey.ts.html +172 -0
- package/src/coverage/src/_lib/useListeningQuery.ts.html +268 -0
- package/src/coverage/src/_lib/usePrevious.ts.html +112 -0
- package/src/coverage/src/assistConnectors/AssistConnectorsOverlay.tsx.html +481 -0
- package/src/coverage/src/assistConnectors/ConnectorPath.tsx.html +271 -0
- package/src/coverage/src/assistConnectors/draw/arrowPath.ts.html +112 -0
- package/src/coverage/src/assistConnectors/draw/connectorPath.ts.html +511 -0
- package/src/coverage/src/assistConnectors/draw/index.html +131 -0
- package/src/coverage/src/assistConnectors/index.html +146 -0
- package/src/coverage/src/assistConnectors/index.ts.html +88 -0
- package/src/coverage/src/assistDocument/AssistDocumentContext.tsx.html +178 -0
- package/src/coverage/src/assistDocument/AssistDocumentContextProvider.tsx.html +136 -0
- package/src/coverage/src/assistDocument/AssistDocumentInput.tsx.html +280 -0
- package/src/coverage/src/assistDocument/RequestRunInstructionProvider.tsx.html +283 -0
- package/src/coverage/src/assistDocument/components/AssistDocumentForm.tsx.html +775 -0
- package/src/coverage/src/assistDocument/components/FieldRefPreview.tsx.html +166 -0
- package/src/coverage/src/assistDocument/components/InstructionsArrayField.tsx.html +109 -0
- package/src/coverage/src/assistDocument/components/InstructionsArrayInput.tsx.html +163 -0
- package/src/coverage/src/assistDocument/components/SelectedFieldContext.tsx.html +115 -0
- package/src/coverage/src/assistDocument/components/generic/HiddenFieldTitle.tsx.html +100 -0
- package/src/coverage/src/assistDocument/components/generic/index.html +116 -0
- package/src/coverage/src/assistDocument/components/helpers.ts.html +148 -0
- package/src/coverage/src/assistDocument/components/index.html +191 -0
- package/src/coverage/src/assistDocument/components/instruction/BackToInstructionsLink.tsx.html +178 -0
- package/src/coverage/src/assistDocument/components/instruction/FieldRefInput.tsx.html +244 -0
- package/src/coverage/src/assistDocument/components/instruction/InstructionInput.tsx.html +349 -0
- package/src/coverage/src/assistDocument/components/instruction/InstructionOutputField.tsx.html +220 -0
- package/src/coverage/src/assistDocument/components/instruction/InstructionOutputInput.tsx.html +700 -0
- package/src/coverage/src/assistDocument/components/instruction/PromptInput.tsx.html +241 -0
- package/src/coverage/src/assistDocument/components/instruction/appearance/IconInput.tsx.html +223 -0
- package/src/coverage/src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx.html +196 -0
- package/src/coverage/src/assistDocument/components/instruction/appearance/index.html +131 -0
- package/src/coverage/src/assistDocument/components/instruction/index.html +191 -0
- package/src/coverage/src/assistDocument/hooks/index.html +161 -0
- package/src/coverage/src/assistDocument/hooks/useAssistDocumentContextValue.tsx.html +289 -0
- package/src/coverage/src/assistDocument/hooks/useDocumentState.ts.html +103 -0
- package/src/coverage/src/assistDocument/hooks/useInstructionToaster.tsx.html +307 -0
- package/src/coverage/src/assistDocument/hooks/useStudioAssistDocument.ts.html +379 -0
- package/src/coverage/src/assistDocument/index.html +176 -0
- package/src/coverage/src/assistDocument/index.ts.html +88 -0
- package/src/coverage/src/assistFormComponents/AssistField.tsx.html +301 -0
- package/src/coverage/src/assistFormComponents/AssistFormBlock.tsx.html +175 -0
- package/src/coverage/src/assistFormComponents/AssistInlineFormBlock.tsx.html +124 -0
- package/src/coverage/src/assistFormComponents/AssistItem.tsx.html +145 -0
- package/src/coverage/src/assistFormComponents/index.html +161 -0
- package/src/coverage/src/assistFormComponents/validation/index.html +131 -0
- package/src/coverage/src/assistFormComponents/validation/listItem.tsx.html +274 -0
- package/src/coverage/src/assistFormComponents/validation/validationList.tsx.html +352 -0
- package/src/coverage/src/assistInspector/AssistInspector.tsx.html +1318 -0
- package/src/coverage/src/assistInspector/FieldAutocomplete.tsx.html +505 -0
- package/src/coverage/src/assistInspector/InstructionTaskHistoryButton.tsx.html +865 -0
- package/src/coverage/src/assistInspector/constants.ts.html +88 -0
- package/src/coverage/src/assistInspector/helpers.ts.html +724 -0
- package/src/coverage/src/assistInspector/index.html +191 -0
- package/src/coverage/src/assistInspector/index.ts.html +163 -0
- package/src/coverage/src/assistLayout/AiAssistanceConfigContext.tsx.html +331 -0
- package/src/coverage/src/assistLayout/AssistLayout.tsx.html +199 -0
- package/src/coverage/src/assistLayout/RunInstructionProvider.tsx.html +751 -0
- package/src/coverage/src/assistLayout/index.html +146 -0
- package/src/coverage/src/components/AssistFeatureBadge.tsx.html +112 -0
- package/src/coverage/src/components/FadeInContent.tsx.html +205 -0
- package/src/coverage/src/components/HideReferenceChangedBannerInput.tsx.html +160 -0
- package/src/coverage/src/components/ImageContext.tsx.html +229 -0
- package/src/coverage/src/components/SafeValueInput.tsx.html +313 -0
- package/src/coverage/src/components/TimeAgo.tsx.html +139 -0
- package/src/coverage/src/components/index.html +191 -0
- package/src/coverage/src/constants.ts.html +145 -0
- package/src/coverage/src/fieldActions/PrivateIcon.tsx.html +145 -0
- package/src/coverage/src/fieldActions/assistFieldActions.tsx.html +907 -0
- package/src/coverage/src/fieldActions/generateCaptionActions.tsx.html +259 -0
- package/src/coverage/src/fieldActions/generateImageActions.tsx.html +256 -0
- package/src/coverage/src/fieldActions/index.html +161 -0
- package/src/coverage/src/helpers/assistSupported.ts.html +226 -0
- package/src/coverage/src/helpers/conditionalMembers.ts.html +466 -0
- package/src/coverage/src/helpers/ids.ts.html +142 -0
- package/src/coverage/src/helpers/index.html +191 -0
- package/src/coverage/src/helpers/misc.ts.html +133 -0
- package/src/coverage/src/helpers/typeUtils.ts.html +208 -0
- package/src/coverage/src/helpers/useAssistSupported.ts.html +106 -0
- package/src/coverage/src/index.html +176 -0
- package/src/coverage/src/index.ts.html +112 -0
- package/src/coverage/src/onboarding/FieldActionsOnboarding.tsx.html +286 -0
- package/src/coverage/src/onboarding/FirstAssistedPathProvider.tsx.html +172 -0
- package/src/coverage/src/onboarding/InspectorOnboarding.tsx.html +223 -0
- package/src/coverage/src/onboarding/index.html +161 -0
- package/src/coverage/src/onboarding/onboardingStore.ts.html +184 -0
- package/src/coverage/src/plugin.tsx.html +427 -0
- package/src/coverage/src/presence/AiFieldPresence.tsx.html +163 -0
- package/src/coverage/src/presence/AssistAvatar.tsx.html +373 -0
- package/src/coverage/src/presence/AssistDocumentPresence.tsx.html +259 -0
- package/src/coverage/src/presence/index.html +161 -0
- package/src/coverage/src/presence/useAssistPresence.ts.html +268 -0
- package/src/coverage/src/schemas/assistDocumentSchema.tsx.html +1552 -0
- package/src/coverage/src/schemas/contextDocumentSchema.tsx.html +253 -0
- package/src/coverage/src/schemas/index.html +176 -0
- package/src/coverage/src/schemas/index.ts.html +277 -0
- package/src/coverage/src/schemas/serialize/SchemTypeTool.tsx.html +391 -0
- package/src/coverage/src/schemas/serialize/index.html +146 -0
- package/src/coverage/src/schemas/serialize/schemaUtils.ts.html +196 -0
- package/src/coverage/src/schemas/serialize/serializeSchema.ts.html +754 -0
- package/src/coverage/src/schemas/serializedSchemaTypeSchema.ts.html +262 -0
- package/src/coverage/src/schemas/typeDefExtensions.ts.html +397 -0
- package/src/coverage/src/translate/FieldTranslationProvider.tsx.html +1003 -0
- package/src/coverage/src/translate/getLanguageParams.ts.html +163 -0
- package/src/coverage/src/translate/index.html +191 -0
- package/src/coverage/src/translate/languageStore.ts.html +139 -0
- package/src/coverage/src/translate/paths.ts.html +577 -0
- package/src/coverage/src/translate/translateActions.tsx.html +637 -0
- package/src/coverage/src/translate/types.ts.html +565 -0
- package/src/coverage/src/types.ts.html +649 -0
- package/src/coverage/src/useApiClient.ts.html +1015 -0
- package/src/fieldActions/assistFieldActions.tsx +13 -5
- package/src/helpers/assistSupported.ts +6 -13
- package/src/helpers/conditionalMembers.test.ts +200 -0
- package/src/helpers/conditionalMembers.ts +127 -0
- package/src/node_modules/.vitest/deps/_metadata.json +8 -0
- package/src/node_modules/.vitest/deps/package.json +3 -0
- package/src/node_modules/.vitest/results.json +1 -1
- package/src/schemas/serialize/serializeSchema.test.ts +63 -3
- package/src/schemas/serialize/serializeSchema.ts +29 -5
- package/src/translate/FieldTranslationProvider.tsx +4 -1
- package/src/translate/translateActions.tsx +20 -5
- package/src/types.ts +3 -0
- package/src/useApiClient.ts +11 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/types.ts","../src/_lib/fixedListenQuery.ts","../src/_lib/useListeningQuery.ts","../src/schemas/serialize/schemaUtils.ts","../src/helpers/typeUtils.ts","../src/helpers/assistSupported.ts","../src/schemas/serialize/serializeSchema.ts","../src/schemas/serialize/SchemTypeTool.tsx","../src/translate/paths.ts","../src/assistInspector/constants.ts","../src/_lib/form/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","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../src/translate/getLanguageParams.ts","../src/translate/languageStore.ts","../src/translate/FieldTranslationProvider.tsx","../src/assistLayout/AssistLayout.tsx","../src/components/SafeValueInput.tsx","../src/assistFormComponents/AssistFormBlock.tsx","../src/assistFormComponents/AssistItem.tsx","../src/assistDocument/components/helpers.ts","../src/assistDocument/components/instruction/InstructionInput.tsx","../src/assistDocument/components/generic/HiddenFieldTitle.tsx","../src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx","../src/assistDocument/components/instruction/appearance/IconInput.tsx","../src/assistDocument/components/instruction/FieldRefInput.tsx","../src/assistDocument/components/InstructionsArrayInput.tsx","../src/assistFormComponents/AssistInlineFormBlock.tsx","../src/assistDocument/components/FieldRefPreview.tsx","../src/components/HideReferenceChangedBannerInput.tsx","../src/schemas/contextDocumentSchema.tsx","../../node_modules/get-random-values-esm/index.mjs","../src/_lib/randomKey.ts","../src/assistDocument/components/instruction/PromptInput.tsx","../src/assistDocument/components/InstructionsArrayField.tsx","../src/assistDocument/components/instruction/InstructionOutputField.tsx","../src/assistDocument/components/instruction/InstructionOutputInput.tsx","../src/schemas/assistDocumentSchema.tsx","../src/schemas/index.ts","../src/helpers/useAssistSupported.ts","../src/assistDocument/hooks/useAssistDocumentContextValue.tsx","../src/fieldActions/PrivateIcon.tsx","../src/components/ImageContext.tsx","../src/fieldActions/generateCaptionActions.tsx","../src/translate/translateActions.tsx","../src/fieldActions/generateImageActions.tsx","../src/fieldActions/assistFieldActions.tsx","../src/assistDocument/AssistDocumentContextProvider.tsx","../src/assistDocument/hooks/useInstructionToaster.tsx","../src/assistDocument/AssistDocumentInput.tsx","../src/presence/AssistDocumentPresence.tsx","../src/plugin.tsx"],"sourcesContent":["import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const assistDocumentIdPrefix = 'sanity.assist.schemaType.'\nexport const assistDocumentStatusIdPrefix = 'sanity.assist.status.'\nexport const assistSchemaIdPrefix = 'sanity.assist.schema.'\n\n// type names\nexport const assistDocumentTypeName = 'sanity.assist.schemaType.annotations' as const\nexport const assistFieldTypeName = 'sanity.assist.schemaType.field' as const\nexport const instructionTypeName = 'sanity.assist.instruction' as const\nexport const promptTypeName = 'sanity.assist.instruction.prompt' as const\n\nexport const userInputTypeName = 'sanity.assist.instruction.userInput' as const\nexport const instructionContextTypeName = 'sanity.assist.instruction.context' as const\nexport const fieldReferenceTypeName = 'sanity.assist.instruction.fieldRef' as const\n\n// user-facing type. Intentionally does not have sanity. prefix\nexport const contextDocumentTypeName = 'assist.instruction.context' as const\n\nexport const assistTasksStatusTypeName = 'sanity.assist.task.status' as const\nexport const instructionTaskTypeName = 'sanity.assist.instructionTask' as const\nexport const fieldPresenceTypeName = 'sanity.assist.instructionTask.presence' as const\n\nexport const assistSerializedTypeName = 'sanity.assist.serialized.type' as const\nexport const assistSerializedFieldTypeName = 'sanity.assist.serialized.field' as const\n\nexport const outputFieldTypeName = 'sanity.assist.output.field' as const\nexport const outputTypeTypeName = 'sanity.assist.output.type' as const\n\n//url params\nexport const inspectParam = 'inspect' as const\nexport const fieldPathParam = 'pathKey' as const\nexport const instructionParam = 'instruction' as const\n\n// other constants\nexport const documentRootKey = '<document>'\n\nexport type SerializedSchemaMember = Omit<SerializedSchemaType, 'name' | '_type'> & {\n _type?: typeof assistSerializedFieldTypeName\n name?: string\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n name: string\n title?: string\n fields?: SerializedSchemaMember[]\n of?: SerializedSchemaMember[]\n to?: SerializedSchemaMember[]\n annotations?: SerializedSchemaMember[]\n inlineOf?: SerializedSchemaMember[]\n values?: string[] | {value: string; title?: string}[]\n 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\nexport function getImagePromptFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const imagePromptField = (schemaType.options as ImageOptions)?.imagePromptField\n if (imagePromptField) {\n return imagePromptField\n }\n return getImagePromptFieldOption(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 isArraySchemaType,\n ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaType,\n assistSchemaIdPrefix,\n SerializedSchemaMember,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\nimport {isType} from '../../helpers/typeUtils'\n\ninterface Options {\n leanFormat?: boolean\n}\n\nconst inlineTypes = ['document', 'object', 'image', 'file']\n\nexport function serializeSchema(schema: Schema, options?: Options): SerializedSchemaType[] {\n const list = schema\n .getTypeNames()\n .filter((t) => !(hiddenTypes.includes(t) || t.startsWith('sanity.')))\n .map((t) => schema.get(t))\n .filter((t): t is SchemaType => !!t)\n // because a field can override exclude at the type level, we have to also serialize excluded types\n // so don't do this: .filter((t) => isAssistSupported(t))\n .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 annotations:\n typeName === 'block' && 'fields' in type\n ? serializeAnnotations(type, schema, options)\n : undefined,\n inlineOf:\n typeName === 'block' && 'fields' in type\n ? serializeInlineOf(type, schema, options)\n : undefined,\n })\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 serializeInlineOf(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const childrenField = blockSchemaType.fields.find((f) => f.name === 'children')\n const childrenType = childrenField?.type\n if (!childrenType || !isArraySchemaType(childrenType)) {\n return undefined\n }\n return arrayOf(\n {\n ...childrenType,\n of: childrenType.of.filter((t) => !isType(t, 'span')),\n },\n schema,\n options\n )\n}\n\nfunction serializeAnnotations(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const markDefs = blockSchemaType.fields.find((f) => f.name === 'markDefs')\n const marksType = markDefs?.type\n if (!marksType || !isArraySchemaType(marksType)) {\n return undefined\n }\n return arrayOf(marksType, schema, options)\n}\n\nfunction arrayOf(\n arrayType: ArraySchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] {\n return arrayType.of\n .filter((type) => isAssistSupported(type))\n .map((t) => {\n return serializeMember(schema, t, t.name, options)\n })\n}\n\nfunction refToTypeNames(type: ReferenceSchemaType) {\n return type.to.map((t) => ({\n type: typed<string>(t.name),\n }))\n}\n\nfunction removeUndef<T extends Record<string, any>>(obj: T): T {\n Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}))\n return obj\n}\n","import {useClient, useSchema} from 'sanity'\nimport {Box, Button, Card, Flex, Label, Spinner, Stack} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {assistSerializedTypeName, SerializedSchemaType} from '../../types'\nimport {SyncIcon} from '@sanity/icons'\nimport {useListeningQuery} from '../../_lib/useListeningQuery'\nimport {serializeSchema} from './serializeSchema'\n\nconst NO_DATA: SerializedSchemaType[] = []\n\nconst defaultTitle = 'Sync schema'\n\nexport function SchemaTypeTool() {\n const schema = useSchema()\n const client = useClient({apiVersion: '2023-01-01'})\n const [saving, setSaving] = useState(false)\n const [syncTitle, setSyncTitle] = useState(defaultTitle)\n\n const {data} = useListeningQuery<SerializedSchemaType[]>('*[_type==$type] | order(_type)', {\n type: assistSerializedTypeName,\n })\n\n const types = useMemo(() => {\n return serializeSchema(schema)\n }, [schema])\n\n const storeTypes = useCallback(() => {\n setSaving(true)\n let canSave = true\n async function store() {\n setSyncTitle(`Syncing 0/${types.length}`)\n const transaction = client.transaction()\n for (let i = 0; i < types.length; i++) {\n if (!canSave) {\n break\n }\n const type = types[i]\n await transaction.createOrReplace(type as Required<typeof type>)\n if (i > 0 && i % 50 === 0) {\n await transaction.commit()\n transaction.reset()\n setSyncTitle(`Syncing ${i}/${types.length}`)\n }\n }\n await transaction.commit()\n }\n store()\n .catch(console.error)\n .finally(() => {\n setSaving(false)\n setSyncTitle(defaultTitle)\n })\n return () => {\n canSave = false\n setSaving(false)\n setSyncTitle(defaultTitle)\n }\n }, [types, client, setSaving, setSyncTitle])\n\n return (\n <Card padding={4} overflow=\"auto\" style={{height: 'calc(100vh - 81px)'}}>\n <Stack space={4}>\n <Box>\n <Button\n icon={saving ? <Spinner style={{marginTop: 5}} /> : SyncIcon}\n text={syncTitle}\n disabled={saving}\n onClick={storeTypes}\n />\n </Box>\n <Flex gap={2}>\n <Stack space={2}>\n <Label>Studio schema</Label>\n <ul>\n {types.map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n\n <Stack space={2}>\n <Label>Stored schema</Label>\n <ul>\n {(data ?? NO_DATA).map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n </Flex>\n </Stack>\n </Card>\n )\n}\n\nfunction SchemaEntry({schemaStub}: {schemaStub: SerializedSchemaType}) {\n const out = useMemo(() => JSON.stringify(schemaStub, null, 2), [schemaStub])\n return <pre>{out}</pre>\n}\n","import {\n isDocumentSchemaType,\n isKeySegment,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n} from 'sanity'\nimport {extractWithPath} from '@sanity/mutator'\nimport {DocumentMember, TranslationOutput, TranslationOutputsFunction} from './types'\n\nexport interface FieldLanguageMap {\n inputLanguageId: string\n inputPath: Path\n outputs: TranslationOutput[]\n}\n\nconst MAX_DEPTH = 6\n\nexport function getDocumentMembersFlat(doc: SanityDocumentLike, schemaType: ObjectSchemaType) {\n if (!isDocumentSchemaType(schemaType)) {\n console.error(`Schema type is not a document`)\n return []\n }\n\n return extractPaths(doc, schemaType, [], MAX_DEPTH)\n}\n\nfunction extractPaths(\n doc: SanityDocumentLike,\n schemaType: ObjectSchemaType,\n path: Path,\n maxDepth: number\n): DocumentMember[] {\n if (path.length >= maxDepth) {\n return []\n }\n\n return schemaType.fields.reduce<DocumentMember[]>((acc, field) => {\n const fieldPath = [...path, field.name]\n const fieldSchema = field.type\n const {value} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n if (!value) {\n return acc\n }\n\n const thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\n value,\n }\n\n if (fieldSchema.jsonType === 'object') {\n const innerFields = extractPaths(doc, fieldSchema, fieldPath, maxDepth)\n\n return [...acc, thisFieldWithPath, ...innerFields]\n } else if (\n fieldSchema.jsonType === 'array' &&\n fieldSchema.of.length &&\n fieldSchema.of.some((item) => 'fields' in item)\n ) {\n const {value: arrayValue} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n\n let arrayPaths: DocumentMember[] = []\n if ((arrayValue as any)?.length) {\n for (const item of arrayValue as any[]) {\n const 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 const arrayMember = {\n path: itemPath,\n name: item._key,\n schemaType: arrayItemSchema,\n value: item,\n }\n arrayPaths = [...arrayPaths, arrayMember, ...innerFields]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\n\n/**\n * Default implementation for plugin config `translate.field.translationOutputs`\n *\n * @see FieldTranslationConfig#translationOutputs\n */\nexport const defaultLanguageOutputs: TranslationOutputsFunction = function (\n member,\n enclosingType,\n translateFromLanguageId,\n translateToLanguageIds\n) {\n if (\n member.schemaType.jsonType === 'object' &&\n member.schemaType.name.startsWith('internationalizedArray')\n ) {\n const pathEnd = member.path.slice(-1)\n\n const language = isKeySegment(pathEnd[0]) ? pathEnd[0]._key : null\n return language === translateFromLanguageId\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), {_key: translateToId}],\n }))\n : undefined\n }\n\n if (enclosingType.jsonType === 'object' && enclosingType.name.startsWith('locale')) {\n return translateFromLanguageId === member.name\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), translateToId],\n }))\n : undefined\n }\n\n return undefined\n}\n\nexport function getFieldLanguageMap(\n documentSchema: ObjectSchemaType,\n documentMembers: DocumentMember[],\n translateFromLanguageId: string,\n outputLanguageIds: string[],\n langFn: TranslationOutputsFunction\n): FieldLanguageMap[] {\n const translationMaps: FieldLanguageMap[] = []\n for (const member of documentMembers) {\n const parentPath = member.path.slice(0, -1)\n const enclosingType =\n documentMembers.find((m) => pathToString(m.path) === pathToString(parentPath))?.schemaType ??\n documentSchema\n\n const translations = langFn(\n member,\n enclosingType,\n translateFromLanguageId,\n outputLanguageIds\n )?.filter((translation) => translation.id !== translateFromLanguageId)\n\n if (translations) {\n translationMaps.push({\n inputLanguageId: translateFromLanguageId,\n inputPath: member.path,\n outputs: translations,\n })\n }\n }\n\n return translationMaps\n}\n","export const aiInspectorId = 'ai-assistance'\n","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 useGenerateImage(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateImage = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-image/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image from prompt failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateImage,\n loading,\n }),\n [generateImage, loading]\n )\n}\n\nexport function useGetInstructStatus(apiClient: SanityClient) {\n const [loading, setLoading] = useState(true)\n\n const getInstructStatus = useCallback(async () => {\n setLoading(true)\n\n const projectId = apiClient.config().projectId\n try {\n const status = await apiClient.request<InstructStatus>({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/status?projectId=${projectId}`,\n })\n\n return status\n } finally {\n setLoading(false)\n }\n }, [setLoading, apiClient])\n\n return {\n loading,\n getInstructStatus,\n }\n}\n\nexport function useInitInstruct(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const initInstruct = useCallback(() => {\n setLoading(true)\n return apiClient\n .request({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/init?projectId=${\n apiClient.config().projectId\n }`,\n })\n .finally(() => {\n setLoading(false)\n })\n }, [setLoading, apiClient])\n\n return {\n loading,\n initInstruct,\n }\n}\n\nexport function useRunInstructionApi(apiClient: SanityClient) {\n const toast = useToast()\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n\n const runInstruction = useCallback(\n (request: RunInstructionRequest) => {\n setLoading(true)\n return apiClient\n .request({\n method: 'POST',\n url: `${basePath}/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n ...request,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Instruction failed',\n description: e.message,\n })\n throw e\n })\n .finally(() => {\n setLoading(false)\n })\n },\n [apiClient, types, user, toast]\n )\n\n return useMemo(\n () => ({\n runInstruction,\n loading,\n }),\n [runInstruction, loading]\n )\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {AssistPluginConfig} from '../plugin'\nimport {InstructStatus, useApiClient, useGetInstructStatus, useInitInstruct} from '../useApiClient'\n\nexport interface AiAssistanceConfigContextValue {\n config: AssistPluginConfig\n status?: InstructStatus\n statusLoading: boolean\n initLoading: boolean\n init: () => void\n error?: Error\n}\n\nexport const AiAssistanceConfigContext = createContext<AiAssistanceConfigContextValue>({} as any)\n\nexport function useAiAssistanceConfig() {\n const context = useContext(AiAssistanceConfigContext)\n if (!context) {\n throw new Error('Missing AiAssistanceConfigContext')\n }\n return context\n}\n\nexport function AiAssistanceConfigProvider(props: {\n children?: ReactNode\n config: AssistPluginConfig\n}) {\n const [status, setStatus] = useState<InstructStatus | undefined>()\n const [error, setError] = useState<Error | undefined>()\n\n const apiClient = useApiClient(props.config?.__customApiClient)\n const {getInstructStatus, loading: statusLoading} = useGetInstructStatus(apiClient)\n const {initInstruct, loading: initLoading} = useInitInstruct(apiClient)\n\n useEffect(() => {\n getInstructStatus()\n .then((s) => setStatus(s))\n .catch((e) => {\n console.error(e)\n setError(e as Error)\n })\n }, [getInstructStatus])\n\n const init = useCallback(async () => {\n setError(undefined)\n try {\n await initInstruct()\n const status = await getInstructStatus()\n setStatus(status)\n } catch (e) {\n console.error('Failed to init ai assistance', e)\n setError(e as Error)\n }\n }, [initInstruct, getInstructStatus, setStatus])\n\n const {config, children} = props\n const context = useMemo<AiAssistanceConfigContextValue>(() => {\n return {\n config,\n status,\n statusLoading,\n init,\n initLoading,\n error,\n }\n }, [config, status, init, statusLoading, initLoading, error])\n\n return (\n <AiAssistanceConfigContext.Provider value={context}>\n {children}\n </AiAssistanceConfigContext.Provider>\n )\n}\n","import {Button, Dialog, Flex, Stack, Text, TextArea, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {PlayIcon} from '@sanity/icons'\nimport {\n createContext,\n Dispatch,\n FormEvent,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {UserInputBlock, userInputTypeName} from '../types'\nimport {RunInstructionArgs} from './AssistLayout'\nimport {useApiClient, useRunInstructionApi} from '../useApiClient'\nimport {useAiAssistanceConfig} from './AiAssistanceConfigContext'\nimport {FormFieldHeaderText} from 'sanity'\n\ntype BlockInputs = Record<string, string>\nconst NO_INPUT: BlockInputs = {}\n\nexport interface RunInstructionContextValue {\n runInstruction: (req: RunInstructionArgs) => void\n instructionLoading: boolean\n}\n\nexport const RunInstructionContext = createContext<RunInstructionContextValue>({\n runInstruction: () => {},\n instructionLoading: false,\n})\n\nexport function useRunInstruction() {\n return useContext(RunInstructionContext)\n}\n\nfunction isUserInputBlock(block: {_type: string}): block is UserInputBlock {\n return block._type === userInputTypeName\n}\n\nexport function RunInstructionProvider(props: PropsWithChildren<{}>) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {runInstruction: runInstructionRequest, loading} = useRunInstructionApi(apiClient)\n\n const id = useId()\n\n const [inputs, setInputs] = useState(NO_INPUT)\n const [runRequest, setRunRequest] = useState<\n (RunInstructionArgs & {userInputBlocks: UserInputBlock[]}) | undefined\n >()\n\n const runInstruction = useCallback(\n (req: RunInstructionArgs) => {\n if (loading) {\n return\n }\n const {instruction, ...request} = req\n const instructionKey = instruction._key\n const userInputBlocks = instruction?.prompt\n ?.flatMap((block) =>\n block._type === 'block' ? block.children.filter(isUserInputBlock) : [block]\n )\n .filter(isUserInputBlock)\n\n if (!userInputBlocks?.length) {\n runInstructionRequest({\n ...request,\n instructionKey,\n userTexts: undefined,\n })\n return\n }\n\n setRunRequest({\n ...req,\n userInputBlocks,\n })\n },\n [setRunRequest, runInstructionRequest, loading]\n )\n\n const close = useCallback(() => {\n setRunRequest(undefined)\n setInputs(NO_INPUT)\n }, [setRunRequest, setInputs])\n\n const runWithInput = useCallback(() => {\n if (runRequest) {\n const {instruction, userTexts, ...request} = runRequest\n runInstructionRequest({\n ...request,\n instructionKey: instruction._key,\n userTexts: Object.entries(inputs).map(([key, value]) => ({\n blockKey: key,\n userInput: value,\n })),\n })\n }\n close()\n }, [close, runInstructionRequest, runRequest, inputs])\n\n const open = !!runRequest\n\n const runDisabled = useMemo(\n () =>\n (runRequest?.userInputBlocks?.length ?? 0) >\n Object.entries(inputs).filter(([, value]) => !!value).length,\n [runRequest?.userInputBlocks, inputs]\n )\n\n const runButton = (\n <Button\n text=\"Run instruction\"\n onClick={runWithInput}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n />\n )\n\n const contextValue: RunInstructionContextValue = useMemo(\n () => ({runInstruction, instructionLoading: loading}),\n [runInstruction, loading]\n )\n\n return (\n <RunInstructionContext.Provider value={contextValue}>\n {open ? (\n <Dialog\n id={id}\n open={open}\n onClose={close}\n width={1}\n header={getInstructionTitle(runRequest?.instruction)}\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>Unable to run instruction. All fields must have a value.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n <Stack padding={4} space={2}>\n {runRequest?.userInputBlocks?.map((block, i) => (\n <UserInput\n key={block._key}\n block={block}\n autoFocus={i === 0}\n inputs={inputs}\n setInputs={setInputs}\n />\n ))}\n </Stack>\n </Dialog>\n ) : null}\n {props.children}\n </RunInstructionContext.Provider>\n )\n}\n\nfunction UserInput(props: {\n block: UserInputBlock\n inputs: BlockInputs\n setInputs: Dispatch<SetStateAction<BlockInputs>>\n autoFocus?: boolean\n}) {\n const {block, autoFocus, setInputs, inputs} = props\n const key = block._key\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n\n const onChange = useCallback(\n (e: FormEvent<HTMLTextAreaElement>) => {\n setInputs((current) => ({\n ...current,\n [key]: (e.currentTarget ?? e.target).value,\n }))\n },\n [key, setInputs]\n )\n\n const value = useMemo(() => inputs[key], [inputs, key])\n\n useEffect(() => {\n if (!autoFocus) {\n return\n }\n setTimeout(() => textAreaRef.current?.focus(), 0)\n }, [autoFocus])\n\n return (\n <Stack padding={2} space={3}>\n <FormFieldHeaderText\n title={block?.message ?? 'Provide more context'}\n description={block.description}\n />\n <TextArea\n ref={textAreaRef}\n rows={4}\n value={value}\n onChange={onChange}\n style={{resize: 'vertical'}}\n />\n </Stack>\n )\n}\n","import {useRunInstruction} from '../assistLayout/RunInstructionProvider'\nimport {useCallback, useEffect, useState} from 'react'\nimport {ObjectSchemaType, PatchEvent, SanityDocument, unset} from 'sanity'\nimport {publicId} from '../helpers/ids'\n\nexport interface DraftDelayedTaskArgs<T> {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n task: (args: T) => void\n}\n\nexport function isDocAssistable(\n documentSchemaType: ObjectSchemaType,\n published?: SanityDocument | null,\n draft?: SanityDocument | null\n) {\n return !!(documentSchemaType.liveEdit ? published : draft)\n}\n\nexport function getAssistableDocId(documentSchemaType: ObjectSchemaType, documentId: string) {\n const baseId = publicId(documentId)\n return documentSchemaType.liveEdit ? baseId : `drafts.${baseId}`\n}\n\nexport function useRequestRunInstruction(args: {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n}) {\n const {runInstruction, instructionLoading} = useRunInstruction()\n const requestRunInstruction = useDraftDelayedTask({\n ...args,\n task: runInstruction,\n })\n\n return {\n instructionLoading,\n requestRunInstruction,\n }\n}\n\n/**\n * Ensures that the current document is a draft before running task\n */\nexport function useDraftDelayedTask<T>(args: DraftDelayedTaskArgs<T>) {\n const {documentOnChange, isDocAssistable, task} = args\n\n const [queuedArgs, setQueuedArgs] = useState<T | undefined>(undefined)\n\n useEffect(() => {\n if (queuedArgs && isDocAssistable) {\n task(queuedArgs)\n setQueuedArgs(undefined)\n }\n }, [queuedArgs, isDocAssistable, task])\n\n return useCallback(\n (taskArgs: T) => {\n // make a dummy edit: this will trigger the document/draft to be created\n documentOnChange(PatchEvent.from([unset(['_force_document_creation'])]))\n setQueuedArgs(taskArgs)\n },\n [setQueuedArgs, documentOnChange]\n )\n}\n","import {Box, Button, Container, Flex, Stack, Text} from '@sanity/ui'\nimport {SparklesIcon} from '@sanity/icons'\nimport {releaseAnnouncementUrl} from '../constants'\nimport styled from 'styled-components'\n\nconst SparklesIllustration = styled(SparklesIcon)({\n fontSize: '3.125em',\n '& path': {\n strokeWidth: `0.6px !important`,\n },\n})\n\nexport function InspectorOnboarding(props: {onDismiss: () => void}) {\n const {onDismiss} = props\n return (\n <Box padding={4}>\n <Container width={0}>\n <Stack space={4}>\n <div style={{textAlign: 'center'}}>\n <SparklesIllustration />\n </div>\n <Text align=\"center\" size={1}>\n Create reusable AI instructions that can be applied across all documents of a certain\n type.\n </Text>\n\n <Flex align=\"center\" gap={2} justify=\"center\">\n <Button\n as=\"a\"\n href={releaseAnnouncementUrl}\n rel=\"noreferrer\"\n target=\"_blank\"\n fontSize={1}\n mode=\"default\"\n onClick={onDismiss}\n padding={2}\n text=\"Learn more\"\n tone=\"primary\"\n />\n <Button fontSize={1} mode=\"bleed\" onClick={onDismiss} padding={2} text=\"Dismiss\" />\n </Flex>\n </Stack>\n </Container>\n </Box>\n )\n}\n","import {useCallback, useState} from 'react'\n\nexport const inspectorOnboardingKey = 'sanityStudio:assist:inspector:onboarding:dismissed'\nexport const fieldOnboardingKey = 'sanityStudio:assist:field:onboarding:dismissed'\n\nexport function isFeatureOnboardingDismissed(featureKey: string): boolean {\n if (typeof localStorage === 'undefined') {\n return false\n }\n\n const value = localStorage.getItem(featureKey)\n return value === 'true'\n}\n\nexport function dismissFeatureOnboarding(featureKey: string) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(featureKey, 'true')\n}\n\nexport function useOnboardingFeature(featureKey: string) {\n const [showOnboarding, setShowOnboarding] = useState(\n () => !isFeatureOnboardingDismissed(featureKey)\n )\n const dismissOnboarding = useCallback(() => {\n setShowOnboarding(false)\n dismissFeatureOnboarding(featureKey)\n }, [setShowOnboarding, featureKey])\n\n return {showOnboarding, dismissOnboarding}\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {instructionParam} from '../../../types'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../../../assistInspector/constants'\n\nexport function BackToInstructionListLink() {\n const {openInspector} = useDocumentPane()\n\n const goBack = useCallback(\n () => openInspector(aiInspectorId, {[instructionParam]: undefined as any}),\n [openInspector]\n )\n\n return (\n <div>\n <Button\n as=\"a\"\n fontSize={1}\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n padding={1}\n space={2}\n onClick={goBack}\n text=\" Instructions\"\n textAlign=\"left\"\n />\n </div>\n )\n}\n","import {\n AssistDocument,\n AssistField,\n assistFieldTypeName,\n AssistInspectorRouteParams,\n documentRootKey,\n fieldPathParam,\n instructionParam,\n} 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","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import {SanityDocumentLike} from 'sanity'\nimport get from 'lodash/get'\n\nexport const getLanguageParams = (\n select: Record<string, string> | undefined,\n document: SanityDocumentLike | undefined\n): Record<string, unknown> => {\n if (!select || !document) {\n return {}\n }\n\n const selection: Record<string, string> = select || {}\n const selectedValue: Record<string, unknown> = {}\n for (const [key, path] of Object.entries(selection)) {\n let value = get(document, path)\n if (Array.isArray(value)) {\n // If there are references in the array, ensure they have `_ref` set, otherwise they are considered empty and can safely be ignored\n value = value.filter((item) =>\n typeof item === 'object' ? item?._type !== 'reference' || '_ref' in item : true\n )\n }\n selectedValue[key] = value\n }\n\n return selectedValue\n}\n","export const toFieldLanguagesKeyPrefix = 'sanityStudio:assist:field-languages:from:'\n\nexport function getPreferredToFieldLanguages(fromLanguageId: string): string[] {\n if (typeof localStorage === 'undefined') {\n return []\n }\n\n const value = localStorage.getItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`)\n return value ? (JSON.parse(value) as string[]) : []\n}\n\nexport function setPreferredToFieldLanguages(fromLanguageId: string, languageIds: string[]) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`, JSON.stringify(languageIds))\n}\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, Path, pathToString, SanityDocumentLike, useClient} from 'sanity'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {Box, Button, Checkbox, Dialog, Flex, Radio, Spinner, Stack, Text, Tooltip} from '@sanity/ui'\nimport {\n defaultLanguageOutputs,\n FieldLanguageMap,\n getDocumentMembersFlat,\n getFieldLanguageMap,\n} from './paths'\nimport {PlayIcon} from '@sanity/icons'\nimport {Language} from './types'\nimport {getLanguageParams} from './getLanguageParams'\nimport {getPreferredToFieldLanguages, setPreferredToFieldLanguages} from './languageStore'\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\nfunction hasValuesToTranslate(\n fieldLanguageMaps: FieldLanguageMap[] | undefined,\n fromLanguage: Language | undefined,\n basePath: Path\n) {\n return fieldLanguageMaps?.some(\n (map) =>\n map.inputLanguageId === fromLanguage?.id &&\n map.inputPath &&\n pathToString(map.inputPath).startsWith(pathToString(basePath))\n )\n}\n\nexport function FieldTranslationProvider(props: PropsWithChildren<{}>) {\n const {config: assistConfig} = useAiAssistanceConfig()\n const apiClient = useApiClient(assistConfig.__customApiClient)\n const config = assistConfig.translate?.field\n const {translate: runTranslate} = useTranslate(apiClient)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const [fieldTranslationParams, setFieldTranslationParams] = useState<\n FieldTranslationParams | undefined\n >()\n const [languages, setLanguages] = useState<Language[] | undefined>()\n const [fromLanguage, setFromLanguage] = useState<Language | undefined>(undefined)\n const [toLanguages, setToLanguages] = useState<Language[] | undefined>(undefined)\n const [fieldLanguageMaps, setFieldLanguageMaps] = useState<FieldLanguageMap[] | undefined>()\n\n const close = useCallback(() => {\n setDialogOpen(false)\n setLanguages(undefined)\n setFieldTranslationParams(undefined)\n }, [])\n const languageClient = useClient({apiVersion: config?.apiVersion ?? '2022-11-27'})\n const documentId = fieldTranslationParams?.document?._id\n const id = useId()\n\n const selectFromLanguage = useCallback(\n (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => {\n const {document, documentSchema} = params ?? {}\n setFromLanguage(from)\n if (!document || !documentSchema || !params || !languages) {\n setFieldLanguageMaps(undefined)\n return\n }\n\n const preferred = getPreferredToFieldLanguages(from.id)\n const allToLanguages = languages.filter((l) => l.id !== from?.id)\n const filteredToLanguages = allToLanguages.filter(\n (l) => !preferred.length || preferred.includes(l.id)\n )\n\n setToLanguages(filteredToLanguages)\n const fromId = from?.id\n const allToIds = allToLanguages?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && allToIds?.length) {\n const transMap = getFieldLanguageMap(\n documentSchema,\n docMembers,\n fromId,\n allToIds.filter((toId) => fromId !== toId),\n config?.translationOutputs ?? defaultLanguageOutputs\n )\n setFieldLanguageMaps(transMap)\n } else {\n setFieldLanguageMaps(undefined)\n }\n },\n [config]\n )\n\n const toggleToLanguage = useCallback(\n (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => {\n if (!languages || !fromLanguage) {\n return\n }\n const wasSelected = !!toLanguages?.find((l) => l.id === toggledLang.id)\n const newToLangs = languages.filter(\n (anyLang) =>\n !!toLanguages?.find(\n (selectedLang) => toggledLang.id !== selectedLang.id && selectedLang.id === anyLang.id\n ) ||\n (toggledLang.id === anyLang.id && !wasSelected)\n )\n setToLanguages(newToLangs)\n setPreferredToFieldLanguages(\n fromLanguage.id,\n newToLangs.map((l) => l.id)\n )\n },\n [fromLanguage]\n )\n\n const openFieldTranslation = useCallback(\n async (params: FieldTranslationParams) => {\n setDialogOpen(true)\n const languageParams = getLanguageParams(config?.selectLanguageParams, params.document)\n const languages: Language[] | undefined = await (typeof config?.languages === 'function'\n ? config?.languages(languageClient, languageParams)\n : Promise.resolve(config?.languages))\n setLanguages(languages)\n setFieldTranslationParams(params)\n const fromLanguage = languages?.[0]\n if (fromLanguage) {\n selectFromLanguage(fromLanguage, languages, params)\n } else {\n console.error('No languages available for selected language params', languageParams)\n }\n },\n [selectFromLanguage, config, languageClient]\n )\n\n const contextValue: FieldTranslationContextValue = useMemo(() => {\n return {\n openFieldTranslation,\n translationLoading: false,\n }\n }, [openFieldTranslation])\n\n const runDisabled =\n !fromLanguage ||\n !toLanguages?.length ||\n !fieldLanguageMaps?.length ||\n !documentId ||\n !hasValuesToTranslate(fieldLanguageMaps, fromLanguage, fieldTranslationParams.translatePath)\n\n const onRunTranslation = useCallback(() => {\n const translatePath = fieldTranslationParams?.translatePath\n if (fieldLanguageMaps && documentId && translatePath) {\n runTranslate({\n documentId,\n translatePath: 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>There is nothing to translate in the selected from-language.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n {languages ? (\n <Flex padding={4} gap={5} align=\"flex-start\" justify=\"center\">\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">From</Text>\n </Box>\n {languages?.map((l) => {\n return (\n <Flex key={l.id} gap={3} align=\"center\" as={'label'}>\n <Radio\n name=\"fromLang\"\n value={l.id}\n checked={l.id === fromLanguage?.id}\n onChange={() => selectFromLanguage(l, languages, fieldTranslationParams)}\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\n )\n })}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages.map((l) => (\n <Flex\n key={l.id}\n gap={3}\n align=\"center\"\n as={'label'}\n style={l.id === fromLanguage?.id ? {opacity: 0.5} : undefined}\n >\n <Checkbox\n name=\"toLang\"\n value={l.id}\n checked={\n l.id !== fromLanguage?.id && !!toLanguages?.find((tl) => tl.id === l.id)\n }\n onChange={() => toggleToLanguage(l, toLanguages, languages)}\n disabled={l.id === fromLanguage?.id}\n />\n <Text muted={l.id === fromLanguage?.id}>{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 {FieldTranslationProvider} from '../translate/FieldTranslationProvider'\n\nexport interface AIStudioLayoutProps extends LayoutProps {\n config: AssistPluginConfig\n}\n\nexport type RunInstructionArgs = Omit<RunInstructionRequest, 'instructionKey' | 'userText'> & {\n instruction: StudioInstruction\n}\n\nexport function AssistLayout(props: AIStudioLayoutProps) {\n const [connectors, setConnectors] = useState<Connector[]>([])\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n <RunInstructionProvider>\n <FieldTranslationProvider>\n <ConnectorsProvider onConnectorsChange={setConnectors}>\n {props.renderDefault(props)}\n <ThemeProvider tone=\"default\">\n <AssistConnectorsOverlay connectors={connectors} />\n </ThemeProvider>\n </ConnectorsProvider>\n </FieldTranslationProvider>\n </RunInstructionProvider>\n </AiAssistanceConfigProvider>\n )\n}\n","import {InputProps, isArraySchemaType, PatchEvent, unset} from 'sanity'\nimport {ErrorInfo, PropsWithChildren, useCallback, useMemo, useState} from 'react'\nimport {Box, Button, Card, ErrorBoundary, Flex, Stack, Text} from '@sanity/ui'\nimport {isPortableTextArray} from '../helpers/typeUtils'\nimport styled from 'styled-components'\n\nconst WrapPreCard = styled(Card)`\n & pre {\n white-space: pre-wrap !important;\n }\n`\n\nexport function SafeValueInput(props: InputProps) {\n return (\n <ErrorWrapper onChange={props.onChange}>\n <PteValueFixer {...props} />\n </ErrorWrapper>\n )\n}\n\nexport function ErrorWrapper(\n props: PropsWithChildren<{onChange: (patchEvent: PatchEvent) => void}>\n) {\n const {onChange} = props\n const [error, setError] = useState<Error | undefined>()\n\n const catchError = useCallback(\n (params: {error: Error; info: ErrorInfo}) => {\n setError(params.error)\n },\n [setError]\n )\n\n const unsetValue = useCallback(() => {\n onChange(PatchEvent.from(unset()))\n setError(undefined)\n }, [onChange])\n const dismiss = useCallback(() => setError(undefined), [])\n const catcher = <ErrorBoundary onCatch={catchError}>{props.children}</ErrorBoundary>\n\n return error ? (\n <Card border tone=\"critical\" padding={2} contentEditable={false}>\n <Stack space={3}>\n <Text muted weight=\"semibold\">\n An error occurred.\n </Text>\n\n <WrapPreCard flex={1} padding={2} tone=\"critical\" border>\n {catcher}\n </WrapPreCard>\n\n <Flex width=\"fill\" flex={1} gap={3}>\n <Box flex={1}>\n <Button text=\"Dismiss\" onClick={dismiss} tone=\"primary\" />\n </Box>\n <Button text=\"Unset value\" onClick={unsetValue} tone=\"critical\" />\n </Flex>\n </Stack>\n </Card>\n ) : (\n catcher\n )\n}\n\nfunction PteValueFixer(props: InputProps) {\n const isPortableText = useMemo(\n () => isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType),\n [props.schemaType]\n )\n const value = props.value\n if (isPortableText && value && !(value as any[]).length) {\n return props.renderDefault({...props, value: undefined})\n }\n\n return props.renderDefault(props)\n}\n","import {BlockProps, PatchEvent, useFormCallbacks} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {ErrorWrapper} from '../components/SafeValueInput'\nimport {useCallback} from 'react'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistFormBlock(props: BlockProps) {\n const presence = useAssistPresence(props.path, true)\n const {onChange} = useFormCallbacks()\n const key = props.value._key\n const localOnChange = useCallback(\n (patchEvent: PatchEvent) => {\n if (!key) {\n return\n }\n onChange(PatchEvent.from(patchEvent).prefixAll({_key: key}))\n },\n [onChange, key]\n )\n const singlePresence = presence[0]\n return (\n <ErrorWrapper onChange={localOnChange}>\n <Flex align=\"center\" justify=\"space-between\">\n <Box flex={1}>{props.renderDefault(props)}</Box>\n {singlePresence && <AiFieldPresence presence={singlePresence} />}\n </Flex>\n </ErrorWrapper>\n )\n}\n","import {ItemProps} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistItem(props: ItemProps) {\n const {path} = props\n const presence = useAssistPresence(path, true)\n\n return (\n <Flex align=\"center\" width=\"fill\" style={{position: 'relative'}}>\n <Box flex={1}>{props.renderDefault({...props})}</Box>\n {presence.map((pre) => (\n <Box key={pre.user.id} style={{position: 'absolute', right: 35}}>\n <AiFieldPresence presence={pre} />\n </Box>\n ))}\n </Flex>\n )\n}\n","import {FieldError, FieldMember, FieldSetMember, ObjectMember} from 'sanity'\n\nexport function findFieldMember(\n members: ObjectMember[],\n fieldName: string\n): FieldMember | FieldError | undefined {\n return members.find(\n (m): m is FieldMember | FieldError =>\n (m.kind === 'field' && m.name === fieldName) ||\n (m.kind === 'error' && m.fieldName === fieldName)\n )\n}\n\nexport function findFieldsetMember(\n members: ObjectMember[],\n fieldsetName: string\n): FieldSetMember | undefined {\n return members.find(\n (m): m is FieldSetMember => m.kind === 'fieldSet' && m.fieldSet.name === fieldsetName\n )\n}\n","import {FieldError, FieldMember, ObjectInputMember, ObjectInputProps} from 'sanity'\nimport {findFieldMember, findFieldsetMember} from '../helpers'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useId, useMemo} from 'react'\n\nexport function InstructionInput(props: ObjectInputProps) {\n return (\n <Stack space={[4, 4, 4, 5]}>\n <NameField {...props} />\n <ShareField {...props} />\n <ObjectMember fieldName={'prompt'} {...props} />\n <ObjectMember fieldName={'output'} {...props} />\n </Stack>\n )\n}\n\nfunction ObjectMember({fieldName, ...props}: ObjectInputProps & {fieldName: string}) {\n const member = findFieldMember(props.members, fieldName)\n return member ? <ObjectInputMember {...props} member={member} /> : null\n}\n\nconst NONE: (FieldMember | FieldError)[] = []\n\nfunction NameField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const titleId = useId()\n\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const iconMember = findFieldMember(members, 'icon')\n const titleMember = findFieldMember(members, 'title')\n\n const titlePlaceholder = 'Untitled'\n const moddedTitleMember = useMemo(() => {\n if (!titleMember) {\n return undefined\n }\n if (titleMember.kind === 'error') {\n return titleMember\n }\n return {\n ...titleMember,\n field: {\n ...titleMember?.field,\n schemaType: {\n ...titleMember?.field.schemaType,\n placeholder: titlePlaceholder,\n },\n },\n }\n }, [titleMember, titlePlaceholder])\n\n return (\n <Stack space={5}>\n <Stack space={2}>\n <Flex gap={1}>\n <Text as=\"label\" weight=\"semibold\" size={1} htmlFor={titleId}>\n Name\n </Text>\n </Flex>\n\n <Text muted size={1}>\n How this instruction appears in menus\n </Text>\n\n <Flex align=\"center\">\n {iconMember && (\n <Box flex=\"none\">\n <ObjectInputMember {...props} member={iconMember} />\n </Box>\n )}\n {moddedTitleMember && (\n <Box flex={1} style={{marginLeft: -1}}>\n <ObjectInputMember {...props} member={moddedTitleMember} />\n </Box>\n )}\n </Flex>\n </Stack>\n </Stack>\n )\n}\n\nfunction ShareField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const visibilityMember = findFieldMember(members, 'userId')\n\n return <>{visibilityMember && <ObjectInputMember {...props} member={visibilityMember} />}</>\n}\n","import {FieldProps} from 'sanity'\n\nexport function HiddenFieldTitle(props: FieldProps) {\n return props.renderDefault({...props, title: '', level: props.level - 2, changed: false})\n}\n","import {set, StringInputProps, unset, useCurrentUser} from 'sanity'\nimport {Card, Flex, Switch, Text} from '@sanity/ui'\nimport {useCallback, useId} from 'react'\n\nexport function InstructionVisibility(props: StringInputProps) {\n const {value, onChange} = props\n\n const user = useCurrentUser()\n\n const handleChange = useCallback(() => {\n const newValue = value ? '' : user?.id ?? ''\n onChange(newValue ? set(newValue) : unset())\n }, [onChange, user, value])\n\n const id = useId()\n\n return (\n <Card>\n <Flex gap={2} align=\"flex-start\">\n <div style={{margin: '-3px 0'}}>\n <Switch\n {...props.elementProps}\n id={id}\n value={`${!value}`}\n checked={!value}\n onChange={handleChange}\n disabled={props.elementProps.readOnly}\n />\n </div>\n\n <Text muted size={1} weight=\"medium\">\n <label htmlFor={id}>Make visible to all Studio members</label>\n </Text>\n </Flex>\n </Card>\n )\n}\n","import {icons} from '@sanity/icons'\nimport {set, StringInputProps} from 'sanity'\nimport {Button, Menu, MenuButton, MenuItem} from '@sanity/ui'\nimport {ElementType, ReactNode, useCallback, useId, useMemo} from 'react'\n\nexport function IconInput(props: StringInputProps) {\n const {value, onChange} = props\n const id = useId()\n const items = useMemo(\n () =>\n Object.entries(icons).map(([key, icon]) => (\n <IconItem key={key} iconKey={key} icon={icon} onChange={onChange} />\n )),\n [onChange]\n )\n\n const selectedIcon = useMemo(() => getIcon(value), [value])\n\n return (\n <MenuButton\n button={\n <Button icon={selectedIcon} title=\"Select icon\" padding={3} mode=\"ghost\" radius={1} />\n }\n id={id}\n menu={<Menu style={{maxHeight: 300}}>{items}</Menu>}\n popover={{portal: true}}\n />\n )\n}\n\nfunction IconItem({\n icon,\n iconKey: key,\n onChange,\n}: {\n iconKey: string\n icon: ElementType | ReactNode\n onChange: StringInputProps['onChange']\n}) {\n const onClick = useCallback(() => onChange(set(key)), [onChange, key])\n return <MenuItem icon={icon} title={key} text={key} onClick={onClick} />\n}\n\nexport function getIcon(iconName?: string) {\n return Object.entries(icons).find(([key]) => key === iconName)?.[1] ?? icons.sparkles\n}\n","import {set, StringInputProps} from 'sanity'\nimport {useCallback, useContext, useEffect, useId, useRef} from 'react'\nimport {Box} from '@sanity/ui'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {FieldAutocomplete} from '../../../assistInspector/FieldAutocomplete'\nimport {FieldRef} from '../../../assistInspector/helpers'\nimport {TypePathContext} from '../AssistDocumentForm'\n\nexport function FieldRefPathInput(props: StringInputProps) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const typePath = useContext(TypePathContext)\n const ref = useRef<HTMLDivElement>(null)\n const id = useId()\n const {onChange} = props\n\n useEffect(() => {\n ref.current?.querySelector('input')?.focus()\n }, [])\n\n const onSelect = useCallback((path: string) => onChange(set(path)), [onChange])\n\n const filter = useCallback(\n (field: FieldRef) => {\n if (!field.key.includes('|') || !typePath) {\n return true\n }\n if (field.key.includes('|') && !typePath.includes('|')) {\n return false\n }\n\n const fieldSegments = field.key.split('.')\n const lastArrayItemIndex = fieldSegments.findLastIndex((s) => s.includes('|'))\n const mustStartWith = fieldSegments.slice(0, lastArrayItemIndex + 1).join('.')\n return typePath.startsWith(mustStartWith)\n },\n [typePath]\n )\n if (!documentSchema) {\n return props.renderDefault(props)\n }\n\n return (\n <Box flex={1} style={{minWidth: 300}} ref={ref}>\n <FieldAutocomplete\n id={id}\n schemaType={documentSchema}\n onSelect={onSelect}\n fieldPath={props.value}\n filter={filter}\n />\n </Box>\n )\n}\n","import {ArrayOfObjectsInputProps, useCurrentUser} from 'sanity'\nimport {useMemo} from 'react'\nimport {StudioInstruction} from '../../types'\n\nexport function InstructionsArrayInput(props: ArrayOfObjectsInputProps) {\n const user = useCurrentUser()\n\n const originalValue = props.value as StudioInstruction[] | undefined\n const originalMembers = props.members\n const value = useMemo(\n () => (originalValue ?? []).filter((v) => !v.userId || v.userId === user?.id),\n [originalValue, user]\n )\n const members = useMemo(\n () =>\n (originalMembers ?? []).filter((v) => {\n if (v.kind === 'error') {\n return true\n }\n const value = v?.item?.value as any\n return !value.userId || value.userId === user?.id\n }),\n [originalMembers, user]\n )\n return props.renderDefault({...props, value, members})\n}\n","import {BlockProps} from 'sanity'\nimport {createContext} from 'react'\n\n// workaround for preview value sometimes lagging behind\nexport const InlineBlockValueContext = createContext<unknown>(undefined)\n\nexport function AssistInlineFormBlock(props: BlockProps) {\n return (\n <InlineBlockValueContext.Provider value={props.value}>\n <>{props.renderDefault(props)}</>\n </InlineBlockValueContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {useSelectedField} from '../../assistInspector/helpers'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {PreviewProps} from 'sanity'\nimport {SelectedFieldContext} from './SelectedFieldContext'\nimport {InlineBlockValueContext} from '../../assistFormComponents/AssistInlineFormBlock'\n\nexport function FieldRefPreview(props: PreviewProps & {path?: string}) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const path = (useContext(InlineBlockValueContext) as {path?: string})?.path ?? props.path\n const selectedField = useSelectedField(documentSchema, path)\n return (\n <Flex gap={2} align=\"center\" style={{width: '100%'}}>\n <Flex flex={1} gap={2} align=\"center\" paddingY={3} paddingX={1}>\n {/*<Box>\n <Text>{selectedField?.icon ? createElement(selectedField?.icon) : <CodeIcon />}</Text>\n </Box>*/}\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {selectedField?.title ?? 'Select field'}\n </Text>\n </Box>\n </Flex>\n <>{props.actions}</>\n </Flex>\n )\n}\n","import {ObjectInputProps} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport {useEffect, useRef} from 'react'\n\nexport function HideReferenceChangedBannerInput(props: ObjectInputProps) {\n const ref = useRef<HTMLDivElement>(null)\n\n // hides \"reference was changed\" banner (it is incorrectly flashing because the pane handler does not support the way wie use the assist pane)\n useEffect(() => {\n const parent = ref.current?.closest('[data-testid=\"pane-content\"]')\n if (!parent) {\n return\n }\n const style = document.createElement('style')\n const parentId = `id-${Math.random()}`.replace('.', '-')\n parent.id = parentId\n\n style.innerText = `\n #${parentId} [data-testid=\"reference-changed-banner\"] { display: none; }\n `\n parent.prepend(style)\n }, [ref])\n\n return <Box ref={ref}>{props.renderDefault(props)}</Box>\n}\n","import {defineArrayMember, defineField, defineType} from 'sanity'\nimport {contextDocumentTypeName} from '../types'\nimport {DocumentTextIcon, TokenIcon} from '@sanity/icons'\nimport {HideReferenceChangedBannerInput} from '../components/HideReferenceChangedBannerInput'\n\nexport const contextDocumentSchema = defineType({\n type: 'document',\n name: contextDocumentTypeName,\n title: 'AI context',\n liveEdit: true,\n icon: TokenIcon,\n components: {\n input: HideReferenceChangedBannerInput,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n name: 'context',\n type: 'array',\n title: 'Context',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n }),\n ],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n context: 'context',\n },\n prepare({title, context}) {\n const text = context\n ?.flatMap((block: any) => block?.children)\n .flatMap((child: any) => child?.text?.split(' '))\n .filter(Boolean)\n const words = text?.length ?? 0\n return {\n title,\n subtitle: `Words: ${words}`,\n media: DocumentTextIcon,\n }\n },\n },\n})\n","// Strict ESM env, designed to run outside Node.js in envs that provide WebCrypto (deno, browsers, etc)\n\nexport default function getRandomValues(typedArray) {\n 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, getImagePromptFieldOption} 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 imagePromptPath?: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue>({})\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 = useMemo(() => {\n const captionField = getCaptionFieldOption(schemaType)\n const imagePromptField = getImagePromptFieldOption(schemaType)\n return {\n captionPath: captionField ? pathToString([...path, captionField]) : undefined,\n imagePromptPath: imagePromptField ? pathToString([...path, imagePromptField]) : undefined,\n assetRef,\n }\n }, [schemaType, path, assetRef])\n\n return <ImageContext.Provider value={context}>{props.renderDefault(props)}</ImageContext.Provider>\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {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'\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 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: translationApi.loading,\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 {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {useApiClient, useGenerateImage} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateImagActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-image',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateImage, loading} = useGenerateImage(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imagePromptPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image from prompt',\n onAction: () => {\n if (loading) {\n return\n }\n generateImage({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n })\n }, [generateImage, pathKey, documentId, loading])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n ObjectSchemaType,\n typed,\n useCurrentUser,\n} from 'sanity'\nimport {ControlsIcon, SparklesIcon} from '@sanity/icons'\nimport {useCallback, useMemo} 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'\nimport {generateImagActions} from './generateImageActions'\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 imageGenAction = generateImagActions.useAction(props)\n const translateAction = translateActions.useAction(\n typed<TranslateProps>({\n ...props,\n documentId: assistableDocumentId,\n documentIsAssistable,\n documentSchemaType,\n })\n )\n const manageInstructions = useCallback(\n () =>\n isSelected\n ? closeInspector(aiInspectorId)\n : openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n }),\n [openInspector, closeInspector, isSelected, pathKey]\n )\n\n const onInstructionAction = useCallback(\n (instruction: StudioInstruction) => {\n if (!pathKey || !fieldAssistKey || !assistDocumentId || !assistableDocId) {\n return\n }\n requestRunInstruction({\n documentId: assistableDocId,\n assistDocumentId,\n path: pathKey,\n typePath,\n instruction,\n })\n },\n [requestRunInstruction, assistableDocId, pathKey, typePath, assistDocumentId, fieldAssistKey]\n )\n\n const privateInstructions = useMemo(\n () =>\n fieldAssist?.instructions?.filter((i) => i.userId && i.userId === currentUser?.id) || [],\n [fieldAssist?.instructions, currentUser]\n )\n\n const sharedInstructions = useMemo(\n () => fieldAssist?.instructions?.filter((i) => !i.userId) || [],\n [fieldAssist?.instructions]\n )\n\n const instructions = useMemo(\n () => [...privateInstructions, ...sharedInstructions],\n [privateInstructions, sharedInstructions]\n )\n\n const runInstructionsGroup = useMemo(() => {\n return instructions?.length || imageCaptionAction || translateAction || imageGenAction\n ? node({\n type: 'group',\n icon: () => null,\n title: 'Run instructions',\n children: [\n ...instructions?.map((instruction) =>\n instructionItem({\n instruction,\n isPrivate: Boolean(instruction.userId && instruction.userId === currentUser?.id),\n onInstructionAction,\n hidden: isHidden,\n documentIsNew: !!documentIsNew,\n assistSupported,\n })\n ),\n imageCaptionAction,\n imageGenAction,\n ].filter((a): a is DocumentFieldActionItem => !!a),\n expanded: true,\n })\n : undefined\n }, [\n instructions,\n currentUser?.id,\n onInstructionAction,\n isHidden,\n documentIsNew,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ])\n\n const instructionsLength = instructions?.length || 0\n\n const manageInstructionsItem = useMemo(\n () =>\n node({\n type: 'action',\n icon: ControlsIcon,\n title: 'Manage instructions',\n onAction: manageInstructions,\n selected: isSelected,\n }),\n [manageInstructions, isSelected]\n )\n\n const group = useMemo(\n () =>\n node({\n type: 'group',\n icon: SparklesIcon,\n title: pluginTitleShort,\n children: [\n runInstructionsGroup,\n translateAction,\n assistSupported && manageInstructionsItem,\n ]\n .filter((c): c is DocumentFieldActionItem | DocumentFieldActionGroup => !!c)\n .filter((c) => (c.type === 'group' ? c.children.length : true)),\n expanded: false,\n renderAsButton: true,\n hidden: !assistSupported && !imageCaptionAction && !translateAction && !imageGenAction,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ]\n )\n\n const emptyAction = useMemo(\n () =>\n node({\n type: 'action',\n hidden: !assistSupported,\n icon: SparklesIcon,\n onAction: manageInstructions,\n renderAsButton: true,\n title: pluginTitleShort,\n selected: isSelected,\n }),\n [assistSupported, manageInstructions, isSelected]\n )\n\n // If there are no instructions, we don't want to render the group\n if (instructionsLength === 0 && !imageCaptionAction && !translateAction && !imageGenAction) {\n return emptyAction\n }\n\n return group\n },\n}\n\nfunction instructionItem(props: {\n instruction: StudioInstruction\n isPrivate: boolean\n onInstructionAction: (ins: StudioInstruction) => void\n assistSupported: boolean\n documentIsNew: boolean\n hidden: boolean\n}) {\n const {hidden, isPrivate, onInstructionAction, assistSupported, instruction} = props\n return node({\n type: 'action',\n icon: getIcon(instruction.icon),\n iconRight: isPrivate ? PrivateIcon : undefined,\n title: getInstructionTitle(instruction),\n onAction: () => onInstructionAction(instruction),\n disabled: assistSupported ? 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 * @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","getImagePromptFieldOption","imagePromptField","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","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","annotations","serializeAnnotations","inlineOf","serializeInlineOf","f","serializeMember","typeNameExists","blockSchemaType","childrenField","childrenType","isArraySchemaType","markDefs","marksType","arrayType","typed","obj","forEach","key","NO_DATA","defaultTitle","SchemaTypeTool","useSchema","saving","setSaving","syncTitle","setSyncTitle","types","useMemo","storeTypes","useCallback","canSave","store","transaction","createOrReplace","commit","reset","catch","finally","jsx","Card","padding","overflow","style","height","children","jsxs","Stack","space","Box","Button","icon","Spinner","marginTop","SyncIcon","text","disabled","onClick","Flex","gap","Label","SchemaEntry","schemaStub","_ref","out","JSON","stringify","MAX_DEPTH","getDocumentMembersFlat","doc","isDocumentSchemaType","extractPaths","path","maxDepth","reduce","acc","fieldPath","fieldSchema","extractWithPath","pathToString","thisFieldWithPath","innerFields","some","item","arrayValue","arrayPaths","arrayItemSchema","_key","itemPath","arrayMember","defaultLanguageOutputs","member","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","slice","language","isKeySegment","translateToId","id","outputPath","getFieldLanguageMap","documentSchema","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","push","inputLanguageId","inputPath","outputs","aiInspectorId","preventDefault","DocumentForm","props","collapsedFieldSets","collapsedPaths","displayed","documentId","documentType","editState","formState","onBlur","onChange","onFocus","onPathOpen","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","ready","validation","useDocumentPane","documentStore","useDocumentStore","presence","useDocumentPresence","patchChannel","createPatchChannel","isLocked","transactionSyncLock","enabled","sub","pair","documentEvents","tap","publish","prepareMutationEvent","prepareRebaseEvent","hasRev","Boolean","_rev","patches","snapshot","formRef","focusFirstDescendant","as","ref","align","direction","justify","sizing","Text","size","onSubmit","FormBuilder","__internal_patchChannel","focusPath","changed","focused","groups","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","parent","depth","flatMap","fieldRef","patchableKey","join","syntheticFields","getSyntheticFields","itemType","segment","synthetic","getTypePath","pathString","stringToPath","currentPath","valid","syntheticPath","match","pathKey","replace","useTypePath","useSelectedField","documentSchemaType","selectableFields","isObjectSchemaType","getFieldTitle","useAiPaneRouter","paneRouter","usePaneRouter","useDocumentState","docType","state","useEditState","draft","published","aiDocPrefixPattern","RegExp","publicId","assistDocumentId","documentTypeFromAiDocumentId","assistTasksStatusId","releaseAnnouncementUrl","instructionGuideUrl","giveFeedbackUrl","salesUrl","packageName","pluginTitle","pluginTitleShort","maxHistoryVisibilityMs","minutesToMilliseconds","useStudioAssistDocument","_ref2","initDoc","documentTypeName","currentUser","useCurrentUser","assistDocument","assistTasksStatus","createIfNotExists","e","tasks","assistField","task","instructions","p","userId","instruction","asStudioInstruction","instructionKey","run","started","Date","getTime","useInterval","ms","tick","update","useReducer","n","setInterval","clearInterval","TimeAgo","_ref3","date","timeSince","formatDistanceToNow","usePathKey","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","r","ended","hasErrors","reason","open","setOpen","toggleOpen","button","setButton","popover","setPopover","handleClickOutside","useClickOutside","handleEscape","focus","Popover","constrainSize","content","TaskList","onEscape","placement","portal","width","TaskStatusButton","selected","TASK_STATUS_BUTTON_TOOLTIP_PROPS","forwardRef","StatusButton","label","mode","tooltipProps","isTopLayer","useLayer","useGlobalKeyDown","TaskItem","taskType","radius","flex","createElement","weight","Fragment","message","fontSize","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","useGenerateImage","generateImage","_ref6","useGetInstructStatus","getInstructStatus","useInitInstruct","initInstruct","useRunInstructionApi","runInstruction","AiAssistanceConfigContext","useAiAssistanceConfig","context","useContext","AiAssistanceConfigProvider","setStatus","__customApiClient","statusLoading","initLoading","then","s","init","NO_INPUT","RunInstructionContext","instructionLoading","useRunInstruction","isUserInputBlock","block","RunInstructionProvider","runInstructionRequest","useId","inputs","setInputs","runRequest","setRunRequest","req","userInputBlocks","prompt","userTexts","close","runWithInput","entries","_ref7","blockKey","userInput","runDisabled","_ref8","runButton","PlayIcon","contextValue","Dialog","onClose","header","footer","Tooltip","UserInput","autoFocus","textAreaRef","currentTarget","target","FormFieldHeaderText","TextArea","rows","resize","isDocAssistable","liveEdit","getAssistableDocId","baseId","useRequestRunInstruction","args","requestRunInstruction","useDraftDelayedTask","documentOnChange","queuedArgs","setQueuedArgs","taskArgs","PatchEvent","from","unset","SparklesIllustration","SparklesIcon","strokeWidth","InspectorOnboarding","onDismiss","Container","textAlign","href","rel","inspectorOnboardingKey","fieldOnboardingKey","isFeatureOnboardingDismissed","featureKey","localStorage","getItem","dismissFeatureOnboarding","setItem","useOnboardingFeature","showOnboarding","setShowOnboarding","dismissOnboarding","BackToInstructionListLink","openInspector","goBack","ArrowLeftIcon","EMPTY_FIELDS","TypePathContext","AssistDocumentForm","border","AssistDocumentFormEditable","targetDocumentType","setParams","typePath","activeKey","activePath","base","useSelectedSchema","fieldExists","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","currentSchema","_ref9","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","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","_ref10","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref11","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","kind","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isFirstAssisted","singlePresence","actions","__internal_slot","ConnectorsStoreContext","useConnectorsStore","hasOverflowScroll","el","getComputedStyle","useRegionRects","relativeBoundsRect","setRelativeBoundsRect","relativeElementRect","setRelativeElementRect","boundsScroll","setBoundsScroll","x","y","scroll","setScroll","boundsScrollXRef","boundsScrollYRef","elementScrollXRef","elementScrollYRef","scrollParents","parentElement","handleResize","scrollParent","boundsRect","getBoundingClientRect","window","innerWidth","innerHeight","domRect","w","h","handleScroll","scrollX","scrollY","scrollLeft","scrollTop","addEventListener","passive","ro","ResizeObserver","observe","unobserve","removeEventListener","disconnect","bounds","element","ConnectorRegion","onRectsChange","restProps","ConnectFromRegion","zIndex","rects","setRects","next","createConnectorsStore","configKeys","fieldKeys","channels","Map","payloads","observers","notifyObservers","connectors","toRects","toPayload","fromRects","fromPayload","payload","observer","delete","idx","indexOf","splice","ConnectorsProvider","onConnectorsChange","getConnectorLinePoint","rect","centerY","isAbove","arrow","marginY","isBelow","startY","endY","outOfBounds","mapConnectorToLine","connector","fromBounds","threshold","fromBottom","toBounds","toBottom","maxStartY","Math","max","min","arrowPath","dir","moveTo","lineTo","strings","delim","quadCurve","x1","y1","drawConnectorPath","line","cornerRadius","fromX","fromY","_toX","toY","toX","dividerX","divider","offsetX","fromPathX","marginX","r0","abs","r1","cmds","ConnectorPath","theme","useTheme","d","stroke","sanity","bg","rgba","DEBUG","AssistConnectorsOverlay","setRedraw","top","left","pointerEvents","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","self","root","Function","_root","Symbol","_Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","getRawTag$1","isOwn","call","unmasked","result","_getRawTag","objectToString","objectToString$1","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","baseGetTag$2","_baseGetTag","isObjectLike","isObjectLike$1","isObjectLike_1","symbolTag","isSymbol","isSymbol$3","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","isKey$1","object","test","_isKey","isObject","isObject$2","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction$1","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","isMasked$1","func","_isMasked","funcProto","funcToString","toSource","toSource$1","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","baseIsNative$1","pattern","_baseIsNative","getValue","getValue$1","_getValue","getNative","getNative$2","_getNative","nativeCreate","_nativeCreate","hashClear","hashClear$1","__data__","_hashClear","hashDelete","hashDelete$1","has","_hashDelete","HASH_UNDEFINED","hashGet","hashGet$1","_hashGet","hashHas","hashHas$1","_hashHas","hashSet","hashSet$1","_hashSet","require$$4","Hash","Hash$1","clear","entry","_Hash","listCacheClear","listCacheClear$1","_listCacheClear","eq","eq$1","other","eq_1","assocIndexOf","assocIndexOf$4","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","toFieldLanguagesKeyPrefix","getPreferredToFieldLanguages","fromLanguageId","parse","setPreferredToFieldLanguages","languageIds","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","hasValuesToTranslate","fieldLanguageMaps","fromLanguage","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","fieldTranslationParams","setFieldTranslationParams","languages","setLanguages","setFromLanguage","toLanguages","setToLanguages","setFieldLanguageMaps","languageClient","selectFromLanguage","preferred","allToLanguages","l","filteredToLanguages","fromId","allToIds","docMembers","transMap","toId","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","Radio","checked","opacity","Checkbox","tl","AssistLayout","setConnectors","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","preview","prepare","_ref16","child","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","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","maxWidth","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","imagePromptPath","node","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_f","_g","_h","fieldSchemaType","isDocumentLevel","docTransTypes","documentTypes","addFieldAction","translateAction","fieldTransEnabled","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","TranslateIcon","fieldTranslate","translateFieldsAction","c","expanded","generateImagActions","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","imageGenAction","manageInstructions","onInstructionAction","privateInstructions","sharedInstructions","runInstructionsGroup","instructionItem","isPrivate","instructionsLength","manageInstructionsItem","ControlsIcon","group","emptyAction","iconRight","AssistDocumentContextProvider","NO_TASKS","useInstructionToaster","assistDocLoaded","previousTasks","prevTaskByKey","fromEntries","endedTasks","startedByUserId","prevTask","isAfter","addSeconds","closable","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_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":[34,54,55,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,124]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/types.ts","../src/_lib/fixedListenQuery.ts","../src/_lib/useListeningQuery.ts","../src/schemas/serialize/schemaUtils.ts","../src/helpers/typeUtils.ts","../src/helpers/assistSupported.ts","../src/schemas/serialize/serializeSchema.ts","../src/schemas/serialize/SchemTypeTool.tsx","../src/translate/paths.ts","../src/assistInspector/constants.ts","../src/_lib/form/DocumentForm.tsx","../src/assistDocument/components/SelectedFieldContext.tsx","../src/assistInspector/helpers.ts","../src/assistDocument/hooks/useDocumentState.ts","../src/helpers/ids.ts","../src/constants.ts","../src/assistDocument/hooks/useStudioAssistDocument.ts","../src/components/TimeAgo.tsx","../src/helpers/misc.ts","../src/assistInspector/InstructionTaskHistoryButton.tsx","../src/useApiClient.ts","../src/assistLayout/AiAssistanceConfigContext.tsx","../src/assistLayout/RunInstructionProvider.tsx","../src/assistDocument/RequestRunInstructionProvider.tsx","../src/onboarding/InspectorOnboarding.tsx","../src/onboarding/onboardingStore.ts","../src/assistDocument/components/instruction/BackToInstructionsLink.tsx","../src/assistDocument/components/AssistDocumentForm.tsx","../src/assistInspector/FieldAutocomplete.tsx","../src/helpers/conditionalMembers.ts","../src/assistInspector/AssistInspector.tsx","../src/assistInspector/index.ts","../src/assistDocument/AssistDocumentContext.tsx","../src/presence/useAssistPresence.ts","../src/components/FadeInContent.tsx","../node_modules/@sanity/color/dist/index.js","../src/presence/AssistAvatar.tsx","../src/presence/AiFieldPresence.tsx","../src/components/AssistFeatureBadge.tsx","../src/onboarding/FieldActionsOnboarding.tsx","../src/onboarding/FirstAssistedPathProvider.tsx","../src/assistFormComponents/AssistField.tsx","../src/_lib/connector/ConnectorsStoreContext.ts","../src/_lib/connector/useConnectorsStore.ts","../src/_lib/connector/helpers.ts","../src/_lib/connector/useRegionRects.ts","../src/_lib/connector/ConnectorRegion.tsx","../src/_lib/connector/ConnectFromRegion.tsx","../src/_lib/connector/ConnectorsStore.ts","../src/_lib/connector/ConnectorsProvider.tsx","../src/_lib/connector/mapConnectorToLine.ts","../src/assistConnectors/draw/arrowPath.ts","../src/assistConnectors/draw/connectorPath.ts","../src/assistConnectors/ConnectorPath.tsx","../src/assistConnectors/AssistConnectorsOverlay.tsx","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../src/translate/getLanguageParams.ts","../src/translate/languageStore.ts","../src/translate/FieldTranslationProvider.tsx","../src/assistLayout/AssistLayout.tsx","../src/components/SafeValueInput.tsx","../src/assistFormComponents/AssistFormBlock.tsx","../src/assistFormComponents/AssistItem.tsx","../src/assistDocument/components/helpers.ts","../src/assistDocument/components/instruction/InstructionInput.tsx","../src/assistDocument/components/generic/HiddenFieldTitle.tsx","../src/assistDocument/components/instruction/appearance/InstructionVisibility.tsx","../src/assistDocument/components/instruction/appearance/IconInput.tsx","../src/assistDocument/components/instruction/FieldRefInput.tsx","../src/assistDocument/components/InstructionsArrayInput.tsx","../src/assistFormComponents/AssistInlineFormBlock.tsx","../src/assistDocument/components/FieldRefPreview.tsx","../src/components/HideReferenceChangedBannerInput.tsx","../src/schemas/contextDocumentSchema.tsx","../../node_modules/get-random-values-esm/index.mjs","../src/_lib/randomKey.ts","../src/assistDocument/components/instruction/PromptInput.tsx","../src/assistDocument/components/InstructionsArrayField.tsx","../src/assistDocument/components/instruction/InstructionOutputField.tsx","../src/assistDocument/components/instruction/InstructionOutputInput.tsx","../src/schemas/assistDocumentSchema.tsx","../src/schemas/index.ts","../src/helpers/useAssistSupported.ts","../src/assistDocument/hooks/useAssistDocumentContextValue.tsx","../src/fieldActions/PrivateIcon.tsx","../src/components/ImageContext.tsx","../src/fieldActions/generateCaptionActions.tsx","../src/translate/translateActions.tsx","../src/fieldActions/generateImageActions.tsx","../src/fieldActions/assistFieldActions.tsx","../src/assistDocument/AssistDocumentContextProvider.tsx","../src/assistDocument/hooks/useInstructionToaster.tsx","../src/assistDocument/AssistDocumentInput.tsx","../src/presence/AssistDocumentPresence.tsx","../src/plugin.tsx"],"sourcesContent":["import {SanityDocument} from 'sanity'\nimport {PortableTextBlock, PortableTextMarkDefinition, PortableTextSpan} from '@portabletext/types'\n\n//id prefixes\nexport const assistDocumentIdPrefix = 'sanity.assist.schemaType.'\nexport const assistDocumentStatusIdPrefix = 'sanity.assist.status.'\nexport const assistSchemaIdPrefix = 'sanity.assist.schema.'\n\n// type names\nexport const assistDocumentTypeName = 'sanity.assist.schemaType.annotations' as const\nexport const assistFieldTypeName = 'sanity.assist.schemaType.field' as const\nexport const instructionTypeName = 'sanity.assist.instruction' as const\nexport const promptTypeName = 'sanity.assist.instruction.prompt' as const\n\nexport const userInputTypeName = 'sanity.assist.instruction.userInput' as const\nexport const instructionContextTypeName = 'sanity.assist.instruction.context' as const\nexport const fieldReferenceTypeName = 'sanity.assist.instruction.fieldRef' as const\n\n// user-facing type. Intentionally does not have sanity. prefix\nexport const contextDocumentTypeName = 'assist.instruction.context' as const\n\nexport const assistTasksStatusTypeName = 'sanity.assist.task.status' as const\nexport const instructionTaskTypeName = 'sanity.assist.instructionTask' as const\nexport const fieldPresenceTypeName = 'sanity.assist.instructionTask.presence' as const\n\nexport const assistSerializedTypeName = 'sanity.assist.serialized.type' as const\nexport const assistSerializedFieldTypeName = 'sanity.assist.serialized.field' as const\n\nexport const outputFieldTypeName = 'sanity.assist.output.field' as const\nexport const outputTypeTypeName = 'sanity.assist.output.type' as const\n\n//url params\nexport const inspectParam = 'inspect' as const\nexport const fieldPathParam = 'pathKey' as const\nexport const instructionParam = 'instruction' as const\n\n// other constants\nexport const documentRootKey = '<document>'\n\nexport type SerializedSchemaMember = Omit<SerializedSchemaType, 'name' | '_type'> & {\n _type?: typeof assistSerializedFieldTypeName\n name?: string\n}\n\nexport interface SerializedSchemaType {\n _type?: typeof assistSerializedTypeName\n _id?: string\n type: string\n name: string\n title?: string\n fields?: SerializedSchemaMember[]\n of?: SerializedSchemaMember[]\n to?: SerializedSchemaMember[]\n annotations?: SerializedSchemaMember[]\n inlineOf?: SerializedSchemaMember[]\n values?: string[] | {value: string; title?: string}[]\n hidden?: boolean | 'function'\n readOnly?: boolean | 'function'\n options?: {\n imagePromptField?: string\n embeddingsIndex?: 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\nexport function getImagePromptFieldOption(schemaType: SchemaType | undefined): string | undefined {\n if (!schemaType) {\n return undefined\n }\n const imagePromptField = (schemaType.options as ImageOptions)?.imagePromptField\n if (imagePromptField) {\n return imagePromptField\n }\n return getImagePromptFieldOption(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) {\n if (!isSchemaAssistEnabled(type)) {\n return false\n }\n\n if (isDisabled(type)) {\n return false\n }\n\n if (type.jsonType === 'array') {\n const unsupportedArray = type.of.every((t) => isDisabled(t))\n return !unsupportedArray\n }\n\n if (type.jsonType === 'object') {\n const unsupportedObject = type.fields.every((field) => isDisabled(field.type))\n return !unsupportedObject\n }\n return true\n}\n\nfunction isDisabled(type: SchemaType) {\n return !isSchemaAssistEnabled(type) || isUnsupportedType(type)\n}\n\nfunction isUnsupportedType(type: SchemaType) {\n return (\n type.jsonType === 'number' ||\n type.name === 'sanity.imageCrop' ||\n type.name === 'sanity.imageHotspot' ||\n (isType(type, 'reference') && !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 isArraySchemaType,\n ObjectSchemaType,\n ReferenceOptions,\n ReferenceSchemaType,\n Schema,\n SchemaType,\n typed,\n} from 'sanity'\nimport {\n assistSchemaIdPrefix,\n assistSerializedFieldTypeName,\n assistSerializedTypeName,\n SerializedSchemaMember,\n SerializedSchemaType,\n} from '../../types'\nimport {hiddenTypes} from './schemaUtils'\nimport {isAssistSupported} from '../../helpers/assistSupported'\nimport {isType} from '../../helpers/typeUtils'\n\ninterface Options {\n leanFormat?: boolean\n}\n\nconst inlineTypes = ['document', 'object', 'image', 'file']\n\nexport function serializeSchema(schema: Schema, options?: Options): SerializedSchemaType[] {\n const list = schema\n .getTypeNames()\n .filter((t) => !(hiddenTypes.includes(t) || t.startsWith('sanity.')))\n .map((t) => schema.get(t))\n .filter((t): t is SchemaType => !!t)\n // because a field can override exclude at the type level, we have to also serialize excluded types\n // so don't do this: .filter((t) => isAssistSupported(t))\n .map((t) => getSchemaStub(t, schema, options))\n .filter((t) => {\n if ('to' in t && t.to && !t.to.length) {\n return false\n }\n if ('of' in t && t.of && !t.of.length) {\n return false\n }\n if ('fields' in t && t.fields && !t.fields.length) {\n return false\n }\n return true\n })\n list.sort((a, b) => (a?.name ?? '').localeCompare(b?.name ?? ''))\n return list\n}\n\nfunction getSchemaStub(\n schemaType: SchemaType,\n schema: Schema,\n options?: Options\n): SerializedSchemaType {\n if (!schemaType.type?.name) {\n console.error('Missing type name', schemaType.type)\n throw new Error('Type is missing name!')\n }\n const baseSchema: SerializedSchemaType = {\n // we dont need type or id when we send using POST, so leave these out to save bandwidth\n ...(options?.leanFormat\n ? {}\n : {_id: `${assistSchemaIdPrefix}${schemaType.name}`, _type: assistSerializedTypeName}),\n name: schemaType.name,\n title: schemaType.title,\n type: schemaType.type.name,\n ...getBaseFields(schema, schemaType, schemaType.type.name, options),\n }\n\n return removeUndef(baseSchema)\n}\n\nfunction getBaseFields(\n schema: Schema,\n type: SchemaType,\n typeName: string,\n options: Options | undefined\n) {\n const schemaOptions = 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 annotations:\n typeName === 'block' && 'fields' in type\n ? serializeAnnotations(type, schema, options)\n : undefined,\n inlineOf:\n typeName === 'block' && 'fields' in type\n ? serializeInlineOf(type, schema, options)\n : undefined,\n hidden:\n typeof type.hidden === 'function' ? ('function' as const) : type.hidden ? true : undefined,\n readOnly:\n typeof type.readOnly === 'function'\n ? ('function' as const)\n : type.readOnly\n ? true\n : undefined,\n })\n}\n\nfunction serializeFields(\n schema: Schema,\n schemaType: ObjectSchemaType,\n options: Options | undefined\n) {\n const fields = schemaType.fieldsets\n ? schemaType.fieldsets.flatMap((fs) =>\n fs.single\n ? fs.field\n : fs.fields.map((f) => ({\n ...f,\n type: {\n ...f.type,\n // if fieldset is (conditionally) hidden, the field must be considered the same way\n // ie, if the field does not show up in conditionalMembers, it is hidden\n // regardless of weather or not it is the field function or the fieldset function that hides it\n hidden:\n typeof fs.hidden === 'function' ? fs.hidden : fs.hidden ? true : f.type.hidden,\n },\n }))\n )\n : schemaType.fields\n\n return fields\n .filter((f) => !['sanity.imageHotspot', 'sanity.imageCrop'].includes(f.type?.name ?? ''))\n .filter((f) => isAssistSupported(f.type))\n .map((field) => serializeMember(schema, field.type, field.name, options))\n}\n\nfunction serializeMember(\n schema: Schema,\n type: SchemaType,\n name: string,\n options: Options | undefined\n): SerializedSchemaMember {\n const typeNameExists = !!schema.get(type?.name)\n const typeName = typeNameExists ? type.name : type.type?.name ?? ''\n return removeUndef({\n ...(options?.leanFormat ? {} : {_type: assistSerializedFieldTypeName}),\n name: name,\n type: typeName,\n title: type.title,\n ...getBaseFields(schema, type, typeName, options),\n })\n}\n\nfunction serializeInlineOf(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const childrenField = blockSchemaType.fields.find((f) => f.name === 'children')\n const childrenType = childrenField?.type\n if (!childrenType || !isArraySchemaType(childrenType)) {\n return undefined\n }\n return arrayOf(\n {\n ...childrenType,\n of: childrenType.of.filter((t) => !isType(t, 'span')),\n },\n schema,\n options\n )\n}\n\nfunction serializeAnnotations(\n blockSchemaType: ObjectSchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] | undefined {\n const markDefs = blockSchemaType.fields.find((f) => f.name === 'markDefs')\n const marksType = markDefs?.type\n if (!marksType || !isArraySchemaType(marksType)) {\n return undefined\n }\n return arrayOf(marksType, schema, options)\n}\n\nfunction arrayOf(\n arrayType: ArraySchemaType,\n schema: Schema,\n options: Options | undefined\n): SerializedSchemaMember[] {\n return arrayType.of\n .filter((type) => isAssistSupported(type))\n .map((t) => {\n return serializeMember(schema, t, t.name, options)\n })\n}\n\nfunction refToTypeNames(type: ReferenceSchemaType) {\n return type.to.map((t) => ({\n type: typed<string>(t.name),\n }))\n}\n\nfunction removeUndef<T extends Record<string, any>>(obj: T): T {\n Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}))\n return obj\n}\n","import {useClient, useSchema} from 'sanity'\nimport {Box, Button, Card, Flex, Label, Spinner, Stack} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {assistSerializedTypeName, SerializedSchemaType} from '../../types'\nimport {SyncIcon} from '@sanity/icons'\nimport {useListeningQuery} from '../../_lib/useListeningQuery'\nimport {serializeSchema} from './serializeSchema'\n\nconst NO_DATA: SerializedSchemaType[] = []\n\nconst defaultTitle = 'Sync schema'\n\nexport function SchemaTypeTool() {\n const schema = useSchema()\n const client = useClient({apiVersion: '2023-01-01'})\n const [saving, setSaving] = useState(false)\n const [syncTitle, setSyncTitle] = useState(defaultTitle)\n\n const {data} = useListeningQuery<SerializedSchemaType[]>('*[_type==$type] | order(_type)', {\n type: assistSerializedTypeName,\n })\n\n const types = useMemo(() => {\n return serializeSchema(schema)\n }, [schema])\n\n const storeTypes = useCallback(() => {\n setSaving(true)\n let canSave = true\n async function store() {\n setSyncTitle(`Syncing 0/${types.length}`)\n const transaction = client.transaction()\n for (let i = 0; i < types.length; i++) {\n if (!canSave) {\n break\n }\n const type = types[i]\n await transaction.createOrReplace(type as Required<typeof type>)\n if (i > 0 && i % 50 === 0) {\n await transaction.commit()\n transaction.reset()\n setSyncTitle(`Syncing ${i}/${types.length}`)\n }\n }\n await transaction.commit()\n }\n store()\n .catch(console.error)\n .finally(() => {\n setSaving(false)\n setSyncTitle(defaultTitle)\n })\n return () => {\n canSave = false\n setSaving(false)\n setSyncTitle(defaultTitle)\n }\n }, [types, client, setSaving, setSyncTitle])\n\n return (\n <Card padding={4} overflow=\"auto\" style={{height: 'calc(100vh - 81px)'}}>\n <Stack space={4}>\n <Box>\n <Button\n icon={saving ? <Spinner style={{marginTop: 5}} /> : SyncIcon}\n text={syncTitle}\n disabled={saving}\n onClick={storeTypes}\n />\n </Box>\n <Flex gap={2}>\n <Stack space={2}>\n <Label>Studio schema</Label>\n <ul>\n {types.map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n\n <Stack space={2}>\n <Label>Stored schema</Label>\n <ul>\n {(data ?? NO_DATA).map((type) => (\n <li key={type.name}>\n <SchemaEntry schemaStub={type} />\n </li>\n ))}\n </ul>\n </Stack>\n </Flex>\n </Stack>\n </Card>\n )\n}\n\nfunction SchemaEntry({schemaStub}: {schemaStub: SerializedSchemaType}) {\n const out = useMemo(() => JSON.stringify(schemaStub, null, 2), [schemaStub])\n return <pre>{out}</pre>\n}\n","import {\n isDocumentSchemaType,\n isKeySegment,\n ObjectSchemaType,\n Path,\n pathToString,\n SanityDocumentLike,\n} from 'sanity'\nimport {extractWithPath} from '@sanity/mutator'\nimport {DocumentMember, TranslationOutput, TranslationOutputsFunction} from './types'\n\nexport interface FieldLanguageMap {\n inputLanguageId: string\n inputPath: Path\n outputs: TranslationOutput[]\n}\n\nconst MAX_DEPTH = 6\n\nexport function getDocumentMembersFlat(doc: SanityDocumentLike, schemaType: ObjectSchemaType) {\n if (!isDocumentSchemaType(schemaType)) {\n console.error(`Schema type is not a document`)\n return []\n }\n\n return extractPaths(doc, schemaType, [], MAX_DEPTH)\n}\n\nfunction extractPaths(\n doc: SanityDocumentLike,\n schemaType: ObjectSchemaType,\n path: Path,\n maxDepth: number\n): DocumentMember[] {\n if (path.length >= maxDepth) {\n return []\n }\n\n return schemaType.fields.reduce<DocumentMember[]>((acc, field) => {\n const fieldPath = [...path, field.name]\n const fieldSchema = field.type\n const {value} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n if (!value) {\n return acc\n }\n\n const thisFieldWithPath: DocumentMember = {\n path: fieldPath,\n name: field.name,\n schemaType: fieldSchema,\n value,\n }\n\n if (fieldSchema.jsonType === 'object') {\n const innerFields = extractPaths(doc, fieldSchema, fieldPath, maxDepth)\n\n return [...acc, thisFieldWithPath, ...innerFields]\n } else if (\n fieldSchema.jsonType === 'array' &&\n fieldSchema.of.length &&\n fieldSchema.of.some((item) => 'fields' in item)\n ) {\n const {value: arrayValue} = extractWithPath(pathToString(fieldPath), doc)[0] ?? {}\n\n let arrayPaths: DocumentMember[] = []\n if ((arrayValue as any)?.length) {\n for (const item of arrayValue as any[]) {\n const 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 const arrayMember = {\n path: itemPath,\n name: item._key,\n schemaType: arrayItemSchema,\n value: item,\n }\n arrayPaths = [...arrayPaths, arrayMember, ...innerFields]\n }\n }\n }\n\n return [...acc, thisFieldWithPath, ...arrayPaths]\n }\n\n return [...acc, thisFieldWithPath]\n }, [])\n}\n\n/**\n * Default implementation for plugin config `translate.field.translationOutputs`\n *\n * @see FieldTranslationConfig#translationOutputs\n */\nexport const defaultLanguageOutputs: TranslationOutputsFunction = function (\n member,\n enclosingType,\n translateFromLanguageId,\n translateToLanguageIds\n) {\n if (\n member.schemaType.jsonType === 'object' &&\n member.schemaType.name.startsWith('internationalizedArray')\n ) {\n const pathEnd = member.path.slice(-1)\n\n const language = isKeySegment(pathEnd[0]) ? pathEnd[0]._key : null\n return language === translateFromLanguageId\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), {_key: translateToId}],\n }))\n : undefined\n }\n\n if (enclosingType.jsonType === 'object' && enclosingType.name.startsWith('locale')) {\n return translateFromLanguageId === member.name\n ? translateToLanguageIds.map((translateToId) => ({\n id: translateToId,\n outputPath: [...member.path.slice(0, -1), translateToId],\n }))\n : undefined\n }\n\n return undefined\n}\n\nexport function getFieldLanguageMap(\n documentSchema: ObjectSchemaType,\n documentMembers: DocumentMember[],\n translateFromLanguageId: string,\n outputLanguageIds: string[],\n langFn: TranslationOutputsFunction\n): FieldLanguageMap[] {\n const translationMaps: FieldLanguageMap[] = []\n for (const member of documentMembers) {\n const parentPath = member.path.slice(0, -1)\n const enclosingType =\n documentMembers.find((m) => pathToString(m.path) === pathToString(parentPath))?.schemaType ??\n documentSchema\n\n const translations = langFn(\n member,\n enclosingType,\n translateFromLanguageId,\n outputLanguageIds\n )?.filter((translation) => translation.id !== translateFromLanguageId)\n\n if (translations) {\n translationMaps.push({\n inputLanguageId: translateFromLanguageId,\n inputPath: member.path,\n outputs: translations,\n })\n }\n }\n\n return translationMaps\n}\n","export const aiInspectorId = 'ai-assistance'\n","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 {type PaneRouterContextValue, usePaneRouter} from 'sanity/desk'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {SelectedFieldContext} from '../assistDocument/components/SelectedFieldContext'\nimport {extractWithPath} from '@sanity/mutator'\n\nexport interface FieldRef {\n key: string\n path: Path\n title: string\n schemaType: SchemaType\n icon: ComponentType\n synthetic?: boolean\n}\n\nconst maxDepth = 6\n\nexport function getTypeIcon(schemaType: SchemaType) {\n let t: SchemaType | undefined = schemaType\n\n while (t) {\n if (t.icon) return t.icon\n t = t.type\n }\n\n if (isType(schemaType, 'slug')) return LinkIcon\n if (isType(schemaType, 'image')) return ImageIcon\n if (schemaType.jsonType === 'array' && isPortableTextArray(schemaType)) return BlockContentIcon\n\n if (schemaType.jsonType === 'array') return OlistIcon\n if (schemaType.jsonType === 'object') return BlockquoteIcon\n if (schemaType.jsonType === 'string') return StringIcon\n\n return DocumentIcon\n}\n\nexport function getFieldRefsWithDocument(schemaType: ObjectSchemaType): FieldRef[] {\n const fields = getFieldRefs(schemaType)\n return [\n {\n key: documentRootKey,\n icon: schemaType.icon ?? DocumentIcon,\n title: `The entire document`,\n path: [],\n schemaType: schemaType,\n },\n\n ...fields,\n ]\n}\n\nexport function getFieldRefs(\n schemaType: ObjectSchemaType,\n parent?: FieldRef,\n depth = 0\n): FieldRef[] {\n if (depth >= maxDepth) {\n return []\n }\n return schemaType.fields\n .filter((f) => !f.name.startsWith('_'))\n .flatMap((field) => {\n const path: Path = parent ? [...parent.path, field.name] : [field.name]\n const title = field.type.title ?? field.name\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: field.type,\n icon: getTypeIcon(field.type),\n }\n const fields =\n field.type.jsonType === 'object' ? getFieldRefs(field.type, fieldRef, depth + 1) : []\n\n const syntheticFields =\n field.type.jsonType === 'array' ? getSyntheticFields(field.type, fieldRef, depth + 1) : []\n if (!isAssistSupported(field.type)) {\n return [...fields, ...syntheticFields]\n }\n return [fieldRef, ...fields, ...syntheticFields]\n })\n}\n\nfunction getSyntheticFields(schemaType: ArraySchemaType, parent?: FieldRef, depth = 0) {\n if (depth >= maxDepth) {\n return []\n }\n\n return schemaType.of\n .filter((itemType) => !isType(itemType, 'block'))\n .flatMap((itemType) => {\n const segment = {_key: itemType.name}\n const title = itemType.title ?? itemType.name\n const path: Path = parent ? [...parent.path, segment] : [segment]\n const fieldRef: FieldRef = {\n key: patchableKey(pathToString(path)),\n path,\n title: parent ? [parent.title, title].join(' / ') : title,\n schemaType: itemType,\n icon: getTypeIcon(itemType),\n synthetic: true,\n }\n const fields =\n itemType.jsonType === 'object' ? getFieldRefs(itemType, fieldRef, depth + 1) : []\n\n if (!isAssistSupported(itemType)) {\n return fields\n }\n return [fieldRef, ...fields]\n })\n}\n\nexport function getTypePath(doc: SanityDocumentLike, pathString: string) {\n if (!pathString) {\n return undefined\n }\n\n const path = stringToPath(pathString)\n const currentPath: Path = []\n let valid = true\n const syntheticPath = path.map((segment) => {\n currentPath.push(segment)\n\n if (isKeySegment(segment)) {\n const match = extractWithPath(pathToString(currentPath), doc)[0]\n const value = match?.value\n if (match && value && typeof value === 'object' && '_type' in value) {\n return {_key: value._type as string}\n }\n valid = false\n }\n return segment\n })\n\n return valid ? patchableKey(pathToString(syntheticPath)) : undefined\n}\n\n/**\n * mutator crashes if path contains certain letters\n * @param pathKey\n */\nfunction patchableKey(pathKey: string) {\n return pathKey.replace(/[=]=/g, ':').replace(/[[\\]]/g, '|').replace(/\"/g, '')\n}\n\nexport function useTypePath(doc: SanityDocumentLike, pathString: string) {\n return useMemo(() => getTypePath(doc, pathString), [doc, pathString])\n}\n\nexport function useSelectedField(\n documentSchemaType?: SchemaType,\n path?: string\n): FieldRef | undefined {\n const selectableFields = useMemo(\n () =>\n documentSchemaType && isObjectSchemaType(documentSchemaType)\n ? getFieldRefsWithDocument(documentSchemaType)\n : [],\n [documentSchemaType]\n )\n\n return useMemo(() => {\n return path ? selectableFields?.find((f) => f.key === path) : undefined\n }, [selectableFields, path])\n}\n\nexport function useSelectedFieldTitle() {\n const {params} = useAiPaneRouter()\n const {documentSchema} = useContext(SelectedFieldContext) ?? {}\n const selectedField = useSelectedField(documentSchema, params[fieldPathParam])\n return getFieldTitle(selectedField)\n}\n\nexport function getFieldTitle(field?: FieldRef) {\n const schemaType = field?.schemaType\n return field?.title ?? schemaType?.title ?? schemaType?.name ?? 'Untitled'\n}\n\nexport type AiPaneRouter = Omit<PaneRouterContextValue, 'setParams' | 'params'> & {\n params: AssistInspectorRouteParams\n setParams: (p: Record<keyof AssistInspectorRouteParams, string | undefined>) => void\n}\n\nexport function useAiPaneRouter() {\n const paneRouter = usePaneRouter()\n\n return useMemo(\n () => ({...paneRouter, params: paneRouter.params ?? {}} as AiPaneRouter),\n [paneRouter]\n )\n}\n","import {useEditState} from 'sanity'\n\nexport function useDocumentState<T>(id: string, docType: string): T | undefined {\n const state = useEditState(id, docType)\n return (state.draft || state.published) as T | undefined\n}\n","import {assistDocumentIdPrefix, assistDocumentStatusIdPrefix} from '../types'\n\nconst aiDocPrefixPattern = new RegExp(`^${assistDocumentIdPrefix}`)\n\nexport function publicId(id: string) {\n return id.replace('drafts.', '')\n}\n\nexport function assistDocumentId(documentType: string) {\n return `${assistDocumentIdPrefix}${documentType}`\n}\n\nexport function documentTypeFromAiDocumentId(id: string) {\n return id.replace(aiDocPrefixPattern, '')\n}\n\nexport function assistTasksStatusId(documentId: string) {\n return `${assistDocumentStatusIdPrefix}${publicId(documentId)}`\n}\n","import {minutesToMilliseconds} from 'date-fns'\n\nexport const releaseAnnouncementUrl =\n 'https://www.sanity.io/blog/sanity-ai-assist-announcement?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const instructionGuideUrl =\n 'https://sanity.io/guides/getting-started-with-ai-assist-instructions?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const giveFeedbackUrl = 'https://forms.gle/Kwz7CThxGeA2GiEU8'\n\nexport const salesUrl =\n 'https://www.sanity.io/contact/sales?utm_source=sanity-assist-plugin&utm_medium=organic_social&utm_campaign=ai-assist&utm_content='\n\nexport const packageName = '@sanity/assist'\n\nexport const pluginTitle = 'Sanity AI Assist'\n\nexport const pluginTitleShort = 'AI Assist'\n\nexport const maxHistoryVisibilityMs = minutesToMilliseconds(30)\n","import {useEffect, useMemo} from 'react'\nimport {\n assistDocumentTypeName,\n AssistTasksStatus,\n assistTasksStatusTypeName,\n InstructionTask,\n StudioAssistDocument,\n StudioAssistField,\n StudioInstruction,\n} from '../../types'\nimport {ObjectSchemaType, typed, useClient, useCurrentUser} from 'sanity'\nimport {useDocumentState} from './useDocumentState'\nimport {assistDocumentId, assistTasksStatusId} from '../../helpers/ids'\nimport {maxHistoryVisibilityMs} from '../../constants'\n\ninterface UseAssistDocumentProps {\n documentId: string\n schemaType: ObjectSchemaType\n initDoc?: boolean\n}\n\nexport function useStudioAssistDocument({\n documentId,\n schemaType,\n initDoc,\n}: UseAssistDocumentProps): StudioAssistDocument | undefined {\n const documentTypeName = schemaType.name\n const currentUser = useCurrentUser()\n\n const assistDocument = useDocumentState<StudioAssistDocument>(\n assistDocumentId(documentTypeName),\n assistDocumentTypeName\n )\n const assistTasksStatus = useDocumentState<AssistTasksStatus>(\n assistTasksStatusId(documentId ?? ''),\n assistTasksStatusTypeName\n )\n\n const client = useClient({apiVersion: '2023-01-01'})\n\n useEffect(() => {\n if (!assistDocument && initDoc) {\n client\n .createIfNotExists({\n _id: assistDocumentId(documentTypeName),\n _type: assistDocumentTypeName,\n })\n .catch((e) => {\n // best effort\n })\n }\n }, [client, assistDocument, documentTypeName, initDoc])\n\n return useMemo(() => {\n if (!assistDocument) {\n return undefined\n }\n const tasks = assistTasksStatus?.tasks ?? []\n const fields = (assistDocument?.fields ?? []).map((assistField): StudioAssistField => {\n return {\n ...assistField,\n tasks: tasks.filter((task) => task.path === assistField.path),\n instructions: assistField.instructions\n ?.filter((p) => !p.userId || p.userId === currentUser?.id)\n .map((instruction) => asStudioInstruction(instruction, tasks)),\n }\n })\n return typed<StudioAssistDocument>({\n ...assistDocument,\n tasks: tasks?.map((task) => {\n const instruction = fields\n .find((f) => f.path === task.path)\n ?.instructions?.find((i) => i._key === task.instructionKey)\n return {\n ...task,\n instruction,\n }\n }),\n fields: fields,\n })\n }, [assistDocument, assistTasksStatus, currentUser])\n}\n\nfunction asStudioInstruction(\n instruction: StudioInstruction,\n run: InstructionTask[]\n): StudioInstruction {\n return {\n ...instruction,\n tasks: run\n .filter((task) => task.instructionKey === instruction._key)\n .filter(\n (task) =>\n task.started &&\n new Date().getTime() - new Date(task.started).getTime() < maxHistoryVisibilityMs\n ),\n }\n}\n","import {useEffect, useReducer} from 'react'\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow'\n\nfunction useInterval(ms: number) {\n const [tick, update] = useReducer((n) => n + 1, 0)\n\n useEffect(() => {\n const i = setInterval(update, ms)\n return () => clearInterval(i)\n }, [ms])\n return tick\n}\n\nexport function TimeAgo({date}: {date?: string}) {\n useInterval(1000)\n const timeSince = formatDistanceToNow(date ? new Date(date) : new Date())\n return <span title={timeSince}>{timeSince} ago</span>\n}\n","import {documentRootKey, StudioInstruction} from '../types'\nimport {Path, pathToString} from 'sanity'\nimport {useMemo} from 'react'\n\nexport function usePathKey(path: Path | string) {\n return useMemo(() => {\n 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'\nimport {ConditionalMemberState} from './helpers/conditionalMembers'\n\nexport interface UserTextInstance {\n blockKey: string\n userInput: string\n}\n\nexport interface RunInstructionRequest {\n documentId: string\n assistDocumentId: string\n path: string\n typePath?: string\n instructionKey: string\n userId?: string\n userTexts?: UserTextInstance[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nexport interface InstructStatus {\n enabled: boolean\n initialized: boolean\n validToken: boolean\n}\n\nexport interface TranslateRequest {\n documentId: string\n translatePath: Path\n languagePath?: string\n fieldLanguageMap?: FieldLanguageMap[]\n conditionalMembers?: ConditionalMemberState[]\n}\n\nconst basePath = '/assist/tasks/instruction'\n\nexport function useApiClient(customApiClient?: (defaultClient: SanityClient) => SanityClient) {\n const client = useClient({apiVersion: '2023-06-05'})\n return useMemo(\n () => (customApiClient ? customApiClient(client) : client),\n [client, customApiClient]\n )\n}\n\nexport function useTranslate(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const translate = useCallback(\n ({\n documentId,\n languagePath,\n translatePath,\n fieldLanguageMap,\n conditionalMembers,\n }: TranslateRequest) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/translate/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n documentId,\n types,\n languagePath,\n fieldLanguageMap,\n conditionalMembers,\n translatePath:\n translatePath.length === 0 ? documentRootKey : pathToString(translatePath),\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Translate failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n translate,\n loading,\n }),\n [translate, loading]\n )\n}\n\nexport function useGenerateCaption(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateCaption = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-caption/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate 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 useGenerateImage(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n const toast = useToast()\n\n const generateImage = useCallback(\n ({path, documentId}: {path: string; documentId: string}) => {\n setLoading(true)\n\n return apiClient\n .request({\n method: 'POST',\n url: `/assist/tasks/generate-image/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n path,\n documentId,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Generate image from prompt failed',\n description: e.message,\n })\n setLoading(false)\n throw e\n })\n .finally(() => {\n // adding some artificial delay here\n // server responds with 201 then proceeds; we dont need to allow spamming the button\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n })\n },\n [setLoading, apiClient, toast, user, types]\n )\n\n return useMemo(\n () => ({\n generateImage,\n loading,\n }),\n [generateImage, loading]\n )\n}\n\nexport function useGetInstructStatus(apiClient: SanityClient) {\n const [loading, setLoading] = useState(true)\n\n const getInstructStatus = useCallback(async () => {\n setLoading(true)\n\n const projectId = apiClient.config().projectId\n try {\n const status = await apiClient.request<InstructStatus>({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/status?projectId=${projectId}`,\n })\n\n return status\n } finally {\n setLoading(false)\n }\n }, [setLoading, apiClient])\n\n return {\n loading,\n getInstructStatus,\n }\n}\n\nexport function useInitInstruct(apiClient: SanityClient) {\n const [loading, setLoading] = useState(false)\n const initInstruct = useCallback(() => {\n setLoading(true)\n return apiClient\n .request({\n method: 'GET',\n url: `${basePath}/${apiClient.config().dataset}/init?projectId=${\n apiClient.config().projectId\n }`,\n })\n .finally(() => {\n setLoading(false)\n })\n }, [setLoading, apiClient])\n\n return {\n loading,\n initInstruct,\n }\n}\n\nexport function useRunInstructionApi(apiClient: SanityClient) {\n const toast = useToast()\n const [loading, setLoading] = useState(false)\n const user = useCurrentUser()\n const schema = useSchema()\n const types = useMemo(() => serializeSchema(schema, {leanFormat: true}), [schema])\n\n const runInstruction = useCallback(\n (request: RunInstructionRequest) => {\n setLoading(true)\n return apiClient\n .request({\n method: 'POST',\n url: `${basePath}/${apiClient.config().dataset}?projectId=${\n apiClient.config().projectId\n }`,\n body: {\n ...request,\n types,\n userId: user?.id,\n },\n })\n .catch((e) => {\n toast.push({\n status: 'error',\n title: 'Instruction failed',\n description: e.message,\n })\n throw e\n })\n .finally(() => {\n setLoading(false)\n })\n },\n [apiClient, types, user, toast]\n )\n\n return useMemo(\n () => ({\n runInstruction,\n loading,\n }),\n [runInstruction, loading]\n )\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {AssistPluginConfig} from '../plugin'\nimport {InstructStatus, useApiClient, useGetInstructStatus, useInitInstruct} from '../useApiClient'\n\nexport interface AiAssistanceConfigContextValue {\n config: AssistPluginConfig\n status?: InstructStatus\n statusLoading: boolean\n initLoading: boolean\n init: () => void\n error?: Error\n}\n\nexport const AiAssistanceConfigContext = createContext<AiAssistanceConfigContextValue>({} as any)\n\nexport function useAiAssistanceConfig() {\n const context = useContext(AiAssistanceConfigContext)\n if (!context) {\n throw new Error('Missing AiAssistanceConfigContext')\n }\n return context\n}\n\nexport function AiAssistanceConfigProvider(props: {\n children?: ReactNode\n config: AssistPluginConfig\n}) {\n const [status, setStatus] = useState<InstructStatus | undefined>()\n const [error, setError] = useState<Error | undefined>()\n\n const apiClient = useApiClient(props.config?.__customApiClient)\n const {getInstructStatus, loading: statusLoading} = useGetInstructStatus(apiClient)\n const {initInstruct, loading: initLoading} = useInitInstruct(apiClient)\n\n useEffect(() => {\n getInstructStatus()\n .then((s) => setStatus(s))\n .catch((e) => {\n console.error(e)\n setError(e as Error)\n })\n }, [getInstructStatus])\n\n const init = useCallback(async () => {\n setError(undefined)\n try {\n await initInstruct()\n const status = await getInstructStatus()\n setStatus(status)\n } catch (e) {\n console.error('Failed to init ai assistance', e)\n setError(e as Error)\n }\n }, [initInstruct, getInstructStatus, setStatus])\n\n const {config, children} = props\n const context = useMemo<AiAssistanceConfigContextValue>(() => {\n return {\n config,\n status,\n statusLoading,\n init,\n initLoading,\n error,\n }\n }, [config, status, init, statusLoading, initLoading, error])\n\n return (\n <AiAssistanceConfigContext.Provider value={context}>\n {children}\n </AiAssistanceConfigContext.Provider>\n )\n}\n","import {Button, Dialog, Flex, Stack, Text, TextArea, Tooltip} from '@sanity/ui'\nimport {getInstructionTitle} from '../helpers/misc'\nimport {PlayIcon} from '@sanity/icons'\nimport {\n createContext,\n Dispatch,\n FormEvent,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {UserInputBlock, userInputTypeName} from '../types'\nimport {RunInstructionArgs} from './AssistLayout'\nimport {useApiClient, useRunInstructionApi} from '../useApiClient'\nimport {useAiAssistanceConfig} from './AiAssistanceConfigContext'\nimport {FormFieldHeaderText} from 'sanity'\n\ntype BlockInputs = Record<string, string>\nconst NO_INPUT: BlockInputs = {}\n\nexport interface RunInstructionContextValue {\n runInstruction: (req: RunInstructionArgs) => void\n instructionLoading: boolean\n}\n\nexport const RunInstructionContext = createContext<RunInstructionContextValue>({\n runInstruction: () => {},\n instructionLoading: false,\n})\n\nexport function useRunInstruction() {\n return useContext(RunInstructionContext)\n}\n\nfunction isUserInputBlock(block: {_type: string}): block is UserInputBlock {\n return block._type === userInputTypeName\n}\n\nexport function RunInstructionProvider(props: PropsWithChildren<{}>) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {runInstruction: runInstructionRequest, loading} = useRunInstructionApi(apiClient)\n\n const id = useId()\n\n const [inputs, setInputs] = useState(NO_INPUT)\n const [runRequest, setRunRequest] = useState<\n (RunInstructionArgs & {userInputBlocks: UserInputBlock[]}) | undefined\n >()\n\n const runInstruction = useCallback(\n (req: RunInstructionArgs) => {\n if (loading) {\n return\n }\n const {instruction, ...request} = req\n const instructionKey = instruction._key\n const userInputBlocks = instruction?.prompt\n ?.flatMap((block) =>\n block._type === 'block' ? block.children.filter(isUserInputBlock) : [block]\n )\n .filter(isUserInputBlock)\n\n if (!userInputBlocks?.length) {\n runInstructionRequest({\n ...request,\n instructionKey,\n userTexts: undefined,\n })\n return\n }\n\n setRunRequest({\n ...req,\n userInputBlocks,\n })\n },\n [setRunRequest, runInstructionRequest, loading]\n )\n\n const close = useCallback(() => {\n setRunRequest(undefined)\n setInputs(NO_INPUT)\n }, [setRunRequest, setInputs])\n\n const runWithInput = useCallback(() => {\n if (runRequest) {\n const {instruction, userTexts, ...request} = runRequest\n runInstructionRequest({\n ...request,\n instructionKey: instruction._key,\n userTexts: Object.entries(inputs).map(([key, value]) => ({\n blockKey: key,\n userInput: value,\n })),\n })\n }\n close()\n }, [close, runInstructionRequest, runRequest, inputs])\n\n const open = !!runRequest\n\n const runDisabled = useMemo(\n () =>\n (runRequest?.userInputBlocks?.length ?? 0) >\n Object.entries(inputs).filter(([, value]) => !!value).length,\n [runRequest?.userInputBlocks, inputs]\n )\n\n const runButton = (\n <Button\n text=\"Run instruction\"\n onClick={runWithInput}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n />\n )\n\n const contextValue: RunInstructionContextValue = useMemo(\n () => ({runInstruction, instructionLoading: loading}),\n [runInstruction, loading]\n )\n\n return (\n <RunInstructionContext.Provider value={contextValue}>\n {open ? (\n <Dialog\n id={id}\n open={open}\n onClose={close}\n width={1}\n header={getInstructionTitle(runRequest?.instruction)}\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>Unable to run instruction. All fields must have a value.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n <Stack padding={4} space={2}>\n {runRequest?.userInputBlocks?.map((block, i) => (\n <UserInput\n key={block._key}\n block={block}\n autoFocus={i === 0}\n inputs={inputs}\n setInputs={setInputs}\n />\n ))}\n </Stack>\n </Dialog>\n ) : null}\n {props.children}\n </RunInstructionContext.Provider>\n )\n}\n\nfunction UserInput(props: {\n block: UserInputBlock\n inputs: BlockInputs\n setInputs: Dispatch<SetStateAction<BlockInputs>>\n autoFocus?: boolean\n}) {\n const {block, autoFocus, setInputs, inputs} = props\n const key = block._key\n const textAreaRef = useRef<HTMLTextAreaElement>(null)\n\n const onChange = useCallback(\n (e: FormEvent<HTMLTextAreaElement>) => {\n setInputs((current) => ({\n ...current,\n [key]: (e.currentTarget ?? e.target).value,\n }))\n },\n [key, setInputs]\n )\n\n const value = useMemo(() => inputs[key], [inputs, key])\n\n useEffect(() => {\n if (!autoFocus) {\n return\n }\n setTimeout(() => textAreaRef.current?.focus(), 0)\n }, [autoFocus])\n\n return (\n <Stack padding={2} space={3}>\n <FormFieldHeaderText\n title={block?.message ?? 'Provide more context'}\n description={block.description}\n />\n <TextArea\n ref={textAreaRef}\n rows={4}\n value={value}\n onChange={onChange}\n style={{resize: 'vertical'}}\n />\n </Stack>\n )\n}\n","import {useRunInstruction} from '../assistLayout/RunInstructionProvider'\nimport {useCallback, useEffect, useState} from 'react'\nimport {ObjectSchemaType, PatchEvent, SanityDocument, unset} from 'sanity'\nimport {publicId} from '../helpers/ids'\n\nexport interface DraftDelayedTaskArgs<T> {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n task: (args: T) => void\n}\n\nexport function isDocAssistable(\n documentSchemaType: ObjectSchemaType,\n published?: SanityDocument | null,\n draft?: SanityDocument | null\n) {\n return !!(documentSchemaType.liveEdit ? published : draft)\n}\n\nexport function getAssistableDocId(documentSchemaType: ObjectSchemaType, documentId: string) {\n const baseId = publicId(documentId)\n return documentSchemaType.liveEdit ? baseId : `drafts.${baseId}`\n}\n\nexport function useRequestRunInstruction(args: {\n documentOnChange: (event: PatchEvent) => void\n // indicates if the document is a draft or liveEditable currently\n isDocAssistable: boolean\n}) {\n const {runInstruction, instructionLoading} = useRunInstruction()\n const requestRunInstruction = useDraftDelayedTask({\n ...args,\n task: runInstruction,\n })\n\n return {\n instructionLoading,\n requestRunInstruction,\n }\n}\n\n/**\n * Ensures that the current document is a draft before running task\n */\nexport function useDraftDelayedTask<T>(args: DraftDelayedTaskArgs<T>) {\n const {documentOnChange, isDocAssistable, task} = args\n\n const [queuedArgs, setQueuedArgs] = useState<T | undefined>(undefined)\n\n useEffect(() => {\n if (queuedArgs && isDocAssistable) {\n task(queuedArgs)\n setQueuedArgs(undefined)\n }\n }, [queuedArgs, isDocAssistable, task])\n\n return useCallback(\n (taskArgs: T) => {\n // make a dummy edit: this will trigger the document/draft to be created\n documentOnChange(PatchEvent.from([unset(['_force_document_creation'])]))\n setQueuedArgs(taskArgs)\n },\n [setQueuedArgs, documentOnChange]\n )\n}\n","import {Box, Button, Container, Flex, Stack, Text} from '@sanity/ui'\nimport {SparklesIcon} from '@sanity/icons'\nimport {releaseAnnouncementUrl} from '../constants'\nimport styled from 'styled-components'\n\nconst SparklesIllustration = styled(SparklesIcon)({\n fontSize: '3.125em',\n '& path': {\n strokeWidth: `0.6px !important`,\n },\n})\n\nexport function InspectorOnboarding(props: {onDismiss: () => void}) {\n const {onDismiss} = props\n return (\n <Box padding={4}>\n <Container width={0}>\n <Stack space={4}>\n <div style={{textAlign: 'center'}}>\n <SparklesIllustration />\n </div>\n <Text align=\"center\" size={1}>\n Create reusable AI instructions that can be applied across all documents of a certain\n type.\n </Text>\n\n <Flex align=\"center\" gap={2} justify=\"center\">\n <Button\n as=\"a\"\n href={releaseAnnouncementUrl}\n rel=\"noreferrer\"\n target=\"_blank\"\n fontSize={1}\n mode=\"default\"\n onClick={onDismiss}\n padding={2}\n text=\"Learn more\"\n tone=\"primary\"\n />\n <Button fontSize={1} mode=\"bleed\" onClick={onDismiss} padding={2} text=\"Dismiss\" />\n </Flex>\n </Stack>\n </Container>\n </Box>\n )\n}\n","import {useCallback, useState} from 'react'\n\nexport const inspectorOnboardingKey = 'sanityStudio:assist:inspector:onboarding:dismissed'\nexport const fieldOnboardingKey = 'sanityStudio:assist:field:onboarding:dismissed'\n\nexport function isFeatureOnboardingDismissed(featureKey: string): boolean {\n if (typeof localStorage === 'undefined') {\n return false\n }\n\n const value = localStorage.getItem(featureKey)\n return value === 'true'\n}\n\nexport function dismissFeatureOnboarding(featureKey: string) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(featureKey, 'true')\n}\n\nexport function useOnboardingFeature(featureKey: string) {\n const [showOnboarding, setShowOnboarding] = useState(\n () => !isFeatureOnboardingDismissed(featureKey)\n )\n const dismissOnboarding = useCallback(() => {\n setShowOnboarding(false)\n dismissFeatureOnboarding(featureKey)\n }, [setShowOnboarding, featureKey])\n\n return {showOnboarding, dismissOnboarding}\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {instructionParam} from '../../../types'\nimport {useDocumentPane} from 'sanity/desk'\nimport {aiInspectorId} from '../../../assistInspector/constants'\n\nexport function BackToInstructionListLink() {\n const {openInspector} = useDocumentPane()\n\n const goBack = useCallback(\n () => openInspector(aiInspectorId, {[instructionParam]: undefined as any}),\n [openInspector]\n )\n\n return (\n <div>\n <Button\n as=\"a\"\n fontSize={1}\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n padding={1}\n space={2}\n onClick={goBack}\n text=\" Instructions\"\n textAlign=\"left\"\n />\n </div>\n )\n}\n","import {\n AssistDocument,\n AssistField,\n assistFieldTypeName,\n AssistInspectorRouteParams,\n documentRootKey,\n fieldPathParam,\n instructionParam,\n} 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","/* eslint-disable max-depth */\nimport {\n ArrayOfObjectsFormNode,\n ArrayOfObjectsItemMember,\n ArrayOfPrimitivesFormNode,\n DocumentFormNode,\n FieldsetState,\n isObjectSchemaType,\n ObjectFormNode,\n Path,\n pathToString,\n SchemaType,\n} from 'sanity'\n\nconst MAX_DEPTH = 8\n\nexport interface ConditionalMemberState {\n path: string\n hidden: boolean\n readOnly: boolean\n}\n\ninterface ConditionalMemberInnerState extends ConditionalMemberState {\n conditional: boolean\n}\n\n/**\n * This is used to statically determine the state of the functions on the server-side.\n * Paths which has a schema with conditional config should be considered hidden: true and/or readOnly: true\n * Only conditional paths are included, as static props can be determined from schema.\n *\n * Returns paths that has conditional hidden or readOnly schema config (function) and that.\n * Form-state does not contain hidden members.\n *\n * Note:\n * * If a parent path is hidden, no child paths are included\n * * If a parent path is readOnly, no child paths are included\n * * If a path is hidden, it is not included; only conditionally visible paths will be returned, with hidden: false\n */\nexport function getConditionalMembers(docState: DocumentFormNode): ConditionalMemberState[] {\n const doc: ConditionalMemberInnerState = {\n path: '',\n hidden: false,\n readOnly: !!docState.readOnly,\n conditional: typeof docState.schemaType.hidden === 'function',\n }\n return [doc, ...extractConditionalPaths(docState, MAX_DEPTH)]\n .filter((v) => v.conditional)\n .map(({conditional, ...state}) => ({...state}))\n}\n\nfunction isConditional(schemaType: SchemaType) {\n return typeof schemaType.hidden === 'function' || typeof schemaType.readOnly === 'function'\n}\n\nfunction conditionalState(memberState: {\n path: Path\n schemaType: SchemaType\n readOnly?: boolean\n}): ConditionalMemberInnerState {\n return {\n path: pathToString(memberState.path),\n readOnly: !!memberState.readOnly,\n hidden: false, // if its in members, its not hidden\n conditional: isConditional(memberState.schemaType),\n }\n}\n\nfunction extractConditionalPaths(\n node: ObjectFormNode | FieldsetState,\n maxDepth: number\n): ConditionalMemberInnerState[] {\n if (node.path.length >= maxDepth) {\n return []\n }\n\n return node.members.reduce<ConditionalMemberInnerState[]>((acc, member) => {\n if (member.kind === 'error') {\n return acc\n }\n if (member.kind === 'field') {\n const schemaType = member.field.schemaType\n if (schemaType.jsonType === 'object') {\n const innerFields = member.field.readOnly\n ? []\n : extractConditionalPaths(member.field as ObjectFormNode, maxDepth)\n return [...acc, conditionalState(member.field), ...innerFields]\n } else if (schemaType.jsonType === 'array') {\n const array = member.field as ArrayOfObjectsFormNode | ArrayOfPrimitivesFormNode\n\n let arrayPaths: ConditionalMemberInnerState[] = []\n const isObjectsArray = array.members.some(\n (m) => m.kind === 'item' && isObjectSchemaType(m.item.schemaType)\n )\n if (!array.readOnly) {\n for (const arrayMember of array.members) {\n if (arrayMember.kind === 'error') {\n continue\n }\n\n const innerFields =\n isObjectsArray && !arrayMember.item.readOnly\n ? extractConditionalPaths((arrayMember as ArrayOfObjectsItemMember).item, maxDepth)\n : []\n\n arrayPaths = [...arrayPaths, conditionalState(arrayMember.item), ...innerFields]\n }\n }\n return [...acc, conditionalState(array), ...arrayPaths]\n }\n\n return [...acc, conditionalState(member.field)]\n } else if (member.kind === 'fieldSet') {\n const conditionalFieldset = !!(node as ObjectFormNode).schemaType?.fieldsets?.some(\n (f) => !f.single && f.name === member.fieldSet.name && typeof f.hidden === 'function'\n )\n const innerFields = extractConditionalPaths(member.fieldSet, maxDepth).map((f) => ({\n ...f,\n // if fieldset is conditional, visible fields must also be considered conditional\n conditional: conditionalFieldset ?? f.conditional,\n }))\n return [...acc, ...innerFields]\n }\n\n return acc\n }, [])\n}\n","import {ArrowRightIcon, CloseIcon, PlayIcon, RetryIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {\n DocumentInspectorProps,\n PresenceOverlay,\n useEditState,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {\n DocumentInspectorHeader,\n DocumentPaneNode,\n DocumentPaneProvider,\n useDocumentPane,\n} from 'sanity/desk'\nimport {DocumentForm} from '../_lib/form'\nimport {assistDocumentTypeName, fieldPathParam, instructionParam} from '../types'\nimport {FieldRef, getFieldTitle, useAiPaneRouter, useSelectedField, useTypePath} from './helpers'\nimport styled from 'styled-components'\nimport {useStudioAssistDocument} from '../assistDocument/hooks/useStudioAssistDocument'\nimport {InstructionTaskHistoryButton} from './InstructionTaskHistoryButton'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {giveFeedbackUrl, pluginTitle, releaseAnnouncementUrl, salesUrl} from '../constants'\nimport {assistDocumentId} from '../helpers/ids'\nimport {\n getAssistableDocId,\n isDocAssistable,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {InspectorOnboarding} from '../onboarding/InspectorOnboarding'\nimport {inspectorOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\nimport {TypePathContext} from '../assistDocument/components/AssistDocumentForm'\nimport {FieldTitle} from './FieldAutocomplete'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nconst CardWithShadowBelow = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nconst CardWithShadowAbove = styled(Card)`\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: -1px;\n border-top: 1px solid var(--card-border-color);\n opacity: 0.5;\n z-index: 100;\n }\n`\n\nexport function AssistInspectorWrapper(props: DocumentInspectorProps) {\n const context = useAiAssistanceConfig()\n\n if (context.statusLoading) {\n return (\n <Flex align=\"center\" height=\"fill\" justify=\"center\" padding={4} sizing=\"border\">\n <Stack space={3} style={{textAlign: 'center'}}>\n <Spinner muted />\n <Text muted size={1}>\n Loading {pluginTitle}...\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n const status = context.status\n\n if (!status?.enabled) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack flex={1} overflow=\"auto\" padding={4} space={3}>\n <Text as=\"p\" size={1} weight=\"semibold\">\n {pluginTitle} is not available\n </Text>\n\n <Text as=\"p\" muted size={1}>\n Please get in touch with a Sanity account manager or{' '}\n <a href={salesUrl} target=\"_blank\" rel=\"noreferrer\">\n contact our sales team\n </a>{' '}\n to get started with {pluginTitle}.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more →\n </a>\n </Text>\n </Stack>\n </Flex>\n )\n }\n\n if (!status?.initialized || !status.validToken) {\n return (\n <Flex direction=\"column\" height=\"fill\">\n <DocumentInspectorHeader\n closeButtonLabel=\"Close\"\n onClose={props.onClose}\n title={pluginTitle}\n />\n\n <Stack padding={4} space={3}>\n {context.error ? (\n <Text size={1} weight=\"semibold\">\n Failed to start {pluginTitle}\n </Text>\n ) : null}\n\n {!context.error && !status?.initialized ? (\n <Text size={1} weight=\"semibold\">\n {pluginTitle} is not enabled\n </Text>\n ) : null}\n\n {!context.error && status?.initialized && !status.validToken ? (\n <>\n <Text size={1} weight=\"semibold\">\n Invalid token\n </Text>\n <Text muted size={1}>\n The token used by the AI Assistant is not valid and has to be regenerated.\n </Text>\n </>\n ) : null}\n\n {context.error && (\n <Text muted size={1}>\n Something went wrong. See console for details.\n </Text>\n )}\n\n {!context.error && !status?.initialized && (\n <Text size={1} muted>\n Please enable {pluginTitle}.\n </Text>\n )}\n\n <Button\n fontSize={1}\n icon={\n context.initLoading ? (\n <Box marginTop={1}>\n <Spinner />\n </Box>\n ) : context.error ? (\n RetryIcon\n ) : undefined\n }\n text={\n context.error\n ? 'Retry'\n : status?.initialized && !status.validToken\n ? `Restore ${pluginTitle}`\n : `Enable ${pluginTitle} now`\n }\n tone=\"primary\"\n onClick={context.init}\n disabled={context.initLoading}\n />\n </Stack>\n </Flex>\n )\n }\n\n return <AssistInspector {...props} />\n}\n\nexport function AssistInspector(props: DocumentInspectorProps) {\n const {params} = useAiPaneRouter()\n\n const boundary = useRef<HTMLDivElement | null>(null)\n const pathKey = params?.[fieldPathParam]\n const instructionKey = params?.[instructionParam]\n const documentPane = useDocumentPane()\n const {\n documentId,\n documentType,\n value: docValue,\n schemaType,\n onChange: documentOnChange,\n formState,\n } = documentPane\n const {published, draft} = useEditState(documentId, documentType, 'low')\n\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const assistableDocId = getAssistableDocId(schemaType, documentId)\n const {instructionLoading, requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: isDocAssistable(schemaType, published, draft),\n })\n\n const typePath = useTypePath(docValue, pathKey ?? '')\n const selectedField = useSelectedField(schemaType, typePath)\n\n const aiDocId = assistDocumentId(documentType)\n\n const assistDocument = useStudioAssistDocument({documentId, schemaType, initDoc: true})\n const assistField = assistDocument?.fields?.find((f) => f.path === typePath)\n const instruction = assistField?.instructions?.find((i) => i._key === instructionKey)\n const tasks = useMemo(\n () =>\n assistDocument?.tasks?.filter((i) => !instructionKey || i.instructionKey === instructionKey),\n [assistDocument?.tasks, instructionKey]\n )\n const instructions = useMemo(\n () => assistDocument?.fields?.flatMap((f) => f.instructions ?? []),\n [assistDocument?.fields]\n )\n\n const promptValue = instruction?.prompt\n const isEmptyPrompt = useMemo(() => {\n if (!promptValue?.length) {\n return true\n }\n const firstBlock = promptValue[0] as any\n const children = firstBlock?.children\n\n return promptValue.length == 1 && children?.length === 1 && !children?.[0]?.text?.length\n }, [promptValue])\n\n const paneNode: DocumentPaneNode = useMemo(\n () => ({\n type: 'document',\n id: aiDocId,\n title: pluginTitle,\n options: {\n id: aiDocId,\n type: assistDocumentTypeName,\n },\n }),\n [aiDocId]\n )\n\n const runCurrentInstruction = useCallback(\n () =>\n instruction &&\n pathKey &&\n typePath &&\n requestRunInstruction({\n documentId: assistableDocId,\n path: pathKey,\n typePath,\n assistDocumentId: assistDocumentId(documentType),\n instruction,\n conditionalMembers: formStateRef.current ? getConditionalMembers(formStateRef.current) : [],\n }),\n [pathKey, instruction, typePath, documentType, assistableDocId, requestRunInstruction]\n )\n\n const Region = useCallback((_props: any) => {\n // disabled for now\n /* return (\n <ConnectToRegion\n {..._props}\n _key={`${paneKey}_${selectedField?.key || '_field'}`}\n style={{height: '100%', flex: 1, overflow: 'auto'}}\n />\n )*/\n return <div {..._props} style={{height: '100%', flex: 1, overflow: 'auto'}} />\n }, [])\n\n if (!documentId || !schemaType || schemaType.jsonType !== 'object') {\n return (\n <Card flex={1} padding={4}>\n <Text>Document not ready yet.</Text>\n </Card>\n )\n }\n\n return (\n <Flex\n ref={boundary}\n direction=\"column\"\n height=\"fill\"\n overflow=\"hidden\"\n sizing=\"border\"\n style={{lineHeight: 0}}\n >\n <AiInspectorHeader\n onClose={props.onClose}\n field={selectedField}\n fieldTitle={getFieldTitle(selectedField)}\n />\n\n <Card as={Region} flex={1} overflow=\"auto\">\n <Flex direction=\"column\" style={{minHeight: '100%'}}>\n <Box flex={1}>\n <PresenceOverlay>\n <Box padding={4}>\n {selectedField && (\n <TypePathContext.Provider value={typePath}>\n <VirtualizerScrollInstanceProvider\n scrollElement={boundary.current}\n containerElement={boundary}\n >\n <DocumentPaneProvider\n paneKey={documentPane.paneKey}\n index={documentPane.index}\n itemId=\"ai\"\n pane={paneNode}\n >\n <DocumentForm />\n </DocumentPaneProvider>\n </VirtualizerScrollInstanceProvider>\n </TypePathContext.Provider>\n )}\n </Box>\n </PresenceOverlay>\n </Box>\n\n <Box flex=\"none\" padding={4}>\n <Text muted size={1}>\n How is Sanity AI Assist working for you?{' '}\n <a\n href={giveFeedbackUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{whiteSpace: 'nowrap'}}\n >\n Let us know <ArrowRightIcon />\n </a>\n </Text>\n </Box>\n </Flex>\n </Card>\n <CardWithShadowAbove flex=\"none\" paddingX={4} paddingY={3} style={{justifySelf: 'flex-end'}}>\n <Flex gap={2} flex={1} justify=\"flex-end\">\n {schemaType?.name && pathKey && instructionKey && (\n <Stack flex={1}>\n <Button\n mode=\"ghost\"\n disabled={isEmptyPrompt || instructionLoading}\n fontSize={1}\n icon={instructionLoading ? <Spinner /> : PlayIcon}\n onClick={runCurrentInstruction}\n padding={3}\n text={'Run instruction'}\n />\n </Stack>\n )}\n\n <InstructionTaskHistoryButton\n documentId={assistableDocId}\n tasks={tasks}\n instructions={instructions}\n showTitles={!instructionKey}\n />\n </Flex>\n </CardWithShadowAbove>\n </Flex>\n )\n}\n\nfunction AiInspectorHeader(props: {fieldTitle: string; field?: FieldRef; onClose: () => void}) {\n const {onClose, field, fieldTitle} = props\n const {showOnboarding, dismissOnboarding} = useOnboardingFeature(inspectorOnboardingKey)\n\n return (\n <CardWithShadowBelow flex=\"none\" padding={2}>\n <Flex flex={1} align=\"center\">\n <Flex flex={1} padding={3} gap={2} align=\"center\">\n <Flex gap={1} align=\"center\" wrap=\"wrap\" style={{marginTop: '-4px'}}>\n <Box marginTop={1}>\n <Text size={1} weight=\"semibold\">\n AI instructions for\n </Text>\n </Box>\n <Card radius={2} border padding={1} marginTop={1}>\n {field ? (\n <FieldTitle field={field} />\n ) : (\n <Text size={1} weight=\"semibold\">\n {fieldTitle}\n </Text>\n )}\n </Card>\n </Flex>\n </Flex>\n <Box flex=\"none\">\n <Button fontSize={1} icon={CloseIcon} mode=\"bleed\" onClick={onClose} />\n </Box>\n </Flex>\n\n {showOnboarding && <InspectorOnboarding onDismiss={dismissOnboarding} />}\n </CardWithShadowBelow>\n )\n}\n","import {SparklesIcon} from '@sanity/icons'\nimport {DocumentInspector, typed} from 'sanity'\nimport {aiInspectorId} from './constants'\nimport {AssistInspectorWrapper} from './AssistInspector'\nimport {AssistInspectorRouteParams, fieldPathParam, instructionParam} from '../types'\nimport {pluginTitle} from '../constants'\n\nexport const assistInspector: DocumentInspector = {\n name: aiInspectorId,\n useMenuItem: () => ({\n icon: SparklesIcon,\n title: pluginTitle,\n hidden: true,\n showAsAction: false,\n }),\n component: AssistInspectorWrapper,\n onClose({params}) {\n return {\n params: typed<AssistInspectorRouteParams>({\n ...params,\n [fieldPathParam]: undefined,\n [instructionParam]: undefined,\n }) as typeof params,\n }\n },\n}\n","import {DocumentInspector, ObjectSchemaType, PatchEvent} from 'sanity'\nimport {createContext, useContext} from 'react'\nimport {StudioAssistDocument} from '../types'\n\nexport type AssistDocumentContextValue = (\n | {assistDocument: StudioAssistDocument; loading: false}\n | {assistDocument: undefined; loading: true}\n) & {\n documentIsNew: boolean\n assistableDocumentId: string\n documentIsAssistable: boolean\n documentId: string\n documentSchemaType: ObjectSchemaType\n openInspector: (inspectorName: string, paneParams?: Record<string, string>) => void\n closeInspector: (inspectorName?: string) => void\n inspector: DocumentInspector | null\n selectedPath?: string\n documentOnChange: (event: PatchEvent) => void\n}\n\nexport const AssistDocumentContext = createContext<AssistDocumentContextValue | undefined>(\n undefined\n)\n\nexport function useAssistDocumentContext(): AssistDocumentContextValue {\n const context = useContext(AssistDocumentContext)\n if (!context) {\n throw new Error('AssistDocumentContext value is missing')\n }\n return context\n}\n","import {useMemo} from 'react'\nimport {FormNodePresence, isKeySegment, Path, stringToPath} from 'sanity'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {AiPresence} from '../types'\nimport {maxHistoryVisibilityMs, pluginTitle} from '../constants'\n\nconst NO_PRESENCE: FormNodePresence[] = []\n\nexport function useAssistPresence(path: Path, showFocusWithin?: boolean): FormNodePresence[] {\n const context = useAssistDocumentContext()\n const assistDocument = context && 'assistDocument' in context ? context.assistDocument : undefined\n const tasks = assistDocument?.tasks\n\n return useMemo(() => {\n const activePresence = tasks\n ?.filter((task) => !task.ended)\n ?.flatMap((task) => task.presence ?? [])\n ?.filter(\n (p) =>\n p.started && new Date().getTime() - new Date(p.started).getTime() < maxHistoryVisibilityMs\n )\n .filter((presence) => {\n if (!presence.path || !path.length) {\n return false\n }\n const statusPath = stringToPath(presence.path)\n\n if (!showFocusWithin && statusPath.length !== path.length) {\n return false\n }\n\n return path.every((pathSegment, i) => {\n const statusSegment = statusPath[i]\n if (typeof pathSegment === 'string') {\n return pathSegment === statusSegment\n }\n if (isKeySegment(pathSegment) && isKeySegment(statusSegment)) {\n return pathSegment._key === statusSegment._key\n }\n return false\n })\n })\n if (!activePresence?.length) {\n return NO_PRESENCE\n }\n\n return activePresence.map((status) => aiPresence(status, path))\n }, [showFocusWithin, tasks, path])\n}\n\nexport function aiPresence(presence: AiPresence, path: Path, title?: string): FormNodePresence {\n return {\n user: {\n id: `sanity-assistant_${presence._key}`,\n displayName: pluginTitle,\n },\n path: path,\n sessionId: 'not-available',\n lastActiveAt: presence?.started ?? new Date().toISOString(),\n }\n}\n","import {forwardRef, ReactElement, ReactNode} from 'react'\nimport styled, {keyframes} from 'styled-components'\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n transform: scale(0.75);\n }\n 40% {\n opacity: 0;\n transform: scale(0.75);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n`\n\nconst FadeInDiv = styled.div`\n animation-name: ${fadeIn};\n animation-timing-function: ease-in-out;\n`\n\nexport const FadeInContent = forwardRef(function FadeInContent(\n {\n children,\n durationMs = 250,\n }: {\n children?: ReactNode\n ms?: number\n durationMs?: number\n },\n ref: any\n): ReactElement {\n return (\n <FadeInDiv ref={ref} style={{animationDuration: `${durationMs}ms`}}>\n {children}\n </FadeInDiv>\n )\n})\n","const COLOR_HUES = [\"gray\", \"blue\", \"purple\", \"magenta\", \"red\", \"orange\", \"yellow\", \"green\", \"cyan\"];\nconst COLOR_TINTS = [\"50\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"950\"];\nfunction hslToRgb(hsl) {\n const h = hsl[0];\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n const k = n => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = n => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n return [255 * f(0), 255 * f(8), 255 * f(4)];\n}\nfunction rgbToHex(_ref) {\n let [r, g, b] = _ref;\n const _r = Math.round(r);\n const _g = Math.round(g);\n const _b = Math.round(b);\n return \"#\" + ((1 << 24) + (_r << 16) + (_g << 8) + _b).toString(16).slice(1);\n}\nfunction buildTints(options) {\n const {\n hueKey,\n color\n } = options;\n return COLOR_TINTS.reduce((acc, tintKey) => {\n const tint = Number(tintKey);\n const rgb = hslToRgb(color.tints[tintKey].hsl);\n const hex = rgbToHex([Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])]);\n acc[tintKey] = {\n title: \"\".concat(hueKey.slice(0, 1).toUpperCase()).concat(hueKey.slice(1), \" \").concat(tint),\n hex\n };\n return acc;\n }, {});\n}\nconst black = {\n title: \"Black\",\n hex: \"#0d0e12\"\n};\nconst white = {\n title: \"White\",\n hex: \"#ffffff\"\n};\nconst gray = {\n \"50\": {\n title: \"Gray 50\",\n hex: \"#f6f6f8\"\n },\n \"100\": {\n title: \"Gray 100\",\n hex: \"#eeeef1\"\n },\n \"200\": {\n title: \"Gray 200\",\n hex: \"#e3e4e8\"\n },\n \"300\": {\n title: \"Gray 300\",\n hex: \"#bbbdc9\"\n },\n \"400\": {\n title: \"Gray 400\",\n hex: \"#9499ad\"\n },\n \"500\": {\n title: \"Gray 500\",\n hex: \"#727892\"\n },\n \"600\": {\n title: \"Gray 600\",\n hex: \"#515870\"\n },\n \"700\": {\n title: \"Gray 700\",\n hex: \"#383d51\"\n },\n \"800\": {\n title: \"Gray 800\",\n hex: \"#252837\"\n },\n \"900\": {\n title: \"Gray 900\",\n hex: \"#1b1d27\"\n },\n \"950\": {\n title: \"Gray 950\",\n hex: \"#13141b\"\n }\n};\nconst blue = {\n \"50\": {\n title: \"Blue 50\",\n hex: \"#f5f8ff\"\n },\n \"100\": {\n title: \"Blue 100\",\n hex: \"#e5edff\"\n },\n \"200\": {\n title: \"Blue 200\",\n hex: \"#dbe5ff\"\n },\n \"300\": {\n title: \"Blue 300\",\n hex: \"#a8bfff\"\n },\n \"400\": {\n title: \"Blue 400\",\n hex: \"#7595ff\"\n },\n \"500\": {\n title: \"Blue 500\",\n hex: \"#556bfc\"\n },\n \"600\": {\n title: \"Blue 600\",\n hex: \"#4043e7\"\n },\n \"700\": {\n title: \"Blue 700\",\n hex: \"#2927aa\"\n },\n \"800\": {\n title: \"Blue 800\",\n hex: \"#192457\"\n },\n \"900\": {\n title: \"Blue 900\",\n hex: \"#161a41\"\n },\n \"950\": {\n title: \"Blue 950\",\n hex: \"#101228\"\n }\n};\nconst purple = {\n \"50\": {\n title: \"Purple 50\",\n hex: \"#f8f5ff\"\n },\n \"100\": {\n title: \"Purple 100\",\n hex: \"#f1ebff\"\n },\n \"200\": {\n title: \"Purple 200\",\n hex: \"#ece1fe\"\n },\n \"300\": {\n title: \"Purple 300\",\n hex: \"#ccb1fc\"\n },\n \"400\": {\n title: \"Purple 400\",\n hex: \"#b087f7\"\n },\n \"500\": {\n title: \"Purple 500\",\n hex: \"#8f57ef\"\n },\n \"600\": {\n title: \"Purple 600\",\n hex: \"#721fe5\"\n },\n \"700\": {\n title: \"Purple 700\",\n hex: \"#4c1a9e\"\n },\n \"800\": {\n title: \"Purple 800\",\n hex: \"#2f1862\"\n },\n \"900\": {\n title: \"Purple 900\",\n hex: \"#23173f\"\n },\n \"950\": {\n title: \"Purple 950\",\n hex: \"#181128\"\n }\n};\nconst magenta = {\n \"50\": {\n title: \"Magenta 50\",\n hex: \"#fef6f9\"\n },\n \"100\": {\n title: \"Magenta 100\",\n hex: \"#fde8ef\"\n },\n \"200\": {\n title: \"Magenta 200\",\n hex: \"#fcdee9\"\n },\n \"300\": {\n title: \"Magenta 300\",\n hex: \"#f7abc5\"\n },\n \"400\": {\n title: \"Magenta 400\",\n hex: \"#f0709b\"\n },\n \"500\": {\n title: \"Magenta 500\",\n hex: \"#e72767\"\n },\n \"600\": {\n title: \"Magenta 600\",\n hex: \"#b11651\"\n },\n \"700\": {\n title: \"Magenta 700\",\n hex: \"#7c1342\"\n },\n \"800\": {\n title: \"Magenta 800\",\n hex: \"#4b1130\"\n },\n \"900\": {\n title: \"Magenta 900\",\n hex: \"#341325\"\n },\n \"950\": {\n title: \"Magenta 950\",\n hex: \"#1f0f14\"\n }\n};\nconst red = {\n \"50\": {\n title: \"Red 50\",\n hex: \"#fff6f5\"\n },\n \"100\": {\n title: \"Red 100\",\n hex: \"#ffe7e5\"\n },\n \"200\": {\n title: \"Red 200\",\n hex: \"#ffdedc\"\n },\n \"300\": {\n title: \"Red 300\",\n hex: \"#fdada5\"\n },\n \"400\": {\n title: \"Red 400\",\n hex: \"#f77769\"\n },\n \"500\": {\n title: \"Red 500\",\n hex: \"#ef4434\"\n },\n \"600\": {\n title: \"Red 600\",\n hex: \"#cc2819\"\n },\n \"700\": {\n title: \"Red 700\",\n hex: \"#8b2018\"\n },\n \"800\": {\n title: \"Red 800\",\n hex: \"#4d1714\"\n },\n \"900\": {\n title: \"Red 900\",\n hex: \"#321615\"\n },\n \"950\": {\n title: \"Red 950\",\n hex: \"#1e1011\"\n }\n};\nconst orange = {\n \"50\": {\n title: \"Orange 50\",\n hex: \"#fff7f0\"\n },\n \"100\": {\n title: \"Orange 100\",\n hex: \"#ffeadb\"\n },\n \"200\": {\n title: \"Orange 200\",\n hex: \"#ffddc7\"\n },\n \"300\": {\n title: \"Orange 300\",\n hex: \"#ffb685\"\n },\n \"400\": {\n title: \"Orange 400\",\n hex: \"#ff8e42\"\n },\n \"500\": {\n title: \"Orange 500\",\n hex: \"#fa6400\"\n },\n \"600\": {\n title: \"Orange 600\",\n hex: \"#b14802\"\n },\n \"700\": {\n title: \"Orange 700\",\n hex: \"#7c3404\"\n },\n \"800\": {\n title: \"Orange 800\",\n hex: \"#461e07\"\n },\n \"900\": {\n title: \"Orange 900\",\n hex: \"#32160b\"\n },\n \"950\": {\n title: \"Orange 950\",\n hex: \"#21120d\"\n }\n};\nconst yellow = {\n \"50\": {\n title: \"Yellow 50\",\n hex: \"#fefae1\"\n },\n \"100\": {\n title: \"Yellow 100\",\n hex: \"#fcf3bb\"\n },\n \"200\": {\n title: \"Yellow 200\",\n hex: \"#f9e994\"\n },\n \"300\": {\n title: \"Yellow 300\",\n hex: \"#f7d455\"\n },\n \"400\": {\n title: \"Yellow 400\",\n hex: \"#f9bc15\"\n },\n \"500\": {\n title: \"Yellow 500\",\n hex: \"#d28a04\"\n },\n \"600\": {\n title: \"Yellow 600\",\n hex: \"#965908\"\n },\n \"700\": {\n title: \"Yellow 700\",\n hex: \"#653a0b\"\n },\n \"800\": {\n title: \"Yellow 800\",\n hex: \"#3b220c\"\n },\n \"900\": {\n title: \"Yellow 900\",\n hex: \"#271a11\"\n },\n \"950\": {\n title: \"Yellow 950\",\n hex: \"#181410\"\n }\n};\nconst green = {\n \"50\": {\n title: \"Green 50\",\n hex: \"#e7fef5\"\n },\n \"100\": {\n title: \"Green 100\",\n hex: \"#c5fce8\"\n },\n \"200\": {\n title: \"Green 200\",\n hex: \"#a9f9dc\"\n },\n \"300\": {\n title: \"Green 300\",\n hex: \"#59f3ba\"\n },\n \"400\": {\n title: \"Green 400\",\n hex: \"#0ff0a1\"\n },\n \"500\": {\n title: \"Green 500\",\n hex: \"#04b97a\"\n },\n \"600\": {\n title: \"Green 600\",\n hex: \"#01794f\"\n },\n \"700\": {\n title: \"Green 700\",\n hex: \"#015133\"\n },\n \"800\": {\n title: \"Green 800\",\n hex: \"#023120\"\n },\n \"900\": {\n title: \"Green 900\",\n hex: \"#06231a\"\n },\n \"950\": {\n title: \"Green 950\",\n hex: \"#071715\"\n }\n};\nconst cyan = {\n \"50\": {\n title: \"Cyan 50\",\n hex: \"#e7fefe\"\n },\n \"100\": {\n title: \"Cyan 100\",\n hex: \"#c5fcfc\"\n },\n \"200\": {\n title: \"Cyan 200\",\n hex: \"#96f8f8\"\n },\n \"300\": {\n title: \"Cyan 300\",\n hex: \"#62efef\"\n },\n \"400\": {\n title: \"Cyan 400\",\n hex: \"#18e2e2\"\n },\n \"500\": {\n title: \"Cyan 500\",\n hex: \"#04b8be\"\n },\n \"600\": {\n title: \"Cyan 600\",\n hex: \"#037782\"\n },\n \"700\": {\n title: \"Cyan 700\",\n hex: \"#024950\"\n },\n \"800\": {\n title: \"Cyan 800\",\n hex: \"#042f34\"\n },\n \"900\": {\n title: \"Cyan 900\",\n hex: \"#072227\"\n },\n \"950\": {\n title: \"Cyan 950\",\n hex: \"#0d181c\"\n }\n};\nconst hues = {\n gray,\n blue,\n purple,\n magenta,\n red,\n orange,\n yellow,\n green,\n cyan\n};\nconst color = {\n black,\n white,\n ...hues\n};\nconst config = {\n black: {\n title: \"Black\",\n hsl: [225, 16, 6]\n },\n white: {\n title: \"White\",\n hsl: [0, 0, 100]\n },\n gray: {\n title: \"Gray\",\n tints: {\n 50: {\n title: \"Gray 50\",\n hsl: [240, 12, 97]\n },\n 100: {\n title: \"Gray 100\",\n hsl: [240, 10, 94]\n },\n 200: {\n title: \"Gray 200\",\n hsl: [231, 10, 90]\n },\n 300: {\n title: \"Gray 300\",\n hsl: [232, 11, 76]\n },\n 400: {\n title: \"Gray 400\",\n hsl: [228, 13, 63]\n },\n 500: {\n title: \"Gray 500\",\n hsl: [229, 13, 51]\n },\n 600: {\n title: \"Gray 600\",\n hsl: [228, 16, 38]\n },\n 700: {\n title: \"Gray 700\",\n hsl: [229, 18, 27]\n },\n 800: {\n title: \"Gray 800\",\n hsl: [229, 19, 18]\n },\n 900: {\n title: \"Gray 900\",\n hsl: [228, 19, 13]\n },\n 950: {\n title: \"Gray 950\",\n hsl: [233, 17, 9]\n }\n }\n },\n blue: {\n title: \"Blue\",\n tints: {\n 50: {\n title: \"Blue 50\",\n hsl: [222, 100, 98]\n },\n 100: {\n title: \"Blue 100\",\n hsl: [222, 100, 95]\n },\n 200: {\n title: \"Blue 200\",\n hsl: [223, 100, 93]\n },\n 300: {\n title: \"Blue 300\",\n hsl: [224, 100, 83]\n },\n 400: {\n title: \"Blue 400\",\n hsl: [226, 100, 73]\n },\n 500: {\n title: \"Blue 500\",\n hsl: [232, 96, 66]\n },\n 600: {\n title: \"Blue 600\",\n hsl: [239, 78, 58]\n },\n 700: {\n title: \"Blue 700\",\n hsl: [241, 63, 41]\n },\n 800: {\n title: \"Blue 800\",\n hsl: [230, 55, 22]\n },\n 900: {\n title: \"Blue 900\",\n hsl: [234, 49, 17]\n },\n 950: {\n title: \"Blue 950\",\n hsl: [235, 43, 11]\n }\n }\n },\n purple: {\n title: \"Purple\",\n tints: {\n 50: {\n title: \"Purple 50\",\n hsl: [260, 95, 98]\n },\n 100: {\n title: \"Purple 100\",\n hsl: [260, 98, 96]\n },\n 200: {\n title: \"Purple 200\",\n hsl: [263, 96, 94]\n },\n 300: {\n title: \"Purple 300\",\n hsl: [262, 92, 84]\n },\n 400: {\n title: \"Purple 400\",\n hsl: [262, 88, 75]\n },\n 500: {\n title: \"Purple 500\",\n hsl: [262, 83, 64]\n },\n 600: {\n title: \"Purple 600\",\n hsl: [265, 79, 51]\n },\n 700: {\n title: \"Purple 700\",\n hsl: [263, 72, 36]\n },\n 800: {\n title: \"Purple 800\",\n hsl: [258, 60, 24]\n },\n 900: {\n title: \"Purple 900\",\n hsl: [257, 46, 17]\n },\n 950: {\n title: \"Purple 950\",\n hsl: [260, 41, 11]\n }\n }\n },\n magenta: {\n title: \"Magenta\",\n tints: {\n 50: {\n title: \"Magenta 50\",\n hsl: [340, 82, 98]\n },\n 100: {\n title: \"Magenta 100\",\n hsl: [339, 83, 95]\n },\n 200: {\n title: \"Magenta 200\",\n hsl: [339, 83, 93]\n },\n 300: {\n title: \"Magenta 300\",\n hsl: [340, 82, 82]\n },\n 400: {\n title: \"Magenta 400\",\n hsl: [340, 81, 69]\n },\n 500: {\n title: \"Magenta 500\",\n hsl: [340, 80, 53]\n },\n 600: {\n title: \"Magenta 600\",\n hsl: [337, 78, 39]\n },\n 700: {\n title: \"Magenta 700\",\n hsl: [333, 73, 28]\n },\n 800: {\n title: \"Magenta 800\",\n hsl: [328, 63, 18]\n },\n 900: {\n title: \"Magenta 900\",\n hsl: [327, 46, 14]\n },\n 950: {\n title: \"Magenta 950\",\n hsl: [341, 35, 9]\n }\n }\n },\n red: {\n title: \"Red\",\n tints: {\n 50: {\n title: \"Red 50\",\n hsl: [5, 100, 98]\n },\n 100: {\n title: \"Red 100\",\n hsl: [4, 100, 95]\n },\n 200: {\n title: \"Red 200\",\n hsl: [4, 98, 93]\n },\n 300: {\n title: \"Red 300\",\n hsl: [5, 95, 82]\n },\n 400: {\n title: \"Red 400\",\n hsl: [6, 90, 69]\n },\n 500: {\n title: \"Red 500\",\n hsl: [5, 85, 57]\n },\n 600: {\n title: \"Red 600\",\n hsl: [5, 78, 45]\n },\n 700: {\n title: \"Red 700\",\n hsl: [4, 70, 32]\n },\n 800: {\n title: \"Red 800\",\n hsl: [3, 58, 19]\n },\n 900: {\n title: \"Red 900\",\n hsl: [2, 41, 14]\n },\n 950: {\n title: \"Red 950\",\n hsl: [356, 30, 9]\n }\n }\n },\n orange: {\n title: \"Orange\",\n tints: {\n 50: {\n title: \"Orange 50\",\n hsl: [28, 100, 97]\n },\n 100: {\n title: \"Orange 100\",\n hsl: [25, 100, 93]\n },\n 200: {\n title: \"Orange 200\",\n hsl: [24, 100, 89]\n },\n 300: {\n title: \"Orange 300\",\n hsl: [24, 100, 76]\n },\n 400: {\n title: \"Orange 400\",\n hsl: [24, 100, 63]\n },\n 500: {\n title: \"Orange 500\",\n hsl: [24, 100, 49]\n },\n 600: {\n title: \"Orange 600\",\n hsl: [24, 98, 35]\n },\n 700: {\n title: \"Orange 700\",\n hsl: [24, 94, 25]\n },\n 800: {\n title: \"Orange 800\",\n hsl: [22, 82, 15]\n },\n 900: {\n title: \"Orange 900\",\n hsl: [17, 65, 12]\n },\n 950: {\n title: \"Orange 950\",\n hsl: [14, 43, 9]\n }\n }\n },\n yellow: {\n title: \"Yellow\",\n tints: {\n 50: {\n title: \"Yellow 50\",\n hsl: [51, 94, 94]\n },\n 100: {\n title: \"Yellow 100\",\n hsl: [52, 91, 86]\n },\n 200: {\n title: \"Yellow 200\",\n hsl: [50, 90, 78]\n },\n 300: {\n title: \"Yellow 300\",\n hsl: [47, 91, 65]\n },\n 400: {\n title: \"Yellow 400\",\n hsl: [44, 95, 53]\n },\n 500: {\n title: \"Yellow 500\",\n hsl: [39, 96, 42]\n },\n 600: {\n title: \"Yellow 600\",\n hsl: [34, 90, 31]\n },\n 700: {\n title: \"Yellow 700\",\n hsl: [31, 80, 22]\n },\n 800: {\n title: \"Yellow 800\",\n hsl: [28, 66, 14]\n },\n 900: {\n title: \"Yellow 900\",\n hsl: [24, 40, 11]\n },\n 950: {\n title: \"Yellow 950\",\n hsl: [24, 20, 8]\n }\n }\n },\n green: {\n title: \"Green\",\n tints: {\n 50: {\n title: \"Green 50\",\n hsl: [157, 89, 95]\n },\n 100: {\n title: \"Green 100\",\n hsl: [158, 89, 88]\n },\n 200: {\n title: \"Green 200\",\n hsl: [158, 87, 82]\n },\n 300: {\n title: \"Green 300\",\n hsl: [158, 86, 65]\n },\n 400: {\n title: \"Green 400\",\n hsl: [159, 88, 50]\n },\n 500: {\n title: \"Green 500\",\n hsl: [159, 96, 37]\n },\n 600: {\n title: \"Green 600\",\n hsl: [159, 98, 24]\n },\n 700: {\n title: \"Green 700\",\n hsl: [158, 98, 16]\n },\n 800: {\n title: \"Green 800\",\n hsl: [158, 91, 10]\n },\n 900: {\n title: \"Green 900\",\n hsl: [162, 72, 8]\n },\n 950: {\n title: \"Green 950\",\n hsl: [172, 51, 6]\n }\n }\n },\n cyan: {\n title: \"Cyan\",\n tints: {\n 50: {\n title: \"Cyan 50\",\n hsl: [180, 92, 95]\n },\n 100: {\n title: \"Cyan 100\",\n hsl: [180, 91, 88]\n },\n 200: {\n title: \"Cyan 200\",\n hsl: [180, 87, 78]\n },\n 300: {\n title: \"Cyan 300\",\n hsl: [180, 81, 66]\n },\n 400: {\n title: \"Cyan 400\",\n hsl: [180, 81, 49]\n },\n 500: {\n title: \"Cyan 500\",\n hsl: [182, 96, 38]\n },\n 600: {\n title: \"Cyan 600\",\n hsl: [185, 96, 26]\n },\n 700: {\n title: \"Cyan 700\",\n hsl: [185, 95, 16]\n },\n 800: {\n title: \"Cyan 800\",\n hsl: [187, 86, 11]\n },\n 900: {\n title: \"Cyan 900\",\n hsl: [188, 68, 9]\n },\n 950: {\n title: \"Cyan 950\",\n hsl: [196, 37, 8]\n }\n }\n }\n};\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n throw new Error(\"input is not valid hex\");\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n}\nfunction rgbToHsl(_ref2) {\n let [r, g, b] = _ref2;\n r /= 255;\n g /= 255;\n b /= 255;\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n if (delta == 0) h = 0;else if (cmax == r) h = (g - b) / delta % 6;else if (cmax == g) h = (b - r) / delta + 2;else h = (r - g) / delta + 4;\n h = Math.round(h * 60);\n if (h < 0) h += 360;\n l = (cmax + cmin) / 2;\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(0);\n l = +(l * 100).toFixed(0);\n return [h, s, l];\n}\nfunction clamp(num) {\n return Math.max(Math.min(num, 255), 0);\n}\nfunction darkenChannel(backdrop, source) {\n return Math.min(backdrop, source);\n}\nfunction darken(b, s) {\n return [Math.round(clamp(darkenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(darkenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(darkenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nfunction interpolate(min, max, val) {\n const size = max - min;\n return min + size * val;\n}\nfunction limit(darkest, lightest, source) {\n const r = Math.round(interpolate(darkest[0], lightest[0], source[0] / 255));\n const g = Math.round(interpolate(darkest[1], lightest[1], source[1] / 255));\n const b = Math.round(interpolate(darkest[2], lightest[2], source[2] / 255));\n return [r, g, b];\n}\nfunction screenChannel(backdrop, source) {\n return backdrop + source - backdrop * source;\n}\nfunction screen(b, s) {\n return [Math.round(clamp(screenChannel(b[0] / 255, s[0] / 255) * 255)), Math.round(clamp(screenChannel(b[1] / 255, s[1] / 255) * 255)), Math.round(clamp(screenChannel(b[2] / 255, s[2] / 255) * 255))];\n}\nexport { COLOR_HUES, COLOR_TINTS, black, blue, buildTints, color, config, cyan, darken, gray, green, hexToRgb, hslToRgb, hues, limit, magenta, orange, purple, red, rgbToHex, rgbToHsl, screen, white, yellow };\n//# sourceMappingURL=index.js.map\n","import {purple} from '@sanity/color'\nimport {SparklesIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {CSSProperties, useMemo} from 'react'\nimport {useColorSchemeValue} from 'sanity'\nimport styled, {keyframes} from 'styled-components'\n\nconst Root = styled.span`\n display: block;\n width: 25px;\n height: 25px;\n position: relative;\n`\n\nconst dash = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(43deg);\n }\n`\n\nconst Outline = styled.svg`\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n\n & > circle {\n stroke: var(--ai-avatar-stroke-color);\n stroke-width: 1.5px;\n stroke-linecap: round;\n transform-origin: center;\n animation: ${dash} 500ms ease-in-out infinite;\n transition: stroke-dasharray 200ms ease-in-out;\n\n stroke-dasharray: 2.34px 0;\n\n [data-state='active'] > & {\n stroke-dasharray: 2px 2.34px;\n }\n }\n`\n\nconst IconDisc = styled.span`\n background: var(--ai-avatar-disc-color);\n color: white;\n width: 21px;\n height: 21px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10.5px;\n position: absolute;\n top: 2px;\n left: 2px;\n`\n\nexport function AssistAvatar(props: {state?: 'present' | 'active'}) {\n const {state = 'present'} = props\n const scheme = useColorSchemeValue()\n\n const style = useMemo(() => {\n if (scheme === 'dark') {\n return {\n [`--ai-avatar-stroke-color`]: purple[400].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }\n\n return {\n [`--ai-avatar-stroke-color`]: purple[500].hex,\n [`--ai-avatar-disc-color`]: purple[600].hex,\n } as CSSProperties\n }, [scheme])\n\n return (\n <Root data-state={state} style={style}>\n <Outline\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12.5\" cy=\"12.5\" r=\"11.75\" />\n </Outline>\n <IconDisc>\n <Text as=\"span\" size={0} style={{color: 'inherit'}}>\n <SparklesIcon style={{color: 'inherit'}} />\n </Text>\n </IconDisc>\n </Root>\n )\n}\n","// eslint-disable-next-line react/no-unused-prop-types\nimport {FormNodePresence} from 'sanity'\nimport {Card, Flex, Text, Tooltip} from '@sanity/ui'\nimport {FadeInContent} from '../components/FadeInContent'\nimport {AssistAvatar} from './AssistAvatar'\n\nexport function AiFieldPresence(props: {presence: FormNodePresence}) {\n return (\n <Card style={{position: 'relative', background: 'transparent'}} contentEditable={false}>\n <Tooltip\n placement=\"left\"\n content={\n <Card padding={3} border>\n <Flex align=\"center\">\n <Text size={1}>Running instruction...</Text>\n </Flex>\n </Card>\n }\n >\n <FadeInContent durationMs={300}>\n <AssistAvatar state=\"active\" />\n </FadeInContent>\n </Tooltip>\n </Card>\n )\n}\n","import {Badge} from '@sanity/ui'\n\nexport function AssistFeatureBadge() {\n return (\n <Badge fontSize={0} style={{margin: '-2px 0'}} tone=\"primary\">\n Beta\n </Badge>\n )\n}\n","import {Button, Card, Flex, Popover, Stack, Text} from '@sanity/ui'\nimport {useRef} from 'react'\nimport {AssistFeatureBadge} from '../components/AssistFeatureBadge'\nimport {ArrowRightIcon, CheckmarkIcon, SparklesIcon} from '@sanity/icons'\nimport {pluginTitle, releaseAnnouncementUrl} from '../constants'\n\nexport interface FieldActionsOnboardingProps {\n dismiss: () => void\n}\n\nexport function AssistOnboardingPopover(props: FieldActionsOnboardingProps) {\n const {dismiss} = props\n\n return (\n <Popover\n content={<AssistIntroCard dismiss={dismiss} />}\n open\n portal\n placeholder=\"bottom\"\n tone=\"default\"\n width={0}\n >\n <Card radius={2} shadow={2} style={{padding: 2, lineHeight: 0}}>\n <Button disabled fontSize={1} icon={SparklesIcon} mode=\"bleed\" padding={2} />\n </Card>\n </Popover>\n )\n}\n\nfunction AssistIntroCard(props: {dismiss: () => void}) {\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n return (\n <Stack as=\"section\" padding={3} space={3}>\n <Stack padding={2} space={4}>\n <Flex gap={2} align=\"center\">\n <Text as=\"h1\" size={1} weight=\"semibold\">\n {pluginTitle}\n </Text>\n <div aria-hidden style={{margin: '-3px 0', lineHeight: 0}}>\n <AssistFeatureBadge />\n </div>\n </Flex>\n\n <Stack space={3}>\n <Text as=\"p\" muted size={1}>\n Manage reusable AI instructions to boost your content creation and reduce amount of\n repetitive chores.{' '}\n <a href={releaseAnnouncementUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more <ArrowRightIcon />\n </a>\n </Text>\n </Stack>\n </Stack>\n\n <Button\n fontSize={1}\n icon={CheckmarkIcon}\n onClick={props.dismiss}\n padding={3}\n ref={buttonRef}\n text=\"Ok, good to know!\"\n tone=\"primary\"\n />\n </Stack>\n )\n}\n","import {ObjectInputProps, FieldMember, pathToString} from 'sanity'\nimport {createContext, PropsWithChildren, useMemo} from 'react'\nimport {isAssistSupported} from '../helpers/assistSupported'\n\nexport const FirstAssistedPathContext = createContext<string | undefined>(undefined)\n\nexport interface FirstAssistedPathProviderProps {\n members: ObjectInputProps['members']\n}\n\nexport function FirstAssistedPathProvider(\n props: PropsWithChildren<FirstAssistedPathProviderProps>\n) {\n const {members} = props\n\n const firstAssistedPath = useMemo(() => {\n const firstAssisted = members.find(\n (member): member is FieldMember =>\n member.kind === 'field' && isAssistSupported(member.field.schemaType)\n )\n return firstAssisted?.field.path ? pathToString(firstAssisted?.field.path) : undefined\n }, [members])\n\n return (\n <FirstAssistedPathContext.Provider value={firstAssistedPath}>\n {props.children}\n </FirstAssistedPathContext.Provider>\n )\n}\n","import {FieldProps, isArraySchemaType, pathToString} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {useContext, useMemo} from 'react'\nimport {Box, Flex} from '@sanity/ui'\nimport {contextDocumentTypeName} from '../types'\nimport {isAssistSupported} from '../helpers/assistSupported'\nimport {isPortableTextArray, isType} from '../helpers/typeUtils'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\nimport {AssistOnboardingPopover} from '../onboarding/FieldActionsOnboarding'\nimport {FirstAssistedPathContext} from '../onboarding/FirstAssistedPathProvider'\nimport {fieldOnboardingKey, useOnboardingFeature} from '../onboarding/onboardingStore'\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","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import {SanityDocumentLike} from 'sanity'\nimport get from 'lodash/get'\n\nexport const getLanguageParams = (\n select: Record<string, string> | undefined,\n document: SanityDocumentLike | undefined\n): Record<string, unknown> => {\n if (!select || !document) {\n return {}\n }\n\n const selection: Record<string, string> = select || {}\n const selectedValue: Record<string, unknown> = {}\n for (const [key, path] of Object.entries(selection)) {\n let value = get(document, path)\n if (Array.isArray(value)) {\n // If there are references in the array, ensure they have `_ref` set, otherwise they are considered empty and can safely be ignored\n value = value.filter((item) =>\n typeof item === 'object' ? item?._type !== 'reference' || '_ref' in item : true\n )\n }\n selectedValue[key] = value\n }\n\n return selectedValue\n}\n","export const toFieldLanguagesKeyPrefix = 'sanityStudio:assist:field-languages:from:'\n\nexport function getPreferredToFieldLanguages(fromLanguageId: string): string[] {\n if (typeof localStorage === 'undefined') {\n return []\n }\n\n const value = localStorage.getItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`)\n return value ? (JSON.parse(value) as string[]) : []\n}\n\nexport function setPreferredToFieldLanguages(fromLanguageId: string, languageIds: string[]) {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n localStorage.setItem(`${toFieldLanguagesKeyPrefix}${fromLanguageId}`, JSON.stringify(languageIds))\n}\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from 'react'\nimport {ObjectSchemaType, Path, pathToString, SanityDocumentLike, useClient} from 'sanity'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useApiClient, useTranslate} from '../useApiClient'\nimport {Box, Button, Checkbox, Dialog, Flex, Radio, Spinner, Stack, Text, Tooltip} from '@sanity/ui'\nimport {\n defaultLanguageOutputs,\n FieldLanguageMap,\n getDocumentMembersFlat,\n getFieldLanguageMap,\n} from './paths'\nimport {PlayIcon} from '@sanity/icons'\nimport {Language} from './types'\nimport {getLanguageParams} from './getLanguageParams'\nimport {getPreferredToFieldLanguages, setPreferredToFieldLanguages} from './languageStore'\nimport {ConditionalMemberState} from '../helpers/conditionalMembers'\n\ninterface FieldTranslationParams {\n document: SanityDocumentLike\n documentSchema: ObjectSchemaType\n translatePath: Path\n conditionalMembers: ConditionalMemberState[]\n}\n\nexport interface FieldTranslationContextValue {\n openFieldTranslation: (args: FieldTranslationParams) => void\n translationLoading: boolean\n}\n\nexport const FieldTranslationContext = createContext<FieldTranslationContextValue>({\n openFieldTranslation: () => {},\n translationLoading: false,\n})\n\nexport function useFieldTranslation() {\n return useContext(FieldTranslationContext)\n}\n\nfunction hasValuesToTranslate(\n fieldLanguageMaps: FieldLanguageMap[] | undefined,\n fromLanguage: Language | undefined,\n basePath: Path\n) {\n return fieldLanguageMaps?.some(\n (map) =>\n map.inputLanguageId === fromLanguage?.id &&\n map.inputPath &&\n pathToString(map.inputPath).startsWith(pathToString(basePath))\n )\n}\n\nexport function FieldTranslationProvider(props: PropsWithChildren<{}>) {\n const {config: assistConfig} = useAiAssistanceConfig()\n const apiClient = useApiClient(assistConfig.__customApiClient)\n const config = assistConfig.translate?.field\n const {translate: runTranslate} = useTranslate(apiClient)\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const [fieldTranslationParams, setFieldTranslationParams] = useState<\n FieldTranslationParams | undefined\n >()\n const [languages, setLanguages] = useState<Language[] | undefined>()\n const [fromLanguage, setFromLanguage] = useState<Language | undefined>(undefined)\n const [toLanguages, setToLanguages] = useState<Language[] | undefined>(undefined)\n const [fieldLanguageMaps, setFieldLanguageMaps] = useState<FieldLanguageMap[] | undefined>()\n\n const close = useCallback(() => {\n setDialogOpen(false)\n setLanguages(undefined)\n setFieldTranslationParams(undefined)\n }, [])\n const languageClient = useClient({apiVersion: config?.apiVersion ?? '2022-11-27'})\n const documentId = fieldTranslationParams?.document?._id\n const id = useId()\n\n const selectFromLanguage = useCallback(\n (\n from: Language,\n languages: Language[] | undefined,\n params: FieldTranslationParams | undefined\n ) => {\n const {document, documentSchema} = params ?? {}\n setFromLanguage(from)\n if (!document || !documentSchema || !params || !languages) {\n setFieldLanguageMaps(undefined)\n return\n }\n\n const preferred = getPreferredToFieldLanguages(from.id)\n const allToLanguages = languages.filter((l) => l.id !== from?.id)\n const filteredToLanguages = allToLanguages.filter(\n (l) => !preferred.length || preferred.includes(l.id)\n )\n\n setToLanguages(filteredToLanguages)\n const fromId = from?.id\n const allToIds = allToLanguages?.map((l) => l.id) ?? []\n const docMembers = getDocumentMembersFlat(document, documentSchema)\n if (fromId && allToIds?.length) {\n const transMap = getFieldLanguageMap(\n documentSchema,\n docMembers,\n fromId,\n allToIds.filter((toId) => fromId !== toId),\n config?.translationOutputs ?? defaultLanguageOutputs\n )\n setFieldLanguageMaps(transMap)\n } else {\n setFieldLanguageMaps(undefined)\n }\n },\n [config]\n )\n\n const toggleToLanguage = useCallback(\n (\n toggledLang: Language,\n toLanguages: Language[] | undefined,\n languages: Language[] | undefined\n ) => {\n if (!languages || !fromLanguage) {\n return\n }\n const wasSelected = !!toLanguages?.find((l) => l.id === toggledLang.id)\n const newToLangs = languages.filter(\n (anyLang) =>\n !!toLanguages?.find(\n (selectedLang) => toggledLang.id !== selectedLang.id && selectedLang.id === anyLang.id\n ) ||\n (toggledLang.id === anyLang.id && !wasSelected)\n )\n setToLanguages(newToLangs)\n setPreferredToFieldLanguages(\n fromLanguage.id,\n newToLangs.map((l) => l.id)\n )\n },\n [fromLanguage]\n )\n\n const openFieldTranslation = useCallback(\n async (params: FieldTranslationParams) => {\n setDialogOpen(true)\n const languageParams = getLanguageParams(config?.selectLanguageParams, params.document)\n const languages: Language[] | undefined = await (typeof config?.languages === 'function'\n ? config?.languages(languageClient, languageParams)\n : Promise.resolve(config?.languages))\n setLanguages(languages)\n setFieldTranslationParams(params)\n const fromLanguage = languages?.[0]\n if (fromLanguage) {\n selectFromLanguage(fromLanguage, languages, params)\n } else {\n console.error('No languages available for selected language params', languageParams)\n }\n },\n [selectFromLanguage, config, languageClient]\n )\n\n const contextValue: FieldTranslationContextValue = useMemo(() => {\n return {\n openFieldTranslation,\n translationLoading: false,\n }\n }, [openFieldTranslation])\n\n const runDisabled =\n !fromLanguage ||\n !toLanguages?.length ||\n !fieldLanguageMaps?.length ||\n !documentId ||\n !hasValuesToTranslate(fieldLanguageMaps, fromLanguage, fieldTranslationParams.translatePath)\n\n const onRunTranslation = useCallback(() => {\n const translatePath = fieldTranslationParams?.translatePath\n if (fieldLanguageMaps && documentId && translatePath) {\n runTranslate({\n documentId,\n translatePath: translatePath,\n fieldLanguageMap: fieldLanguageMaps.map((map) => ({\n ...map,\n // eslint-disable-next-line max-nested-callbacks\n outputs: map.outputs.filter((out) => !!toLanguages?.find((l) => l.id === out.id)),\n })),\n conditionalMembers: fieldTranslationParams?.conditionalMembers,\n })\n }\n close()\n }, [\n fieldLanguageMaps,\n documentId,\n runTranslate,\n close,\n toLanguages,\n fieldTranslationParams?.translatePath,\n ])\n\n const runButton = (\n <Button\n text={`Translate`}\n tone=\"primary\"\n icon={PlayIcon}\n style={{width: '100%'}}\n disabled={runDisabled}\n onClick={onRunTranslation}\n />\n )\n\n return (\n <FieldTranslationContext.Provider value={contextValue}>\n {dialogOpen ? (\n <Dialog\n id={id}\n width={1}\n open={dialogOpen}\n onClose={close}\n header=\"Translate fields\"\n footer={\n <Flex justify=\"space-between\" padding={2} flex={1}>\n {runDisabled ? (\n <Tooltip\n content={\n <Flex padding={2}>\n <Text>There is nothing to translate in the selected from-language.</Text>\n </Flex>\n }\n placement=\"top\"\n >\n <Flex flex={1}>{runButton}</Flex>\n </Tooltip>\n ) : (\n runButton\n )}\n </Flex>\n }\n >\n {languages ? (\n <Flex padding={4} gap={5} align=\"flex-start\" justify=\"center\">\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">From</Text>\n </Box>\n {languages?.map((l) => {\n return (\n <Flex key={l.id} gap={3} align=\"center\" as={'label'}>\n <Radio\n name=\"fromLang\"\n value={l.id}\n checked={l.id === fromLanguage?.id}\n onChange={() => selectFromLanguage(l, languages, fieldTranslationParams)}\n />\n <Text>{l.title ?? l.id}</Text>\n </Flex>\n )\n })}\n </Stack>\n\n <Stack space={2}>\n <Box marginBottom={2}>\n <Text weight=\"semibold\">To</Text>\n </Box>\n {languages.map((l) => (\n <Flex\n key={l.id}\n gap={3}\n align=\"center\"\n as={'label'}\n style={l.id === fromLanguage?.id ? {opacity: 0.5} : undefined}\n >\n <Checkbox\n name=\"toLang\"\n value={l.id}\n checked={\n l.id !== fromLanguage?.id && !!toLanguages?.find((tl) => tl.id === l.id)\n }\n onChange={() => toggleToLanguage(l, toLanguages, languages)}\n disabled={l.id === fromLanguage?.id}\n />\n <Text muted={l.id === fromLanguage?.id}>{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 {FieldTranslationProvider} from '../translate/FieldTranslationProvider'\n\nexport interface AIStudioLayoutProps extends LayoutProps {\n config: AssistPluginConfig\n}\n\nexport type RunInstructionArgs = Omit<RunInstructionRequest, 'instructionKey' | 'userText'> & {\n instruction: StudioInstruction\n}\n\nexport function AssistLayout(props: AIStudioLayoutProps) {\n const [connectors, setConnectors] = useState<Connector[]>([])\n\n return (\n <AiAssistanceConfigProvider config={props.config}>\n <RunInstructionProvider>\n <FieldTranslationProvider>\n <ConnectorsProvider onConnectorsChange={setConnectors}>\n {props.renderDefault(props)}\n <ThemeProvider tone=\"default\">\n <AssistConnectorsOverlay connectors={connectors} />\n </ThemeProvider>\n </ConnectorsProvider>\n </FieldTranslationProvider>\n </RunInstructionProvider>\n </AiAssistanceConfigProvider>\n )\n}\n","import {InputProps, isArraySchemaType, PatchEvent, unset} from 'sanity'\nimport {ErrorInfo, PropsWithChildren, useCallback, useMemo, useState} from 'react'\nimport {Box, Button, Card, ErrorBoundary, Flex, Stack, Text} from '@sanity/ui'\nimport {isPortableTextArray} from '../helpers/typeUtils'\nimport styled from 'styled-components'\n\nconst WrapPreCard = styled(Card)`\n & pre {\n white-space: pre-wrap !important;\n }\n`\n\nexport function SafeValueInput(props: InputProps) {\n return (\n <ErrorWrapper onChange={props.onChange}>\n <PteValueFixer {...props} />\n </ErrorWrapper>\n )\n}\n\nexport function ErrorWrapper(\n props: PropsWithChildren<{onChange: (patchEvent: PatchEvent) => void}>\n) {\n const {onChange} = props\n const [error, setError] = useState<Error | undefined>()\n\n const catchError = useCallback(\n (params: {error: Error; info: ErrorInfo}) => {\n setError(params.error)\n },\n [setError]\n )\n\n const unsetValue = useCallback(() => {\n onChange(PatchEvent.from(unset()))\n setError(undefined)\n }, [onChange])\n const dismiss = useCallback(() => setError(undefined), [])\n const catcher = <ErrorBoundary onCatch={catchError}>{props.children}</ErrorBoundary>\n\n return error ? (\n <Card border tone=\"critical\" padding={2} contentEditable={false}>\n <Stack space={3}>\n <Text muted weight=\"semibold\">\n An error occurred.\n </Text>\n\n <WrapPreCard flex={1} padding={2} tone=\"critical\" border>\n {catcher}\n </WrapPreCard>\n\n <Flex width=\"fill\" flex={1} gap={3}>\n <Box flex={1}>\n <Button text=\"Dismiss\" onClick={dismiss} tone=\"primary\" />\n </Box>\n <Button text=\"Unset value\" onClick={unsetValue} tone=\"critical\" />\n </Flex>\n </Stack>\n </Card>\n ) : (\n catcher\n )\n}\n\nfunction PteValueFixer(props: InputProps) {\n const isPortableText = useMemo(\n () => isArraySchemaType(props.schemaType) && isPortableTextArray(props.schemaType),\n [props.schemaType]\n )\n const value = props.value\n if (isPortableText && value && !(value as any[]).length) {\n return props.renderDefault({...props, value: undefined})\n }\n\n return props.renderDefault(props)\n}\n","import {BlockProps, PatchEvent, useFormCallbacks} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {ErrorWrapper} from '../components/SafeValueInput'\nimport {useCallback} from 'react'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistFormBlock(props: BlockProps) {\n const presence = useAssistPresence(props.path, true)\n const {onChange} = useFormCallbacks()\n const key = props.value._key\n const localOnChange = useCallback(\n (patchEvent: PatchEvent) => {\n if (!key) {\n return\n }\n onChange(PatchEvent.from(patchEvent).prefixAll({_key: key}))\n },\n [onChange, key]\n )\n const singlePresence = presence[0]\n return (\n <ErrorWrapper onChange={localOnChange}>\n <Flex align=\"center\" justify=\"space-between\">\n <Box flex={1}>{props.renderDefault(props)}</Box>\n {singlePresence && <AiFieldPresence presence={singlePresence} />}\n </Flex>\n </ErrorWrapper>\n )\n}\n","import {ItemProps} from 'sanity'\nimport {useAssistPresence} from '../presence/useAssistPresence'\nimport {Box, Flex} from '@sanity/ui'\nimport {AiFieldPresence} from '../presence/AiFieldPresence'\n\nexport function AssistItem(props: ItemProps) {\n const {path} = props\n const presence = useAssistPresence(path, true)\n\n return (\n <Flex align=\"center\" width=\"fill\" style={{position: 'relative'}}>\n <Box flex={1}>{props.renderDefault({...props})}</Box>\n {presence.map((pre) => (\n <Box key={pre.user.id} style={{position: 'absolute', right: 35}}>\n <AiFieldPresence presence={pre} />\n </Box>\n ))}\n </Flex>\n )\n}\n","import {FieldError, FieldMember, FieldSetMember, ObjectMember} from 'sanity'\n\nexport function findFieldMember(\n members: ObjectMember[],\n fieldName: string\n): FieldMember | FieldError | undefined {\n return members.find(\n (m): m is FieldMember | FieldError =>\n (m.kind === 'field' && m.name === fieldName) ||\n (m.kind === 'error' && m.fieldName === fieldName)\n )\n}\n\nexport function findFieldsetMember(\n members: ObjectMember[],\n fieldsetName: string\n): FieldSetMember | undefined {\n return members.find(\n (m): m is FieldSetMember => m.kind === 'fieldSet' && m.fieldSet.name === fieldsetName\n )\n}\n","import {FieldError, FieldMember, ObjectInputMember, ObjectInputProps} from 'sanity'\nimport {findFieldMember, findFieldsetMember} from '../helpers'\nimport {Box, Flex, Stack, Text} from '@sanity/ui'\nimport {useId, useMemo} from 'react'\n\nexport function InstructionInput(props: ObjectInputProps) {\n return (\n <Stack space={[4, 4, 4, 5]}>\n <NameField {...props} />\n <ShareField {...props} />\n <ObjectMember fieldName={'prompt'} {...props} />\n <ObjectMember fieldName={'output'} {...props} />\n </Stack>\n )\n}\n\nfunction ObjectMember({fieldName, ...props}: ObjectInputProps & {fieldName: string}) {\n const member = findFieldMember(props.members, fieldName)\n return member ? <ObjectInputMember {...props} member={member} /> : null\n}\n\nconst NONE: (FieldMember | FieldError)[] = []\n\nfunction NameField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const titleId = useId()\n\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const iconMember = findFieldMember(members, 'icon')\n const titleMember = findFieldMember(members, 'title')\n\n const titlePlaceholder = 'Untitled'\n const moddedTitleMember = useMemo(() => {\n if (!titleMember) {\n return undefined\n }\n if (titleMember.kind === 'error') {\n return titleMember\n }\n return {\n ...titleMember,\n field: {\n ...titleMember?.field,\n schemaType: {\n ...titleMember?.field.schemaType,\n placeholder: titlePlaceholder,\n },\n },\n }\n }, [titleMember, titlePlaceholder])\n\n return (\n <Stack space={5}>\n <Stack space={2}>\n <Flex gap={1}>\n <Text as=\"label\" weight=\"semibold\" size={1} htmlFor={titleId}>\n Name\n </Text>\n </Flex>\n\n <Text muted size={1}>\n How this instruction appears in menus\n </Text>\n\n <Flex align=\"center\">\n {iconMember && (\n <Box flex=\"none\">\n <ObjectInputMember {...props} member={iconMember} />\n </Box>\n )}\n {moddedTitleMember && (\n <Box flex={1} style={{marginLeft: -1}}>\n <ObjectInputMember {...props} member={moddedTitleMember} />\n </Box>\n )}\n </Flex>\n </Stack>\n </Stack>\n )\n}\n\nfunction ShareField(props: ObjectInputProps) {\n const fieldsetMember = findFieldsetMember(props.members, 'appearance')\n const members = fieldsetMember?.fieldSet.members ?? NONE\n const visibilityMember = findFieldMember(members, 'userId')\n\n return <>{visibilityMember && <ObjectInputMember {...props} member={visibilityMember} />}</>\n}\n","import {FieldProps} from 'sanity'\n\nexport function HiddenFieldTitle(props: FieldProps) {\n return props.renderDefault({...props, title: '', level: props.level - 2, changed: false})\n}\n","import {set, StringInputProps, unset, useCurrentUser} from 'sanity'\nimport {Card, Flex, Switch, Text} from '@sanity/ui'\nimport {useCallback, useId} from 'react'\n\nexport function InstructionVisibility(props: StringInputProps) {\n const {value, onChange} = props\n\n const user = useCurrentUser()\n\n const handleChange = useCallback(() => {\n const newValue = value ? '' : user?.id ?? ''\n onChange(newValue ? set(newValue) : unset())\n }, [onChange, user, value])\n\n const id = useId()\n\n return (\n <Card>\n <Flex gap={2} align=\"flex-start\">\n <div style={{margin: '-3px 0'}}>\n <Switch\n {...props.elementProps}\n id={id}\n value={`${!value}`}\n checked={!value}\n onChange={handleChange}\n disabled={props.elementProps.readOnly}\n />\n </div>\n\n <Text muted size={1} weight=\"medium\">\n <label htmlFor={id}>Make visible to all Studio members</label>\n </Text>\n </Flex>\n </Card>\n )\n}\n","import {icons} from '@sanity/icons'\nimport {set, StringInputProps} from 'sanity'\nimport {Button, Menu, MenuButton, MenuItem} from '@sanity/ui'\nimport {ElementType, ReactNode, useCallback, useId, useMemo} from 'react'\n\nexport function IconInput(props: StringInputProps) {\n const {value, onChange} = props\n const id = useId()\n const items = useMemo(\n () =>\n Object.entries(icons).map(([key, icon]) => (\n <IconItem key={key} iconKey={key} icon={icon} onChange={onChange} />\n )),\n [onChange]\n )\n\n const selectedIcon = useMemo(() => getIcon(value), [value])\n\n return (\n <MenuButton\n button={\n <Button icon={selectedIcon} title=\"Select icon\" padding={3} mode=\"ghost\" radius={1} />\n }\n id={id}\n menu={<Menu style={{maxHeight: 300}}>{items}</Menu>}\n popover={{portal: true}}\n />\n )\n}\n\nfunction IconItem({\n icon,\n iconKey: key,\n onChange,\n}: {\n iconKey: string\n icon: ElementType | ReactNode\n onChange: StringInputProps['onChange']\n}) {\n const onClick = useCallback(() => onChange(set(key)), [onChange, key])\n return <MenuItem icon={icon} title={key} text={key} onClick={onClick} />\n}\n\nexport function getIcon(iconName?: string) {\n return Object.entries(icons).find(([key]) => key === iconName)?.[1] ?? icons.sparkles\n}\n","import {set, StringInputProps} from 'sanity'\nimport {useCallback, useContext, useEffect, useId, useRef} from 'react'\nimport {Box} from '@sanity/ui'\nimport {SelectedFieldContext} from '../SelectedFieldContext'\nimport {FieldAutocomplete} from '../../../assistInspector/FieldAutocomplete'\nimport {FieldRef} from '../../../assistInspector/helpers'\nimport {TypePathContext} from '../AssistDocumentForm'\n\nexport function FieldRefPathInput(props: StringInputProps) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const typePath = useContext(TypePathContext)\n const ref = useRef<HTMLDivElement>(null)\n const id = useId()\n const {onChange} = props\n\n useEffect(() => {\n ref.current?.querySelector('input')?.focus()\n }, [])\n\n const onSelect = useCallback((path: string) => onChange(set(path)), [onChange])\n\n const filter = useCallback(\n (field: FieldRef) => {\n if (!field.key.includes('|') || !typePath) {\n return true\n }\n if (field.key.includes('|') && !typePath.includes('|')) {\n return false\n }\n\n const fieldSegments = field.key.split('.')\n const lastArrayItemIndex = fieldSegments.findLastIndex((s) => s.includes('|'))\n const mustStartWith = fieldSegments.slice(0, lastArrayItemIndex + 1).join('.')\n return typePath.startsWith(mustStartWith)\n },\n [typePath]\n )\n if (!documentSchema) {\n return props.renderDefault(props)\n }\n\n return (\n <Box flex={1} style={{minWidth: 300}} ref={ref}>\n <FieldAutocomplete\n id={id}\n schemaType={documentSchema}\n onSelect={onSelect}\n fieldPath={props.value}\n filter={filter}\n />\n </Box>\n )\n}\n","import {ArrayOfObjectsInputProps, useCurrentUser} from 'sanity'\nimport {useMemo} from 'react'\nimport {StudioInstruction} from '../../types'\n\nexport function InstructionsArrayInput(props: ArrayOfObjectsInputProps) {\n const user = useCurrentUser()\n\n const originalValue = props.value as StudioInstruction[] | undefined\n const originalMembers = props.members\n const value = useMemo(\n () => (originalValue ?? []).filter((v) => !v.userId || v.userId === user?.id),\n [originalValue, user]\n )\n const members = useMemo(\n () =>\n (originalMembers ?? []).filter((v) => {\n if (v.kind === 'error') {\n return true\n }\n const value = v?.item?.value as any\n return !value.userId || value.userId === user?.id\n }),\n [originalMembers, user]\n )\n return props.renderDefault({...props, value, members})\n}\n","import {BlockProps} from 'sanity'\nimport {createContext} from 'react'\n\n// workaround for preview value sometimes lagging behind\nexport const InlineBlockValueContext = createContext<unknown>(undefined)\n\nexport function AssistInlineFormBlock(props: BlockProps) {\n return (\n <InlineBlockValueContext.Provider value={props.value}>\n <>{props.renderDefault(props)}</>\n </InlineBlockValueContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {useSelectedField} from '../../assistInspector/helpers'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {PreviewProps} from 'sanity'\nimport {SelectedFieldContext} from './SelectedFieldContext'\nimport {InlineBlockValueContext} from '../../assistFormComponents/AssistInlineFormBlock'\n\nexport function FieldRefPreview(props: PreviewProps & {path?: string}) {\n const documentSchema = useContext(SelectedFieldContext)?.documentSchema\n const path = (useContext(InlineBlockValueContext) as {path?: string})?.path ?? props.path\n const selectedField = useSelectedField(documentSchema, path)\n return (\n <Flex gap={2} align=\"center\" style={{width: '100%'}}>\n <Flex flex={1} gap={2} align=\"center\" paddingY={3} paddingX={1}>\n {/*<Box>\n <Text>{selectedField?.icon ? createElement(selectedField?.icon) : <CodeIcon />}</Text>\n </Box>*/}\n <Box>\n <Text size={1} textOverflow=\"ellipsis\">\n {selectedField?.title ?? 'Select field'}\n </Text>\n </Box>\n </Flex>\n <>{props.actions}</>\n </Flex>\n )\n}\n","import {ObjectInputProps} from 'sanity'\nimport {Box} from '@sanity/ui'\nimport {useEffect, useRef} from 'react'\n\nexport function HideReferenceChangedBannerInput(props: ObjectInputProps) {\n const ref = useRef<HTMLDivElement>(null)\n\n // hides \"reference was changed\" banner (it is incorrectly flashing because the pane handler does not support the way wie use the assist pane)\n useEffect(() => {\n const parent = ref.current?.closest('[data-testid=\"pane-content\"]')\n if (!parent) {\n return\n }\n const style = document.createElement('style')\n const parentId = `id-${Math.random()}`.replace('.', '-')\n parent.id = parentId\n\n style.innerText = `\n #${parentId} [data-testid=\"reference-changed-banner\"] { display: none; }\n `\n parent.prepend(style)\n }, [ref])\n\n return <Box ref={ref}>{props.renderDefault(props)}</Box>\n}\n","import {defineArrayMember, defineField, defineType} from 'sanity'\nimport {contextDocumentTypeName} from '../types'\nimport {DocumentTextIcon, TokenIcon} from '@sanity/icons'\nimport {HideReferenceChangedBannerInput} from '../components/HideReferenceChangedBannerInput'\n\nexport const contextDocumentSchema = defineType({\n type: 'document',\n name: contextDocumentTypeName,\n title: 'AI context',\n liveEdit: true,\n icon: TokenIcon,\n components: {\n input: HideReferenceChangedBannerInput,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'title',\n title: 'Title',\n }),\n defineField({\n name: 'context',\n type: 'array',\n title: 'Context',\n of: [\n defineArrayMember({\n type: 'block',\n styles: [{title: 'Normal', value: 'normal'}],\n lists: [],\n marks: {\n decorators: [],\n annotations: [],\n },\n }),\n ],\n }),\n ],\n preview: {\n select: {\n title: 'title',\n context: 'context',\n },\n prepare({title, context}) {\n const text = context\n ?.flatMap((block: any) => block?.children)\n .flatMap((child: any) => child?.text?.split(' '))\n .filter(Boolean)\n const words = text?.length ?? 0\n return {\n title,\n subtitle: `Words: ${words}`,\n media: DocumentTextIcon,\n }\n },\n },\n})\n","// Strict ESM env, designed to run outside Node.js in envs that provide WebCrypto (deno, browsers, etc)\n\nexport default function getRandomValues(typedArray) {\n 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, getImagePromptFieldOption} 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 imagePromptPath?: string\n assetRef?: string\n}\n\nexport const ImageContext = createContext<ImageContextValue>({})\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 = useMemo(() => {\n const captionField = getCaptionFieldOption(schemaType)\n const imagePromptField = getImagePromptFieldOption(schemaType)\n return {\n captionPath: captionField ? pathToString([...path, captionField]) : undefined,\n imagePromptPath: imagePromptField ? pathToString([...path, imagePromptField]) : undefined,\n assetRef,\n }\n }, [schemaType, path, assetRef])\n\n return <ImageContext.Provider value={context}>{props.renderDefault(props)}</ImageContext.Provider>\n}\n","import {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {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 {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport type TranslateProps = DocumentFieldActionProps & {\n documentIsAssistable?: boolean\n documentSchemaType?: ObjectSchemaType\n}\nexport const translateActions: DocumentFieldAction = {\n name: 'sanity-assist-translate',\n useAction(props: TranslateProps) {\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n\n const {\n schemaType: fieldSchemaType,\n path,\n documentId,\n documentSchemaType,\n documentIsAssistable,\n } = props\n const isDocumentLevel = path.length === 0\n const readOnly = fieldSchemaType.readOnly === true\n\n const docTransTypes = config.translate?.document?.documentTypes\n const options = fieldSchemaType?.options as AssistOptions | undefined\n const addFieldAction = isDocumentLevel || options?.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, formState} = useDocumentPane()\n const docRef = useRef(documentValue)\n docRef.current = documentValue\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const translationApi = useTranslate(apiClient)\n const translate = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: translationApi.translate,\n })\n\n const languagePath = config.translate?.document?.languageField\n\n // if this is true, it is stable, and not breaking rules of hooks\n const translateDocumentAction = useMemo(() => {\n if (!languagePath || !documentTranslationEnabled) {\n return undefined\n }\n const title = path.length ? `Translate` : `Translate document`\n return node({\n type: 'action',\n icon: translationApi.loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title,\n onAction: () => {\n if (translationApi.loading || !languagePath || !documentId) {\n return\n }\n translate({\n languagePath,\n translatePath: path,\n documentId: documentId ?? '',\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: translationApi.loading || readOnly,\n })\n }, [\n languagePath,\n translate,\n documentId,\n translationApi.loading,\n documentTranslationEnabled,\n path,\n readOnly,\n ])\n const fieldTranslate = useFieldTranslation()\n const openFieldTranslation = useDraftDelayedTask({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n task: fieldTranslate.openFieldTranslation,\n })\n\n const translateFieldsAction = useMemo(\n () =>\n fieldTransEnabled\n ? node({\n type: 'action',\n icon: fieldTranslate.translationLoading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : TranslateIcon,\n title: `Translate fields...`,\n onAction: () => {\n if (fieldTranslate.translationLoading || !documentId) {\n return\n }\n if (formStateRef.current) {\n getConditionalMembers(formStateRef.current)\n }\n openFieldTranslation({\n document: docRef.current,\n documentSchema: documentSchemaType,\n translatePath: path,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n renderAsButton: true,\n disabled: fieldTranslate.translationLoading || readOnly,\n })\n : undefined,\n [\n openFieldTranslation,\n documentSchemaType,\n documentId,\n fieldTranslate.translationLoading,\n fieldTransEnabled,\n path,\n readOnly,\n ]\n )\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n 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 {DocumentFieldAction, DocumentFieldActionGroup, DocumentFieldActionItem} from 'sanity'\nimport {ImageIcon} from '@sanity/icons'\nimport {useContext, useMemo} from 'react'\nimport {usePathKey} from '../helpers/misc'\nimport {useApiClient, useGenerateImage} from '../useApiClient'\nimport {useAiAssistanceConfig} from '../assistLayout/AiAssistanceConfigContext'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {ImageContext} from '../components/ImageContext'\nimport {Box, Spinner} from '@sanity/ui'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const generateImagActions: DocumentFieldAction = {\n name: 'sanity-assist-generate-image',\n useAction(props) {\n const pathKey = usePathKey(props.path)\n\n const {config} = useAiAssistanceConfig()\n const apiClient = useApiClient(config?.__customApiClient)\n const {generateImage, loading} = useGenerateImage(apiClient)\n\n const imageContext = useContext(ImageContext)\n\n if (imageContext && pathKey === imageContext?.imagePromptPath) {\n //if this is true, it is stable, and not breaking rules of hooks\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {documentId} = useAssistDocumentContext()\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMemo(() => {\n return node({\n type: 'action',\n icon: loading\n ? () => (\n <Box style={{height: 17}}>\n <Spinner style={{transform: 'translateY(6px)'}} />\n </Box>\n )\n : ImageIcon,\n title: 'Generate image from prompt',\n onAction: () => {\n if (loading) {\n return\n }\n generateImage({path: pathKey, documentId: documentId ?? ''})\n },\n renderAsButton: true,\n disabled: loading,\n })\n }, [generateImage, pathKey, documentId, loading])\n }\n\n // works but not supported by types\n return undefined as unknown as DocumentFieldActionItem\n },\n}\n","import {\n DocumentFieldAction,\n DocumentFieldActionGroup,\n DocumentFieldActionItem,\n ObjectSchemaType,\n typed,\n useCurrentUser,\n} from 'sanity'\nimport {ControlsIcon, SparklesIcon} from '@sanity/icons'\nimport {useCallback, useMemo, useRef} from 'react'\nimport {pluginTitleShort} from '../constants'\nimport {useAssistSupported} from '../helpers/useAssistSupported'\nimport {useAssistDocumentContext} from '../assistDocument/AssistDocumentContext'\nimport {getInstructionTitle, usePathKey} from '../helpers/misc'\nimport {documentRootKey, fieldPathParam, instructionParam, StudioInstruction} from '../types'\nimport {aiInspectorId} from '../assistInspector/constants'\nimport {getIcon} from '../assistDocument/components/instruction/appearance/IconInput'\nimport {useAssistDocumentContextValue} from '../assistDocument/hooks/useAssistDocumentContextValue'\nimport {\n getAssistableDocId,\n useRequestRunInstruction,\n} from '../assistDocument/RequestRunInstructionProvider'\nimport {PrivateIcon} from './PrivateIcon'\nimport {generateCaptionsActions} from './generateCaptionActions'\nimport {useDocumentPane} from 'sanity/desk'\nimport {useSelectedField, useTypePath} from '../assistInspector/helpers'\nimport {isSchemaAssistEnabled} from '../helpers/assistSupported'\nimport {translateActions, TranslateProps} from '../translate/translateActions'\nimport {generateImagActions} from './generateImageActions'\nimport {getConditionalMembers} from '../helpers/conditionalMembers'\n\nfunction node(node: DocumentFieldActionItem | DocumentFieldActionGroup) {\n return node\n}\n\nexport const assistFieldActions: DocumentFieldAction = {\n name: 'sanity-assist-actions',\n useAction(props) {\n const {schemaType} = props\n\n const isDocumentLevel = props.path.length === 0\n\n const {\n assistDocument,\n documentIsNew,\n documentIsAssistable,\n openInspector,\n closeInspector,\n inspector,\n documentOnChange,\n documentSchemaType,\n documentId,\n selectedPath,\n assistableDocumentId,\n } =\n // document field actions do not have access to the document context\n // conditional hook _should_ be safe here since the logical path will be stable\n isDocumentLevel\n ? // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContextValue(props.documentId, schemaType as ObjectSchemaType)\n : // eslint-disable-next-line react-hooks/rules-of-hooks\n useAssistDocumentContext()\n\n const {value: docValue, formState} = useDocumentPane()\n const formStateRef = useRef(formState)\n formStateRef.current = formState\n\n const currentUser = useCurrentUser()\n const isHidden = !assistDocument\n const pathKey = usePathKey(props.path)\n const typePath = useTypePath(docValue, pathKey)\n const assistDocumentId = assistDocument?._id\n\n const assistableDocId = getAssistableDocId(documentSchemaType, documentId)\n const {requestRunInstruction} = useRequestRunInstruction({\n documentOnChange,\n isDocAssistable: documentIsAssistable ?? false,\n })\n\n const isSelectable = !!useSelectedField(documentSchemaType, typePath)\n const assistSupported =\n useAssistSupported(props.path, schemaType) &&\n isSelectable &&\n isSchemaAssistEnabled(documentSchemaType) &&\n schemaType.readOnly !== true\n\n const fieldAssist = useMemo(\n () =>\n (assistDocument?.fields ?? []).find(\n (f) => f.path === typePath || (pathKey === documentRootKey && f.path === pathKey)\n ),\n [assistDocument?.fields, pathKey, typePath]\n )\n\n const fieldAssistKey = fieldAssist?._key\n const isInspectorOpen = inspector?.name === aiInspectorId\n const isPathSelected = pathKey === selectedPath\n const isSelected = isInspectorOpen && isPathSelected\n\n const imageCaptionAction = generateCaptionsActions.useAction(props)\n const imageGenAction = generateImagActions.useAction(props)\n const translateAction = translateActions.useAction(\n typed<TranslateProps>({\n ...props,\n documentId: assistableDocumentId,\n documentIsAssistable,\n documentSchemaType,\n })\n )\n const manageInstructions = useCallback(\n () =>\n isSelected\n ? closeInspector(aiInspectorId)\n : openInspector(aiInspectorId, {\n [fieldPathParam]: pathKey,\n [instructionParam]: undefined as any,\n }),\n [openInspector, closeInspector, isSelected, pathKey]\n )\n\n const onInstructionAction = useCallback(\n (instruction: StudioInstruction) => {\n if (!pathKey || !fieldAssistKey || !assistDocumentId || !assistableDocId) {\n return\n }\n requestRunInstruction({\n documentId: assistableDocId,\n assistDocumentId,\n path: pathKey,\n typePath,\n instruction,\n conditionalMembers: formStateRef.current\n ? getConditionalMembers(formStateRef.current)\n : [],\n })\n },\n [requestRunInstruction, assistableDocId, pathKey, typePath, assistDocumentId, fieldAssistKey]\n )\n\n const privateInstructions = useMemo(\n () =>\n fieldAssist?.instructions?.filter((i) => i.userId && i.userId === currentUser?.id) || [],\n [fieldAssist?.instructions, currentUser]\n )\n\n const sharedInstructions = useMemo(\n () => fieldAssist?.instructions?.filter((i) => !i.userId) || [],\n [fieldAssist?.instructions]\n )\n\n const instructions = useMemo(\n () => [...privateInstructions, ...sharedInstructions],\n [privateInstructions, sharedInstructions]\n )\n\n const runInstructionsGroup = useMemo(() => {\n return instructions?.length || imageCaptionAction || translateAction || imageGenAction\n ? node({\n type: 'group',\n icon: () => null,\n title: 'Run instructions',\n children: [\n ...instructions?.map((instruction) =>\n instructionItem({\n instruction,\n isPrivate: Boolean(instruction.userId && instruction.userId === currentUser?.id),\n onInstructionAction,\n hidden: isHidden,\n documentIsNew: !!documentIsNew,\n assistSupported,\n })\n ),\n imageCaptionAction,\n imageGenAction,\n ].filter((a): a is DocumentFieldActionItem => !!a),\n expanded: true,\n })\n : undefined\n }, [\n instructions,\n currentUser?.id,\n onInstructionAction,\n isHidden,\n documentIsNew,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ])\n\n const instructionsLength = instructions?.length || 0\n\n const manageInstructionsItem = useMemo(\n () =>\n node({\n type: 'action',\n icon: ControlsIcon,\n title: 'Manage instructions',\n onAction: manageInstructions,\n selected: isSelected,\n }),\n [manageInstructions, isSelected]\n )\n\n const group = useMemo(\n () =>\n node({\n type: 'group',\n icon: SparklesIcon,\n title: pluginTitleShort,\n children: [\n runInstructionsGroup,\n translateAction,\n assistSupported && manageInstructionsItem,\n ]\n .filter((c): c is DocumentFieldActionItem | DocumentFieldActionGroup => !!c)\n .filter((c) => (c.type === 'group' ? c.children.length : true)),\n expanded: false,\n renderAsButton: true,\n hidden: !assistSupported && !imageCaptionAction && !translateAction && !imageGenAction,\n }),\n [\n //documentIsNew,\n runInstructionsGroup,\n manageInstructionsItem,\n assistSupported,\n imageCaptionAction,\n translateAction,\n imageGenAction,\n ]\n )\n\n const emptyAction = useMemo(\n () =>\n node({\n type: 'action',\n hidden: !assistSupported,\n icon: SparklesIcon,\n onAction: manageInstructions,\n renderAsButton: true,\n title: pluginTitleShort,\n selected: isSelected,\n }),\n [assistSupported, manageInstructions, isSelected]\n )\n\n // If there are no instructions, we don't want to render the group\n if (instructionsLength === 0 && !imageCaptionAction && !translateAction && !imageGenAction) {\n return emptyAction\n }\n\n return group\n },\n}\n\nfunction instructionItem(props: {\n instruction: StudioInstruction\n isPrivate: boolean\n onInstructionAction: (ins: StudioInstruction) => void\n assistSupported: boolean\n documentIsNew: boolean\n hidden: boolean\n}) {\n const {hidden, isPrivate, onInstructionAction, assistSupported, instruction} = props\n return node({\n type: 'action',\n icon: getIcon(instruction.icon),\n iconRight: isPrivate ? PrivateIcon : undefined,\n title: getInstructionTitle(instruction),\n onAction: () => onInstructionAction(instruction),\n disabled: !assistSupported,\n hidden,\n })\n}\n","import {ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContext} from './AssistDocumentContext'\nimport {useAssistDocumentContextValue} from './hooks/useAssistDocumentContextValue'\nimport {PropsWithChildren} from 'react'\n\nexport interface AIDocumentInputProps {\n documentId: string\n schemaType: ObjectSchemaType\n}\n\nexport function AssistDocumentContextProvider(props: PropsWithChildren<AIDocumentInputProps>) {\n const {documentId, schemaType} = props\n const value = useAssistDocumentContextValue(documentId, schemaType)\n return (\n <AssistDocumentContext.Provider value={value}>{props.children}</AssistDocumentContext.Provider>\n )\n}\n","import {useEffect, useRef} from 'react'\nimport {InstructionTask} from '../../types'\nimport {addSeconds, isAfter} from 'date-fns'\nimport {getInstructionTitle} from '../../helpers/misc'\nimport {useStudioAssistDocument} from './useStudioAssistDocument'\nimport {ObjectSchemaType, useCurrentUser} from 'sanity'\nimport {useToast} from '@sanity/ui'\n\nconst NO_TASKS: InstructionTask[] = []\n\nexport function useInstructionToaster(documentId: string, documentSchemaType: ObjectSchemaType) {\n const assistDocument = useStudioAssistDocument({documentId, schemaType: documentSchemaType})\n\n const assistDocLoaded = !!assistDocument\n const currentUser = useCurrentUser()\n const toast = useToast()\n const tasks = assistDocument?.tasks\n const previousTasks = useRef<InstructionTask[] | undefined | 'initial'>('initial')\n\n useEffect(() => {\n if (!assistDocLoaded) {\n return\n }\n\n if (previousTasks.current !== 'initial') {\n const prevTaskByKey = Object.fromEntries(\n (previousTasks.current ?? NO_TASKS).map((run) => [run._key, run])\n )\n const endedTasks = tasks\n ?.filter((task) => task.startedByUserId === currentUser?.id)\n .filter((task) => {\n const prevTask = prevTaskByKey[task._key]\n return (!prevTask && task.ended) || (!prevTask?.ended && task.ended)\n })\n // filter out old stuff\n .filter((task) => task.ended && isAfter(addSeconds(new Date(task.ended), 30), new Date()))\n\n endedTasks?.forEach((task) => {\n const title = task.title ?? getInstructionTitle(task.instruction)\n if (task.reason === 'error') {\n toast.push({\n title: `Failed: ${title}`,\n status: 'error',\n description: `Instruction failed. ${task.message ?? ''}`,\n closable: true,\n duration: 10000,\n })\n } else if (task.reason === 'timeout') {\n toast.push({\n title: `Timeout: ${title}`,\n status: 'error',\n description: `Instruction timed out.`,\n closable: true,\n })\n } else if (task.reason === 'success') {\n toast.push({\n title: `Success: ${title}`,\n status: 'success',\n description: `Instruction completed.`,\n closable: true,\n })\n } else if (task.reason === 'aborted') {\n toast.push({\n title: `Canceled: ${title}`,\n status: 'warning',\n description: `Instruction canceled.`,\n closable: true,\n })\n }\n })\n }\n previousTasks.current = tasks\n }, [tasks, previousTasks, toast, currentUser, assistDocLoaded])\n}\n","import {InputProps, ObjectInputProps, ObjectSchemaType} from 'sanity'\nimport {AssistDocumentContextProvider} from './AssistDocumentContextProvider'\nimport {FirstAssistedPathProvider} from '../onboarding/FirstAssistedPathProvider'\nimport {useInstructionToaster} from './hooks/useInstructionToaster'\nimport {isType} from '../helpers/typeUtils'\nimport {useLayer} from '@sanity/ui'\nimport {useDocumentPane} from 'sanity/desk'\nimport {usePathKey} from '../helpers/misc'\nimport {ConnectFromRegion} from '../_lib/connector'\nimport {assistDocumentTypeName} from '../types'\nimport {useMemo} from 'react'\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 * @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","getImagePromptFieldOption","imagePromptField","isSchemaAssistEnabled","_b","aiWritingAssistance","exclude","isAssistSupported","isDisabled","jsonType","unsupportedArray","every","unsupportedObject","fields","field","isUnsupportedType","embeddingsIndex","inlineTypes","serializeSchema","schema","list","getTypeNames","startsWith","map","get","getSchemaStub","to","sort","a","b","localeCompare","baseSchema","leanFormat","_id","_type","title","getBaseFields","removeUndef","_c","_d","_e","schemaOptions","Object","keys","values","Array","isArray","v","value","arrayOf","refToTypeNames","serializeFields","annotations","serializeAnnotations","inlineOf","serializeInlineOf","hidden","readOnly","fieldsets","flatMap","fs","single","f","serializeMember","typeNameExists","blockSchemaType","childrenField","childrenType","isArraySchemaType","markDefs","marksType","arrayType","typed","obj","forEach","key","NO_DATA","defaultTitle","SchemaTypeTool","useSchema","saving","setSaving","syncTitle","setSyncTitle","types","useMemo","storeTypes","useCallback","canSave","store","transaction","createOrReplace","commit","reset","catch","finally","jsx","Card","padding","overflow","style","height","children","jsxs","Stack","space","Box","Button","icon","Spinner","marginTop","SyncIcon","text","disabled","onClick","Flex","gap","Label","SchemaEntry","schemaStub","_ref","out","JSON","stringify","MAX_DEPTH","getDocumentMembersFlat","doc","isDocumentSchemaType","extractPaths","path","maxDepth","reduce","acc","fieldPath","fieldSchema","extractWithPath","pathToString","thisFieldWithPath","innerFields","some","item","arrayValue","arrayPaths","arrayItemSchema","_key","itemPath","arrayMember","defaultLanguageOutputs","member","enclosingType","translateFromLanguageId","translateToLanguageIds","pathEnd","slice","language","isKeySegment","translateToId","id","outputPath","getFieldLanguageMap","documentSchema","documentMembers","outputLanguageIds","langFn","translationMaps","parentPath","m","translations","translation","push","inputLanguageId","inputPath","outputs","aiInspectorId","preventDefault","DocumentForm","props","collapsedFieldSets","collapsedPaths","displayed","documentId","documentType","editState","formState","onBlur","onChange","onFocus","onPathOpen","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","ready","validation","useDocumentPane","documentStore","useDocumentStore","presence","useDocumentPresence","patchChannel","createPatchChannel","isLocked","transactionSyncLock","enabled","sub","pair","documentEvents","tap","publish","prepareMutationEvent","prepareRebaseEvent","hasRev","Boolean","_rev","patches","snapshot","formRef","focusFirstDescendant","as","ref","align","direction","justify","sizing","Text","size","onSubmit","FormBuilder","__internal_patchChannel","focusPath","changed","focused","groups","members","onFieldGroupSelect","onPathBlur","onPathFocus","onSetFieldSetCollapsed","onSetPathCollapsed","muted","mutations","mut","patch","document","fromMutationPatches","origin","remotePatches","remoteMutations","localPatches","localMutations","SelectedFieldContext","createContext","SelectedFieldContextProvider","Provider","getTypeIcon","LinkIcon","ImageIcon","BlockContentIcon","OlistIcon","BlockquoteIcon","StringIcon","DocumentIcon","getFieldRefsWithDocument","getFieldRefs","parent","depth","fieldRef","patchableKey","join","syntheticFields","getSyntheticFields","itemType","segment","synthetic","getTypePath","pathString","stringToPath","currentPath","valid","syntheticPath","match","pathKey","replace","useTypePath","useSelectedField","documentSchemaType","selectableFields","isObjectSchemaType","getFieldTitle","useAiPaneRouter","paneRouter","usePaneRouter","useDocumentState","docType","state","useEditState","draft","published","aiDocPrefixPattern","RegExp","publicId","assistDocumentId","documentTypeFromAiDocumentId","assistTasksStatusId","releaseAnnouncementUrl","instructionGuideUrl","giveFeedbackUrl","salesUrl","packageName","pluginTitle","pluginTitleShort","maxHistoryVisibilityMs","minutesToMilliseconds","useStudioAssistDocument","_ref2","initDoc","documentTypeName","currentUser","useCurrentUser","assistDocument","assistTasksStatus","createIfNotExists","e","tasks","assistField","task","instructions","p","userId","instruction","asStudioInstruction","instructionKey","run","started","Date","getTime","useInterval","ms","tick","update","useReducer","n","setInterval","clearInterval","TimeAgo","_ref3","date","timeSince","formatDistanceToNow","usePathKey","getInstructionTitle","rotate","keyframes","__template","SyncSpinningIcon","styled","TASK_CONFIG","aborted","CloseCircleIcon","tone","ErrorOutlineIcon","success","CheckmarkCircleIcon","timeout","ClockIcon","InstructionTaskHistoryButton","showTitles","cancelRun","taskKey","statusDocId","basePath","set","toISOString","titledTasks","cancel","isRunning","r","ended","hasErrors","reason","open","setOpen","toggleOpen","button","setButton","popover","setPopover","handleClickOutside","useClickOutside","handleEscape","focus","Popover","constrainSize","content","TaskList","onEscape","placement","portal","width","TaskStatusButton","selected","TASK_STATUS_BUTTON_TOOLTIP_PROPS","forwardRef","StatusButton","label","mode","tooltipProps","isTopLayer","useLayer","useGlobalKeyDown","TaskItem","taskType","radius","flex","createElement","weight","Fragment","message","fontSize","useApiClient","customApiClient","useTranslate","apiClient","user","toast","useToast","translate","_ref4","languagePath","translatePath","fieldLanguageMap","conditionalMembers","request","method","url","config","dataset","projectId","body","status","description","setTimeout","useGenerateCaption","generateCaption","_ref5","useGenerateImage","generateImage","_ref6","useGetInstructStatus","getInstructStatus","useInitInstruct","initInstruct","useRunInstructionApi","runInstruction","AiAssistanceConfigContext","useAiAssistanceConfig","context","useContext","AiAssistanceConfigProvider","setStatus","__customApiClient","statusLoading","initLoading","then","s","init","NO_INPUT","RunInstructionContext","instructionLoading","useRunInstruction","isUserInputBlock","block","RunInstructionProvider","runInstructionRequest","useId","inputs","setInputs","runRequest","setRunRequest","req","userInputBlocks","prompt","userTexts","close","runWithInput","entries","_ref7","blockKey","userInput","runDisabled","_ref8","runButton","PlayIcon","contextValue","Dialog","onClose","header","footer","Tooltip","UserInput","autoFocus","textAreaRef","currentTarget","target","FormFieldHeaderText","TextArea","rows","resize","isDocAssistable","liveEdit","getAssistableDocId","baseId","useRequestRunInstruction","args","requestRunInstruction","useDraftDelayedTask","documentOnChange","queuedArgs","setQueuedArgs","taskArgs","PatchEvent","from","unset","SparklesIllustration","SparklesIcon","strokeWidth","InspectorOnboarding","onDismiss","Container","textAlign","href","rel","inspectorOnboardingKey","fieldOnboardingKey","isFeatureOnboardingDismissed","featureKey","localStorage","getItem","dismissFeatureOnboarding","setItem","useOnboardingFeature","showOnboarding","setShowOnboarding","dismissOnboarding","BackToInstructionListLink","openInspector","goBack","ArrowLeftIcon","EMPTY_FIELDS","TypePathContext","AssistDocumentForm","border","AssistDocumentFormEditable","targetDocumentType","setParams","typePath","activeKey","activePath","base","useSelectedSchema","fieldExists","formCallbacks","useFormCallbacks","newCallbacks","FieldsInitializer","FormCallbacksProvider","lineHeight","FormInput","absolutePath","renderDefault","currentSchema","_ref9","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","pt","trim","getConditionalMembers","docState","conditional","extractConditionalPaths","_ref10","isConditional","conditionalState","memberState","node","kind","array","isObjectsArray","conditionalFieldset","fieldSet","CardWithShadowBelow","CardWithShadowAbove","AssistInspectorWrapper","DocumentInspectorHeader","closeButtonLabel","validToken","RetryIcon","AssistInspector","boundary","documentPane","docValue","formStateRef","assistableDocId","selectedField","aiDocId","promptValue","isEmptyPrompt","firstBlock","paneNode","runCurrentInstruction","Region","_props","AiInspectorHeader","fieldTitle","minHeight","PresenceOverlay","VirtualizerScrollInstanceProvider","scrollElement","containerElement","DocumentPaneProvider","paneKey","index","itemId","pane","whiteSpace","ArrowRightIcon","paddingX","paddingY","justifySelf","wrap","CloseIcon","assistInspector","useMenuItem","showAsAction","component","_ref11","AssistDocumentContext","useAssistDocumentContext","NO_PRESENCE","useAssistPresence","showFocusWithin","activePresence","statusPath","pathSegment","statusSegment","aiPresence","displayName","sessionId","lastActiveAt","fadeIn","FadeInDiv","div","FadeInContent","FadeInContent2","_ref12","durationMs","animationDuration","purple","hex","Root","span","dash","Outline","svg","IconDisc","AssistAvatar","scheme","useColorSchemeValue","viewBox","fill","xmlns","cx","cy","color","AiFieldPresence","position","background","contentEditable","AssistFeatureBadge","Badge","margin","AssistOnboardingPopover","dismiss","AssistIntroCard","shadow","buttonRef","CheckmarkIcon","FirstAssistedPathContext","FirstAssistedPathProvider","firstAssistedPath","firstAssisted","AssistFieldWrapper","isSupported","inputId","AssistField","isPortableText","isFirstAssisted","singlePresence","actions","__internal_slot","ConnectorsStoreContext","useConnectorsStore","hasOverflowScroll","el","getComputedStyle","useRegionRects","relativeBoundsRect","setRelativeBoundsRect","relativeElementRect","setRelativeElementRect","boundsScroll","setBoundsScroll","x","y","scroll","setScroll","boundsScrollXRef","boundsScrollYRef","elementScrollXRef","elementScrollYRef","scrollParents","parentElement","handleResize","scrollParent","boundsRect","getBoundingClientRect","window","innerWidth","innerHeight","domRect","w","h","handleScroll","scrollX","scrollY","scrollLeft","scrollTop","addEventListener","passive","ro","ResizeObserver","observe","unobserve","removeEventListener","disconnect","bounds","element","ConnectorRegion","onRectsChange","restProps","ConnectFromRegion","zIndex","rects","setRects","next","createConnectorsStore","configKeys","fieldKeys","channels","Map","payloads","observers","notifyObservers","connectors","toRects","toPayload","fromRects","fromPayload","payload","observer","delete","idx","indexOf","splice","ConnectorsProvider","onConnectorsChange","getConnectorLinePoint","rect","centerY","isAbove","arrow","marginY","isBelow","startY","endY","outOfBounds","mapConnectorToLine","connector","fromBounds","threshold","fromBottom","toBounds","toBottom","maxStartY","Math","max","min","arrowPath","dir","moveTo","lineTo","strings","delim","quadCurve","x1","y1","drawConnectorPath","line","cornerRadius","fromX","fromY","_toX","toY","toX","dividerX","divider","offsetX","fromPathX","marginX","r0","abs","r1","cmds","ConnectorPath","theme","useTheme","d","stroke","sanity","bg","rgba","DEBUG","AssistConnectorsOverlay","setRedraw","top","left","pointerEvents","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","self","root","Function","_root","Symbol","_Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","getRawTag$1","isOwn","call","unmasked","result","_getRawTag","objectToString","objectToString$1","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","baseGetTag$2","_baseGetTag","isObjectLike","isObjectLike$1","isObjectLike_1","symbolTag","isSymbol","isSymbol$3","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","isKey$1","object","test","_isKey","isObject","isObject$2","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction$1","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","isMasked$1","func","_isMasked","funcProto","funcToString","toSource","toSource$1","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","baseIsNative$1","pattern","_baseIsNative","getValue","getValue$1","_getValue","getNative","getNative$2","_getNative","nativeCreate","_nativeCreate","hashClear","hashClear$1","__data__","_hashClear","hashDelete","hashDelete$1","has","_hashDelete","HASH_UNDEFINED","hashGet","hashGet$1","_hashGet","hashHas","hashHas$1","_hashHas","hashSet","hashSet$1","_hashSet","require$$4","Hash","Hash$1","clear","entry","_Hash","listCacheClear","listCacheClear$1","_listCacheClear","eq","eq$1","other","eq_1","assocIndexOf","assocIndexOf$4","_assocIndexOf","arrayProto","listCacheDelete","listCacheDelete$1","lastIndex","pop","_listCacheDelete","listCacheGet","listCacheGet$1","_listCacheGet","listCacheHas","listCacheHas$1","_listCacheHas","listCacheSet","listCacheSet$1","_listCacheSet","ListCache","ListCache$1","_ListCache","_Map","mapCacheClear","mapCacheClear$1","_mapCacheClear","isKeyable","isKeyable$1","_isKeyable","getMapData","getMapData$4","_getMapData","mapCacheDelete","mapCacheDelete$1","_mapCacheDelete","mapCacheGet","mapCacheGet$1","_mapCacheGet","mapCacheHas","mapCacheHas$1","_mapCacheHas","mapCacheSet","mapCacheSet$1","_mapCacheSet","MapCache","MapCache$1","_MapCache","FUNC_ERROR_TEXT","memoize","memoize$1","resolver","TypeError","memoized","apply","cache","Cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","memoizeCapped$1","_memoizeCapped","rePropName","reEscapeChar","string","charCodeAt","number","quote","subString","_stringToPath","arrayMap","arrayMap$1","iteratee","_arrayMap","INFINITY","symbolProto","symbolToString","baseToString","baseToString$1","_baseToString","toString$1","toString_1","castPath","castPath$1","_castPath","toKey","toKey$1","_toKey","baseGet","baseGet$1","_baseGet","defaultValue","get_1","getLanguageParams","select","selection","selectedValue","toFieldLanguagesKeyPrefix","getPreferredToFieldLanguages","fromLanguageId","parse","setPreferredToFieldLanguages","languageIds","FieldTranslationContext","openFieldTranslation","translationLoading","useFieldTranslation","hasValuesToTranslate","fieldLanguageMaps","fromLanguage","FieldTranslationProvider","assistConfig","runTranslate","dialogOpen","setDialogOpen","fieldTranslationParams","setFieldTranslationParams","languages","setLanguages","setFromLanguage","toLanguages","setToLanguages","setFieldLanguageMaps","languageClient","selectFromLanguage","preferred","allToLanguages","l","filteredToLanguages","fromId","allToIds","docMembers","transMap","toId","translationOutputs","toggleToLanguage","toggledLang","wasSelected","newToLangs","anyLang","selectedLang","languageParams","selectLanguageParams","Promise","resolve","onRunTranslation","marginBottom","Radio","checked","opacity","Checkbox","tl","AssistLayout","setConnectors","ThemeProvider","WrapPreCard","SafeValueInput","ErrorWrapper","PteValueFixer","unsetValue","catcher","ErrorBoundary","onCatch","AssistFormBlock","localOnChange","patchEvent","prefixAll","AssistItem","pre","right","findFieldMember","fieldName","findFieldsetMember","fieldsetName","InstructionInput","NameField","ShareField","ObjectMember","_ref13","ObjectInputMember","NONE","fieldsetMember","titleId","iconMember","titleMember","titlePlaceholder","moddedTitleMember","htmlFor","marginLeft","visibilityMember","HiddenFieldTitle","level","InstructionVisibility","handleChange","newValue","Switch","elementProps","IconInput","items","icons","_ref14","IconItem","iconKey","selectedIcon","getIcon","MenuButton","menu","Menu","maxHeight","_ref15","MenuItem","iconName","_ref16","sparkles","FieldRefPathInput","querySelector","fieldSegments","lastArrayItemIndex","findLastIndex","mustStartWith","minWidth","InstructionsArrayInput","originalValue","originalMembers","InlineBlockValueContext","AssistInlineFormBlock","FieldRefPreview","textOverflow","HideReferenceChangedBannerInput","closest","parentId","random","innerText","prepend","contextDocumentSchema","defineType","TokenIcon","components","input","defineField","defineArrayMember","styles","lists","marks","decorators","preview","prepare","_ref17","child","words","subtitle","media","DocumentTextIcon","getRandomValues","typedArray","crypto","whatwgRNG","rnds8","Uint8Array","getByteHexTable","table","substring","randomKey","str","PteMods","PromptInput","useOnlyInlineBlocks","needsFix","val","InstructionsArrayField","InstructionOutputField","isArrayOfObjectsSchemaType","EnabledOutputField","_ref18","onExpand","onCollapse","collapsible","collapsed","InstructionOutputInput","ObjectOutputInput","ArrayOutputInput","useEmptySelectAllValue","allowedValues","validValues","relativePath","valueLength","validLength","_ref19","onSelectChange","patchValue","Selectable","_ref20","ofItems","_ref21","cursor","fieldReference","ThListIcon","rule","custom","docId","targetDocType","refs","_ref22","CodeIcon","modal","ComposeIcon","required","promptContext","Fix","maxWidth","_ref23","LockIcon","fieldset","initialValue","createdById","fieldInstructions","assistDocumentSchema","instructionTask","documentInstructionStatus","excludeComments","existingRender","newProps","__internal_comments","arrayItemType","instructionForm","schemaTypes","useAssistSupported","useAssistDocumentContextValue","getPublishedId","assistableDocumentId","documentIsNew","documentIsAssistable","selectedPath","closeInspector","inspector","PrivateIcon","fallbackPlacements","ImageContext","ImageContextProvider","assetRef","asset","assetRefState","setAssetRefState","isSyncing","useSyncState","captionPath","imagePromptPath","generateCaptionsActions","useAction","imageContext","transform","onAction","renderAsButton","translateActions","_f","_g","_h","fieldSchemaType","isDocumentLevel","docTransTypes","documentTypes","addFieldAction","translateAction","fieldTransEnabled","documentTranslationEnabled","documentValue","docRef","translationApi","languageField","translateDocumentAction","TranslateIcon","fieldTranslate","translateFieldsAction","c","expanded","generateImagActions","assistFieldActions","isHidden","isSelectable","assistSupported","fieldAssist","fieldAssistKey","isInspectorOpen","isPathSelected","isSelected","imageCaptionAction","imageGenAction","manageInstructions","onInstructionAction","privateInstructions","sharedInstructions","runInstructionsGroup","instructionItem","isPrivate","instructionsLength","manageInstructionsItem","ControlsIcon","group","emptyAction","iconRight","AssistDocumentContextProvider","NO_TASKS","useInstructionToaster","assistDocLoaded","previousTasks","prevTaskByKey","fromEntries","endedTasks","startedByUserId","prevTask","isAfter","addSeconds","closable","duration","AssistDocumentInputWrapper","AssistInput","AssistDocumentInput","_ref24","createAssistDocumentPresence","AssistDocumentPresenceWrapper","AssistDocumentPresence","anyPresence","anyRun","assist","definePlugin","configWithDefaults","i18n","bundles","inspectors","prev","docSchema","unstable_fieldActions","_ref25","unstable_languageFilter","_ref26","studio","layout","Layout","form","inlineBlock","plugins"],"mappings":"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","x_google_ignoreList":[35,55,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,125]}
|