sanity 3.93.1-next.23.7cabaeaf78 → 3.93.1-next.27.be182aaafa
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/lib/_chunks-cjs/version.js +1 -1
- package/lib/_chunks-es/version.mjs +1 -1
- package/package.json +10 -10
- package/dist/1-yrhfgGSy.mjs +0 -5
- package/dist/1-yrhfgGSy.mjs.map +0 -1
- package/dist/BackLink-BjbAxrJO.mjs +0 -2
- package/dist/BackLink-BjbAxrJO.mjs.map +0 -1
- package/dist/BehaviorSubject-lT90ntN-.mjs +0 -2
- package/dist/BehaviorSubject-lT90ntN-.mjs.map +0 -1
- package/dist/BroadcastDisplayedDocument-NLP-sZ3E.mjs +0 -2
- package/dist/BroadcastDisplayedDocument-NLP-sZ3E.mjs.map +0 -1
- package/dist/Delay-BF0O9UCI.mjs +0 -2
- package/dist/Delay-BF0O9UCI.mjs.map +0 -1
- package/dist/DisplayedDocumentBroadcaster-bVq7qjFz.mjs +0 -2
- package/dist/DisplayedDocumentBroadcaster-bVq7qjFz.mjs.map +0 -1
- package/dist/DocumentPane-B9qqshkT.mjs +0 -263
- package/dist/DocumentPane-B9qqshkT.mjs.map +0 -1
- package/dist/EmptyError-BLRYgvfy.mjs +0 -2
- package/dist/EmptyError-BLRYgvfy.mjs.map +0 -1
- package/dist/LiveQueries-D9bwoNKb.mjs +0 -2
- package/dist/LiveQueries-D9bwoNKb.mjs.map +0 -1
- package/dist/LoadingPane-fVJxEQpb.mjs +0 -10
- package/dist/LoadingPane-fVJxEQpb.mjs.map +0 -1
- package/dist/MenuGroup-DZWX1dWR.mjs +0 -2
- package/dist/MenuGroup-DZWX1dWR.mjs.map +0 -1
- package/dist/MenuItem-nwzB8TNk.mjs +0 -8
- package/dist/MenuItem-nwzB8TNk.mjs.map +0 -1
- package/dist/Observable-B8U6mp9h.mjs +0 -4
- package/dist/Observable-B8U6mp9h.mjs.map +0 -1
- package/dist/PaneContainer-BqULSwD0.mjs +0 -109
- package/dist/PaneContainer-BqULSwD0.mjs.map +0 -1
- package/dist/PaneHeaderActions-BwRjxrbU.mjs +0 -2
- package/dist/PaneHeaderActions-BwRjxrbU.mjs.map +0 -1
- package/dist/PaneItem-CXeBMzOt.mjs +0 -2
- package/dist/PaneItem-CXeBMzOt.mjs.map +0 -1
- package/dist/PostMessageDocuments-BV62lQ7C.mjs +0 -2
- package/dist/PostMessageDocuments-BV62lQ7C.mjs.map +0 -1
- package/dist/PostMessagePerspective-CFiQ6IFc.mjs +0 -2
- package/dist/PostMessagePerspective-CFiQ6IFc.mjs.map +0 -1
- package/dist/PostMessagePreviewSnapshots-5oC2mIn1.mjs +0 -2
- package/dist/PostMessagePreviewSnapshots-5oC2mIn1.mjs.map +0 -1
- package/dist/PostMessageRefreshMutations-DdxC6YP_.mjs +0 -2
- package/dist/PostMessageRefreshMutations-DdxC6YP_.mjs.map +0 -1
- package/dist/PostMessageSchema-Bcs4xG5C.mjs +0 -2
- package/dist/PostMessageSchema-Bcs4xG5C.mjs.map +0 -1
- package/dist/PostMessageTelemetry-LUBYudOJ.mjs +0 -2
- package/dist/PostMessageTelemetry-LUBYudOJ.mjs.map +0 -1
- package/dist/PresentationToolGrantsCheck-CgJU8JlK.mjs +0 -100
- package/dist/PresentationToolGrantsCheck-CgJU8JlK.mjs.map +0 -1
- package/dist/QRCodeSVG-CxOJrjO_.mjs +0 -2
- package/dist/QRCodeSVG-CxOJrjO_.mjs.map +0 -1
- package/dist/Refractor-UCi38mb-.mjs +0 -5
- package/dist/Refractor-UCi38mb-.mjs.map +0 -1
- package/dist/ReplaySubject-CHMGH8uo.mjs +0 -2
- package/dist/ReplaySubject-CHMGH8uo.mjs.map +0 -1
- package/dist/SourceContext-D53WuQKs.mjs +0 -2
- package/dist/SourceContext-D53WuQKs.mjs.map +0 -1
- package/dist/StructureToolProvider-C8VLdhP8.mjs +0 -2
- package/dist/StructureToolProvider-C8VLdhP8.mjs.map +0 -1
- package/dist/Subject-BUseddH4.mjs +0 -2
- package/dist/Subject-BUseddH4.mjs.map +0 -1
- package/dist/Tooltip-JnkpPrKf.mjs +0 -4
- package/dist/Tooltip-JnkpPrKf.mjs.map +0 -1
- package/dist/TooltipDelayGroupProvider-DFmNEvMS.mjs +0 -2
- package/dist/TooltipDelayGroupProvider-DFmNEvMS.mjs.map +0 -1
- package/dist/ViteDevServerStopped-XKSHzTxM.mjs +0 -2
- package/dist/ViteDevServerStopped-XKSHzTxM.mjs.map +0 -1
- package/dist/_createContext.mjs +0 -2
- package/dist/_createContext.mjs.map +0 -1
- package/dist/_singletons.mjs +0 -2
- package/dist/_singletons.mjs.map +0 -1
- package/dist/asserters-C8hxedkt.mjs +0 -2
- package/dist/asserters-C8hxedkt.mjs.map +0 -1
- package/dist/async-HS7jgwe2.mjs +0 -2
- package/dist/async-HS7jgwe2.mjs.map +0 -1
- package/dist/browser-Ca2COO1i.mjs +0 -14
- package/dist/browser-Ca2COO1i.mjs.map +0 -1
- package/dist/browser-oKMlC993.mjs +0 -2
- package/dist/browser-oKMlC993.mjs.map +0 -1
- package/dist/chunk-DSR6Ryem.mjs +0 -1
- package/dist/combineLatest-CFPJgUfN.mjs +0 -2
- package/dist/combineLatest-CFPJgUfN.mjs.map +0 -1
- package/dist/concat-BWArfBxD.mjs +0 -2
- package/dist/concat-BWArfBxD.mjs.map +0 -1
- package/dist/concatMap-DZrL7ZKn.mjs +0 -2
- package/dist/concatMap-DZrL7ZKn.mjs.map +0 -1
- package/dist/constants-ChSQUPYh.mjs +0 -5
- package/dist/constants-ChSQUPYh.mjs.map +0 -1
- package/dist/constants-ClLucOHG.mjs +0 -10
- package/dist/constants-ClLucOHG.mjs.map +0 -1
- package/dist/csm-BGmdCiS5.mjs +0 -3
- package/dist/csm-BGmdCiS5.mjs.map +0 -1
- package/dist/dateTimestampProvider-Bu3RH21w.mjs +0 -2
- package/dist/dateTimestampProvider-Bu3RH21w.mjs.map +0 -1
- package/dist/debounceTime-ZjGvEiAc.mjs +0 -2
- package/dist/debounceTime-ZjGvEiAc.mjs.map +0 -1
- package/dist/desk.mjs +0 -2
- package/dist/desk.mjs.map +0 -1
- package/dist/dist-B6kS-Ue1.mjs +0 -2
- package/dist/dist-B6kS-Ue1.mjs.map +0 -1
- package/dist/dist-BBJTJw5c.mjs +0 -2
- package/dist/dist-BBJTJw5c.mjs.map +0 -1
- package/dist/dist-ByxNQHyT.mjs +0 -2
- package/dist/dist-ByxNQHyT.mjs.map +0 -1
- package/dist/dist-CbgPQx6C.mjs +0 -8
- package/dist/dist-CbgPQx6C.mjs.map +0 -1
- package/dist/dist-ClpwwQr8.mjs +0 -15
- package/dist/dist-ClpwwQr8.mjs.map +0 -1
- package/dist/dist-DPyoedQR.mjs +0 -2
- package/dist/dist-DPyoedQR.mjs.map +0 -1
- package/dist/dist-DTr4N9sP.mjs +0 -2
- package/dist/dist-DTr4N9sP.mjs.map +0 -1
- package/dist/dist-DhOlFDfY.mjs +0 -2
- package/dist/dist-DhOlFDfY.mjs.map +0 -1
- package/dist/dist-Du4lGEpF.mjs +0 -2
- package/dist/dist-Du4lGEpF.mjs.map +0 -1
- package/dist/dist-gdCAZyAZ.mjs +0 -1213
- package/dist/dist-gdCAZyAZ.mjs.map +0 -1
- package/dist/dist-p4qSKgLr.mjs +0 -2
- package/dist/dist-p4qSKgLr.mjs.map +0 -1
- package/dist/fast-deep-equal-D2buQJMm.mjs +0 -2
- package/dist/fast-deep-equal-D2buQJMm.mjs.map +0 -1
- package/dist/filter-Dzj28Ftl.mjs +0 -2
- package/dist/filter-Dzj28Ftl.mjs.map +0 -1
- package/dist/first-rmXQWXXU.mjs +0 -2
- package/dist/first-rmXQWXXU.mjs.map +0 -1
- package/dist/from-1e-Bj2Xm.mjs +0 -2
- package/dist/from-1e-Bj2Xm.mjs.map +0 -1
- package/dist/getExtendedProjection-ocJy6w-1.mjs +0 -2
- package/dist/getExtendedProjection-ocJy6w-1.mjs.map +0 -1
- package/dist/getIntentState-BzHK-R2v.mjs +0 -25
- package/dist/getIntentState-BzHK-R2v.mjs.map +0 -1
- package/dist/helpers-DmN6xVrH.mjs +0 -2
- package/dist/helpers-DmN6xVrH.mjs.map +0 -1
- package/dist/i18n-DSW5BxWp.mjs +0 -2
- package/dist/i18n-DSW5BxWp.mjs.map +0 -1
- package/dist/index.browser-CKm2u9SF.mjs +0 -14
- package/dist/index.browser-CKm2u9SF.mjs.map +0 -1
- package/dist/index.browser-m6o-65PH.mjs +0 -2
- package/dist/index.browser-m6o-65PH.mjs.map +0 -1
- package/dist/index.mjs +0 -4364
- package/dist/index.mjs.map +0 -1
- package/dist/inputWrappers-B2JwUo5Q.mjs +0 -6
- package/dist/inputWrappers-B2JwUo5Q.mjs.map +0 -1
- package/dist/isObservable-D3WTlre7.mjs +0 -2
- package/dist/isObservable-D3WTlre7.mjs.map +0 -1
- package/dist/lastValueFrom-DNJfBsuL.mjs +0 -2
- package/dist/lastValueFrom-DNJfBsuL.mjs.map +0 -1
- package/dist/list-CRYGwmUP.mjs +0 -17
- package/dist/list-CRYGwmUP.mjs.map +0 -1
- package/dist/lodash-Bv9uePfP.mjs +0 -21
- package/dist/lodash-Bv9uePfP.mjs.map +0 -1
- package/dist/map-DkDssZnl.mjs +0 -2
- package/dist/map-DkDssZnl.mjs.map +0 -1
- package/dist/mapOneOrManyArgs-nKglr-Z6.mjs +0 -2
- package/dist/mapOneOrManyArgs-nKglr-Z6.mjs.map +0 -1
- package/dist/menuNodes-DfRBkUna.mjs +0 -2
- package/dist/menuNodes-DfRBkUna.mjs.map +0 -1
- package/dist/merge-DLqD1gqk.mjs +0 -2
- package/dist/merge-DLqD1gqk.mjs.map +0 -1
- package/dist/mergeMap-BhPr1e5f.mjs +0 -2
- package/dist/mergeMap-BhPr1e5f.mjs.map +0 -1
- package/dist/never-DgTZVAtg.mjs +0 -2
- package/dist/never-DgTZVAtg.mjs.map +0 -1
- package/dist/of-DHUS5V5R.mjs +0 -2
- package/dist/of-DHUS5V5R.mjs.map +0 -1
- package/dist/pane-BMyHaSp6.mjs +0 -1
- package/dist/pane-CAXJwiOS.mjs +0 -1
- package/dist/paths-Uiaz64OV.mjs +0 -2
- package/dist/paths-Uiaz64OV.mjs.map +0 -1
- package/dist/presentation.mjs +0 -12
- package/dist/presentation.mjs.map +0 -1
- package/dist/proxy-Dqw503dV.mjs +0 -2
- package/dist/proxy-Dqw503dV.mjs.map +0 -1
- package/dist/publishReplay-w0VqSlUG.mjs +0 -2
- package/dist/publishReplay-w0VqSlUG.mjs.map +0 -1
- package/dist/react-CcFWW54u.mjs +0 -2
- package/dist/react-CcFWW54u.mjs.map +0 -1
- package/dist/refractor-BE6oAO2f.mjs +0 -2
- package/dist/refractor-BE6oAO2f.mjs.map +0 -1
- package/dist/resources-B-P7yY4i.mjs +0 -2
- package/dist/resources-B-P7yY4i.mjs.map +0 -1
- package/dist/resources-BMgz3UTF.mjs +0 -2
- package/dist/resources-BMgz3UTF.mjs.map +0 -1
- package/dist/resources-C10e-Tmd.mjs +0 -2
- package/dist/resources-C10e-Tmd.mjs.map +0 -1
- package/dist/resources-C63HMln_.mjs +0 -3
- package/dist/resources-C63HMln_.mjs.map +0 -1
- package/dist/resources-QIglKpCh.mjs +0 -2
- package/dist/resources-QIglKpCh.mjs.map +0 -1
- package/dist/resources-a_EhxFoi.mjs +0 -2
- package/dist/resources-a_EhxFoi.mjs.map +0 -1
- package/dist/resources-wUgycRup.mjs +0 -2
- package/dist/resources-wUgycRup.mjs.map +0 -1
- package/dist/router.mjs +0 -2
- package/dist/router.mjs.map +0 -1
- package/dist/scan-zuMwSL6_.mjs +0 -2
- package/dist/scan-zuMwSL6_.mjs.map +0 -1
- package/dist/share-DudygGnN.mjs +0 -2
- package/dist/share-DudygGnN.mjs.map +0 -1
- package/dist/shareReplay-DNp-xAdu.mjs +0 -2
- package/dist/shareReplay-DNp-xAdu.mjs.map +0 -1
- package/dist/speakingurl-D9zTR1xM.mjs +0 -2
- package/dist/speakingurl-D9zTR1xM.mjs.map +0 -1
- package/dist/stegaClean-CF_wp2AP.mjs +0 -2
- package/dist/stegaClean-CF_wp2AP.mjs.map +0 -1
- package/dist/stegaEncodeSourceMap-sinaqym6.mjs +0 -3
- package/dist/stegaEncodeSourceMap-sinaqym6.mjs.map +0 -1
- package/dist/structure-DeitBGwm.mjs +0 -122
- package/dist/structure-DeitBGwm.mjs.map +0 -1
- package/dist/structure.mjs +0 -1
- package/dist/structureTool-C7WqcvTM.mjs +0 -11
- package/dist/structureTool-C7WqcvTM.mjs.map +0 -1
- package/dist/switchMap-Dkb8wgZy.mjs +0 -2
- package/dist/switchMap-Dkb8wgZy.mjs.map +0 -1
- package/dist/take-CsBFzexj.mjs +0 -2
- package/dist/take-CsBFzexj.mjs.map +0 -1
- package/dist/takeUntil-CFb43n44.mjs +0 -2
- package/dist/takeUntil-CFb43n44.mjs.map +0 -1
- package/dist/throttle-84hk9ct5.mjs +0 -2
- package/dist/throttle-84hk9ct5.mjs.map +0 -1
- package/dist/timer-CudmXrHS.mjs +0 -2
- package/dist/timer-CudmXrHS.mjs.map +0 -1
- package/dist/urlpattern-polyfill-CTSIY__t.mjs +0 -2
- package/dist/urlpattern-polyfill-CTSIY__t.mjs.map +0 -1
- package/dist/usePaneRouter-BnyByWgR.mjs +0 -2
- package/dist/usePaneRouter-BnyByWgR.mjs.map +0 -1
- package/dist/usePresentationNavigate-CIMnjQ3N.mjs +0 -2
- package/dist/usePresentationNavigate-CIMnjQ3N.mjs.map +0 -1
- package/dist/usePresentationParams-CK4TAdiB.mjs +0 -2
- package/dist/usePresentationParams-CK4TAdiB.mjs.map +0 -1
- package/dist/useStructureTool-DJWYs4dK.mjs +0 -86
- package/dist/useStructureTool-DJWYs4dK.mjs.map +0 -1
- package/dist/useStructureToolSetting-BmMWFoFU.mjs +0 -2
- package/dist/useStructureToolSetting-BmMWFoFU.mjs.map +0 -1
- package/dist/userComponent-C7AeZ7LF.mjs +0 -4
- package/dist/userComponent-C7AeZ7LF.mjs.map +0 -1
- package/dist/v4-jDHpYEaJ.mjs +0 -2
- package/dist/v4-jDHpYEaJ.mjs.map +0 -1
- package/dist/version-BzHQOibY.mjs +0 -2
- package/dist/version-BzHQOibY.mjs.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DocumentPane-B9qqshkT.mjs","names":["SanityDocumentLike","unstable_useValuePreview","useValuePreview","useSchema","useTranslation","structureLocaleNamespace","DocTitleProps","document","DocTitle","props","$","_c","documentValue","schema","t0","_type","get","schemaType","t","t1","value","error","t2","t3","message","errorMessage","title","color","Card","Layer","styled","Root","RootCard","Box","ForwardedRef","forwardRef","ReactNode","LegacyLayerProvider","Root","RootCard","usePane","PaneFooterProps","children","padding","PaneFooter","props","ref","$","_c","collapsed","t0","t1","memo","ReactNode","useMemo","DocumentActionComponent","DocumentActionDescription","DocumentActionGroup","DocumentActionProps","getDraftId","GetHookCollectionState","getPublishedId","useCanvasCompanionDoc","useTranslation","structureLocaleNamespace","Action","args","Args","Description","ResolvedAction","action","RenderActionCollectionProps","actions","actionProps","Omit","children","props","states","onActionComplete","group","RenderActionCollectionState","$","_c","t0","id","liveEditSchemaType","t1","displayName","SUPPORTED_LINKED_TO_CANVAS_ACTIONS","ActionsGuardWrapperProps","documentId","ActionsGuardWrapper","t","isLinked","bb0","t2","s","includes","disabled","title","map","result","memo","ReactNode","DocumentBadgeDescription","DocumentBadgeProps","EditStateFor","GetHookCollectionState","Badge","args","Args","Description","RenderBadgeCollectionProps","badges","badgeProps","children","props","states","RenderBadgeCollectionState","$","_c","t0","displayName","useMemo","Subject","PathSyncChannel","PathSyncState","useCreatePathSyncChannel","$","_c","t0","t1","Symbol","for","DIFF_VIEW_SEARCH_PARAMETER","DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER","DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER","DIFF_SEARCH_PARAM_DELIMITER","fromPairs","toPairs","useCallback","useRouter","DIFF_SEARCH_PARAM_DELIMITER","DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER","DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER","DIFF_VIEW_SEARCH_PARAMETER","DiffViewMode","NavigateDiffView","options","mode","Partial","Record","type","id","DiffViewRouter","navigateDiffView","exitDiffView","useDiffViewRouter","$","_c","navigate","state","routerState","t0","t1","previousDocument","nextDocument","next","_searchParams","join","filter","_temp","t2","key","includes","diffViewModes","const","DiffViewMode","useEffect","useMemo","useRouter","DIFF_SEARCH_PARAM_DELIMITER","DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER","DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER","DIFF_VIEW_SEARCH_PARAMETER","DiffViewMode","diffViewModes","isDiffViewMode","maybeDiffViewMode","includes","DiffViewState","isActive","state","mode","documents","Record","type","id","useDiffViewState","onParamsError","errors","DiffViewStateErrorWithInput","routerState","searchParams","URLSearchParams","_searchParams","previousDocument","get","nextDocument","anyParamSet","some","param","params","parseParams","result","DiffViewStateError","error","input","ParamsSuccess","Pick","ParamsError","previousDocumentType","previousDocumentId","split","filter","Boolean","nextDocumentType","nextDocumentId","push","length","previous","next","e","t","o","r","n","l","s","useEffect","ScrollMirror","useScrollMirror","elements","$","_c","t0","t1","existentElements","filter","_temp","length","scrollMirror","destroy","element","CloseIcon","LockIcon","TransferIcon","Box","Button","ButtonTone","Flex","Menu","MenuItem","Stack","Text","TFunction","ComponentProps","ComponentType","useCallback","useMemo","DocumentLayoutProps","formatRelativeLocalePublishDate","getDraftId","getPublishedId","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","getVersionId","isDraftId","isPublishedId","isReleaseDocument","isReleaseScheduledOrScheduling","ReleaseAvatar","ReleaseDocument","useActiveReleases","useDocumentVersions","useEditState","useTranslation","styled","MenuButton","structureLocaleNamespace","useDiffViewRouter","useDiffViewState","VersionModeHeaderLayout","header","VersionModeHeaderLayoutSection","div","VersionModeHeader","state","Pick","documentId","t","data","documentVersions","exitDiffView","navigateDiffView","documents","activeReleases","releasesIds","flatMap","id","releases","filter","release","releaseId","_id","includes","onSelectPreviousRelease","selectedDocumentId","previous","previousDocument","onSelectNextRelease","next","nextDocument","justifySelf","VersionMenuProps","role","onSelectRelease","document","type","VersionMenu","published","draft","selected","findRelease","tStructure","tCore","getMenuButtonProps","map","VersionMenuItemProps","onSelect","isSelected","VersionMenuItem","onClick","tone","join","metadata","title","releaseType","text","disabled","icon","iconRight","undefined","find","styled","DialogLayout","div","ComponentType","DocumentLayoutProps","PluginOptions","pickDocumentLayoutComponent","plugin","document","components","unstable_layout","Omit","Path","useCallback","useMemo","deepEquals","distinctUntilChanged","filter","map","Observable","PathSyncChannelProps","PathSyncState","Push","state","usePathSyncChannel","t0","$","_c","syncChannel","id","t1","next","source","push","t2","t3","t4","t5","pipe","_temp","_temp2","path","state_0","previous","styled","Scroller","div","Path","SanityDocument","BoundaryElementProvider","Card","Container","UiContainer","DialogProvider","PortalProvider","noop","ComponentType","CSSProperties","forwardRef","useCallback","useEffect","useMemo","useRef","useState","ChangeIndicatorsTracker","createPatchChannel","FormBuilder","getPublishedId","getVersionFromId","isDraftId","isPublishedId","isVersionId","LoadingBlock","useDocumentForm","useEditState","useMiddlewareComponents","VirtualizerScrollInstanceProvider","CommentsEnabledContext","ReviewChangesContext","styled","pickDocumentLayoutComponent","usePathSyncChannel","PathSyncChannel","Scroller","DiffViewPaneLayout","DiffViewPaneProps","documentType","documentId","role","scrollElement","HTMLElement","syncChannel","compareDocument","type","id","DiffViewPane","HTMLDivElement","t0","ref","$","_c","containerElement","portalElement","setPortalElement","boundaryElement","setBoundaryElement","t1","t2","t3","pick","defaultComponent","DocumentLayout","t4","Symbol","for","isInteractive","onOpenReviewChanges","onSetFocus","isReviewChangesOpen","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","DiffViewDocument","compareValue","useCompareValue","patchChannel","_temp","perspectiveName","selectedPerspectiveName","releaseId","comparisonValue","collapsedFieldSets","collapsedPaths","documentForm","formState","onBlur","onChange","onFocus","onProgrammaticFocus","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","ready","schemaType","value","isLoading","pathSyncChannel","path","onPathOpen","push","source","subscription","subscribe","unsubscribe","enabled","mode","focusPath","changed","focused","groups","validation","members","presence","undefined","UseCompareValueOptions","Pick","compareDocumentEditState","bb0","version","draft","published","ReferenceInputOptions","useIntentLink","styled","Link","a","EditReferenceLinkComponent","t0","$","_c","children","documentId","_documentId","documentType","t1","intent","params","id","type","href","t2","ComponentType","useContext","useMemo","useState","DocumentLayoutProps","ReferenceInputOptionsContext","Dialog","useCreatePathSyncChannel","useDiffViewRouter","useDiffViewState","useScrollMirror","VersionModeHeader","DialogLayout","DiffViewPane","EditReferenceLinkComponent","DiffView","Pick","t0","$","_c","documentId","documents","state","mode","exitDiffView","syncChannel","previousPaneElement","setPreviousPaneElement","nextPaneElement","setNextPaneElement","referenceInputOptionsContext","t1","t2","disableNew","diffViewReferenceInputOptionsContext","t3","t4","t5","previous","type","id","next","t6","t7","t8","useToast","ComponentType","PropsWithChildren","DocumentLayoutProps","useTranslation","structureLocaleNamespace","DiffView","useDiffViewState","DiffViewDocumentLayout","Pick","t0","$","_c","children","documentId","toast","t","t1","onParamsError","errors","push","id","status","title","description","map","t2","error","input","isActive","t3","Box","CardTone","Pane","PaneContent","PaneHeader","ErrorPane","props","$","_c","children","currentMinWidth","flex","minWidth","paneKey","title","t0","tone","t1","undefined","t2","t3","t4","useContext","DocumentPaneContext","DocumentPaneContextValue","useDocumentPane","documentPane","Error","useCallback","useLayoutEffect","useRef","COMMENTS_INSPECTOR_NAME","CommentsEnabledProvider","CommentsProvider","useCommentsEnabled","usePerspective","useStudioUrl","usePaneRouter","useDocumentPane","CommentsWrapperProps","children","React","ReactNode","documentId","documentType","CommentsWrapper","props","$","_c","t0","t1","CommentsProviderWrapper","enabled","connectionState","onPathOpen","inspector","openInspector","selectedReleaseId","params","setParams","createPathWithParams","studioUrl","window","location","origin","selectedCommentId","comment","paramsRef","current","t2","commentId","path","inspect","getCommentLink","t3","undefined","handleClearSelectedComment","t4","name","handleOpenCommentsInspector","t5","t6","t7","useMemo","getReleaseIdFromReleaseDocumentId","getVersionFromId","ReleaseDocument","useActiveReleases","useArchivedReleases","useDocumentVersions","usePerspective","usePaneRouter","DocumentPaneContextValue","FilterReleases","notCurrentReleases","currentReleases","inCreation","useFilteredReleases","displayed","documentId","Pick","selectedReleaseId","data","releases","archivedReleases","documentVersions","isCreatingDocument","_createdAt","params","releasesIds","map","id","activeReleases","reduce","acc","release","versionDocExists","includes","_id","releaseId","isCreatingThisVersion","push","historyVersion","archivedRelease","find","r","state","useMemo","getReleaseIdFromReleaseDocumentId","getVersionId","DocumentPaneContextValue","useFilteredReleases","DocumentIdStack","position","previousId","nextId","stack","useDocumentIdStack","t0","$","_c","displayed","documentId","editState","t1","filteredReleases","t2","published","_id","t3","draft","t4","systemStack","t5","currentReleases","t6","release","id","map","releaseStack","concat","filter","_temp","t7","findIndex","id_0","t8","undefined","t9","t10","PaneRouterContextValue","PaneMenuItemGroup","DOCUMENT_PANEL_MIN_WIDTH","DOCUMENT_PANEL_INITIAL_MIN_WIDTH","DOCUMENT_INSPECTOR_MIN_WIDTH","DOCUMENT_INSPECTOR_MAX_WIDTH","EMPTY_PARAMS","NonNullable","INSPECT_ACTION_PREFIX","DEFAULT_MENU_ITEM_GROUPS","id","HISTORY_INSPECTOR_NAME","VALIDATION_INSPECTOR_NAME","memo","useCallback","useEffect","useMemo","useState","DocumentInspector","DocumentInspectorMenuItem","useUnique","DocumentInspectorMenuItemsResolverProps","documentId","documentType","inspectors","onMenuItems","items","DocumentInspectorMenuItemsResolver","props","len","length","menuItems","setMenuItems","Array","from","newFieldActions","i","setMenuItem","index","node","prev","next","filter","Boolean","InspectorMenuItems","map","inspector","useMenuItem","defineInspectorMenuItemComponent","name","const","InspectorMenuItem","key","displayName","NonNullable","$","_c","t0","Symbol","for","menuItem","t1","t2","unstable_useValuePreview","useValuePreview","useTranslation","structureLocaleNamespace","useDocumentPane","UseDocumentTitle","error","title","useDocumentTitle","$","_c","connectionState","schemaType","displayed","t","subscribed","Boolean","t0","enabled","value","t1","Symbol","for","undefined","name","t2","t3","message","useToast","memo","useEffect","useMemo","useRef","Translate","useDocumentOperationEvent","useTranslation","usePaneRouter","structureLocaleNamespace","useDocumentPane","useDocumentTitle","IGNORE_OPS","DocumentOperationResults","$","_c","push","pushToast","documentId","documentType","value","documentPaneValue","documentTitleInfo","titleError","error","event","prevEvent","paneRouter","t","t0","bb0","title","includes","op","type","t1","documentTitleBase","t2","length","slice","documentTitle","t3","t4","current","cleanupId","closable","duration","status","context","description","message","Strong","closeCurrentAndAfter","clearTimeout","WarningOutlineIcon","PreviewValue","SanityDocument","SchemaType","assignWith","ReactNode","combineLatest","Observable","of","map","startWith","DocumentPreviewStore","getDraftId","getPublishedId","PaneItemPreviewState","isLiveEditEnabled","schemaType","liveEdit","getMissingDocumentFallback","item","title","String","subtitle","_id","media","getValueWithFallback","value","draft","published","Partial","snapshot","objValue","srcValue","getPreviewStateObservable","documentPreviewStore","documentId","draft$","observeForPreview","_type","_ref","published$","pipe","isLoading","Box","useCallback","Resizable","usePane","useStructureTool","DOCUMENT_INSPECTOR_MAX_WIDTH","DOCUMENT_INSPECTOR_MIN_WIDTH","useDocumentPane","DocumentInspectorPanelProps","documentId","documentType","flex","DocumentInspectorPanel","props","$","_c","collapsed","closeInspector","inspector","features","t0","name","handleClose","Component","component","t1","element","resizablePanes","t2","debounce","l","s","t","t","root","e","Search","VIEW_MODE_PARSED","id","title","VIEW_MODE_RAW","VIEW_MODES","SanityDocumentLike","LRU","isRecord","isString","lru","maxSize","isExpanded","keyPath","value","cached","get","undefined","set","Array","isArray","toggleExpanded","event","path","current","selectElement","element","HTMLElement","sel","window","getSelection","range","document","createRange","removeAllRanges","selectNodeContents","addRange","select","currentTarget","maybeSelectAll","selectAll","keyCode","metaKey","ctrlKey","preventDefault","isDocumentLike","_id","_type","rem","Theme","css","styled","JSONInspectorWrapper","div","theme","color","fonts","space","sanity","code","family","sizes","fontSize","lineHeight","syntax","property","constant","string","boolean","number","SearchIcon","TextInput","ChangeEvent","useCallback","useTranslation","structureLocaleNamespace","Search","props","$","_c","onChange","query","t0","event","target","value","handleChange","t","t1","t2","t3","JsonInspector","SanityDocument","Card","Code","Flex","TabList","TabPanel","useCallback","Translate","useTranslation","Dialog","Tab","DocTitle","structureLocaleNamespace","useStructureToolSetting","useDocumentPane","VIEW_MODE_PARSED","VIEW_MODE_RAW","VIEW_MODES","isDocumentLike","isExpanded","maybeSelectAll","select","toggleExpanded","JSONInspectorWrapper","Search","InspectDialogProps","value","Partial","InspectDialog","props","$","_c","onInspectClose","paneKey","dialogIdPrefix","viewModeId","onViewModeChange","t0","find","mode","id","viewMode","t1","setParsedViewMode","t2","setRawViewMode","t","t3","t4","DocumentTitle","t5","Symbol","for","position","bottom","zIndex","t6","t7","t8","title","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","outline","t20","ignoreCase","t21","JSON","stringify","t22","t23","t24","Box","ButtonMode","ButtonTone","Card","CardTone","Flex","Text","ComponentType","ElementType","ReactNode","Button","BannerProps","action","as","React","JSX","IntrinsicElements","icon","onClick","text","tone","disabled","mode","content","paddingY","Banner","props","$","_c","Icon","rest","t0","t1","undefined","t2","t3","t4","t5","t6","DocumentRemoveIcon","ReadOnlyIcon","Text","useCallback","isDraftPerspective","isPublishedPerspective","ReleaseDocument","Translate","useDocumentOperation","usePerspective","useTranslation","useRouter","structureLocaleNamespace","useDocumentPane","Banner","DeletedDocumentBanners","$","_c","isDeleted","isDeleting","ready","selectedPerspective","state","t0","t1","Symbol","for","DeletedDocumentBanner","documentId","documentType","restore","navigateIntent","execute","id","type","handleRestore","t","t2","onClick","text","t3","t4","t5","ArchivedReleaseBanner","release","metadata","title","ErrorOutlineIcon","Text","isDeprecatedSchemaType","Translate","useTranslation","structureLocaleNamespace","useDocumentPane","Banner","DeprecatedDocumentTypeBanner","$","_c","schemaType","t","t0","t1","deprecated","reason","defineEvent","AskToEditDialogOpened","name","version","description","AskToEditRequestSent","useTelemetry","Box","Card","DialogProvider","Flex","Stack","Text","TextInput","useToast","useId","useMemo","useState","useObservable","catchError","map","Observable","of","startWith","Role","useClient","useProjectId","useTranslation","useZIndex","styled","Dialog","structureLocaleNamespace","AskToEditRequestSent","AccessRequest","MAX_NOTE_LENGTH","DialogBody","LoadingContainer","attrs","align","direction","justify","RequestPermissionDialogProps","onClose","onRequestSubmitted","RequestPermissionDialog","t0","$","_c","t","telemtry","dialogId","projectId","t1","Symbol","for","apiVersion","client","toast","zOffset","isSubmitting","setIsSubmitting","note","setNote","msgError","setMsgError","hasTooManyRequests","setHasTooManyRequests","hasBeenDenied","setHasBeenDenied","t2","bb0","adminRole","const","t3","observable","t4","roles","hasEditor","filter","_temp","find","_temp2","t5","request","url","pipe","requestedRole$","requestedRole","method","body","requestUrl","window","location","href","type","then","log","push","title","catch","err","statusCode","response","errMessage","message","status","finally","onSubmit","fullscreen","t6","t7","onClick","text","t8","t9","t10","loading","disabled","tone","t11","cancelButton","confirmButton","t12","t13","t14","e","key","e_0","currentTarget","value","length","t15","t16","t17","role_0","role","name","appliesToUsers","addWeeks","isAfter","isBefore","useMemo","useObservable","of","catchError","map","startWith","SanityClient","useClient","useProjectId","AccessRequest","id","status","resourceId","resourceType","createdAt","updatedAt","updatedByUserId","requestedByUserId","requestedRole","type","note","LOADING_STATE","loading","error","undefined","EMPTY_STATE","DECLINED_STATE","PENDING_STATE","EXPIRED_STATE","useRoleRequestsStatus","$","_c","t0","Symbol","for","apiVersion","client","projectId","t1","bb0","t2","checkRoleRequests","checkRoleRequests$","data","observable","request","url","tag","pipe","requests","length","projectRequests","filter","declinedRequest","find","Date","pendingRequest","oldPendingRequest","err","console","ReadOnlyIcon","useTelemetry","Text","useMemo","useState","Translate","useCurrentUser","useListFormat","useTranslation","RequestPermissionDialog","useRoleRequestsStatus","AskToEditDialogOpened","structureLocaleNamespace","Banner","InsufficientPermissionBannerProps","requiredPermission","InsufficientPermissionBanner","t0","$","_c","currentUser","data","roleRequestStatus","loading","requestStatusLoading","error","requestStatusError","requestSent","setRequestSent","t1","requestPending","t2","roles","currentUserRoles","isOnlyViewer","length","name","showRequestPermissionDialog","setShowRequestPermissionDialog","t3","Symbol","for","style","listFormat","t","telemetry","roleTitles","t4","map","_temp","formatToParts","_temp2","t5","Roles","t6","count","t7","t8","onClick","undefined","log","text","tone","disabled","mode","t9","t10","t11","part","type","value","role","title","CloseIcon","SyncIcon","WarningOutlineIcon","KeyedSegment","Reference","Text","fromString","pathFromString","get","pathGet","memo","useCallback","useMemo","useObservable","concat","Observable","of","debounceTime","map","DocumentAvailability","getPublishedId","useDocumentPreviewStore","usePerspective","useTranslation","usePaneRouter","structureLocaleNamespace","RouterPaneGroup","Banner","ParentReferenceInfo","loading","result","availability","draft","published","version","refValue","ReferenceChangedBanner","documentPreviewStore","selectedReleaseId","params","groupIndex","routerPanesState","replaceCurrent","BackLink","routerReferenceId","id","parentGroup","parentSibling","parentId","hasHistoryOpen","Boolean","rev","parentRefPath","t","referenceInfoObservable","parentRefPathSegment","publishedId","path","keyedSegmentIndex","findIndex","p","unstable_observePathsDocumentPair","slice","pipe","snapshot","_ref","referenceInfo","handleReloadReference","Record","shouldHide","available","onClick","icon","text","as","displayName","Text","useMemo","getReleaseIdFromReleaseDocumentId","getVersionInlineBadge","Translate","useArchivedReleases","useTranslation","usePaneRouter","structureLocaleNamespace","Banner","ArchivedReleaseDocumentBanner","React","JSX","Element","t","tCore","data","archivedReleases","params","setParams","handleGoBack","rev","historyEvent","undefined","since","historyVersion","release","find","r","_id","description","state","title","metadata","VersionBadge","archivedRelease","text","onClick","ComposeSparklesIcon","InfoOutlineIcon","LaunchIcon","Box","Card","Container","Flex","Heading","Text","useClickOutsideEvent","useCallback","useMemo","useRef","useState","getDocumentVariantType","useCanvasCompanionDoc","useNavigateToCanvasDoc","useTranslation","styled","Popover","Button","structureLocaleNamespace","useDocumentPane","Banner","Image","img","CANVAS_IMAGE_URL","CANVAS_APP_NAME","CanvasPopoverContent","t0","$","_c","onClose","t","ref","t1","Symbol","for","current","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","CanvasLinkedBannerContent","documentId","open","setOpen","documentVariantType","bb0","variantText","_temp","togglePopover","CanvasLinkedBanner","displayed","id","_id","companionDoc","navigateToCanvas","canvasDocumentId","mode","text","onClick","prev","getSanityCreateLinkMetadata","useSanityCreateConfig","useDocumentPane","Banner","CreateLinkedBanner","$","_c","value","documentLinkedBannerContent","CreateLinkedBannerContent","components","t0","createLinkMetadata","t1","Text","useToast","useCallback","useEffect","useState","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionInlineBadge","LATEST","ReleaseDocument","Translate","useConditionalToast","useTranslation","useVersionOperations","structureLocaleNamespace","Banner","TOAST_DELAY","VersionCreateState","status","lastUpdate","Date","DocumentNotInReleaseBanner","documentId","currentRelease","value","isScheduledRelease","Record","React","JSX","Element","tone","t","tCore","createVersion","versionCreateState","setVersionCreateState","toast","handleAddToRelease","_id","err","push","closable","title","description","message","undefined","now","useCurrentTime","id","enabled","Boolean","getTime","metadata","VersionBadge","text","disabled","onClick","mode","updateIntervalMs","$","_c","t0","Symbol","for","currentTime","setCurrentTime","t1","t2","intervalId","setInterval","clearInterval","defineEvent","TypeInfo","liveEditResolveType","ResolvedLiveEdit","name","version","description","SanityDocument","ErrorOutlineIcon","useTelemetry","Flex","Text","useCallback","useEffect","useState","ObjectSchemaType","Translate","useDocumentOperation","useTranslation","Button","structureLocaleNamespace","ResolvedLiveEdit","Banner","DraftLiveEditBannerProps","displayed","Partial","documentId","schemaType","DraftLiveEditBanner","t0","$","_c","t","isPublishing","setPublishing","isDiscarding","setDiscarding","telemetry","publish","discardChanges","_type","t1","execute","log","liveEditResolveType","handlePublish","t2","handleDiscard","t3","Symbol","for","t4","title","t5","t6","t7","t8","content","t9","t10","t11","t12","t13","t14","Flex","Text","useCallback","useMemo","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","isVersionId","Translate","useActiveReleases","useDocumentVersions","useOnlyHasVersions","useSetPerspective","useTranslation","VersionInlineBadge","Button","structureLocaleNamespace","Banner","OpenReleaseToEditBanner","t0","$","_c","documentId","isPinnedDraftOrPublished","t1","onlyHasVersions","t2","OpenReleaseToEditBannerInner","React","JSX","Element","data","activeReleases","setPerspective","releaseId","currentVersion","find","version","_id","includes","t","tCore","documentVersions","documentVersionsTitleList","filter","release","r","map","metadata","title","tone","handleGoToEdit","length","VersionBadge","count","WarningOutlineIcon","Text","useTranslation","structureLocaleNamespace","useDocumentPane","Banner","RevisionNotFoundBanner","$","_c","revisionNotFound","t","t0","t1","LockIcon","Text","formatRelativeLocalePublishDate","getReleaseTone","LATEST","ReleaseDocument","Translate","useTranslation","Banner","ScheduledReleaseBanner","t0","$","_c","currentRelease","t1","t2","tone","t","tCore","t3","t4","date","t5","t6","UnpublishIcon","Text","getVersionInlineBadge","isGoingToUnpublish","isReleaseDocument","Translate","usePerspective","useTranslation","structureLocaleNamespace","useDocumentPane","Banner","UnpublishedDocumentBanner","$","_c","value","selectedPerspective","willBeUnpublished","t","tCore","t0","metadata","title","t1","t2","t3","VersionBadge","t4","InfoOutlineIcon","ObjectSchemaType","Heading","Inline","Stack","Text","useTranslation","css","styled","Tooltip","structureLocaleNamespace","DocumentHeaderProps","documentId","schemaType","title","TitleContainer","theme","sanity","fonts","heading","sizes","fontSize","lineHeight","FormHeader","t0","$","_c","isSingleton","name","description","t","__experimental_formPreviewTitle","t1","t2","t3","t4","t5","Box","Container","Flex","focusFirstDescendant","Spinner","Text","FormEvent","forwardRef","useCallback","useEffect","useMemo","useState","tap","createPatchChannel","DocumentMutationEvent","DocumentRebaseEvent","FormBuilder","FormDocumentValue","fromMutationPatches","PatchMsg","PresenceOverlay","useConditionalToast","useDocumentPresence","useDocumentStore","usePerspective","useTranslation","useEffectEvent","Delay","structureLocaleNamespace","useDocumentPane","useDocumentTitle","FormHeader","FormViewProps","hidden","margins","preventDefault","ev","FormView","HTMLDivElement","props","ref","$","_c","collapsedFieldSets","collapsedPaths","displayed","value","editState","documentId","documentType","fieldActions","onChange","validation","ready","formState","onFocus","connectionState","onBlur","onSetCollapsedPath","onPathOpen","onSetCollapsedFieldSet","onSetActiveFieldGroup","openPath","selectedReleaseId","documentStore","presence","title","patchChannel","_temp","isLocked","transactionSyncLock","enabled","t","t0","t1","t2","t3","id","status","const","description","closable","conditionalToastParams","t4","pair","sub","documentEvents","pipe","event","type","publish","prepareMutationEvent","prepareRebaseEvent","subscribe","unsubscribe","t5","hasRev","Boolean","_rev","t6","patches","snapshot","handleInitialValue","t7","t8","formRef","setFormRef","focusedFirstDescendant","setFocusedFirstDescendant","t9","focusPath","length","t10","t11","t12","node","current","setRef","isReadOnly","readOnly","t13","undefined","t14","draft","published","schemaType","changed","focused","groups","members","t15","t16","t17","mutations","map","mut","patch","filter","document","origin","remotePatches","remoteMutations","localPatches","localMutations","concat","TabList","ComponentType","ReactNode","useCallback","Tab","usePaneRouter","useDocumentPane","DocumentHeaderTabs","$","_c","activeViewId","paneKey","views","tabPanelId","t0","t1","view","index","icon","id","title","map","DocumentHeaderTab","props","isActive","label","rest","viewId","ready","editState","setView","handleClick","draft","published","t2","unstable_useValuePreview","useValuePreview","useTranslation","structureLocaleNamespace","useDocumentPane","DocumentHeaderTitle","$","_c","connectionState","schemaType","title","value","documentValue","subscribed","Boolean","t0","enabled","error","t","t1","Symbol","for","name","t2","t3","message","color","StarFilledIcon","StarIcon","Text","ComponentType","useManageFavorite","UseManageFavoriteProps","useTranslation","Button","structureLocaleNamespace","FavoriteToggle","documentExists","t0","$","_c","props","isFavorited","isReady","favorite","unfavorite","t","t1","t2","description","t3","t4","t5","content","placement","t6","t7","ArrowLeftIcon","memo","useMemo","CapabilityGate","getPublishedId","useActiveWorkspace","useTranslation","Button","PaneHeader","usePane","usePaneRouter","structureLocaleNamespace","useStructureTool","useDocumentPane","DocumentHeaderTabs","DocumentHeaderTitle","FavoriteToggle","DocumentPanelSubHeader","DocumentPanelHeader","$","_c","editState","connectionState","views","documentId","displayed","features","index","BackLink","activeWorkspace","t0","publishedDocId","showTabs","length","collapsed","isLast","tabIndex","showBackButton","backButton","t","t1","t2","Symbol","for","title","t3","t4","tabs","t5","t6","content","t7","_type","t8","dataset","projectId","t9","join","t10","ready","version","draft","published","t11","name","favoriteToggle","t12","t13","BoundaryElementProvider","Box","Flex","PortalProvider","usePortal","useEffect","useMemo","useRef","useState","getSanityCreateLinkMetadata","getVersionFromId","isReleaseDocument","isReleaseScheduledOrScheduling","isSanityCreateLinked","isSystemBundle","LegacyLayerProvider","ReleaseDocument","ScrollContainer","usePerspective","VirtualizerScrollInstanceProvider","css","styled","PaneContent","usePane","usePaneLayout","usePaneRouter","isLiveEditEnabled","useStructureTool","DocumentInspectorPanel","InspectDialog","useDocumentPane","DeletedDocumentBanners","DeprecatedDocumentTypeBanner","InsufficientPermissionBanner","ReferenceChangedBanner","ArchivedReleaseDocumentBanner","CanvasLinkedBanner","CreateLinkedBanner","DocumentNotInReleaseBanner","DraftLiveEditBanner","OpenReleaseToEditBanner","RevisionNotFoundBanner","ScheduledReleaseBanner","UnpublishedDocumentBanner","FormView","DocumentPanelSubHeader","DocumentPanelProps","footerHeight","headerHeight","isInspectOpen","rootElement","HTMLDivElement","setDocumentPanelPortalElement","el","HTMLElement","footer","React","ReactNode","DocumentBox","position","Scroller","$disabled","height","DocumentPanel","props","$","_c","activeViewId","displayed","documentId","editState","inspector","value","views","ready","schemaType","permissions","isPermissionsLoading","t0","createLinkMetadata","showCreateBanner","params","collapsed","layoutCollapsed","parentPortal","features","_portalElement","setPortalElement","documentScrollElement","setDocumentScrollElement","formContainerElement","requiredPermission","_createdAt","t1","t2","find","view","id","type","activeView","portalElement","splitPanes","element","t3","bb0","t4","t5","t6","Symbol","for","margins","formViewHidden","component","options","draft","published","ActiveViewComponent","historical","activeViewNode","isLiveEdit","scrollTo","t7","t8","t9","t10","t11","inspectDialog","showInspector","Boolean","selectedPerspective","selectedReleaseId","historyVersion","_id","granted","t12","bb1","t13","isScheduledRelease","documentInScheduledRelease","t14","t15","isPinnedDraftOrPublish","t16","undefined","t17","t18","t19","t20","t21","t22","t23","t24","t25","banners","showFormView","resizablePanes","name","displayName","Placement","DialogProps","POPOVER_FALLBACK_PLACEMENTS","DIALOG_WIDTH_TO_UI_WIDTH","key","small","medium","large","full","Box","Button","Flex","Grid","Popover","Text","useClickOutsideEvent","useGlobalKeyDown","useLayer","useCallback","useRef","DocumentActionConfirmDialogProps","useTranslation","structureLocaleNamespace","POPOVER_FALLBACK_PLACEMENTS","ConfirmDialog","props","$","_c","dialog","referenceElement","t0","t1","ConfirmDialogContent","cancelButtonIcon","cancelButtonText","confirmButtonIcon","confirmButtonText","message","onCancel","onConfirm","tone","t","isTopLayer","ref","event","key","handleGlobalKeyDown","Symbol","for","current","t2","minWidth","maxWidth","t3","t4","borderTop","t5","t6","t7","t8","t9","t10","Box","Dialog","useId","DocumentActionModalDialogProps","LegacyLayerProvider","DIALOG_WIDTH_TO_UI_WIDTH","ModalDialog","props","$","_c","dialog","dialogId","t0","footer","t1","showCloseButton","t2","width","undefined","t3","content","t4","header","onClose","Popover","useClickOutsideEvent","useGlobalKeyDown","useLayer","useCallback","useRef","DocumentActionPopoverDialogProps","POPOVER_FALLBACK_PLACEMENTS","PopoverDialog","props","$","_c","dialog","referenceElement","t0","t1","PopoverDialogContent","content","onClose","isTopLayer","ref","event","key","handleGlobalKeyDown","Symbol","for","current","t2","PortalProvider","Text","usePortal","ReactNode","useId","DocumentActionDialogProps","Dialog","DOCUMENT_PANEL_PORTAL_ELEMENT","ConfirmDialog","ModalDialog","PopoverDialog","ActionStateDialogProps","dialog","referenceElement","HTMLElement","DocumentActionPortalProvider","props","$","_c","children","element","elements","portalElement","t0","ActionStateDialog","undefined","modalId","type","t1","component","t2","unknownModal","console","warn","content","onClose","Menu","memo","ReactNode","useCallback","useId","useMemo","useState","ContextMenuButton","DocumentActionDescription","LegacyLayerProvider","useTranslation","MenuButton","MenuItem","PopoverProps","structureLocaleNamespace","ActionStateDialog","ActionMenuButtonProps","actionStates","disabled","ActionDialogWrapper","t0","$","_c","children","referenceElement","actionIndex","setActionIndex","t1","currentAction","t2","Symbol","for","idx","handleAction","t3","t4","result","t5","dialog","t6","ActionMenuButton","props","idPrefix","setReferenceElement","placement","portal","preventOverflow","popoverProps","t","content","map","actionState","renderActionDialog","ActionMenuListItemProps","index","onAction","ActionMenuListItem","onHandle","handleClick","shortcut","String","split","_temp","undefined","hotkeys","label","replace","Boolean","title","tooltipProps","icon","tone","s","slice","toUpperCase","RevertIcon","useCallback","useEffect","useMemo","useRef","useState","DocumentActionComponent","DocumentActionDialogProps","useDocumentOperation","useDocumentOperationEvent","useTranslation","useRouter","structureLocaleNamespace","useDocumentPane","HistoryRestoreAction","t0","$","_c","id","type","revision","onComplete","release","restore","revisionNotFound","event","navigateIntent","prevEvent","isConfirmDialogOpen","setConfirmDialogOpen","t","t1","execute","handleConfirm","t2","t3","current","op","t4","Symbol","for","handle","t5","bb0","t6","t7","tone","onCancel","onConfirm","message","dialog","isRevisionInitial","isRevisionLatest","undefined","bb1","t8","t9","t10","label","onHandle","title","icon","disabled","action","displayName","Flex","LayerProvider","Stack","Text","memo","useCallback","useMemo","useState","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","Hotkeys","isSanityDefinedAction","usePerspective","useSource","Button","Tooltip","RenderActionCollectionState","ResolvedAction","HistoryRestoreAction","toLowerCaseNoSpaces","useDocumentPane","ActionMenuButton","ActionStateDialog","DocumentStatusBarActionsInnerProps","disabled","showMenu","states","DocumentStatusBarActionsInner","props","$","_c","__internal_tasks","editState","selectedReleaseId","firstActionState","menuActionStates","buttonElement","setButtonElement","t0","bb0","title","shortcut","t1","Symbol","for","maxWidth","t2","t3","marginTop","marginBottom","String","split","map","_temp","t4","tooltipContent","showFirstActionButton","liveEdit","sideMenuItems","footerAction","label","Boolean","icon","onHandle","tone","t5","length","t6","dialog","t7","DocumentStatusBarActions","actions","allActions","connectionState","documentId","isInitialValueLoading","filter","_temp2","initialValueResolved","actionProps","renderDocumentStatusBarActions","HistoryStatusBarActions","revisionId","revision","draft","published","_rev","undefined","isRestoreAction","slice","historyActions","action","s","toUpperCase","toLowerCase","Text","memo","useCallback","useMemo","formatRelativeLocalePublishDate","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","isDraftId","isPublishedId","isPublishedPerspective","isReleaseScheduledOrScheduling","isVersionId","ReleaseDocument","Translate","useActiveReleases","useDateTimeFormat","UseDateTimeFormatOptions","useOnlyHasVersions","usePerspective","useSchema","useSetPerspective","useTranslation","VersionChip","isLiveEditEnabled","usePaneRouter","useFilteredReleases","useDocumentPane","TooltipContent","t0","$","_c","release","t","state","t1","t2","metadata","releaseType","isActive","intendedPublishAt","date","DATE_TIME_FORMAT","dateStyle","timeStyle","DocumentPerspectiveList","selectedReleaseId","selectedPerspectiveName","setPerspective","params","setParams","dateTimeFormat","loading","schema","editState","displayed","documentType","documentId","isCreatingDocument","_createdAt","filteredReleases","onlyHasVersions","handlePerspectiveChange","perspective","Parameters","historyVersion","rev","historyEvent","undefined","since","schemaType","get","isLiveEdit","isPublishedChipDisabled","published","getReleaseChipState","selected","disabled","_id","isReleaseHistoryMatch","isPublishSelected","draft","isDraftSelected","displayedId","isDraftDisabled","_updatedAt","format","Date","id","menuReleaseId","releases","notCurrentReleases","releasesLoading","fromRelease","isVersion","inCreation","title","releaseState","currentReleases","map","ArrowLeftIcon","CloseIcon","SplitVerticalIcon","Box","Card","Flex","getTheme_v2","rgba","ForwardedRef","forwardRef","memo","useCallback","useDeferredValue","useMemo","useState","DocumentActionDescription","useFieldActions","useTranslation","css","styled","Button","TooltipDelayGroupProvider","PaneContextMenuButton","PaneHeader","PaneHeaderActionButton","RenderActionCollectionState","usePane","usePaneRouter","_PaneMenuNode","structureLocaleNamespace","isMenuNodeButton","isNotMenuNodeButton","resolveMenuNodes","PaneMenuItem","useStructureTool","ActionDialogWrapper","ActionMenuListItem","isRestoreAction","useDocumentPane","DocumentHeaderTitle","DocumentPerspectiveList","DocumentPanelHeaderProps","menuItems","HorizontalScroller","props","theme","space","color","bg","DocumentPanelHeader","_props","ref","HTMLDivElement","actions","allActions","editState","onMenuAction","isInitialValueLoading","onPaneClose","onPaneSplit","menuItemGroups","schemaType","connectionState","views","unstable_languageFilter","features","index","BackLink","hasGroupSiblings","fieldActions","referenceElement","setReferenceElement","HTMLElement","filter","action","menuNodes","actionHandler","menuButtonNodes","contextMenuNodes","showTabs","length","collapsed","isLast","tabIndex","showSplitPaneButton","splitViews","showSplitPaneCloseButton","showBackButton","backButton","showPaneGroupCloseButton","t","renderPaneActions","states","React","ReactNode","title","content","renderedActions","map","LanguageFilterComponent","idx","item","key","initialValueResolved","draft","published","lineHeight","DocumentPanelHeaderActionDialogDeferred","$","_c","t0","DocumentPanelHeaderActionDialog","t1","handleAction","actionState","actionIndex","label","Boolean","disabled","undefined","renderActionDialog","Button","ButtonProps","SpacerButtonProps","size","SpacerButton","t0","$","_c","t1","Symbol","for","pointerEvents","visibility","width","t2","Badge","BadgeTone","Inline","memo","useCallback","useDeferredValue","DocumentBadgeDescription","Tooltip","RenderBadgeCollectionState","useDocumentPane","DocumentBadgesInnerProps","states","BADGE_TONES","Record","primary","success","warning","danger","DocumentBadgesInner","t0","$","_c","length","t1","map","_temp","t2","DocumentBadgesDeferred","props","DocumentBadges","badges","editState","renderDocumentBadges","_temp2","badge","index","title","label","color","undefined","whiteSpace","ChunkType","StudioLocaleResourceKeys","TIMELINE_ITEM_I18N_KEY_MAPPING","Record","initial","create","publish","editLive","editDraft","unpublish","discardDraft","delete","motion","ComponentProps","keyframes","styled","StyledMotionPath","path","MotionCircleProps","Omit","circle","MotionPathProps","Circle","props","$","_c","t0","Arrows","Checkmark","rotateAnimation","RotateGroup","g","root","syncing","scale","transition","duration","saved","delay","changes","strokeDasharray","strokeDashoffset","opacity","arrows","checkmark","pathLength","AnimatedStatusIconProps","status","AnimatedStatusIcon","undefined","t1","t2","t3","t4","t5","ButtonTone","Flex","Text","TextWithTone","useTranslation","structureLocaleNamespace","AnimatedStatusIcon","StatusType","ReviewChangesButtonProps","status","STATUS_DICTIONARY","Record","i18nKey","tone","saved","syncing","DocumentStatusPulse","props","$","_c","t","currentStatus","t0","t1","t2","t3","t4","Box","Button","Flex","Skeleton","Text","AnimatePresence","motion","useEffect","useLayoutEffect","useMemo","useState","AvatarSkeleton","isPublishedPerspective","TIMELINE_ITEM_I18N_KEY_MAPPING","useEvents","usePerspective","UserAvatar","useRelativeTime","useSource","useSyncState","useTimelineSelector","useTranslation","HISTORY_INSPECTOR_NAME","TIMELINE_ITEM_I18N_KEY_MAPPING_LEGACY","useDocumentPane","DocumentStatusPulse","RELATIVE_TIME_OPTIONS","minimal","useTemporalPhrase","const","MotionButton","create","MotionBox","ButtonSkeleton","$","_c","t0","Symbol","for","margin","t1","width","height","DocumentStatusButton","author","translationKey","timestamp","undefined","onHistoryOpen","inspector","onHistoryClose","t","relativeTime","t2","t3","t4","opacity","t5","name","t6","t7","t8","t9","t10","FallbackStatus","editState","selectedPerspective","status","published","_updatedAt","createDocumentVersion","version","_createdAt","editDocumentVersion","draft","EventsStatus","events","loading","event","documentVariantType","type","TimelineStatus","timelineStore","chunks","_temp","_temp2","authors","Array","from","endTimestamp","SYNCING_TIMEOUT","SAVED_TIMEOUT","DocumentStatusLine","documentId","documentType","value","setStatus","source","eventsEnabled","beta","eventsAPI","documents","syncState","release","lastUpdated","isSyncing","timerId","setTimeout","clearTimeout","timerId_0","state","state_0","isLoading","RestoreIcon","Box","Flex","Text","format","Translate","useTranslation","styled","useDocumentPane","StatusText","RevisionStatusLine","$","_c","displayed","revisionNotFound","t","date","_updatedAt","_createdAt","t0","Date","t1","name","text","tone","message","t2","Symbol","for","t3","t4","useLayoutEffect","resizeObserver","useResizeObserver","t0","$","_c","element","onResize","t1","t2","observe","unobserve","Card","Flex","motion","Ref","useCallback","useMemo","useState","CreateLinkMetadata","isPublishedPerspective","isReleaseDocument","isSanityCreateLinked","usePerspective","useSanityCreateConfig","usePaneRouter","SpacerButton","DOCUMENT_PANEL_PORTAL_ELEMENT","EMPTY_PARAMS","useDocumentPane","useDocumentTitle","DocumentBadges","DocumentStatusBarActions","HistoryStatusBarActions","DocumentStatusLine","RevisionStatusLine","useResizeObserver","DocumentStatusBarProps","actionsBoxRef","HTMLDivElement","createLinkMetadata","CONTAINER_BREAKPOINT","AnimatedCard","create","DocumentStatusBar","props","$","_c","editState","onChange","onDocumentChange","revisionNotFound","params","t0","undefined","selectedPerspective","title","CreateLinkedActions","components","documentLinkedActions","showingRevision","Boolean","rev","collapsed","setCollapsed","rootElement","setRootElement","t1","Symbol","for","event","contentRect","width","handleResize","t2","element","onResize","published","ready","version","t3","bb0","isReady","shouldRender","actions","t4","t5","opacity","t6","transition","duration","t7","t8","flexShrink","marginLeft","t9","isHotkey","ElementType","HTMLProps","memo","Ref","useCallback","useMemo","useState","DocumentActionDescription","DocumentActionProps","LegacyLayerProvider","RenderActionCollectionState","ActionStateDialog","useDocumentPane","KeyboardShortcutResponderProps","actionsBoxElement","HTMLElement","activeIndex","as","currentMinWidth","flex","id","minWidth","onActionStart","index","rootRef","HTMLDivElement","states","KeyboardShortcutResponder","props","$","_c","children","onKeyDown","rest","t0","As","undefined","activeAction","t1","event","matchingStates","filter","state","shortcut","matchingState","length","console","warn","disabled","onHandle","preventDefault","indexOf","handleKeyDown","t2","dialog","t3","DocumentActionShortcutsProps","debug","DocumentActionShortcuts","actions","editState","isInitialValueLoading","revisionId","setActiveIndex","Symbol","for","idx","onComplete","_temp","revision","initialValueResolved","actionProps","t4","t5","renderDocumentActionShortcuts","displayName","EarthAmericasIcon","JsonIcon","LinkIcon","TransferIcon","DocumentInspector","DocumentInspectorMenuItem","TFunction","DocumentIdStack","PaneMenuItem","StructureToolFeatures","INSPECT_ACTION_PREFIX","GetMenuItemsParams","currentInspector","features","hasValue","inspectors","previewUrl","documentIdStack","inspectorMenuItems","t","getInspectorItems","map","inspector","index","menuItem","hidden","action","name","group","showAsAction","undefined","icon","disabled","selected","shortcut","hotkeys","join","title","tone","filter","Boolean","getInspectItem","getCompareVersionsItem","previousId","reason","getProductionPreviewItem","getMenuItems","params","inspectorItems","items","Card","Code","Stack","Text","isDev","Translate","useTranslation","ErrorPane","DocumentLayoutErrorProps","currentMinWidth","documentType","minWidth","paneKey","value","Record","DocumentLayoutError","props","$","_c","t","t0","t1","t2","t3","t4","JSON","stringify","t5","t6","DialogProvider","DialogProviderProps","PortalProvider","Dispatch","SetStateAction","useMemo","getSanityCreateLinkMetadata","useZIndex","TooltipDelayGroupProvider","PaneFooter","DOCUMENT_PANEL_PORTAL_ELEMENT","DocumentStatusBar","useDocumentPane","DIALOG_PROVIDER_POSITION","DocumentLayoutFooter","t0","$","_c","documentPanelPortalElement","setFooterElement","setActionsBoxElement","zOffsets","value","t1","t2","portalElements","t3","createLinkMetadata","t4","t5","t6","portal","t7","DialogProvider","DialogProviderProps","Flex","useElementRect","isHotkey","useCallback","useMemo","useState","ChangeConnectorRoot","DocumentFieldActionNode","DocumentInspectorMenuItem","FieldActionsProvider","FieldActionsResolver","GetFormValueProvider","Path","useGlobalCopyPasteElementHandler","useTranslation","useZIndex","styled","Pane","usePaneLayout","usePaneRouter","useDocumentIdStack","structureLocaleNamespace","useStructureTool","DOCUMENT_INSPECTOR_MIN_WIDTH","DOCUMENT_PANEL_INITIAL_MIN_WIDTH","DOCUMENT_PANEL_MIN_WIDTH","DocumentInspectorMenuItemsResolver","DocumentOperationResults","DocumentPanel","DocumentPanelHeader","DocumentActionShortcuts","getMenuItems","useDocumentPane","DocumentLayoutError","DocumentLayoutFooter","EMPTY_ARRAY","DIALOG_PROVIDER_POSITION","StyledChangeConnectorRoot","DocumentLayout","changesOpen","displayed","documentId","documentType","editState","fieldActions","focusPath","inspectOpen","inspector","inspectors","onFocus","onHistoryOpen","onMenuAction","onPathOpen","paneKey","schemaType","value","isInitialValueLoading","ready","previewUrl","params","paneParams","features","t","collapsed","layoutCollapsed","zOffsets","rootElement","setRootElement","HTMLDivElement","footerElement","setFooterElement","headerElement","setHeaderElement","actionsBoxElement","setActionsBoxElement","documentPanelPortalElement","setDocumentPanelPortalElement","HTMLElement","element","inspectorMenuItems","setInspectorMenuItems","rootFieldActionNodes","setRootFieldActionNodes","footerRect","headerRect","footerHeight","height","headerHeight","currentMinWidth","minWidth","currentInspector","find","i","name","documentIdStack","hasValue","Boolean","menuItems","handleKeyUp","event","React","KeyboardEvent","item","shortcut","preventDefault","stopPropagation","onConnectorSetFocus","path","length","paneDialog","undefined","changesInspectorTab","ComponentType","DocumentLayoutProps","useMiddlewareComponents","DocumentLayout","pickDocumentLayoutComponent","useDocumentLayoutComponent","$","_c","t0","Symbol","for","pick","defaultComponent","defineEvent","DocumentURLCopied","name","version","description","Template","InitialValueOptions","documentType","panePayload","templateName","templateParams","Record","urlTemplate","getInitialValueTemplateOpts","templates","opts","payload","structureNodeTemplate","console","warn","template","typeTemplates","filter","t","schemaType","length","id","useMemo","useInitialValue","useTemplates","useUnique","PaneRouterContextValue","usePaneRouter","DocumentPaneNode","getInitialValueTemplateOpts","useDocumentPaneInitialValue","t0","$","_c","paneOptions","documentType","documentId","params","templates","paneRouter","panePayload","payload","t1","t2","template","templateParameters","templateName","templateParams","urlTemplate","t3","version","initialValueRaw","initialValue","omit","useCallback","useEffect","useMemo","useRef","useState","DocumentInspector","useSource","PaneRouterContextValue","PaneMenuItem","useStructureTool","HISTORY_INSPECTOR_NAME","INSPECT_ACTION_PREFIX","useDocumentPaneInspector","documentId","documentType","params","setParams","NonNullable","Record","features","source","inspectorsResolver","document","inspectors","inspectorName","setInspectorName","inspect","inspectParamRef","current","currentInspector","find","i","name","historyInspector","changesOpen","closeInspector","closeInspectorName","inspector","console","warn","result","onClose","undefined","openInspector","nextInspectorName","paneParams","nextInspector","currentParams","closeResult","onOpen","handleHistoryClose","handleHistoryOpen","reviewChanges","changesInspectorTab","inspectOpen","toggleLegacyInspect","toggle","handleLegacyInspectClose","handleInspectorAction","item","action","slice","length","SanityDocument","useEffect","useMemo","useObservable","BehaviorSubject","from","of","catchError","debounceTime","distinctUntilChanged","switchMap","isRecord","useSource","isSanityDocument","value","_id","_type","usePreviewUrl","$","_c","resolveProductionUrl","document","t0","t1","Symbol","for","undefined","subject","t2","t3","next","t4","t5","asObservable","pipe","_temp","resolvedUrlObservable","err","message","Error","useTelemetry","ObjectSchemaType","SanityDocument","SanityDocumentLike","useToast","fromString","pathFromString","resolveKeyedPath","memo","useCallback","useEffect","useMemo","useState","DocumentActionsContext","DocumentActionsVersionType","DocumentFieldAction","EditStateFor","EMPTY_ARRAY","getPublishedId","isVersionId","PartialContext","useCopyPaste","useDocumentForm","usePerspective","useSchema","useSource","useStudioUrl","useTranslation","useUnique","DocumentPaneContext","usePaneRouter","useDiffViewRouter","useDocumentIdStack","structureLocaleNamespace","PaneMenuItem","DocumentURLCopied","DEFAULT_MENU_ITEM_GROUPS","EMPTY_PARAMS","INSPECT_ACTION_PREFIX","DocumentPaneContextValue","DocumentPaneProviderProps","DocumentPaneProviderWrapperProps","HistoryStoreProps","useDocumentPaneInitialValue","useDocumentPaneInspector","usePreviewUrl","historyStore","DocumentPaneProvider","props","children","index","pane","paneKey","onFocusPath","forcedVersion","store","timelineStore","error","timelineError","ready","timelineReady","revisionDocument","onOlderRevision","sinceDocument","isPristine","revisionId","lastNonDeletedRevId","schema","setDocumentMeta","document","actions","documentActions","badges","documentBadges","unstable_fieldActions","fieldActionsResolver","unstable_languageFilter","languageFilterResolver","telemetry","paneRouter","setPaneParams","setParams","push","pushToast","options","menuItemGroups","title","views","viewsProp","paneOptions","documentIdRaw","id","documentId","documentType","type","params","buildStudioUrl","perspective","selectedReleaseId","selectedPerspectiveName","diffViewRouter","initialValue","isInitialValueLoading","loading","changesOpen","currentInspector","inspectors","closeInspector","openInspector","handleHistoryClose","handleHistoryOpen","handleInspectorAction","inspectOpen","handleLegacyInspectClose","isDeleting","setIsDeleting","getIsDeleted","editState","Boolean","draft","published","version","getComparisonValue","schemaType","get","getIsReadOnly","isDeleted","seeingHistoryDocument","rev","getDisplayed","value","_id","_type","connectionState","focusPath","onChange","validation","formReady","formState","permissions","onPathOpen","isPermissionsLoading","formStateRef","onProgrammaticFocus","collapsedFieldSets","collapsedPaths","onBlur","onFocus","onSetActiveFieldGroup","onSetCollapsedPath","onSetCollapsedFieldSet","openPath","comparisonValue","releaseId","initialFocusPath","path","readOnly","getFormDocumentValue","getDocumentVersionType","actionsPerspective","documentActionsProps","versionType","languageFilter","activeViewId","view","previewUrl","t","fieldActions","displayed","Partial","previousId","setTimelineRange","newSince","newRev","since","undefined","handlePaneClose","closeCurrent","handlePaneSplit","duplicateCurrent","handleMenuAction","item","action","window","open","navigator","log","copyUrl","coreUi","url","clipboard","writeText","status","startsWith","navigateDiffView","mode","previousDocument","nextDocument","compareValue","revisionNotFound","documentPane","inspector","onHistoryClose","onHistoryOpen","onInspectClose","onMenuAction","onPaneClose","onPaneSplit","restParams","pathFromUrl","current","displayName","ObjectSchemaType","useMemo","EMPTY_ARRAY","EventsProvider","getDraftId","getPublishedId","getReleaseIdFromReleaseDocumentId","getVersionId","isDeleteDocumentGroupEvent","isDeleteDocumentVersionEvent","PerspectiveProvider","useArchivedReleases","useEditState","useEventsStore","usePerspective","useSchema","usePaneRouter","EMPTY_PARAMS","usePaneOptions","DocumentPaneProvider","DocumentPaneProviderProps","DocumentEventsPane","props","$","_c","params","t0","undefined","options","pane","schema","documentType","type","schemaType","get","liveEdit","Boolean","selectedPerspectiveName","selectedReleaseId","selectedPerspective","data","archivedReleases","t1","id","editState","showingPublishedOnDraft","draft","rev","since","historyVersion","t2","bb0","t3","some","release","_id","documentId","eventsStore","t4","t5","error","t6","revision","revisionId","t7","loading","t8","document","t9","sinceRevision","t10","t11","events","length","t12","find","_temp","t13","onOlderRevision","revisionDocument","sinceDocument","ready","isPristine","lastNonDeletedRevId","historyStoreProps","t14","value","t15","t16","e","SanityDocument","useMemo","useState","getPublishedId","useTimelineSelector","useTimelineStore","usePaneRouter","EMPTY_PARAMS","usePaneOptions","DocumentPaneProvider","DocumentPaneProviderProps","DocumentPaneWithLegacyTimelineStore","props","$","_c","pane","paneRouter","options","params","timelineError","setTimelineError","t0","id","t1","type","rev","since","documentId","documentType","onError","store","onOlderRevision","_temp","revTime","_temp2","sinceAttributes","_temp3","timelineDisplayed","_temp4","timelineReady","_temp5","isPristine","_temp6","lastNonDeletedRevId","_temp7","t2","t3","t4","t5","t6","Boolean","t7","error","revisionId","revisionDocument","sinceDocument","ready","historyStoreProps","t8","state","state_0","state_1","state_2","state_3","state_4","state_5","memo","useSource","DocumentEventsPane","DocumentPaneWithLegacyTimelineStore","DocumentPaneProviderProps","DocumentPaneProviderWrapper","props","$","_c","source","beta","eventsAPI","documents","t0","displayName","useEffect","useRef","usePerspective","useEffectEvent","usePaneRouter","EMPTY_PARAMS","useResetHistoryParams","$","_c","params","t0","setParams","undefined","selectedPerspectiveName","isMounted","t1","_perspective","PARAMS_TO_UPDATE","shouldUpdateParams","some","param","rev","preserveRev","since","historyVersion","updateHistoryParams","t2","current","t3","t4","t5","Symbol","for","Path","Stack","Text","fromString","pathFromString","memo","useMemo","CopyPasteProvider","ReferenceInputOptionsProvider","SourceProvider","Translate","useDocumentType","usePerspective","useSource","useTemplatePermissions","useTemplates","useTranslation","usePaneRouter","DiffViewDocumentLayout","structureLocaleNamespace","DocumentPaneNode","ErrorPane","LoadingPane","CommentsWrapper","useDocumentLayoutComponent","DocumentPaneProviderWrapper","DocumentPaneProviderProps","useResetHistoryParams","DocumentPaneOptions","DocumentPane","props","$","_c","name","parentSourceName","t0","pane","source","t1","t2","DocumentPaneInner","paneKey","resolveNewDocumentOptions","document","selectedPerspectiveName","paneRouter","options","usePaneOptions","params","documentType","isLoaded","isDocumentLoaded","id","type","DocumentLayout","documentId","schemaType","templateItems","templatePermissions","isTemplatePermissionsLoading","t3","t4","mergeDocumentType","providerProps","ReferenceChildLink","handleEditReference","groupIndex","routerPanesState","t5","childParams","routerPanesStateLength","length","parentRefPath","t6","t7","path","state","activePath","t","t8","t9","t10","Symbol","for","Code","_temp","t11","t12","t13","children","undefined","templates","bb0","templateName","template","find"],"sources":["https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/DocTitle.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/pane/PaneFooter.styles.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/pane/PaneFooter.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/RenderActionCollectionState.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/RenderBadgeCollectionState.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/hooks/useCreatePathSyncChannel.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/constants.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/hooks/useDiffViewRouter.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/types/diffViewMode.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/hooks/useDiffViewState.ts","https://cdn.jsdelivr.net/npm/scrollmirror@1.2.2/dist/ScrollMirror.modern.js","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/hooks/useScrollMirror.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/versionMode/components/VersionModeHeader.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/components/DialogLayout.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/document-layout/pickDocumentLayoutComponent.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/hooks/usePathSyncChannel.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/components/Scroller.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/components/DiffViewPane.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/components/EditReferenceLinkComponent.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/components/DiffView.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/diffView/plugin/DiffViewDocumentLayout.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/error/ErrorPane.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/useDocumentPane.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/comments/CommentsWrapper.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/hooks/useFilteredReleases.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/hooks/useDocumentIdStack.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/constants.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentInspectorMenuItemsResolver.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/useDocumentTitle.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentOperationResults.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/paneItem/helpers.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx","https://cdn.jsdelivr.net/npm/debounce@1.2.1/index.js","https://cdn.jsdelivr.net/npm/md5-o-matic@0.1.1/lib/md5omatic.js","https://cdn.jsdelivr.net/npm/@rexxars/react-json-inspector@9.0.1/dist/index.js","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/inspectDialog/constants.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/inspectDialog/helpers.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/inspectDialog/InspectDialog.styles.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/inspectDialog/Search.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/inspectDialog/InspectDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/Banner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/DeletedDocumentBanners.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/DeprecatedDocumentTypeBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/requestPermissionDialog/__telemetry__/RequestPermissionDialog.telemetry.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/requestPermissionDialog/RequestPermissionDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/requestPermissionDialog/useRoleRequestsStatus.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/InsufficientPermissionBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/ReferenceChangedBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/CanvasLinkedBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/CreateLinkedBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/DocumentNotInReleaseBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/__telemetry__/DraftLiveEditBanner.telemetry.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/DraftLiveEditBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/OpenReleaseToEditBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/RevisionNotFoundBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/ScheduledReleaseBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/banners/UnpublishedDocumentBanner.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/documentViews/FormHeader.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/documentViews/FormView.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTabs.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/FavoriteToggle.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelSubHeader.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/DocumentPanel.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/dialogs/constants.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/dialogs/ConfirmDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/dialogs/ModalDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/dialogs/PopoverDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/ActionStateDialog.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/ActionMenuButton.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/documentActions/HistoryRestoreAction.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveList.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/spacerButton/SpacerButton.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentBadges.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/timeline/timelineI18n.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusPulse/AnimatedStatusIcon.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusPulse/DocumentStatusPulse.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusLine.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/RevisionStatusLine.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/useResizeObserver.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBar.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/keyboardShortcuts/DocumentActionShortcuts.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/menuItems.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/document-layout/DocumentLayoutError.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/document-layout/DocumentLayoutFooter.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/document-layout/DocumentLayout.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/document-layout/useDocumentLayoutComponent.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/__telemetry__/documentPanes.telemetry.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/getInitialValueTemplateOpts.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/useDocumentPaneInitialValue.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/useDocumentPaneInspector.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/usePreviewUrl.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentPaneProvider.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentEventsPane.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentPaneLegacyTimeline.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentPaneProviderWrapper.tsx","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/useResetHistoryParams.ts","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/panes/document/DocumentPane.tsx"],"sourcesContent":["import {type SanityDocumentLike} from '@sanity/types'\nimport {unstable_useValuePreview as useValuePreview, useSchema, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../i18n'\n\nexport interface DocTitleProps {\n document: SanityDocumentLike\n}\n\nexport function DocTitle(props: DocTitleProps) {\n const {document: documentValue} = props\n const schema = useSchema()\n const schemaType = schema.get(documentValue._type)\n const {t} = useTranslation(structureLocaleNamespace)\n\n const {error, value} = useValuePreview({\n schemaType: schemaType!,\n value: documentValue,\n })\n\n if (!schemaType) {\n return <code>{t('doc-title.unknown-schema-type.text', {schemaType: documentValue._type})}</code>\n }\n\n if (error) {\n return <>{t('doc-title.error.text', {errorMessage: error.message})}</>\n }\n\n return (\n <>\n {value?.title || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>{t('doc-title.fallback.text')}</span>\n )}\n </>\n )\n}\n","import {Card, Layer} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const Root = styled(Layer)`\n position: sticky;\n bottom: 0;\n`\n\nexport const RootCard = styled(Card)`\n padding-bottom: env(safe-area-inset-bottom);\n`\n","import {Box} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type ReactNode} from 'react'\nimport {LegacyLayerProvider} from 'sanity'\n\nimport {Root, RootCard} from './PaneFooter.styles'\nimport {usePane} from './usePane'\n\ninterface PaneFooterProps {\n children?: ReactNode\n padding?: number | number[]\n}\n\n/**\n *\n * @hidden\n * @beta This API will change. DO NOT USE IN PRODUCTION.\n */\nexport const PaneFooter = forwardRef(function PaneFooter(\n props: PaneFooterProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children, padding} = props\n const {collapsed} = usePane()\n\n return (\n <LegacyLayerProvider zOffset=\"paneFooter\">\n <Root data-testid=\"pane-footer\" hidden={collapsed} ref={ref}>\n <RootCard tone=\"inherit\">\n <Box padding={padding}>{children}</Box>\n </RootCard>\n </Root>\n </LegacyLayerProvider>\n )\n})\n","import {memo, type ReactNode, useMemo} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionGroup,\n type DocumentActionProps,\n getDraftId,\n GetHookCollectionState,\n getPublishedId,\n useCanvasCompanionDoc,\n useTranslation,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../i18n'\n\n/** @internal */\nexport interface Action<Args, Description> {\n (args: Args): Description | null\n}\nexport interface ResolvedAction extends DocumentActionDescription {\n action?: DocumentActionComponent['action']\n}\n\n/** @internal */\nexport interface RenderActionCollectionProps {\n actions: Action<DocumentActionProps, DocumentActionDescription>[]\n actionProps: Omit<DocumentActionProps, 'onComplete'>\n children: (props: {states: ResolvedAction[]}) => ReactNode\n onActionComplete?: () => void\n group?: DocumentActionGroup\n}\n\n/** @internal */\nexport const RenderActionCollectionState = memo((props: RenderActionCollectionProps) => {\n const {actions, children, actionProps, onActionComplete, group} = props\n\n return (\n <GetHookCollectionState<Omit<DocumentActionProps, 'onComplete'>, ResolvedAction>\n onReset={onActionComplete}\n hooks={actions}\n args={actionProps}\n group={group}\n >\n {({states}) => (\n <ActionsGuardWrapper\n states={states}\n documentId={\n actionProps.liveEditSchemaType\n ? getPublishedId(actionProps.id)\n : getDraftId(actionProps.id)\n }\n >\n {children}\n </ActionsGuardWrapper>\n )}\n </GetHookCollectionState>\n )\n})\nRenderActionCollectionState.displayName = 'Memo(RenderActionCollectionState)'\n\n/**\n * This is a list of the actions that are supported when a document is linked to Canvas.\n * Custom actions and actions that are not supported by Canvas will be disabled and will include a tooltip explaining that the action is not supported.\n */\nconst SUPPORTED_LINKED_TO_CANVAS_ACTIONS: DocumentActionComponent['action'][] = [\n 'delete',\n 'duplicate',\n 'publish',\n 'unpublish',\n 'unlinkFromCanvas',\n 'editInCanvas',\n 'linkToCanvas',\n 'schedule',\n]\n\ninterface ActionsGuardWrapperProps {\n states: ResolvedAction[]\n documentId: string\n children: (props: {states: ResolvedAction[]}) => ReactNode\n}\n\nconst ActionsGuardWrapper = (props: ActionsGuardWrapperProps) => {\n const {states, children, documentId} = props\n const {t} = useTranslation(structureLocaleNamespace)\n const {isLinked} = useCanvasCompanionDoc(documentId)\n\n const result = useMemo(() => {\n if (isLinked) {\n return children({\n states: states.map((s) => {\n if (!s.action || !SUPPORTED_LINKED_TO_CANVAS_ACTIONS.includes(s.action)) {\n return {\n ...s,\n disabled: true,\n title: t('action.disabled-by-canvas.tooltip'),\n }\n }\n return s\n }),\n })\n }\n return children({states})\n }, [children, states, t, isLinked])\n\n return result\n}\n","import {memo, type ReactNode} from 'react'\nimport {\n type DocumentBadgeDescription,\n type DocumentBadgeProps,\n type EditStateFor,\n GetHookCollectionState,\n} from 'sanity'\n\n/** @internal */\nexport interface Badge<Args, Description> {\n (args: Args): Description | null\n}\n\n/** @internal */\nexport interface RenderBadgeCollectionProps {\n badges: Badge<DocumentBadgeProps, DocumentBadgeDescription>[]\n badgeProps: EditStateFor\n children: (props: {states: DocumentBadgeDescription[]}) => ReactNode\n}\n\n/** @internal */\nexport const RenderBadgeCollectionState = memo((props: RenderBadgeCollectionProps) => {\n const {badges, children, badgeProps} = props\n\n return (\n <GetHookCollectionState<EditStateFor, DocumentBadgeDescription>\n hooks={badges}\n args={badgeProps}\n >\n {children}\n </GetHookCollectionState>\n )\n})\nRenderBadgeCollectionState.displayName = 'Memo(RenderBadgeCollectionState)'\n","import {useMemo} from 'react'\nimport {Subject} from 'rxjs'\n\nimport {type PathSyncChannel, type PathSyncState} from '../types/pathSyncChannel'\n\n/**\n * @internal\n */\nexport function useCreatePathSyncChannel(): PathSyncChannel {\n return useMemo(() => new Subject<PathSyncState>(), [])\n}\n","/**\n * @internal\n */\nexport const DIFF_VIEW_SEARCH_PARAMETER = 'diffView'\n\n/**\n * @internal\n */\nexport const DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER = 'previousDocument'\n\n/**\n * @internal\n */\nexport const DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER = 'nextDocument'\n\n/**\n * @internal\n */\nexport const DIFF_SEARCH_PARAM_DELIMITER = ','\n","import {fromPairs, toPairs} from 'lodash'\nimport {useCallback} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {\n DIFF_SEARCH_PARAM_DELIMITER,\n DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER,\n DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER,\n DIFF_VIEW_SEARCH_PARAMETER,\n} from '../constants'\nimport {type DiffViewMode} from '../types/diffViewMode'\n\ntype NavigateDiffView = (\n options: {\n mode?: DiffViewMode\n } & Partial<\n Record<\n 'previousDocument' | 'nextDocument',\n {\n type: string\n id: string\n }\n >\n >,\n) => void\n\nexport interface DiffViewRouter {\n navigateDiffView: NavigateDiffView\n exitDiffView: () => void\n}\n\n/**\n * @internal\n */\nexport function useDiffViewRouter(): DiffViewRouter {\n const {navigate, state: routerState} = useRouter()\n\n const navigateDiffView = useCallback<NavigateDiffView>(\n ({mode, previousDocument, nextDocument}) => {\n const next = {\n ...fromPairs(routerState._searchParams),\n ...(mode\n ? {\n [DIFF_VIEW_SEARCH_PARAMETER]: mode,\n }\n : {}),\n ...(previousDocument\n ? {\n [DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER]: [\n previousDocument.type,\n previousDocument.id,\n ].join(DIFF_SEARCH_PARAM_DELIMITER),\n }\n : {}),\n ...(nextDocument\n ? {\n [DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER]: [nextDocument.type, nextDocument.id].join(\n DIFF_SEARCH_PARAM_DELIMITER,\n ),\n }\n : {}),\n }\n\n navigate({\n ...routerState,\n _searchParams: toPairs(next),\n })\n },\n [navigate, routerState],\n )\n\n const exitDiffView = useCallback(() => {\n navigate({\n ...routerState,\n _searchParams: (routerState._searchParams ?? []).filter(\n ([key]) =>\n ![\n DIFF_VIEW_SEARCH_PARAMETER,\n DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER,\n DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER,\n ].includes(key),\n ),\n })\n }, [navigate, routerState])\n\n return {\n navigateDiffView,\n exitDiffView,\n }\n}\n","/**\n * @internal\n */\nexport const diffViewModes = ['version'] as const\n\n/**\n * @internal\n */\nexport type DiffViewMode = (typeof diffViewModes)[number]\n","import {useEffect, useMemo} from 'react'\nimport {useRouter} from 'sanity/router'\n\nimport {\n DIFF_SEARCH_PARAM_DELIMITER,\n DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER,\n DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER,\n DIFF_VIEW_SEARCH_PARAMETER,\n} from '../constants'\nimport {type DiffViewMode, diffViewModes} from '../types/diffViewMode'\n\nfunction isDiffViewMode(maybeDiffViewMode: unknown): maybeDiffViewMode is DiffViewMode {\n return diffViewModes.includes(maybeDiffViewMode as DiffViewMode)\n}\n\ntype DiffViewState =\n | {\n isActive: true\n state: 'ready'\n mode: DiffViewMode\n documents: Record<\n 'previous' | 'next',\n {\n type: string\n id: string\n }\n >\n }\n | {\n isActive: true\n state: 'error'\n mode: DiffViewMode\n documents?: never\n }\n | {\n isActive: false\n state?: never\n mode?: never\n documents?: never\n }\n\nexport function useDiffViewState({\n onParamsError,\n}: {\n onParamsError?: (errors: DiffViewStateErrorWithInput[]) => void\n} = {}): DiffViewState {\n const {state: routerState} = useRouter()\n const searchParams = new URLSearchParams(routerState._searchParams)\n const previousDocument = searchParams.get(DIFF_VIEW_PREVIOUS_DOCUMENT_SEARCH_PARAMETER)\n const nextDocument = searchParams.get(DIFF_VIEW_NEXT_DOCUMENT_SEARCH_PARAMETER)\n const mode = searchParams.get(DIFF_VIEW_SEARCH_PARAMETER)\n const anyParamSet = [previousDocument, nextDocument, mode].some((param) => param !== null)\n\n const params = useMemo(\n () =>\n parseParams({\n previousDocument: previousDocument ?? '',\n nextDocument: nextDocument ?? '',\n mode: mode ?? '',\n }),\n [mode, nextDocument, previousDocument],\n )\n\n useEffect(() => {\n if (params.result === 'error' && anyParamSet) {\n onParamsError?.(params.errors)\n }\n }, [anyParamSet, onParamsError, params])\n\n if (params.result === 'error') {\n return {\n isActive: false,\n }\n }\n\n return {\n state: 'ready',\n isActive: true,\n ...params.params,\n }\n}\n\ntype DiffViewStateError =\n | 'invalidModeParam'\n | 'invalidPreviousDocumentParam'\n | 'invalidNextDocumentParam'\n\ntype DiffViewStateErrorWithInput = [error: DiffViewStateError, input: unknown]\n\ninterface ParamsSuccess {\n result: 'success'\n params: Pick<DiffViewState & {state: 'ready'}, 'mode' | 'documents'>\n}\n\ninterface ParamsError {\n result: 'error'\n errors: DiffViewStateErrorWithInput[]\n}\n\nfunction parseParams({\n previousDocument,\n nextDocument,\n mode,\n}: {\n previousDocument: string\n nextDocument: string\n mode: string\n}): ParamsSuccess | ParamsError {\n const errors: DiffViewStateErrorWithInput[] = []\n\n const [previousDocumentType, previousDocumentId] = previousDocument\n .split(DIFF_SEARCH_PARAM_DELIMITER)\n .filter(Boolean)\n\n const [nextDocumentType, nextDocumentId] = nextDocument\n .split(DIFF_SEARCH_PARAM_DELIMITER)\n .filter(Boolean)\n\n if (!isDiffViewMode(mode)) {\n errors.push(['invalidModeParam', mode])\n }\n\n if (typeof previousDocumentType === 'undefined' || typeof previousDocumentId === 'undefined') {\n errors.push(['invalidPreviousDocumentParam', previousDocument])\n }\n\n if (typeof nextDocumentType === 'undefined' || typeof nextDocumentId === 'undefined') {\n errors.push(['invalidNextDocumentParam', nextDocument])\n }\n\n if (errors.length !== 0) {\n return {\n result: 'error',\n errors,\n }\n }\n\n return {\n result: 'success',\n params: {\n mode,\n documents: {\n previous: {\n type: previousDocumentType,\n id: previousDocumentId,\n },\n next: {\n type: nextDocumentType,\n id: nextDocumentId,\n },\n },\n },\n } as ParamsSuccess\n}\n","const e=()=>new Promise(e=>{requestAnimationFrame(()=>e())}),t=({clientWidth:e,clientHeight:t,scrollWidth:o,scrollHeight:r})=>r>t||o>e,o=e=>{const t=window.getComputedStyle(e).overflow;return t.includes(\"auto\")||t.includes(\"scroll\")},r=e=>{if(null==e)return{x:0,y:0};const{scrollTop:t,scrollHeight:o,clientHeight:r,scrollLeft:n,scrollWidth:l,clientWidth:s}=e,i=o-r;return{x:n?n/Math.max(1e-5,l-s):0,y:t?t/Math.max(1e-5,i):0}};function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n.apply(null,arguments)}function l(e){return e.matches(\"body *\")?e:window}class s{constructor(l,s={}){var i,c=this;this.elements=void 0,this.defaults={vertical:!0,horizontal:!0,debug:!0},this.options=void 0,this.paused=!1,this.logger=void 0,this.handleScroll=async function(t){if(c.paused)return;if(!t.currentTarget)return;const o=c.getScrollContainer(t.currentTarget);await e(),c.mirrorScrollPositions(r(o),o)},this.elements=[...l].filter(Boolean).map(e=>this.getScrollContainer(e)),this.elements=[...new Set(this.elements)],this.options=n({},this.defaults,s),this.options.debug&&(this.logger=(i=\"[scroll-mirror]\",{log:(...e)=>console.log(i,...e),warn:(...e)=>console.warn(i,...e),error:(...e)=>console.error(i,...e)}),function(e,r){if(e.length<1)null==r||r.warn(\"No elements provided.\");else{e.length<2&&(null==r||r.warn(\"Only one element provided.\",e)),e.some(e=>!e)&&(null==r||r.error(\"Some elements are not defined.\",e));for(const n of e)n instanceof HTMLElement&&!t(n)&&(null==r||r.warn(\"Element doesn't have overflow:\",n)),n instanceof HTMLElement&&n.matches(\"body *\")&&!o(n)&&(null==r||r.warn('No \"overflow: auto;\" or \"overflow: scroll;\" set on element:',n))}}(this.elements,this.logger)),this.elements.forEach(e=>this.addScrollHandler(e)),this.elements.includes(document.documentElement)&&this.mirrorScrollPositions(r(document.documentElement),document.documentElement)}pause(){this.paused=!0}resume(){this.paused=!1}destroy(){this.elements.forEach(e=>this.removeScrollHandler(e))}addScrollHandler(e){this.removeScrollHandler(e),l(e).addEventListener(\"scroll\",this.handleScroll,{passive:!0})}removeScrollHandler(e){l(e).removeEventListener(\"scroll\",this.handleScroll)}getScrollContainer(e){return e instanceof HTMLElement&&e.matches(\"body *\")?e:document.documentElement}mirrorScrollPositions(e,t=void 0){this.elements.forEach(o=>{t!==o&&(this.removeScrollHandler(o),this.setScrollPosition(e,o),window.requestAnimationFrame(()=>{this.addScrollHandler(o)}))})}setScrollPosition(e,t){const{vertical:o,horizontal:r}=this.options,n=t.scrollWidth-t.clientWidth,l=t.scrollHeight-t.clientHeight;o&&l&&t.scrollTo({top:l*e.y,behavior:\"instant\"}),r&&n&&t.scrollTo({left:n*e.x,behavior:\"instant\"})}get progress(){const e=this.elements.find(e=>t(e));return r(e)}set progress(e){\"number\"==typeof e&&(e={x:e,y:e});const t=n({},this.progress,e);(function(e,t){let o=!0;for(const[r,n]of Object.entries(e))(\"number\"!=typeof n||n<0||n>1)&&(null==t||t.error(`progress.${r} must be a number between 0-1`),o=!1);return o})(t,this.logger)&&this.mirrorScrollPositions(t)}}export{s as default,r as getScrollProgress,o as hasCSSOverflow,t as hasOverflow,e as nextTick};\n//# sourceMappingURL=ScrollMirror.modern.js.map\n","import {useEffect} from 'react'\nimport ScrollMirror from 'scrollmirror'\n\n/**\n * Use the ScrollMirror library to synchronise the scroll position for an array of elements.\n *\n * @internal\n */\nexport function useScrollMirror(elements: (HTMLElement | null)[]): void {\n useEffect(() => {\n const existentElements = elements.filter((element) => element !== null)\n\n if (existentElements.length === 0) {\n return undefined\n }\n\n const scrollMirror = new ScrollMirror(existentElements)\n return () => scrollMirror.destroy()\n }, [elements])\n}\n","import {CloseIcon, LockIcon, TransferIcon} from '@sanity/icons'\nimport {\n Box,\n // eslint-disable-next-line no-restricted-imports -- we need more control over how the `Button` component is rendered\n Button,\n type ButtonTone,\n Flex,\n Menu,\n // eslint-disable-next-line no-restricted-imports -- the `VersionModeHeader` component needs more control over how the `MenuItem` component is rendered\n MenuItem,\n Stack,\n Text,\n} from '@sanity/ui'\n// eslint-disable-next-line @sanity/i18n/no-i18next-import -- figure out how to have the linter be fine with importing types-only\nimport {type TFunction} from 'i18next'\nimport {type ComponentProps, type ComponentType, useCallback, useMemo} from 'react'\nimport {\n type DocumentLayoutProps,\n formatRelativeLocalePublishDate,\n getDraftId,\n getPublishedId,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n getVersionId,\n isDraftId,\n isPublishedId,\n isReleaseDocument,\n isReleaseScheduledOrScheduling,\n ReleaseAvatar,\n type ReleaseDocument,\n useActiveReleases,\n useDocumentVersions,\n useEditState,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {MenuButton} from '../../../../ui-components/menuButton/MenuButton'\nimport {structureLocaleNamespace} from '../../../i18n'\nimport {useDiffViewRouter} from '../../hooks/useDiffViewRouter'\nimport {useDiffViewState} from '../../hooks/useDiffViewState'\n\nconst VersionModeHeaderLayout = styled.header`\n display: grid;\n grid-area: header;\n grid-template-columns: 1fr min-content 1fr;\n border-block-end: 1px solid var(--card-border-color);\n`\n\nconst VersionModeHeaderLayoutSection = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`\n\n/**\n * The header component that is rendered when diff view is being used to compare versions of a\n * document.\n *\n * @internal\n */\nexport const VersionModeHeader: ComponentType<\n {state: 'pending' | 'ready' | 'error'} & Pick<DocumentLayoutProps, 'documentId'>\n> = ({documentId, state}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const {data: documentVersions} = useDocumentVersions({documentId})\n const {exitDiffView, navigateDiffView} = useDiffViewRouter()\n const {documents} = useDiffViewState()\n const activeReleases = useActiveReleases()\n const releasesIds = documentVersions.flatMap((id) => getVersionFromId(id) ?? [])\n\n const releases = useMemo(() => {\n return activeReleases.data.filter((release) => {\n const releaseId = getReleaseIdFromReleaseDocumentId(release._id)\n return typeof releaseId !== 'undefined' && releasesIds.includes(releaseId)\n })\n }, [activeReleases.data, releasesIds])\n\n const onSelectPreviousRelease = useCallback(\n (selectedDocumentId: string): void => {\n if (typeof documents?.previous !== 'undefined') {\n navigateDiffView({\n previousDocument: {\n ...documents.previous,\n id: selectedDocumentId,\n },\n })\n }\n },\n [documents?.previous, navigateDiffView],\n )\n\n const onSelectNextRelease = useCallback(\n (selectedDocumentId: string): void => {\n if (typeof documents?.next !== 'undefined') {\n navigateDiffView({\n nextDocument: {\n ...documents.next,\n id: selectedDocumentId,\n },\n })\n }\n },\n [documents?.next, navigateDiffView],\n )\n\n return (\n <VersionModeHeaderLayout>\n <VersionModeHeaderLayoutSection>\n <Box padding={4}>\n <Text as=\"h1\" size={1} muted>\n {t('compare-versions.title')}\n </Text>\n </Box>\n {typeof documents?.previous !== 'undefined' && (\n <VersionMenu\n releases={releases}\n onSelectRelease={onSelectPreviousRelease}\n role=\"previous\"\n documentId={documentId}\n state={state}\n document={documents.previous}\n />\n )}\n </VersionModeHeaderLayoutSection>\n <Flex align=\"center\" paddingX={3}>\n <Text size={1}>\n <TransferIcon />\n </Text>\n </Flex>\n <VersionModeHeaderLayoutSection>\n {typeof documents?.next !== 'undefined' && (\n <VersionMenu\n releases={releases}\n onSelectRelease={onSelectNextRelease}\n role=\"next\"\n documentId={documentId}\n state={state}\n document={documents.next}\n />\n )}\n <Box\n padding={3}\n style={{\n justifySelf: 'end',\n }}\n >\n <Button icon={CloseIcon} mode=\"bleed\" onClick={exitDiffView} padding={2} />\n </Box>\n </VersionModeHeaderLayoutSection>\n </VersionModeHeaderLayout>\n )\n}\n\ninterface VersionMenuProps {\n state: 'pending' | 'ready' | 'error'\n releases: ReleaseDocument[]\n role: 'previous' | 'next'\n onSelectRelease: (releaseId: string) => void\n documentId: string\n document: {\n type: string\n id: string\n }\n}\n\nconst VersionMenu: ComponentType<VersionMenuProps> = ({\n releases = [],\n onSelectRelease,\n role,\n documentId,\n document,\n}) => {\n const {published, draft} = useEditState(getPublishedId(document.id), document.type)\n const selected = useMemo(() => findRelease(document.id, releases), [document.id, releases])\n const {t: tStructure} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n return (\n <MenuButton\n id={role}\n button={\n <Button\n type=\"button\"\n mode=\"bleed\"\n padding={2}\n paddingRight={3}\n radius=\"full\"\n selected\n {...getMenuButtonProps({selected, tCore, tStructure})}\n />\n }\n menu={\n <Menu>\n {published && (\n <VersionMenuItem\n type=\"published\"\n onSelect={onSelectRelease}\n isSelected={selected === 'published'}\n documentId={documentId}\n />\n )}\n {draft && (\n <VersionMenuItem\n type=\"draft\"\n onSelect={onSelectRelease}\n isSelected={selected === 'draft'}\n documentId={documentId}\n />\n )}\n {releases.map((release) => (\n <VersionMenuItem\n key={release._id}\n release={release}\n onSelect={onSelectRelease}\n isSelected={typeof selected !== 'string' && selected?._id === release._id}\n documentId={documentId}\n />\n ))}\n </Menu>\n }\n />\n )\n}\n\ntype VersionMenuItemProps = {\n onSelect: (releaseId: string) => void\n isSelected?: boolean\n documentId: string\n} & (\n | {\n release: ReleaseDocument\n type?: never\n }\n | {\n type: 'published' | 'draft'\n release?: never\n }\n)\n\nconst VersionMenuItem: ComponentType<VersionMenuItemProps> = ({\n type,\n release,\n onSelect,\n isSelected,\n documentId,\n}) => {\n const {t: tCore} = useTranslation()\n const {t: tStructure} = useTranslation(structureLocaleNamespace)\n\n const onClick = useCallback(() => {\n if (type === 'draft') {\n onSelect(getDraftId(documentId))\n return\n }\n\n if (type === 'published') {\n onSelect(getPublishedId(documentId))\n return\n }\n\n if (typeof release?._id !== 'undefined') {\n onSelect(getVersionId(documentId, getReleaseIdFromReleaseDocumentId(release._id)))\n }\n }, [type, onSelect, documentId, release?._id])\n\n if (type) {\n const tone: ButtonTone = type === 'published' ? 'positive' : 'caution'\n\n return (\n <MenuItem padding={1} paddingRight={3} onClick={onClick} pressed={isSelected}>\n <Flex gap={1}>\n <ReleaseAvatar padding={2} tone={tone} />\n <Box paddingY={2}>\n <Text size={1} weight=\"medium\">\n {tStructure(['compare-versions.status', type].join('.'))}\n </Text>\n </Box>\n </Flex>\n </MenuItem>\n )\n }\n\n const tone: ButtonTone = release ? getReleaseTone(release) : 'neutral'\n\n return (\n <MenuItem padding={1} paddingRight={3} onClick={onClick} pressed={isSelected}>\n <Flex gap={1}>\n <ReleaseAvatar padding={2} tone={tone} />\n <Stack flex={1} paddingY={2} paddingRight={2} space={2}>\n <Text size={1} weight=\"medium\">\n {release.metadata.title || tCore('release.placeholder-untitled-release')}\n </Text>\n {['asap', 'undecided'].includes(release.metadata.releaseType) && (\n <Text muted size={1}>\n {tCore(`release.type.${release.metadata.releaseType}`)}\n </Text>\n )}\n {release.metadata.releaseType === 'scheduled' && (\n <Text muted size={1}>\n {formatRelativeLocalePublishDate(release)}\n </Text>\n )}\n </Stack>\n <Flex flex=\"none\">\n {isReleaseScheduledOrScheduling(release) && (\n <Box padding={2}>\n <Text size={1}>\n <LockIcon />\n </Text>\n </Box>\n )}\n </Flex>\n </Flex>\n </MenuItem>\n )\n}\n\nfunction getMenuButtonProps({\n selected,\n tCore,\n tStructure,\n}: {\n selected?: ReleaseDocument | 'published' | 'draft'\n tCore: TFunction\n tStructure: TFunction\n}): Pick<ComponentProps<typeof Button>, 'text' | 'tone' | 'icon' | 'iconRight' | 'disabled'> {\n if (typeof selected === 'undefined') {\n return {\n text: tCore('common.loading'),\n tone: 'neutral',\n disabled: true,\n }\n }\n\n if (isReleaseDocument(selected)) {\n const tone: ButtonTone = selected ? getReleaseTone(selected) : 'neutral'\n\n return {\n text: selected?.metadata.title || tCore('release.placeholder-untitled-release'),\n icon: <ReleaseAvatar padding={1} tone={tone} />,\n iconRight: selected && isReleaseScheduledOrScheduling(selected) ? <LockIcon /> : undefined,\n tone,\n }\n }\n\n const tone: ButtonTone = selected === 'published' ? 'positive' : 'caution'\n\n return {\n text: tStructure(['compare-versions.status', selected].join('.')),\n icon: <ReleaseAvatar padding={1} tone={tone} />,\n tone,\n }\n}\n\n/**\n * If the provided document id represents a version, find and return the corresponding release\n * document. Otherwise, return a string literal signifying whether the document id represents a\n * published or draft document.\n */\nfunction findRelease(\n documentId: string,\n releases: ReleaseDocument[],\n): ReleaseDocument | 'published' | 'draft' | undefined {\n if (isPublishedId(documentId)) {\n return 'published'\n }\n\n if (isDraftId(documentId)) {\n return 'draft'\n }\n\n return releases.find(\n ({_id}) => getReleaseIdFromReleaseDocumentId(_id) === getVersionFromId(documentId),\n )\n}\n","import {styled} from 'styled-components'\n\nexport const DialogLayout = styled.div`\n --offset-block: 40px;\n display: grid;\n height: calc(100vh - var(--offset-block));\n min-height: 0;\n overflow: hidden;\n grid-template-areas:\n 'header header'\n 'previous-document next-document';\n grid-template-columns: 1fr 1fr;\n grid-template-rows: min-content minmax(0, 1fr);\n`\n","import {type ComponentType} from 'react'\nimport {type DocumentLayoutProps, type PluginOptions} from 'sanity'\n\n/**\n * Pick the document layout component when composing the component middleware chain.\n */\nexport function pickDocumentLayoutComponent(plugin: PluginOptions) {\n return plugin.document?.components?.unstable_layout as ComponentType<\n Omit<DocumentLayoutProps, 'renderDefault'>\n >\n}\n","import {type Path} from '@sanity/types'\nimport {useCallback, useMemo} from 'react'\nimport deepEquals from 'react-fast-compare'\nimport {distinctUntilChanged, filter, map, type Observable} from 'rxjs'\n\nimport {type PathSyncChannelProps, type PathSyncState} from '../types/pathSyncChannel'\n\ntype Push = (state: PathSyncState) => void\n\n/**\n * Synchronise the open path between multiple document panes.\n *\n * @internal\n */\nexport function usePathSyncChannel({syncChannel, id}: PathSyncChannelProps): {\n push: Push\n path: Observable<Path>\n} {\n const push = useCallback<Push>(\n (state) => syncChannel.next({...state, source: id}),\n [id, syncChannel],\n )\n\n const path = useMemo(\n () =>\n syncChannel.pipe(\n distinctUntilChanged<PathSyncState>((previous, next) =>\n deepEquals(previous.path, next.path),\n ),\n filter(({source}) => source !== id),\n map((state) => state.path),\n ),\n [id, syncChannel],\n )\n\n return {\n path,\n push,\n }\n}\n","import {styled} from 'styled-components'\n\nexport const Scroller = styled.div`\n position: relative;\n height: 100%;\n overflow: auto;\n scroll-behavior: smooth;\n scrollbar-width: var(--scrollbar-width);\n overscroll-behavior: contain;\n will-change: scroll-position;\n`\n","import {type Path, type SanityDocument} from '@sanity/types'\nimport {\n BoundaryElementProvider,\n Card,\n Container as UiContainer,\n DialogProvider,\n PortalProvider,\n} from '@sanity/ui'\nimport {noop} from 'lodash'\nimport {\n type ComponentType,\n type CSSProperties,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n ChangeIndicatorsTracker,\n createPatchChannel,\n FormBuilder,\n getPublishedId,\n getVersionFromId,\n isDraftId,\n isPublishedId,\n isVersionId,\n LoadingBlock,\n useDocumentForm,\n useEditState,\n useMiddlewareComponents,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {CommentsEnabledContext, ReviewChangesContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {pickDocumentLayoutComponent} from '../../panes/document/document-layout/pickDocumentLayoutComponent'\nimport {usePathSyncChannel} from '../hooks/usePathSyncChannel'\nimport {type PathSyncChannel} from '../types/pathSyncChannel'\nimport {Scroller} from './Scroller'\n\nconst DiffViewPaneLayout = styled(Card)`\n position: relative;\n grid-area: var(--grid-area);\n`\n\nconst Container = styled(UiContainer)`\n width: auto;\n`\n\ninterface DiffViewPaneProps {\n documentType: string\n documentId: string\n role: 'previous' | 'next'\n scrollElement: HTMLElement | null\n syncChannel: PathSyncChannel\n compareDocument: {\n type: string\n id: string\n }\n}\n\nexport const DiffViewPane = forwardRef<HTMLDivElement, DiffViewPaneProps>(function DiffViewPane(\n {role, documentType, documentId, scrollElement, syncChannel, compareDocument},\n ref,\n) {\n const containerElement = useRef<HTMLDivElement | null>(null)\n const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)\n const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)\n\n const DocumentLayout = useMiddlewareComponents({\n pick: pickDocumentLayoutComponent,\n defaultComponent: useCallback(\n () => (\n <DiffViewDocument\n compareDocument={compareDocument}\n documentId={documentId}\n documentType={documentType}\n role={role}\n scrollElement={scrollElement}\n syncChannel={syncChannel}\n />\n ),\n [compareDocument, documentId, documentType, role, scrollElement, syncChannel],\n ),\n })\n\n return (\n <ReviewChangesContext.Provider\n value={{\n // Render the change indicators inertly, because the diff view modal does not currently\n // provide a way to display document inspectors.\n isInteractive: false,\n onOpenReviewChanges: noop,\n onSetFocus: noop,\n isReviewChangesOpen: false,\n }}\n >\n <ChangeIndicatorsTracker>\n <VirtualizerScrollInstanceProvider\n scrollElement={scrollElement}\n containerElement={containerElement}\n >\n <BoundaryElementProvider element={boundaryElement}>\n <DiffViewPaneLayout\n ref={setBoundaryElement}\n style={\n {\n '--grid-area': `${role}-document`,\n } as CSSProperties\n }\n borderLeft={role === 'next'}\n >\n <Scroller\n ref={ref}\n style={\n {\n // The scroll position is synchronised between panes. This style hides the\n // scrollbar for all panes except the one displaying the next document.\n '--scrollbar-width': role !== 'next' && 'none',\n } as CSSProperties\n }\n >\n <PortalProvider element={portalElement}>\n <DialogProvider position=\"absolute\">\n <Container ref={containerElement} padding={4} width={1}>\n <DocumentLayout documentId={documentId} documentType={documentType} />\n </Container>\n </DialogProvider>\n </PortalProvider>\n </Scroller>\n <div data-testid=\"diffView-document-panel-portal\" ref={setPortalElement} />\n </DiffViewPaneLayout>\n </BoundaryElementProvider>\n </VirtualizerScrollInstanceProvider>\n </ChangeIndicatorsTracker>\n </ReviewChangesContext.Provider>\n )\n})\n\nconst DiffViewDocument: ComponentType<DiffViewPaneProps> = ({\n role,\n documentType,\n documentId,\n syncChannel,\n compareDocument,\n}) => {\n const compareValue = useCompareValue({compareDocument})\n const [patchChannel] = useState(() => createPatchChannel())\n\n const {\n formState,\n onChange,\n onFocus,\n onBlur,\n onSetActiveFieldGroup,\n onSetCollapsedFieldSet,\n onSetCollapsedPath,\n collapsedFieldSets,\n ready,\n collapsedPaths,\n schemaType,\n value,\n onProgrammaticFocus,\n ...documentForm\n } = useDocumentForm({\n documentId: getPublishedId(documentId),\n documentType,\n selectedPerspectiveName: perspectiveName(documentId),\n releaseId: getVersionFromId(documentId),\n comparisonValue: compareValue,\n })\n\n const isLoading = formState === null || !ready\n\n const pathSyncChannel = usePathSyncChannel({\n id: role,\n syncChannel,\n })\n\n const onPathOpen = useCallback(\n (path: Path) => {\n documentForm.onPathOpen(path)\n pathSyncChannel.push({source: role, path})\n },\n [documentForm, pathSyncChannel, role],\n )\n\n useEffect(() => {\n const subscription = pathSyncChannel.path.subscribe(onProgrammaticFocus)\n return () => subscription.unsubscribe()\n }, [onProgrammaticFocus, pathSyncChannel.path])\n\n return isLoading ? (\n <LoadingBlock showText />\n ) : (\n <CommentsEnabledContext.Provider\n value={{\n enabled: false,\n mode: null,\n }}\n >\n <FormBuilder\n // eslint-disable-next-line camelcase\n __internal_patchChannel={patchChannel}\n id={`diffView-pane-${role}`}\n onChange={onChange}\n onPathFocus={onFocus}\n onPathOpen={onPathOpen}\n onPathBlur={onBlur}\n onFieldGroupSelect={onSetActiveFieldGroup}\n onSetFieldSetCollapsed={onSetCollapsedFieldSet}\n onSetPathCollapsed={onSetCollapsedPath}\n collapsedPaths={collapsedPaths}\n collapsedFieldSets={collapsedFieldSets}\n focusPath={formState.focusPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n validation={formState.validation}\n members={formState.members}\n presence={formState.presence}\n schemaType={schemaType}\n value={value}\n />\n </CommentsEnabledContext.Provider>\n )\n}\n\nfunction perspectiveName(documentId: string): string | undefined {\n if (isVersionId(documentId)) {\n return getVersionFromId(documentId)\n }\n\n if (isPublishedId(documentId)) {\n return 'published'\n }\n\n return undefined\n}\n\ntype UseCompareValueOptions = Pick<DiffViewPaneProps, 'compareDocument'>\n\n/**\n * Fetch the contents of `compareDocument` for comparison with another version of the document.\n */\nfunction useCompareValue({compareDocument}: UseCompareValueOptions): SanityDocument | undefined {\n const compareDocumentEditState = useEditState(\n getPublishedId(compareDocument.id),\n compareDocument.type,\n 'low',\n getVersionFromId(compareDocument.id),\n )\n\n return useMemo(() => {\n if (isVersionId(compareDocument.id)) {\n return compareDocumentEditState.version ?? undefined\n }\n\n if (isDraftId(compareDocument.id)) {\n return compareDocumentEditState.draft ?? undefined\n }\n\n if (isPublishedId(compareDocument.id)) {\n return compareDocumentEditState.published ?? undefined\n }\n\n return undefined\n }, [\n compareDocument.id,\n compareDocumentEditState.draft,\n compareDocumentEditState.published,\n compareDocumentEditState.version,\n ])\n}\n","import {type ReferenceInputOptions} from 'sanity'\nimport {useIntentLink} from 'sanity/router'\nimport {styled} from 'styled-components'\n\nconst Link = styled.a`\n flex: 1;\n text-decoration: none;\n color: inherit;\n`\n\nexport const EditReferenceLinkComponent: ReferenceInputOptions['EditReferenceLinkComponent'] = ({\n children,\n documentId: _documentId,\n documentType,\n}) => {\n const {href} = useIntentLink({\n intent: 'edit',\n params: {\n id: _documentId,\n type: documentType,\n },\n })\n\n return (\n <Link href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </Link>\n )\n}\n","import {type ComponentType, useContext, useMemo, useState} from 'react'\nimport {type DocumentLayoutProps} from 'sanity'\nimport {ReferenceInputOptionsContext} from 'sanity/_singletons'\n\nimport {Dialog} from '../../../ui-components/dialog/Dialog'\nimport {useCreatePathSyncChannel} from '../hooks/useCreatePathSyncChannel'\nimport {useDiffViewRouter} from '../hooks/useDiffViewRouter'\nimport {useDiffViewState} from '../hooks/useDiffViewState'\nimport {useScrollMirror} from '../hooks/useScrollMirror'\nimport {VersionModeHeader} from '../versionMode/components/VersionModeHeader'\nimport {DialogLayout} from './DialogLayout'\nimport {DiffViewPane} from './DiffViewPane'\nimport {EditReferenceLinkComponent} from './EditReferenceLinkComponent'\n\nexport const DiffView: ComponentType<Pick<DocumentLayoutProps, 'documentId'>> = ({documentId}) => {\n const {documents, state, mode} = useDiffViewState()\n const {exitDiffView} = useDiffViewRouter()\n const syncChannel = useCreatePathSyncChannel()\n const [previousPaneElement, setPreviousPaneElement] = useState<HTMLElement | null>(null)\n const [nextPaneElement, setNextPaneElement] = useState<HTMLElement | null>(null)\n const referenceInputOptionsContext = useContext(ReferenceInputOptionsContext)\n\n const diffViewReferenceInputOptionsContext = useMemo(\n () => ({\n ...referenceInputOptionsContext,\n disableNew: true,\n EditReferenceLinkComponent,\n }),\n [referenceInputOptionsContext],\n )\n\n useScrollMirror([previousPaneElement, nextPaneElement])\n\n return (\n <ReferenceInputOptionsContext.Provider value={diffViewReferenceInputOptionsContext}>\n <Dialog\n id=\"diffView\"\n width=\"auto\"\n onClose={exitDiffView}\n padding={false}\n __unstable_hideCloseButton\n >\n <DialogLayout>\n {mode === 'version' && <VersionModeHeader documentId={documentId} state={state} />}\n {state === 'ready' && (\n <>\n <DiffViewPane\n documentType={documents.previous.type}\n documentId={documents.previous.id}\n role=\"previous\"\n ref={setPreviousPaneElement}\n scrollElement={previousPaneElement}\n syncChannel={syncChannel}\n compareDocument={documents.previous}\n />\n <DiffViewPane\n documentType={documents.next.type}\n documentId={documents.next.id}\n role=\"next\"\n ref={setNextPaneElement}\n scrollElement={nextPaneElement}\n syncChannel={syncChannel}\n // The previous document's edit state is used to calculate the diff inroduced by the next document.\n compareDocument={documents.previous}\n />\n </>\n )}\n </DialogLayout>\n </Dialog>\n </ReferenceInputOptionsContext.Provider>\n )\n}\n","import {useToast} from '@sanity/ui'\nimport {type ComponentType, type PropsWithChildren} from 'react'\nimport {type DocumentLayoutProps, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../i18n'\nimport {DiffView} from '../components/DiffView'\nimport {useDiffViewState} from '../hooks/useDiffViewState'\n\nexport const DiffViewDocumentLayout: ComponentType<\n PropsWithChildren<Pick<DocumentLayoutProps, 'documentId' | 'documentType'>>\n> = ({children, documentId}) => {\n const toast = useToast()\n const {t} = useTranslation(structureLocaleNamespace)\n const {isActive} = useDiffViewState({\n onParamsError: (errors) => {\n toast.push({\n id: 'diffViewParamsParsingError',\n status: 'error',\n title: t('compare-version.error.invalidParams.title'),\n description: (\n <ul>\n {errors.map(([error, input]) => (\n <li key={error}>\n {t(`compare-version.error.${error}`, {\n input,\n })}\n </li>\n ))}\n </ul>\n ),\n })\n },\n })\n\n return (\n <>\n {children}\n {isActive && <DiffView documentId={documentId} />}\n </>\n )\n}\n","import {Box, type CardTone} from '@sanity/ui'\n\nimport {Pane, PaneContent, PaneHeader} from '../../components/pane'\n\n/**\n * @internal\n */\nexport function ErrorPane(props: {\n children?: React.ReactNode\n currentMinWidth?: number\n flex?: number\n minWidth?: number\n paneKey: string\n title?: React.ReactNode\n tone?: CardTone\n}) {\n const {\n children,\n currentMinWidth,\n flex,\n minWidth,\n paneKey,\n title = 'Error',\n tone = 'critical',\n } = props\n\n return (\n <Pane\n currentMinWidth={currentMinWidth}\n flex={flex}\n id={paneKey}\n minWidth={minWidth}\n tone={tone}\n >\n <PaneHeader title={title} />\n <PaneContent overflow=\"auto\">\n <Box paddingX={4} paddingY={5}>\n {children}\n </Box>\n </PaneContent>\n </Pane>\n )\n}\n","import {useContext} from 'react'\nimport {DocumentPaneContext} from 'sanity/_singletons'\n\nimport {type DocumentPaneContextValue} from './DocumentPaneContext'\n\n/** @internal */\nexport function useDocumentPane(): DocumentPaneContextValue {\n const documentPane = useContext(DocumentPaneContext)\n\n if (!documentPane) {\n throw new Error('DocumentPane: missing context value')\n }\n\n return documentPane\n}\n","import {useCallback, useLayoutEffect, useRef} from 'react'\nimport {\n COMMENTS_INSPECTOR_NAME,\n CommentsEnabledProvider,\n CommentsProvider,\n useCommentsEnabled,\n usePerspective,\n useStudioUrl,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../../components'\nimport {useDocumentPane} from '../useDocumentPane'\n\ninterface CommentsWrapperProps {\n children: React.ReactNode\n documentId: string\n documentType: string\n}\n\n/**\n * @internal\n * A wrapper that conditionally wraps the document layout in a comments provider\n * if the feature is enabled for the project and the current document.\n */\nexport function CommentsWrapper(props: CommentsWrapperProps) {\n const {children, documentId, documentType} = props\n\n return (\n <CommentsEnabledProvider documentId={documentId} documentType={documentType}>\n <CommentsProviderWrapper documentId={documentId} documentType={documentType}>\n {children}\n </CommentsProviderWrapper>\n </CommentsEnabledProvider>\n )\n}\n\nfunction CommentsProviderWrapper(props: CommentsWrapperProps) {\n const {children, documentId, documentType} = props\n\n const {enabled} = useCommentsEnabled()\n const {connectionState, onPathOpen, inspector, openInspector} = useDocumentPane()\n const {selectedReleaseId} = usePerspective()\n const {params, setParams, createPathWithParams} = usePaneRouter()\n const {studioUrl} = useStudioUrl(window.location.origin)\n\n const selectedCommentId = params?.comment\n const paramsRef = useRef(params)\n\n useLayoutEffect(() => {\n paramsRef.current = params\n }, [params])\n\n const getCommentLink = useCallback(\n (commentId: string) => {\n // Generate a path based on the current pane params.\n // We force a value for `inspect` to ensure that this is included in URLs when comments\n // are created outside of the inspector context (i.e. directly on the field)\n // @todo: consider filtering pane router params and culling all non-active RHS panes prior to generating this link\n const path = createPathWithParams({\n ...paramsRef.current,\n comment: commentId,\n inspect: COMMENTS_INSPECTOR_NAME,\n })\n return `${studioUrl}${path}`\n },\n [createPathWithParams, studioUrl],\n )\n\n const handleClearSelectedComment = useCallback(() => {\n setParams({...paramsRef.current, comment: undefined})\n }, [setParams])\n\n const handleOpenCommentsInspector = useCallback(() => {\n if (inspector?.name === COMMENTS_INSPECTOR_NAME) return\n\n openInspector(COMMENTS_INSPECTOR_NAME)\n }, [inspector?.name, openInspector])\n\n // If comments are not enabled, render the default document layout\n if (!enabled) {\n return <>{children}</>\n }\n\n return (\n <CommentsProvider\n documentId={documentId}\n documentType={documentType}\n getCommentLink={getCommentLink}\n isCommentsOpen={inspector?.name === COMMENTS_INSPECTOR_NAME}\n isConnecting={connectionState === 'connecting'}\n onClearSelectedComment={handleClearSelectedComment}\n onCommentsOpen={handleOpenCommentsInspector}\n onPathOpen={onPathOpen}\n selectedCommentId={selectedCommentId}\n sortOrder=\"desc\"\n type=\"field\"\n releaseId={selectedReleaseId}\n >\n {children}\n </CommentsProvider>\n )\n}\n","import {useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getVersionFromId,\n type ReleaseDocument,\n useActiveReleases,\n useArchivedReleases,\n useDocumentVersions,\n usePerspective,\n} from 'sanity'\n\nimport {usePaneRouter} from '../components/paneRouter/usePaneRouter'\nimport {type DocumentPaneContextValue} from '../panes/document/DocumentPaneContext'\n\ntype FilterReleases = {\n notCurrentReleases: ReleaseDocument[]\n currentReleases: ReleaseDocument[]\n inCreation: ReleaseDocument | null\n}\n\n/**\n * @internal\n */\nexport function useFilteredReleases({\n displayed,\n documentId,\n}: Pick<DocumentPaneContextValue, 'displayed' | 'documentId'>): FilterReleases {\n const {selectedReleaseId} = usePerspective()\n const {data: releases} = useActiveReleases()\n const {data: archivedReleases} = useArchivedReleases()\n const {data: documentVersions} = useDocumentVersions({documentId})\n const isCreatingDocument = displayed && !displayed._createdAt\n const {params} = usePaneRouter()\n\n return useMemo(() => {\n if (!documentVersions) return {notCurrentReleases: [], currentReleases: [], inCreation: null}\n // Gets the releases ids from the document versions, it means, the releases that the document belongs to\n const releasesIds = documentVersions.map((id) => getVersionFromId(id))\n const activeReleases = releases.reduce(\n (acc: FilterReleases, release) => {\n const versionDocExists = releasesIds.includes(\n getReleaseIdFromReleaseDocumentId(release._id),\n )\n const releaseId = getReleaseIdFromReleaseDocumentId(release._id)\n const isCreatingThisVersion =\n isCreatingDocument &&\n releaseId === getVersionFromId(displayed._id || '') &&\n releaseId === selectedReleaseId\n\n if (isCreatingThisVersion) {\n acc.inCreation = release\n } else if (versionDocExists) {\n acc.currentReleases.push(release)\n } else {\n acc.notCurrentReleases.push(release)\n }\n return acc\n },\n {notCurrentReleases: [], currentReleases: [], inCreation: null},\n )\n\n // without historyVersion, version is not in an archived release\n if (!params?.historyVersion) return activeReleases\n\n const archivedRelease = archivedReleases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === params?.historyVersion,\n )\n\n // only for explicitly archived releases; published releases use published perspective\n if (archivedRelease?.state === 'archived') {\n activeReleases.currentReleases.push(archivedRelease)\n }\n\n return activeReleases\n }, [\n archivedReleases,\n isCreatingDocument,\n displayed?._id,\n documentVersions,\n params?.historyVersion,\n releases,\n selectedReleaseId,\n ])\n}\n","import {useMemo} from 'react'\nimport {getReleaseIdFromReleaseDocumentId, getVersionId} from 'sanity'\n\nimport {type DocumentPaneContextValue} from '../panes/document/DocumentPaneContext'\nimport {useFilteredReleases} from './useFilteredReleases'\n\n/**\n * @internal\n */\nexport interface DocumentIdStack {\n /**\n * The position of the displayed document within the stack.\n */\n position: number\n /**\n * The id of the previous document in the stack.\n */\n previousId?: string\n /**\n * The id of the next document in the stack.\n */\n nextId?: string\n /**\n * An array of document ids comprising the stack the displayed document is a member of, ordered per\n * release layering.\n */\n stack: string[]\n}\n\n/**\n * Get a stack of document ids representing existing versions of the provided document with release\n * layering applied.\n *\n * @internal\n */\nexport function useDocumentIdStack({\n displayed,\n documentId,\n editState,\n}: Pick<DocumentPaneContextValue, 'displayed' | 'documentId' | 'editState'>): DocumentIdStack {\n const filteredReleases = useFilteredReleases({displayed, documentId})\n const systemStack = [editState?.published?._id, editState?.draft?._id]\n\n const releaseStack = filteredReleases.currentReleases.map(\n (release) =>\n editState?.id && getVersionId(editState.id, getReleaseIdFromReleaseDocumentId(release._id)),\n )\n\n const stack = systemStack.concat(releaseStack).filter((id) => typeof id === 'string')\n\n const position = useMemo(\n () => stack.findIndex((id) => id === displayed?._id),\n [displayed?._id, stack],\n )\n\n const previousId = useMemo(() => stack[position - 1] ?? undefined, [position, stack])\n const nextId = useMemo(() => stack[position + 1] ?? undefined, [position, stack])\n\n return {\n position,\n previousId,\n nextId,\n stack,\n }\n}\n","import {type PaneRouterContextValue} from '../../components'\nimport {type PaneMenuItemGroup} from '../../types'\n\nexport const DOCUMENT_PANEL_MIN_WIDTH = 320\nexport const DOCUMENT_PANEL_INITIAL_MIN_WIDTH = 600\n\nexport const DOCUMENT_INSPECTOR_MIN_WIDTH = 320\nexport const DOCUMENT_INSPECTOR_MAX_WIDTH = 540\n\nexport const EMPTY_PARAMS: NonNullable<PaneRouterContextValue['params']> = {}\n\nexport const INSPECT_ACTION_PREFIX = 'inspect:'\n\nexport const DEFAULT_MENU_ITEM_GROUPS: PaneMenuItemGroup[] = [{id: 'inspectors'}, {id: 'links'}]\n\n// inspectors\nexport const HISTORY_INSPECTOR_NAME = 'sanity/structure/history'\nexport const VALIDATION_INSPECTOR_NAME = 'sanity/structure/validation'\n","import {memo, useCallback, useEffect, useMemo, useState} from 'react'\nimport {type DocumentInspector, type DocumentInspectorMenuItem, useUnique} from 'sanity'\n\ninterface DocumentInspectorMenuItemsResolverProps {\n documentId: string\n documentType: string\n inspectors: DocumentInspector[]\n onMenuItems: (items: DocumentInspectorMenuItem[]) => void\n}\n\n// The menu item in a document inspector are resolved in a React hook (`useMenuItem`).\n// This means that the menu item needs to be resolved in a React component (in accordance with the rules of hooks).\n// In this component, we map over the configured inspectors and render a `InspectorMenuItem` for each.\n// The `InspectorMenuItem` will resolve the menu item in a React hook and call the `setMenuItem` callback\n// with the resolved menu item and the index of the inspector.\n// Finally, we call the `onMenuItems` callback with the resolved menu items.\nexport function DocumentInspectorMenuItemsResolver(props: DocumentInspectorMenuItemsResolverProps) {\n const {documentId, documentType, inspectors, onMenuItems} = props\n\n const len = inspectors.length\n const [menuItems, setMenuItems] = useState<DocumentInspectorMenuItem[]>(() =>\n Array.from(new Array(len)),\n )\n\n useEffect(() => {\n if (menuItems.length !== len) {\n const newFieldActions = Array.from(new Array(len))\n\n for (let i = 0; i < len; i++) {\n newFieldActions[i] = menuItems[i]\n }\n\n setMenuItems(newFieldActions)\n }\n }, [len, menuItems])\n\n const setMenuItem = useCallback((index: number, node: DocumentInspectorMenuItem) => {\n setMenuItems((prev) => {\n const next = [...prev]\n next[index] = node\n return next\n })\n }, [])\n\n useEffect(() => {\n onMenuItems(menuItems.filter(Boolean))\n }, [menuItems, onMenuItems])\n\n const InspectorMenuItems = useMemo(() => {\n return inspectors.map((inspector, index) => {\n return inspector.useMenuItem\n ? ([\n defineInspectorMenuItemComponent({\n documentId,\n documentType,\n index,\n setMenuItem,\n useMenuItem: inspector.useMenuItem,\n }),\n inspector.name,\n ] as const)\n : ([() => null, ''] as const)\n })\n }, [documentId, documentType, inspectors, setMenuItem])\n\n return (\n <>\n {InspectorMenuItems.map(([InspectorMenuItem, key]) => key && <InspectorMenuItem key={key} />)}\n </>\n )\n}\nDocumentInspectorMenuItemsResolver.displayName = 'DocumentInspectorMenuItemsResolver'\n\nfunction defineInspectorMenuItemComponent({\n documentId,\n documentType,\n index,\n setMenuItem,\n useMenuItem,\n}: {\n documentId: string\n documentType: string\n index: number\n setMenuItem: (index: number, node: DocumentInspectorMenuItem) => void\n useMenuItem: NonNullable<DocumentInspector['useMenuItem']>\n}) {\n return memo(function InspectorMenuItem() {\n const menuItem = useMenuItem({\n documentId,\n documentType,\n })\n const node = useUnique(menuItem)\n\n useEffect(() => {\n setMenuItem(index, node)\n }, [node])\n\n return null\n })\n}\n","import {unstable_useValuePreview as useValuePreview, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../i18n'\nimport {useDocumentPane} from './useDocumentPane'\n\n/**\n * useDocumentTitle hook return type.\n *\n * @beta\n * @hidden\n */\ninterface UseDocumentTitle {\n error?: string\n title?: string\n}\n\n/**\n * React hook that returns the document title for the current document in the document pane.\n *\n * @beta\n * @hidden\n *\n * @returns The document title or error. See {@link UseDocumentTitle}\n */\nexport function useDocumentTitle(): UseDocumentTitle {\n const {connectionState, schemaType, title, displayed} = useDocumentPane()\n const {t} = useTranslation(structureLocaleNamespace)\n const subscribed = Boolean(displayed)\n\n const {error, value} = useValuePreview({\n enabled: subscribed,\n schemaType,\n value: displayed,\n })\n\n if (connectionState === 'connecting' && !subscribed) {\n return {error: undefined, title: undefined}\n }\n\n if (title) {\n return {error: undefined, title}\n }\n\n if (!displayed) {\n return {\n error: undefined,\n title: t('panes.document-header-title.new.text', {\n schemaType: schemaType?.title || schemaType?.name,\n }),\n }\n }\n\n if (error) {\n return {\n error: t('panes.document-list-pane.error.text', {error: error.message}),\n title: undefined,\n }\n }\n\n return {error: undefined, title: value?.title}\n}\n","import {useToast} from '@sanity/ui'\nimport {memo, useEffect, useMemo, useRef} from 'react'\nimport {Translate, useDocumentOperationEvent, useTranslation} from 'sanity'\n\nimport {usePaneRouter} from '../../components'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {useDocumentPane} from './useDocumentPane'\nimport {useDocumentTitle} from './useDocumentTitle'\n\nconst IGNORE_OPS = ['patch', 'commit']\n\nexport const DocumentOperationResults = memo(function DocumentOperationResults() {\n const {push: pushToast} = useToast()\n const {documentId, documentType, value: documentPaneValue} = useDocumentPane()\n const documentTitleInfo = useDocumentTitle()\n const titleError = documentTitleInfo.error\n const event: any = useDocumentOperationEvent(documentId, documentType)\n const prevEvent = useRef(event)\n const paneRouter = usePaneRouter()\n const {t} = useTranslation(structureLocaleNamespace)\n\n const title = useMemo(() => {\n // If title isn't set from document preview, use the title from the document pane value\n if (\n !documentTitleInfo.title &&\n !titleError &&\n !IGNORE_OPS.includes(event?.op) &&\n typeof documentPaneValue.title === 'string' &&\n event?.type === 'success'\n ) {\n return documentPaneValue.title\n }\n return documentTitleInfo.title\n }, [documentTitleInfo.title, titleError, event, documentPaneValue.title])\n //Truncate the document title and add \"...\" if it is over 25 characters\n const documentTitleBase = title || t('panes.document-operation-results.operation-undefined-title')\n const documentTitle =\n documentTitleBase.length > 25 ? `${documentTitleBase.slice(0, 25)}...` : documentTitleBase\n\n useEffect(() => {\n if (!event || event === prevEvent.current) return\n\n let cleanupId: number | undefined\n\n if (event.type === 'error') {\n pushToast({\n closable: true,\n duration: 30000, // 30s\n status: 'error',\n title: t('panes.document-operation-results.operation-error', {context: event.op}),\n description: (\n <details>\n <summary>{t('panes.document-operation-results.error.summary.title')}</summary>\n {event.error.message}\n </details>\n ),\n })\n }\n\n if (event.type === 'success' && !IGNORE_OPS.includes(event.op)) {\n pushToast({\n closable: true,\n status: 'success',\n title: (\n <Translate\n context={event.op}\n i18nKey=\"panes.document-operation-results.operation-success\"\n t={t}\n values={{\n op: event.op,\n title: documentTitle,\n }}\n components={{\n Strong: 'strong',\n }}\n />\n ),\n })\n }\n\n /**\n * If the document was deleted successfully, close the pane.\n */\n if (event.type === 'success' && event.op === 'delete') {\n // Wait until next tick to allow deletion toasts to appear first\n cleanupId = setTimeout(() => paneRouter.closeCurrentAndAfter(), 0) as any as number\n }\n\n prevEvent.current = event\n\n // eslint-disable-next-line consistent-return\n return () => clearTimeout(cleanupId)\n }, [event, paneRouter, pushToast, t, documentTitle])\n\n return null\n})\n","import {WarningOutlineIcon} from '@sanity/icons'\nimport {type PreviewValue, type SanityDocument, type SchemaType} from '@sanity/types'\nimport {assignWith} from 'lodash'\nimport {type ReactNode} from 'react'\nimport {combineLatest, type Observable, of} from 'rxjs'\nimport {map, startWith} from 'rxjs/operators'\nimport {type DocumentPreviewStore, getDraftId, getPublishedId} from 'sanity'\n\nimport {type PaneItemPreviewState} from './types'\n\nexport const isLiveEditEnabled = (schemaType: SchemaType) => schemaType.liveEdit === true\n\nexport const getMissingDocumentFallback = (item: SanityDocument) => ({\n title: <em>{item.title ? String(item.title) : 'Missing document'}</em>,\n subtitle: <em>{item.title ? `Missing document ID: ${item._id}` : `Document ID: ${item._id}`}</em>,\n media: () => <WarningOutlineIcon />,\n})\n\nexport const getValueWithFallback = ({\n value,\n draft,\n published,\n}: {\n value: SanityDocument\n draft?: Partial<SanityDocument> | PreviewValue | null\n published?: Partial<SanityDocument> | PreviewValue | null\n}) => {\n const snapshot = draft || published\n\n if (!snapshot) {\n return getMissingDocumentFallback(value)\n }\n\n return assignWith({}, snapshot, value, (objValue, srcValue) => {\n return typeof srcValue === 'undefined' ? objValue : srcValue\n })\n}\n\nexport function getPreviewStateObservable(\n documentPreviewStore: DocumentPreviewStore,\n schemaType: SchemaType,\n documentId: string,\n title: ReactNode,\n): Observable<PaneItemPreviewState> {\n const draft$ = isLiveEditEnabled(schemaType)\n ? of({snapshot: null})\n : documentPreviewStore.observeForPreview(\n {_type: 'reference', _ref: getDraftId(documentId)},\n schemaType,\n )\n\n const published$ = documentPreviewStore.observeForPreview(\n {_type: 'reference', _ref: getPublishedId(documentId)},\n schemaType,\n )\n\n return combineLatest([draft$, published$]).pipe(\n map(([draft, published]) => ({\n draft: draft.snapshot ? {title, ...draft.snapshot} : null,\n isLoading: false,\n published: published.snapshot ? {title, ...published.snapshot} : null,\n })),\n startWith({draft: null, isLoading: true, published: null}),\n )\n}\n","import {Box} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {Resizable} from 'sanity'\n\nimport {usePane} from '../../../components'\nimport {useStructureTool} from '../../../useStructureTool'\nimport {DOCUMENT_INSPECTOR_MAX_WIDTH, DOCUMENT_INSPECTOR_MIN_WIDTH} from '../constants'\nimport {useDocumentPane} from '../useDocumentPane'\n\ninterface DocumentInspectorPanelProps {\n documentId: string\n documentType: string\n flex?: number | number[]\n}\n\nexport function DocumentInspectorPanel(\n props: DocumentInspectorPanelProps,\n): React.JSX.Element | null {\n const {documentId, documentType, flex} = props\n const {collapsed} = usePane()\n const {closeInspector, inspector} = useDocumentPane()\n const {features} = useStructureTool()\n\n const handleClose = useCallback(() => {\n if (inspector) closeInspector(inspector.name)\n }, [closeInspector, inspector])\n\n if (collapsed || !inspector) return null\n\n const Component = inspector.component\n const element = (\n <Component onClose={handleClose} documentId={documentId} documentType={documentType} />\n )\n\n if (features.resizablePanes) {\n return (\n <Resizable\n as=\"aside\"\n data-ui=\"DocumentInspectorPanel\"\n flex={flex}\n resizerPosition=\"left\"\n maxWidth={DOCUMENT_INSPECTOR_MAX_WIDTH}\n minWidth={DOCUMENT_INSPECTOR_MIN_WIDTH}\n >\n {element}\n </Resizable>\n )\n }\n\n return (\n <Box as=\"aside\" data-ui=\"DocumentInspectorPanel\" flex={flex}>\n {element}\n </Box>\n )\n}\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","\"use strict\";\n\n/**\n * Expose `md5omatic(str)`.\n */\n \nmodule.exports = md5omatic;\n\n/**\n * Hash any string using message digest.\n *\n * @param {String} str\n * @return {String}\n * @api public\n */\n \nfunction md5omatic(str) {\n var x = str2blks_MD5(str);\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for(var i=0; i<x.length; i += 16)\n {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n\n a = ff(a, b, c, d, x[i+ 0], 7 , -680876936);\n d = ff(d, a, b, c, x[i+ 1], 12, -389564586);\n c = ff(c, d, a, b, x[i+ 2], 17, 606105819);\n b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);\n a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);\n d = ff(d, a, b, c, x[i+ 5], 12, 1200080426);\n c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);\n b = ff(b, c, d, a, x[i+ 7], 22, -45705983);\n a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416);\n d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);\n c = ff(c, d, a, b, x[i+10], 17, -42063);\n b = ff(b, c, d, a, x[i+11], 22, -1990404162);\n a = ff(a, b, c, d, x[i+12], 7 , 1804603682);\n d = ff(d, a, b, c, x[i+13], 12, -40341101);\n c = ff(c, d, a, b, x[i+14], 17, -1502002290);\n b = ff(b, c, d, a, x[i+15], 22, 1236535329);\n a = gg(a, b, c, d, x[i+ 1], 5 , -165796510);\n d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);\n c = gg(c, d, a, b, x[i+11], 14, 643717713);\n b = gg(b, c, d, a, x[i+ 0], 20, -373897302);\n a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);\n d = gg(d, a, b, c, x[i+10], 9 , 38016083);\n c = gg(c, d, a, b, x[i+15], 14, -660478335);\n b = gg(b, c, d, a, x[i+ 4], 20, -405537848);\n a = gg(a, b, c, d, x[i+ 9], 5 , 568446438);\n d = gg(d, a, b, c, x[i+14], 9 , -1019803690);\n c = gg(c, d, a, b, x[i+ 3], 14, -187363961);\n b = gg(b, c, d, a, x[i+ 8], 20, 1163531501);\n a = gg(a, b, c, d, x[i+13], 5 , -1444681467);\n d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);\n c = gg(c, d, a, b, x[i+ 7], 14, 1735328473);\n b = gg(b, c, d, a, x[i+12], 20, -1926607734);\n a = hh(a, b, c, d, x[i+ 5], 4 , -378558);\n d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);\n c = hh(c, d, a, b, x[i+11], 16, 1839030562);\n b = hh(b, c, d, a, x[i+14], 23, -35309556);\n a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\n d = hh(d, a, b, c, x[i+ 4], 11, 1272893353);\n c = hh(c, d, a, b, x[i+ 7], 16, -155497632);\n b = hh(b, c, d, a, x[i+10], 23, -1094730640);\n a = hh(a, b, c, d, x[i+13], 4 , 681279174);\n d = hh(d, a, b, c, x[i+ 0], 11, -358537222);\n c = hh(c, d, a, b, x[i+ 3], 16, -722521979);\n b = hh(b, c, d, a, x[i+ 6], 23, 76029189);\n a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);\n d = hh(d, a, b, c, x[i+12], 11, -421815835);\n c = hh(c, d, a, b, x[i+15], 16, 530742520);\n b = hh(b, c, d, a, x[i+ 2], 23, -995338651);\n a = ii(a, b, c, d, x[i+ 0], 6 , -198630844);\n d = ii(d, a, b, c, x[i+ 7], 10, 1126891415);\n c = ii(c, d, a, b, x[i+14], 15, -1416354905);\n b = ii(b, c, d, a, x[i+ 5], 21, -57434055);\n a = ii(a, b, c, d, x[i+12], 6 , 1700485571);\n d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);\n c = ii(c, d, a, b, x[i+10], 15, -1051523);\n b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);\n a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359);\n d = ii(d, a, b, c, x[i+15], 10, -30611744);\n c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);\n b = ii(b, c, d, a, x[i+13], 21, 1309151649);\n a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);\n d = ii(d, a, b, c, x[i+11], 10, -1120210379);\n c = ii(c, d, a, b, x[i+ 2], 15, 718787259);\n b = ii(b, c, d, a, x[i+ 9], 21, -343485551);\n\n a = addme(a, olda);\n b = addme(b, oldb);\n c = addme(c, oldc);\n d = addme(d, oldd);\n }\n\n return rhex(a) + rhex(b) + rhex(c) + rhex(d);\n};\n\nvar hex_chr = \"0123456789abcdef\";\n\nfunction bitOR(a, b)\n{\n var lsb = (a & 0x1) | (b & 0x1);\n var msb31 = (a >>> 1) | (b >>> 1);\n\n return (msb31 << 1) | lsb;\n}\n\nfunction bitXOR(a, b)\n{\n var lsb = (a & 0x1) ^ (b & 0x1);\n var msb31 = (a >>> 1) ^ (b >>> 1);\n\n return (msb31 << 1) | lsb;\n}\n\nfunction bitAND(a, b)\n{\n var lsb = (a & 0x1) & (b & 0x1);\n var msb31 = (a >>> 1) & (b >>> 1);\n\n return (msb31 << 1) | lsb;\n}\n\nfunction addme(x, y)\n{\n var lsw = (x & 0xFFFF)+(y & 0xFFFF);\n var msw = (x >> 16)+(y >> 16)+(lsw >> 16);\n\n return (msw << 16) | (lsw & 0xFFFF);\n}\n\nfunction rhex(num)\n{\n var str = \"\";\n var j;\n\n for(j=0; j<=3; j++)\n str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F);\n\n return str;\n}\n\nfunction str2blks_MD5(str)\n{\n var nblk = ((str.length + 8) >> 6) + 1;\n var blks = new Array(nblk * 16);\n var i;\n\n for(i=0; i<nblk * 16; i++)\n blks[i] = 0;\n\n for(i=0; i<str.length; i++)\n blks[i >> 2] |= str.charCodeAt(i) << (((str.length * 8 + i) % 4) * 8);\n\n blks[i >> 2] |= 0x80 << (((str.length * 8 + i) % 4) * 8);\n\n var l = str.length * 8;\n blks[nblk * 16 - 2] = (l & 0xFF);\n blks[nblk * 16 - 2] |= ((l >>> 8) & 0xFF) << 8;\n blks[nblk * 16 - 2] |= ((l >>> 16) & 0xFF) << 16;\n blks[nblk * 16 - 2] |= ((l >>> 24) & 0xFF) << 24;\n\n return blks;\n}\n\nfunction rol(num, cnt)\n{\n return (num << cnt) | (num >>> (32 - cnt));\n}\n\nfunction cmn(q, a, b, x, s, t)\n{\n return addme(rol((addme(addme(a, q), addme(x, t))), s), b);\n}\n\nfunction ff(a, b, c, d, x, s, t)\n{\n return cmn(bitOR(bitAND(b, c), bitAND((~b), d)), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t)\n{\n return cmn(bitOR(bitAND(b, d), bitAND(c, (~d))), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t)\n{\n return cmn(bitXOR(bitXOR(b, c), d), a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t)\n{\n return cmn(bitXOR(c, bitOR(b, (~d))), a, b, x, s, t);\n}","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { Component, useCallback } from \"react\";\nimport debounce from \"debounce\";\nimport md5OMatic from \"md5-o-matic\";\nlet id = Math.ceil(Math.random() * 10);\nconst uid = () => ++id;\nfunction type(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n}\nfunction isPrimitive(value) {\n const t = type(value);\n return t !== \"Object\" && t !== \"Array\";\n}\nclass Highlighter extends Component {\n shouldComponentUpdate(p) {\n return p.highlight !== this.props.highlight;\n }\n render() {\n const str = this.props.string || \"\", highlight = this.props.highlight || \"\", highlightStart = str.search(highlight);\n if (!highlight || highlightStart === -1)\n return /* @__PURE__ */ jsx(\"span\", { children: str });\n const highlightLength = highlight.source.length, highlightString = str.slice(\n highlightStart,\n highlightStart + highlightLength\n );\n return /* @__PURE__ */ jsx(\"span\", { children: str.split(highlight).map(function(part, index) {\n return /* @__PURE__ */ jsxs(\"span\", { children: [\n index > 0 ? /* @__PURE__ */ jsx(\"span\", { className: \"json-inspector__hl\", children: highlightString }) : null,\n part\n ] }, index);\n }) });\n }\n}\nfunction isObject(value) {\n return typeof value == \"object\" && value !== null && !Array.isArray(value);\n}\nconst PATH_PREFIX = \".root.\";\nclass Leaf extends Component {\n constructor(props) {\n super(props), this.state = {\n expanded: this._isInitiallyExpanded(this.props)\n };\n }\n render() {\n const { label, data, root, id: inputId } = this.props, id2 = \"id_\" + uid(), d = {\n path: this.keypath(),\n key: label.toString(),\n value: data\n }, onLabelClick = this._onClick.bind(this, d);\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-testid\": root ? \"leaf-root\" : \"leaf-child\",\n \"aria-expanded\": this.state.expanded,\n \"data-root\": root || void 0,\n className: this.getClassName(),\n id: \"leaf-\" + this._rootPath(),\n children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n className: \"json-inspector__radio\",\n type: \"radio\",\n name: id2,\n id: inputId,\n tabIndex: -1\n }\n ),\n /* @__PURE__ */ jsxs(\n \"label\",\n {\n className: \"json-inspector__line\",\n htmlFor: id2,\n onClick: onLabelClick,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"json-inspector__flatpath\", children: d.path }),\n /* @__PURE__ */ jsxs(\"span\", { className: \"json-inspector__key\", children: [\n this.format(d.key),\n \":\",\n this.renderInteractiveLabel(d.key, !0)\n ] }),\n this.renderTitle(),\n this.renderShowOriginalButton()\n ]\n }\n ),\n this.renderChildren()\n ]\n }\n );\n }\n renderTitle() {\n const data = this.data(), t = type(data);\n if (Array.isArray(data)) {\n const length = data.length;\n return /* @__PURE__ */ jsxs(\"span\", { className: \"json-inspector__value json-inspector__value_helper\", children: [\n length > 0 ? \"[\\u2026] \" : \"[] \",\n items(length)\n ] });\n }\n if (typeof data == \"object\" && data !== null) {\n const keys = Object.keys(data).length;\n return /* @__PURE__ */ jsxs(\"span\", { className: \"json-inspector__value json-inspector__value_helper\", children: [\n keys > 0 ? \"{\\u2026} \" : \"{} \",\n properties(keys)\n ] });\n }\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n className: \"json-inspector__value json-inspector__value_\" + t.toLowerCase(),\n children: [\n this.format(String(data)),\n this.renderInteractiveLabel(data, !1)\n ]\n }\n );\n }\n renderChildren() {\n const {\n verboseShowOriginal,\n query,\n id: id2,\n isExpanded,\n interactiveLabel,\n onClick,\n getOriginal\n } = this.props, childPrefix = this._rootPath(), data = this.data();\n return this.state.expanded && (isObject(data) || Array.isArray(data)) ? Object.keys(data).map((key) => {\n const value = data[key], shouldGetOriginal = !this.state.original || (verboseShowOriginal ? query : !1);\n return /* @__PURE__ */ jsx(\n Leaf,\n {\n data: value,\n label: key,\n prefix: childPrefix,\n onClick,\n id: id2,\n query,\n getOriginal: shouldGetOriginal ? getOriginal : void 0,\n isExpanded,\n interactiveLabel,\n verboseShowOriginal\n },\n getLeafKey(key, value)\n );\n }) : null;\n }\n renderShowOriginalButton() {\n const { data, getOriginal, query } = this.props;\n return isPrimitive(data) || this.state.original || !getOriginal || !query || query.test(this.keypath()) ? null : /* @__PURE__ */ jsx(\n \"span\",\n {\n className: \"json-inspector__show-original\",\n onClick: this._onShowOriginalClick\n }\n );\n }\n renderInteractiveLabel(originalValue, isKey) {\n const InteractiveLabel = this.props.interactiveLabel;\n return typeof InteractiveLabel == \"function\" ? /* @__PURE__ */ jsx(\n InteractiveLabel,\n {\n value: String(originalValue),\n originalValue,\n isKey,\n keypath: this.keypath()\n }\n ) : null;\n }\n static getDerivedStateFromProps(props, state) {\n return props.query ? {\n expanded: !props.query.test(props.label)\n } : null;\n }\n componentDidUpdate(prevProps) {\n prevProps.query && !this.props.query && this.setState({\n expanded: this._isInitiallyExpanded(this.props)\n });\n }\n _rootPath() {\n return (this.props.prefix || \"\") + \".\" + this.props.label;\n }\n keypath() {\n return this._rootPath().slice(PATH_PREFIX.length);\n }\n data() {\n return this.state.original || this.props.data;\n }\n format(str) {\n return /* @__PURE__ */ jsx(Highlighter, { string: str, highlight: this.props.query });\n }\n getClassName() {\n let cn = \"json-inspector__leaf\";\n return this.props.root && (cn += \" json-inspector__leaf_root\"), this.state.expanded && (cn += \" json-inspector__leaf_expanded\"), isPrimitive(this.props.data) || (cn += \" json-inspector__leaf_composite\"), cn;\n }\n toggle() {\n this.setState({\n expanded: !this.state.expanded\n });\n }\n _onClick(data, e) {\n this.toggle(), this.props.onClick && this.props.onClick(data), e.stopPropagation();\n }\n _onShowOriginalClick = (e) => {\n this.setState({\n original: this.props.getOriginal?.(this.keypath())\n }), e.stopPropagation();\n };\n _isInitiallyExpanded(p) {\n if (p.root)\n return !0;\n const keypath = this.keypath();\n return p.query ? !p.query.test(keypath) && typeof p.getOriginal == \"function\" : p.isExpanded ? p.isExpanded(keypath, p.data) : !1;\n }\n}\nfunction items(count) {\n return count + (count === 1 ? \" item\" : \" items\");\n}\nfunction properties(count) {\n return count + (count === 1 ? \" property\" : \" properties\");\n}\nfunction getLeafKey(key, value) {\n if (isPrimitive(value)) {\n const hash = md5OMatic(String(value));\n return key + \":\" + hash;\n } else\n return key + \"[\" + type(value) + \"]\";\n}\nconst noop = (...args) => {\n}, SearchBar = ({ onChange = noop }) => {\n const onSearchChange = useCallback(\n (evt) => onChange(evt.target.value),\n [onChange]\n );\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n className: \"json-inspector__search\",\n type: \"search\",\n placeholder: \"Search\",\n onChange: onSearchChange\n }\n );\n};\nfunction isEmpty(object) {\n return isObject(object) ? Object.keys(object).length === 0 : Array.isArray(object) ? object.length === 0 : object === null || typeof object != \"string\" || typeof object != \"number\" ? !0 : Object.keys(object).length === 0;\n}\nconst getFilterer = memoize(\n (data, opts) => {\n const options = opts || { cacheResults: !0 }, cache = {};\n return function(query) {\n if (!options.cacheResults)\n return find(data, query, options);\n let subquery;\n if (!cache[query]) {\n for (var i = query.length - 1; i > 0; i -= 1)\n if (subquery = query.slice(0, i), cache[subquery]) {\n cache[query] = find(cache[subquery], query, options);\n break;\n }\n }\n return cache[query] || (cache[query] = find(data, query, options)), cache[query];\n };\n }\n);\nfunction find(data, query, options) {\n return !isObject(data) && !Array.isArray(data) ? {} : Object.keys(data).reduce(function(acc, key) {\n const value = data[key];\n let matches;\n return value ? typeof value != \"object\" ? ((contains(query, key, options) || contains(query, value, options)) && (acc[key] = value), acc) : contains(query, key, options) ? (acc[key] = value, acc) : (matches = find(value, query, options), isEmpty(matches) || Object.assign(acc, pair(key, matches)), acc) : acc;\n }, {});\n}\nfunction contains(query, value, options) {\n if (!value)\n return !1;\n var haystack = String(value), needle = query;\n return options?.ignoreCase && (haystack = haystack.toLowerCase(), needle = needle.toLowerCase()), haystack.indexOf(needle) !== -1;\n}\nfunction pair(key, value) {\n return { [key]: value };\n}\nfunction memoize(fn) {\n let lastData, lastOptions, lastResult;\n return (data, options) => ((!lastResult || data !== lastData || options !== lastOptions) && (lastData = data, lastOptions = options, lastResult = fn(data, options)), lastResult);\n}\nconst PATH_DELIMITER = \".\";\nfunction integer(str) {\n return parseInt(str, 10);\n}\nfunction lens(data, path) {\n var p = path.split(PATH_DELIMITER), segment = p.shift();\n if (!segment)\n return data;\n if (Array.isArray(data) && data[integer(segment)])\n return lens(data[integer(segment)], p.join(PATH_DELIMITER));\n if (isObject(data) && segment in data)\n return lens(data[segment], p.join(PATH_DELIMITER));\n}\nconst defaultValidateQuery = (query) => query.length >= 2, defaultFilterOptions = { cacheResults: !0, ignoreCase: !1 };\nclass JsonInspector extends Component {\n static defaultProps = {\n data: null,\n search: SearchBar,\n searchOptions: {\n debounceTime: 0\n },\n className: \"\",\n id: \"json-\" + Date.now(),\n onClick: noop,\n filterOptions: {\n cacheResults: !0,\n ignoreCase: !1\n },\n validateQuery: function(query) {\n return query.length >= 2;\n },\n /**\n * Decide whether the leaf node at given `keypath` should be expanded initially.\n *\n * @param keypath - Path to the node\n * @param value - Value of the node\n * @returns True if node should be expanded, false otherwise\n */\n isExpanded: function(keypath, value) {\n return !1;\n },\n verboseShowOriginal: !1\n };\n constructor(props) {\n super(props), this.state = {\n query: \"\",\n filterer: getFilterer(props.data, props.filterOptions)\n };\n }\n render() {\n const {\n data: rawData,\n className,\n onClick,\n id: id2,\n isExpanded,\n interactiveLabel,\n verboseShowOriginal,\n filterOptions = defaultFilterOptions,\n validateQuery = defaultValidateQuery\n } = this.props, isQueryValid = this.state.query !== \"\" && validateQuery(this.state.query), data = isQueryValid ? this.state.filterer(this.state.query) : rawData, isNotFound = isQueryValid && isEmpty(data);\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-testid\": \"json-inspector\",\n className: \"json-inspector \" + className,\n children: [\n this.renderToolbar(),\n isNotFound ? /* @__PURE__ */ jsx(\"div\", { className: \"json-inspector__not-found\", children: \"Nothing found\" }) : /* @__PURE__ */ jsx(\n Leaf,\n {\n data,\n onClick,\n id: id2,\n getOriginal: this.getOriginal,\n query: isQueryValid ? new RegExp(\n this.state.query,\n filterOptions.ignoreCase ? \"i\" : \"\"\n ) : null,\n label: \"root\",\n root: !0,\n isExpanded,\n interactiveLabel,\n verboseShowOriginal\n }\n )\n ]\n }\n );\n }\n renderToolbar() {\n const Search = this.props.search;\n return Search ? /* @__PURE__ */ jsx(\"div\", { className: \"json-inspector__toolbar\", children: /* @__PURE__ */ jsx(\n Search,\n {\n onChange: debounce(\n this.search,\n this.props.searchOptions?.debounceTime\n ),\n data: this.props.data,\n query: this.state.query\n }\n ) }) : null;\n }\n search = (query) => {\n this.setState({ query });\n };\n static getDerivedStateFromProps(nextProps, prevState) {\n const filterer = getFilterer(nextProps.data, nextProps.filterOptions);\n return filterer === prevState.filterer ? null : { ...prevState, filterer };\n }\n shouldComponentUpdate(nextProps, prevState) {\n return prevState.query !== this.state.query || nextProps.data !== this.props.data || nextProps.onClick !== this.props.onClick;\n }\n createFilterer = (data, options) => {\n this.setState({\n filterer: getFilterer(data, options)\n });\n };\n getOriginal = (path) => lens(this.props.data, path);\n}\nexport {\n JsonInspector\n};\n//# sourceMappingURL=index.js.map\n","export const VIEW_MODE_PARSED = {id: 'parsed', title: 'document-inspector.view-mode.parsed'}\nexport const VIEW_MODE_RAW = {id: 'raw', title: 'document-inspector.view-mode.raw-json'}\nexport const VIEW_MODES = [VIEW_MODE_PARSED, VIEW_MODE_RAW]\n","import {type SanityDocumentLike} from '@sanity/types'\nimport LRU from 'quick-lru'\nimport {isRecord, isString} from 'sanity'\n\nconst lru = new LRU({maxSize: 1000})\n\nexport function isExpanded(keyPath: any, value: any): any {\n const cached = lru.get(keyPath)\n\n if (cached === undefined) {\n lru.set(keyPath, Array.isArray(value) || isRecord(value))\n return isExpanded(keyPath, value)\n }\n\n return cached\n}\n\nexport function toggleExpanded(event: any): void {\n const {path} = event\n const current = lru.get(path)\n\n if (current === undefined) {\n // something is wrong\n return\n }\n\n lru.set(path, !current)\n}\n\nexport function selectElement(element: HTMLElement): void {\n const sel = window.getSelection()\n\n if (sel) {\n const range = document.createRange()\n\n sel.removeAllRanges()\n range.selectNodeContents(element)\n sel.addRange(range)\n }\n}\n\nexport function select(event: any): void {\n selectElement(event.currentTarget)\n}\n\nexport function maybeSelectAll(event: any): void {\n const selectAll = event.keyCode === 65 && (event.metaKey || event.ctrlKey)\n\n if (!selectAll) {\n return\n }\n\n event.preventDefault()\n\n selectElement(event.currentTarget)\n}\n\nexport function isDocumentLike(value: unknown): value is SanityDocumentLike {\n return isRecord(value) && isString(value._id) && isString(value._type)\n}\n","import {rem, type Theme} from '@sanity/ui'\nimport {css, styled} from 'styled-components'\n\nexport const JSONInspectorWrapper = styled.div(({theme}: {theme: Theme}) => {\n const {color, fonts, space} = theme.sanity\n\n return css`\n & .json-inspector,\n & .json-inspector .json-inspector__selection {\n font-family: ${fonts.code.family};\n font-size: ${fonts.code.sizes[1].fontSize}px;\n line-height: ${fonts.code.sizes[1].lineHeight}px;\n color: var(--card-code-fg-color);\n }\n\n & .json-inspector .json-inspector__leaf {\n padding-left: ${rem(space[4])};\n }\n\n & .json-inspector .json-inspector__leaf.json-inspector__leaf_root {\n padding-top: ${rem(space[3])};\n padding-left: 0;\n }\n\n & .json-inspector > .json-inspector__leaf_root > .json-inspector__line > .json-inspector__key {\n display: none;\n }\n\n & .json-inspector .json-inspector__line {\n display: block;\n position: relative;\n cursor: default;\n }\n\n & .json-inspector .json-inspector__line::after {\n content: '';\n position: absolute;\n top: 0;\n left: -200px;\n right: -50px;\n bottom: 0;\n z-index: -1;\n pointer-events: none;\n }\n\n & .json-inspector .json-inspector__line:hover::after {\n background: var(--card-code-bg-color);\n }\n\n & .json-inspector .json-inspector__leaf_composite > .json-inspector__line {\n cursor: pointer;\n }\n\n & .json-inspector .json-inspector__leaf_composite > .json-inspector__line::before {\n content: '▸ ';\n margin-left: calc(0 - ${rem(space[4])} + 3px);\n font-size: ${fonts.code.sizes[1].fontSize}px;\n line-height: ${fonts.code.sizes[1].lineHeight}px;\n }\n\n &\n .json-inspector\n .json-inspector__leaf_expanded.json-inspector__leaf_composite\n > .json-inspector__line::before {\n content: '▾ ';\n font-size: ${fonts.code.sizes[1].fontSize}px;\n line-height: ${fonts.code.sizes[1].lineHeight}px;\n }\n\n & .json-inspector .json-inspector__radio,\n & .json-inspector .json-inspector__flatpath {\n display: none;\n }\n\n & .json-inspector .json-inspector__value {\n margin-left: ${rem(space[4] / 2)};\n }\n\n &\n .json-inspector\n > .json-inspector__leaf_root\n > .json-inspector__line\n > .json-inspector__key\n + .json-inspector__value {\n margin: 0;\n }\n\n & .json-inspector .json-inspector__key {\n color: ${color.syntax.property};\n }\n\n & .json-inspector .json-inspector__value_helper,\n & .json-inspector .json-inspector__value_null {\n color: ${color.syntax.constant};\n }\n\n & .json-inspector .json-inspector__not-found {\n padding-top: ${rem(space[3])};\n }\n\n & .json-inspector .json-inspector__value_string {\n color: ${color.syntax.string};\n }\n\n & .json-inspector .json-inspector__value_boolean {\n color: ${color.syntax.boolean};\n }\n\n & .json-inspector .json-inspector__value_number {\n color: ${color.syntax.number};\n }\n\n & .json-inspector .json-inspector__show-original {\n display: inline-block;\n padding: 0 6px;\n cursor: pointer;\n }\n\n & .json-inspector .json-inspector__show-original:hover {\n color: inherit;\n }\n\n & .json-inspector .json-inspector__show-original::before {\n content: '↔';\n }\n\n & .json-inspector .json-inspector__show-original:hover::after {\n content: ' expand';\n }\n `\n})\n","import {SearchIcon} from '@sanity/icons'\nimport {TextInput} from '@sanity/ui'\nimport {type ChangeEvent, useCallback} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../i18n'\n\nexport function Search(props: {onChange: (q: string) => void; query: string}) {\n const {onChange, query} = props\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => onChange(event.target.value),\n [onChange],\n )\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <TextInput\n icon={SearchIcon}\n onChange={handleChange}\n placeholder={t('document-inspector.search.placeholder')}\n radius={2}\n value={query || ''}\n />\n )\n}\n","import {JsonInspector} from '@rexxars/react-json-inspector'\nimport {type SanityDocument} from '@sanity/types'\nimport {Card, Code, Flex, TabList, TabPanel} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {Translate, useTranslation} from 'sanity'\n\nimport {Dialog, Tab} from '../../../../ui-components'\nimport {DocTitle} from '../../../components'\nimport {structureLocaleNamespace} from '../../../i18n'\nimport {useStructureToolSetting} from '../../../useStructureToolSetting'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {VIEW_MODE_PARSED, VIEW_MODE_RAW, VIEW_MODES} from './constants'\nimport {isDocumentLike, isExpanded, maybeSelectAll, select, toggleExpanded} from './helpers'\nimport {JSONInspectorWrapper} from './InspectDialog.styles'\nimport {Search} from './Search'\n\ninterface InspectDialogProps {\n value: Partial<SanityDocument> | null\n}\n\nexport function InspectDialog(props: InspectDialogProps) {\n const {value} = props\n const {onInspectClose, paneKey} = useDocumentPane()\n const dialogIdPrefix = `${paneKey}_inspect_`\n\n /* this creates a view mode (the default that it opens with is the parsed tab) that is saved based on the paneKey\n where the inspect dialog lives.\n This also means that when a page is loaded, the state of the tabs remains and doesn't revert to the pane tab */\n const [viewModeId, onViewModeChange] = useStructureToolSetting(\n 'inspect-view-mode',\n null,\n 'parsed',\n )\n\n /* based on the view mode it shows the right tab content */\n const viewMode = VIEW_MODES.find((mode) => mode.id === viewModeId)\n\n const setParsedViewMode = useCallback(() => {\n onViewModeChange(VIEW_MODE_PARSED.id)\n }, [onViewModeChange])\n\n const setRawViewMode = useCallback(() => {\n onViewModeChange(VIEW_MODE_RAW.id)\n }, [onViewModeChange])\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <Dialog\n bodyHeight=\"fill\"\n id={`${dialogIdPrefix}dialog`}\n header={\n isDocumentLike(value) ? (\n <Translate\n t={t}\n i18nKey=\"document-inspector.dialog.title\"\n components={{\n DocumentTitle: () => (\n <em>\n <DocTitle document={value} />\n </em>\n ),\n }}\n />\n ) : (\n <em>{t('document-inspector.dialog.title-no-value')}</em>\n )\n }\n onClose={onInspectClose}\n onClickOutside={onInspectClose}\n padding={false}\n width={2}\n >\n <Flex direction=\"column\" height=\"fill\">\n <Card\n padding={3}\n paddingTop={0}\n shadow={1}\n style={{position: 'sticky', bottom: 0, zIndex: 3}}\n >\n <TabList space={1}>\n <Tab\n aria-controls={`${dialogIdPrefix}tabpanel`}\n id={`${dialogIdPrefix}tab-${VIEW_MODE_PARSED.id}`}\n label={t(VIEW_MODE_PARSED.title)}\n onClick={setParsedViewMode}\n selected={viewMode === VIEW_MODE_PARSED}\n />\n <Tab\n aria-controls={`${dialogIdPrefix}tabpanel`}\n id={`${dialogIdPrefix}tab-${VIEW_MODE_RAW.id}`}\n label={t(VIEW_MODE_RAW.title)}\n onClick={setRawViewMode}\n selected={viewMode === VIEW_MODE_RAW}\n />\n </TabList>\n </Card>\n\n <TabPanel\n aria-labelledby={`${dialogIdPrefix}tab-${viewModeId}`}\n flex={1}\n id={`${dialogIdPrefix}tabpanel`}\n overflow=\"auto\"\n padding={4}\n style={{outline: 'none'}}\n >\n {viewMode === VIEW_MODE_PARSED && (\n <JSONInspectorWrapper>\n <JsonInspector\n data={value}\n isExpanded={isExpanded}\n onClick={toggleExpanded}\n search={Search}\n filterOptions={{ignoreCase: true}}\n />\n </JSONInspectorWrapper>\n )}\n\n {viewMode === VIEW_MODE_RAW && (\n <Code\n language=\"json\"\n tabIndex={0}\n onKeyDown={maybeSelectAll}\n onDoubleClick={select}\n onFocus={select}\n size={1}\n >\n {JSON.stringify(value, null, 2)}\n </Code>\n )}\n </TabPanel>\n </Flex>\n </Dialog>\n )\n}\n","import {Box, type ButtonMode, type ButtonTone, Card, type CardTone, Flex, Text} from '@sanity/ui'\nimport {type ComponentType, type ElementType, type ReactNode} from 'react'\n\nimport {Button} from '../../../../../ui-components'\n\ninterface BannerProps {\n action?: {\n as?: ElementType | keyof React.JSX.IntrinsicElements\n icon?: ComponentType\n onClick?: () => void\n text: string\n tone?: ButtonTone\n disabled?: boolean\n mode?: ButtonMode\n }\n content: ReactNode\n icon?: ComponentType\n tone?: CardTone\n paddingY?: number\n}\n\nexport function Banner(props: BannerProps) {\n const {action, content, icon: Icon, tone = 'transparent', paddingY = 2, ...rest} = props\n\n return (\n <Box padding={1}>\n <Card radius={3} paddingX={2} paddingY={paddingY} tone={tone} {...rest}>\n <Flex align=\"center\" gap={3} paddingX={2}>\n {Icon && (\n <Text size={0}>\n <Icon />\n </Text>\n )}\n\n <Flex align=\"center\" flex={1} gap={2} paddingY={2}>\n {content}\n </Flex>\n\n {action && (\n <Button {...action} mode={action.mode || 'ghost'} tone={action.tone || 'default'} />\n )}\n </Flex>\n </Card>\n </Box>\n )\n}\n","import {DocumentRemoveIcon, ReadOnlyIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n isDraftPerspective,\n isPublishedPerspective,\n type ReleaseDocument,\n Translate,\n useDocumentOperation,\n usePerspective,\n useTranslation,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nexport function DeletedDocumentBanners() {\n const {isDeleted, isDeleting, ready} = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n if (!ready) return null\n if (\n !isPublishedPerspective(selectedPerspective) &&\n !isDraftPerspective(selectedPerspective) &&\n selectedPerspective.state === 'archived'\n ) {\n return <ArchivedReleaseBanner release={selectedPerspective as ReleaseDocument} />\n }\n if (isDeleted && !isDeleting) return <DeletedDocumentBanner />\n}\n\nfunction DeletedDocumentBanner() {\n const {documentId, documentType} = useDocumentPane()\n const {restore} = useDocumentOperation(documentId, documentType)\n const {navigateIntent} = useRouter()\n\n const handleRestore = useCallback(() => {\n restore.execute('lastRevision')\n navigateIntent('edit', {id: documentId, type: documentType})\n }, [documentId, documentType, navigateIntent, restore])\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <Banner\n action={{\n onClick: handleRestore,\n text: t('banners.deleted-document-banner.restore-button.text'),\n }}\n content={\n <Text size={1} weight=\"medium\">\n {t('banners.deleted-document-banner.text')}\n </Text>\n }\n data-testid=\"deleted-document-banner\"\n icon={ReadOnlyIcon}\n />\n )\n}\n\nconst ArchivedReleaseBanner = ({release}: {release: ReleaseDocument}) => {\n const {t} = useTranslation()\n\n return (\n <Banner\n tone=\"caution\"\n content={\n <Text size={1} weight=\"medium\">\n <Translate\n t={t}\n i18nKey=\"banners.deleted-release-banner.text\"\n values={{title: release.metadata?.title || t('release.placeholder-untitled-release')}}\n />\n </Text>\n }\n data-testid=\"deleted-release-banner\"\n icon={DocumentRemoveIcon}\n />\n )\n}\n","import {ErrorOutlineIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {isDeprecatedSchemaType, Translate, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nexport function DeprecatedDocumentTypeBanner() {\n const {schemaType} = useDocumentPane()\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (!isDeprecatedSchemaType(schemaType)) {\n return null\n }\n\n return (\n <Banner\n content={\n <Text size={1} weight=\"medium\">\n <Translate t={t} i18nKey=\"banners.deprecated-document-type-banner.text\" />{' '}\n {schemaType.deprecated.reason}\n </Text>\n }\n data-testid=\"deprecated-document-type-banner\"\n icon={ErrorOutlineIcon}\n />\n )\n}\n","import {defineEvent} from '@sanity/telemetry'\n\n/** @internal */\nexport const AskToEditDialogOpened = defineEvent({\n name: 'Ask To Edit Dialog Opened',\n version: 1,\n description: 'User clicked the \"Ask to edit\" button in the document permissions banner',\n})\n\n/** @internal */\nexport const AskToEditRequestSent = defineEvent({\n name: 'Ask To Edit Request Sent',\n version: 1,\n description: 'User sent a role change request from the dialog',\n})\n","import {useTelemetry} from '@sanity/telemetry/react'\nimport {Box, Card, DialogProvider, Flex, Stack, Text, TextInput, useToast} from '@sanity/ui'\nimport {useId, useMemo, useState} from 'react'\nimport {useObservable} from 'react-rx'\nimport {catchError, map, type Observable, of, startWith} from 'rxjs'\nimport {type Role, useClient, useProjectId, useTranslation, useZIndex} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Dialog} from '../../../ui-components'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {AskToEditRequestSent} from './__telemetry__/RequestPermissionDialog.telemetry'\nimport {type AccessRequest} from './useRoleRequestsStatus'\n\nconst MAX_NOTE_LENGTH = 150\n\n/** @internal */\nexport const DialogBody = styled(Box)`\n box-sizing: border-box;\n`\n\n/** @internal */\nexport const LoadingContainer = styled(Flex).attrs({\n align: 'center',\n direction: 'column',\n justify: 'center',\n})`\n height: 110px;\n`\n\n/** @internal */\nexport interface RequestPermissionDialogProps {\n onClose?: () => void\n onRequestSubmitted?: () => void\n}\n\n/**\n * A dialog that enables the user to request permission to change their\n * member role from \"Viewer\" to \"Editor\" or \"Admin\" depending on the\n * project's available roles.\n *\n * @internal\n */\nexport function RequestPermissionDialog({\n onClose,\n onRequestSubmitted,\n}: RequestPermissionDialogProps) {\n const {t} = useTranslation(structureLocaleNamespace)\n const telemtry = useTelemetry()\n const dialogId = `request-permissions-${useId()}`\n const projectId = useProjectId()\n const client = useClient({apiVersion: '2024-09-26'})\n const toast = useToast()\n const zOffset = useZIndex()\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const [note, setNote] = useState('')\n\n const [msgError, setMsgError] = useState<string | undefined>()\n const [hasTooManyRequests, setHasTooManyRequests] = useState<boolean>(false)\n const [hasBeenDenied, setHasBeenDenied] = useState<boolean>(false)\n\n const requestedRole$: Observable<'administrator' | 'editor'> = useMemo(() => {\n const adminRole = 'administrator' as const\n if (!projectId || !client) return of(adminRole)\n return client.observable\n .request<(Role & {appliesToUsers?: boolean})[]>({url: `/projects/${projectId}/roles`})\n .pipe(\n map((roles) => {\n const hasEditor = roles\n .filter((role) => role?.appliesToUsers)\n .find((role) => role.name === 'editor')\n return hasEditor ? 'editor' : adminRole\n }),\n startWith(adminRole),\n catchError(() => of(adminRole)),\n )\n }, [projectId, client])\n\n const requestedRole = useObservable(requestedRole$)\n\n const onSubmit = () => {\n setIsSubmitting(true)\n client\n .request<AccessRequest | null>({\n url: `/access/project/${projectId}/requests`,\n method: 'post',\n body: {note, requestUrl: window?.location.href, requestedRole, type: 'role'},\n })\n .then((request) => {\n if (request) {\n if (onRequestSubmitted) onRequestSubmitted()\n telemtry.log(AskToEditRequestSent)\n toast.push({title: 'Edit access requested'})\n }\n })\n .catch((err) => {\n const statusCode = err?.response?.statusCode\n const errMessage = err?.response?.body?.message\n if (statusCode === 429) {\n // User is over their cross-project request limit\n setHasTooManyRequests(true)\n setMsgError(errMessage)\n }\n if (statusCode === 409) {\n // If we get a 409, user has been denied on this project or has a valid pending request\n // valid pending request should be handled by GET request above\n setHasBeenDenied(true)\n setMsgError(errMessage)\n } else {\n toast.push({\n title: 'There was a problem submitting your request.',\n status: 'error',\n })\n }\n })\n .finally(() => {\n setIsSubmitting(false)\n })\n }\n\n return (\n <DialogProvider position={'fixed'} zOffset={zOffset.fullscreen}>\n <Dialog\n width={1}\n id={dialogId}\n header={t('request-permission-dialog.header.text')}\n footer={{\n cancelButton: {\n onClick: onClose,\n text: t('confirm-dialog.cancel-button.fallback-text'),\n },\n confirmButton: {\n onClick: onSubmit,\n loading: isSubmitting,\n disabled: hasTooManyRequests || hasBeenDenied,\n text: t('request-permission-dialog.confirm-button.text'),\n tone: 'primary',\n type: 'submit',\n },\n }}\n onClose={onClose}\n onClickOutside={onClose}\n >\n <DialogBody>\n <Stack space={4}>\n <Text>{t('request-permission-dialog.description.text')}</Text>\n {hasTooManyRequests || hasBeenDenied ? (\n <Card tone={'caution'} padding={3} radius={2} shadow={1}>\n <Text size={1}>\n {hasTooManyRequests && (\n <>{msgError ?? t('request-permission-dialog.warning.limit-reached.text')}</>\n )}\n {hasBeenDenied && (\n <>{msgError ?? t('request-permission-dialog.warning.denied.text')}</>\n )}\n </Text>\n </Card>\n ) : (\n <Stack space={3} paddingBottom={0}>\n <TextInput\n placeholder={t('request-permission-dialog.note-input.placeholder.text')}\n disabled={isSubmitting}\n onKeyDown={(e) => {\n if (e.key === 'Enter') onSubmit()\n }}\n maxLength={MAX_NOTE_LENGTH}\n value={note}\n onChange={(e) => {\n setNote(e.currentTarget.value)\n }}\n />\n\n <Text align=\"right\" muted size={1}>{`${note.length}/${MAX_NOTE_LENGTH}`}</Text>\n </Stack>\n )}\n </Stack>\n </DialogBody>\n </Dialog>\n </DialogProvider>\n )\n}\n","import {addWeeks, isAfter, isBefore} from 'date-fns'\nimport {useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {of} from 'rxjs'\nimport {catchError, map, startWith} from 'rxjs/operators'\nimport {type SanityClient, useClient, useProjectId} from 'sanity'\n\n/** @internal */\nexport interface AccessRequest {\n id: string\n status: 'pending' | 'accepted' | 'declined'\n resourceId: string\n resourceType: 'project'\n createdAt: string\n updatedAt: string\n updatedByUserId: string\n requestedByUserId: string\n requestedRole: string\n type: 'access' | 'role'\n note: string\n}\n\nconst LOADING_STATE = {loading: true, error: false, status: undefined}\nconst EMPTY_STATE = {loading: false, error: false, status: 'none'}\nconst DECLINED_STATE = {loading: false, error: false, status: 'declined'}\nconst PENDING_STATE = {loading: false, error: false, status: 'pending'}\nconst EXPIRED_STATE = {loading: false, error: false, status: 'expired'}\n\n/** @internal */\nexport const useRoleRequestsStatus = () => {\n const client = useClient({apiVersion: '2024-07-01'})\n const projectId = useProjectId()\n\n const checkRoleRequests$ = useMemo(() => {\n if (!client || !projectId) {\n return of(EMPTY_STATE)\n }\n\n return checkRoleRequests(client, projectId)\n }, [client, projectId])\n\n const {loading, error, status} = useObservable(checkRoleRequests$, LOADING_STATE)\n return {data: status, loading, error}\n}\n\nfunction checkRoleRequests(client: SanityClient, projectId: string) {\n return client.observable\n .request<AccessRequest[] | null>({\n url: '/access/requests/me',\n tag: 'use-role-requests-status',\n })\n .pipe(\n map((requests) => {\n if (!requests || requests.length === 0) {\n return EMPTY_STATE\n }\n\n // Filter requests for the specific project and where type is 'role'\n const projectRequests = requests.filter(\n (request) => request.resourceId === projectId && request.type === 'role',\n )\n\n const declinedRequest = projectRequests.find((request) => request.status === 'declined')\n if (\n declinedRequest &&\n isAfter(addWeeks(new Date(declinedRequest.createdAt), 2), new Date())\n ) {\n return DECLINED_STATE\n }\n\n const pendingRequest = projectRequests.find(\n (request) =>\n request.status === 'pending' &&\n isAfter(addWeeks(new Date(request.createdAt), 2), new Date()),\n )\n if (pendingRequest) {\n return PENDING_STATE\n }\n\n const oldPendingRequest = projectRequests.find(\n (request) =>\n request.status === 'pending' &&\n isBefore(addWeeks(new Date(request.createdAt), 2), new Date()),\n )\n\n return oldPendingRequest ? EXPIRED_STATE : EMPTY_STATE\n }),\n catchError((err) => {\n console.error('Failed to fetch access requests', err)\n return of({loading: false, error: true, status: undefined})\n }),\n startWith(LOADING_STATE), // Start with loading state\n )\n}\n","import {ReadOnlyIcon} from '@sanity/icons'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Text} from '@sanity/ui'\nimport {useMemo, useState} from 'react'\nimport {Translate, useCurrentUser, useListFormat, useTranslation} from 'sanity'\n\nimport {\n RequestPermissionDialog,\n useRoleRequestsStatus,\n} from '../../../../components/requestPermissionDialog'\nimport {AskToEditDialogOpened} from '../../../../components/requestPermissionDialog/__telemetry__/RequestPermissionDialog.telemetry'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\ninterface InsufficientPermissionBannerProps {\n requiredPermission: 'update' | 'create'\n}\n\nexport function InsufficientPermissionBanner({\n requiredPermission,\n}: InsufficientPermissionBannerProps) {\n const currentUser = useCurrentUser()\n\n const {\n data: roleRequestStatus,\n loading: requestStatusLoading,\n error: requestStatusError,\n } = useRoleRequestsStatus()\n const [requestSent, setRequestSent] = useState(false)\n const requestPending = useMemo(\n () => roleRequestStatus === 'pending' || roleRequestStatus === 'declined' || requestSent,\n [roleRequestStatus, requestSent],\n )\n const currentUserRoles = currentUser?.roles || []\n const isOnlyViewer = currentUserRoles.length === 1 && currentUserRoles[0].name === 'viewer'\n const [showRequestPermissionDialog, setShowRequestPermissionDialog] = useState(false)\n\n const listFormat = useListFormat({style: 'short'})\n const {t} = useTranslation(structureLocaleNamespace)\n const telemetry = useTelemetry()\n\n const roleTitles = currentUserRoles.map((role) => role.title)\n const roles = listFormat\n .formatToParts(roleTitles)\n .map((part) =>\n part.type === 'element' ? <code key={part.value}>{part.value}</code> : part.value,\n )\n\n return (\n <>\n <Banner\n content={\n <Text size={1} weight=\"medium\">\n <Translate\n t={t}\n i18nKey=\"banners.permission-check-banner.missing-permission\"\n components={{Roles: () => <>{roles}</>}}\n values={{count: roles.length, roles: roleTitles}}\n context={requiredPermission}\n />\n </Text>\n }\n action={\n isOnlyViewer && roleRequestStatus && !requestStatusError && !requestStatusLoading\n ? {\n onClick: requestPending\n ? undefined\n : () => {\n setShowRequestPermissionDialog(true)\n telemetry.log(AskToEditDialogOpened)\n },\n text: requestPending\n ? t('banners.permission-check-banner.request-permission-button.sent')\n : t('banners.permission-check-banner.request-permission-button.text'),\n tone: requestPending ? 'default' : 'primary',\n disabled: requestPending,\n mode: requestPending ? 'bleed' : undefined,\n }\n : undefined\n }\n data-testid=\"permission-check-banner\"\n icon={ReadOnlyIcon}\n />\n {showRequestPermissionDialog && (\n <RequestPermissionDialog\n onClose={() => setShowRequestPermissionDialog(false)}\n onRequestSubmitted={() => {\n setRequestSent(true)\n setShowRequestPermissionDialog(false)\n }}\n />\n )}\n </>\n )\n}\n","import {CloseIcon, SyncIcon, WarningOutlineIcon} from '@sanity/icons'\nimport {type KeyedSegment, type Reference} from '@sanity/types'\nimport {Text} from '@sanity/ui'\nimport {fromString as pathFromString, get as pathGet} from '@sanity/util/paths'\nimport {memo, useCallback, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {concat, type Observable, of} from 'rxjs'\nimport {debounceTime, map} from 'rxjs/operators'\nimport {\n type DocumentAvailability,\n getPublishedId,\n useDocumentPreviewStore,\n usePerspective,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../../../components'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {type RouterPaneGroup} from '../../../../types'\nimport {Banner} from './Banner'\n\ninterface ParentReferenceInfo {\n loading: boolean\n result?: {\n availability: {\n draft: DocumentAvailability\n published: DocumentAvailability\n version?: DocumentAvailability\n }\n refValue: string | undefined\n }\n}\n\nexport const ReferenceChangedBanner = memo(() => {\n const documentPreviewStore = useDocumentPreviewStore()\n const {selectedReleaseId} = usePerspective()\n const {params, groupIndex, routerPanesState, replaceCurrent, BackLink} = usePaneRouter()\n const routerReferenceId = routerPanesState[groupIndex]?.[0].id\n const parentGroup = routerPanesState[groupIndex - 1] as RouterPaneGroup | undefined\n const parentSibling = parentGroup?.[0]\n const parentId = parentSibling?.id\n const hasHistoryOpen = Boolean(parentSibling?.params?.rev)\n const parentRefPath = useMemo(() => {\n return (params?.parentRefPath && pathFromString(params.parentRefPath)) || null\n }, [params?.parentRefPath])\n const {t} = useTranslation(structureLocaleNamespace)\n\n /**\n * Loads information regarding the reference field of the parent pane. This\n * is only applicable to child references (aka references-in-place).\n *\n * It utilizes the pane ID of the parent pane (which is a document ID) along\n * with the `parentRefPath` router param on the current pane to find the\n * current value of the reference field on the parent document.\n *\n * This is used to compare with the current pane's document ID. If the IDs\n * don't match then this banner should reveal itself\n */\n const referenceInfoObservable = useMemo((): Observable<ParentReferenceInfo> => {\n const parentRefPathSegment = parentRefPath?.[0] as string | undefined\n\n // short-circuit: this document pane is not a child reference pane\n if (!parentId || !parentRefPathSegment || !parentRefPath) {\n return of({loading: false})\n }\n\n const publishedId = getPublishedId(parentId)\n const path = pathFromString(parentRefPathSegment)\n\n // note: observePaths doesn't support keyed path segments, so we need to select the nearest parent\n const keyedSegmentIndex = path.findIndex(\n (p): p is KeyedSegment => typeof p == 'object' && '_key' in p,\n )\n\n return concat(\n // emit a loading state instantly\n of({loading: true}),\n // then emit the values from watching the published ID's path\n documentPreviewStore\n .unstable_observePathsDocumentPair(\n publishedId,\n (keyedSegmentIndex === -1 ? path : path.slice(0, keyedSegmentIndex)) as string[][],\n {\n version: selectedReleaseId,\n },\n )\n .pipe(\n // this debounce time is needed to prevent flashing banners due to\n // the router state updating faster than the content-lake state. we\n // debounce to wait for more emissions because the value pulled\n // initially could be stale.\n debounceTime(750),\n map(\n ({draft, published, version}): ParentReferenceInfo => ({\n loading: false,\n result: {\n availability: {\n draft: draft.availability,\n published: published.availability,\n ...(version?.availability\n ? {\n version: version.availability,\n }\n : {}),\n },\n refValue: pathGet<Reference>(\n version?.snapshot || draft.snapshot || published.snapshot,\n parentRefPath,\n )?._ref,\n },\n }),\n ),\n ),\n )\n }, [selectedReleaseId, documentPreviewStore, parentId, parentRefPath])\n const referenceInfo = useObservable(referenceInfoObservable, {loading: true})\n\n const handleReloadReference = useCallback(() => {\n if (referenceInfo.loading) return\n\n if (referenceInfo.result?.refValue) {\n replaceCurrent({\n id: referenceInfo.result.refValue,\n params: params as Record<string, string>,\n })\n }\n }, [referenceInfo.loading, referenceInfo.result, replaceCurrent, params])\n\n const shouldHide =\n // if `parentId` or `parentRefPath` is not present then this banner is n/a\n !parentId ||\n !parentRefPath ||\n // if viewing this pane via history, then hide\n hasHistoryOpen ||\n // if loading, hide\n referenceInfo.loading ||\n // if the parent document is not available (e.g. due to permission denied or\n // not found) we don't want to display a warning here, but instead rely on the\n // parent view to display the appropriate message\n (!referenceInfo.result?.availability.draft.available &&\n !referenceInfo.result?.availability.published.available) ||\n // if the references are the same, then hide the reference changed banner\n referenceInfo.result?.refValue === routerReferenceId\n\n if (shouldHide) return null\n\n return (\n <Banner\n action={\n referenceInfo.result?.refValue\n ? {\n onClick: handleReloadReference,\n icon: SyncIcon,\n text: t('banners.reference-changed-banner.reason-changed.reload-button.text'),\n }\n : {\n as: BackLink,\n icon: CloseIcon,\n text: t('banners.reference-changed-banner.reason-removed.close-button.text'),\n }\n }\n data-testid=\"reference-changed-banner\"\n content={\n <Text size={1} weight=\"medium\">\n {referenceInfo.result?.refValue\n ? t('banners.reference-changed-banner.reason-changed.text')\n : t('banners.reference-changed-banner.reason-removed.text')}\n </Text>\n }\n icon={WarningOutlineIcon}\n tone=\"caution\"\n />\n )\n})\n\nReferenceChangedBanner.displayName = 'Memo(ReferenceChangedBanner)'\n","import {Text} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getVersionInlineBadge,\n Translate,\n useArchivedReleases,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\nexport function ArchivedReleaseDocumentBanner(): React.JSX.Element {\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n const {data: archivedReleases} = useArchivedReleases()\n\n const {params, setParams} = usePaneRouter()\n const handleGoBack = () => {\n setParams({\n ...params,\n rev: params?.historyEvent || undefined,\n since: undefined,\n historyVersion: undefined,\n })\n }\n\n const release = useMemo(() => {\n return archivedReleases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === params?.historyVersion,\n )\n }, [archivedReleases, params?.historyVersion])\n\n const description =\n release?.state === 'published'\n ? 'banners.published-release.description'\n : 'banners.archived-release.description'\n\n const title = release?.metadata.title || tCore('release.placeholder-untitled-release')\n\n return (\n <Banner\n tone=\"caution\"\n content={\n <Text size={1}>\n <Translate\n t={t}\n i18nKey={description}\n values={{\n title,\n }}\n components={{\n VersionBadge: getVersionInlineBadge(release),\n }}\n />\n </Text>\n }\n action={\n params?.archivedRelease\n ? undefined\n : {\n text: 'Go back to published version',\n onClick: handleGoBack,\n }\n }\n />\n )\n}\n","import {ComposeSparklesIcon, InfoOutlineIcon, LaunchIcon} from '@sanity/icons'\nimport {Box, Card, Container, Flex, Heading, Text, useClickOutsideEvent} from '@sanity/ui'\nimport {useCallback, useMemo, useRef, useState} from 'react'\nimport {\n getDocumentVariantType,\n useCanvasCompanionDoc,\n useNavigateToCanvasDoc,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Popover} from '../../../../../ui-components'\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nconst Image = styled.img`\n object-fit: cover;\n width: 100%;\n height: 100%;\n height: 180px;\n display: flex;\n`\nconst CANVAS_IMAGE_URL =\n 'https://cdn.sanity.io/images/pyrmmpch/production/b47224e2f3a7d1747e43b9da1ac31739250e628b-632x376.png'\n\nconst CANVAS_APP_NAME = 'Canvas'\nconst CanvasPopoverContent = ({onClose}: {onClose: () => void}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const ref = useRef<HTMLDivElement | null>(null)\n useClickOutsideEvent(onClose, () => [ref.current])\n\n return (\n <Card radius={3} overflow={'hidden'} width={0} ref={ref}>\n <Container width={0}>\n <Image src={CANVAS_IMAGE_URL} alt={'Canvas'} />\n <Flex paddingX={4} paddingBottom={4} paddingTop={3} direction={'column'}>\n <Flex paddingY={1} gap={2}>\n <Text size={1} weight=\"semibold\">\n {CANVAS_APP_NAME}\n </Text>\n <Text size={1} muted>\n <ComposeSparklesIcon />\n </Text>\n </Flex>\n <Box paddingTop={3}>\n <Heading size={1}>{t('canvas.banner.popover-heading')}</Heading>\n </Box>\n <Box paddingTop={4}>\n <Text size={1}>{t('canvas.banner.popover-description')}</Text>\n </Box>\n </Flex>\n <Flex width=\"full\" gap={3} justify=\"flex-end\" paddingX={4} paddingBottom={4}>\n <Button\n mode=\"bleed\"\n text={t('canvas.banner.popover-button-text')}\n autoFocus\n tone=\"primary\"\n href=\"https://snty.link/canvas-docs\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n as=\"a\"\n iconRight={LaunchIcon}\n />\n </Flex>\n </Container>\n </Card>\n )\n}\nconst CanvasLinkedBannerContent = ({documentId}: {documentId: string}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const [open, setOpen] = useState(false)\n const documentVariantType = getDocumentVariantType(documentId)\n const variantText = useMemo(() => {\n if (documentVariantType === 'published') return t('canvas.banner.linked-text.published')\n if (documentVariantType === 'draft') return t('canvas.banner.linked-text.draft')\n return t('canvas.banner.linked-text.version')\n }, [documentVariantType, t])\n\n const togglePopover = useCallback(() => setOpen((prev) => !prev), [])\n const onClose = useCallback(() => setOpen(false), [])\n return (\n <Flex align={'center'} gap={2}>\n <Text size={1} weight=\"medium\">\n {variantText}\n </Text>\n <Popover\n open={open}\n size={0}\n tone=\"default\"\n portal\n placement=\"bottom-start\"\n content={<CanvasPopoverContent onClose={onClose} />}\n >\n <Button\n tooltipProps={null}\n mode=\"bleed\"\n tone=\"default\"\n icon={InfoOutlineIcon}\n onClick={togglePopover}\n />\n </Popover>\n </Flex>\n )\n}\n\nexport function CanvasLinkedBanner() {\n const {documentId, displayed} = useDocumentPane()\n const {t} = useTranslation(structureLocaleNamespace)\n const id = displayed?._id || documentId\n const {companionDoc} = useCanvasCompanionDoc(id)\n const navigateToCanvas = useNavigateToCanvasDoc(companionDoc?.canvasDocumentId, 'banner')\n\n if (!companionDoc) return null\n\n return (\n <Banner\n tone=\"neutral\"\n data-test-id=\"canvas-linked-banner\"\n paddingY={0}\n content={<CanvasLinkedBannerContent documentId={id} />}\n action={{\n mode: 'ghost',\n text: t('canvas.banner.edit-in-canvas-action'),\n onClick: navigateToCanvas,\n }}\n />\n )\n}\n","import {getSanityCreateLinkMetadata, useSanityCreateConfig} from 'sanity'\n\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nexport function CreateLinkedBanner() {\n const {value} = useDocumentPane()\n const {documentLinkedBannerContent: CreateLinkedBannerContent} =\n useSanityCreateConfig().components ?? {}\n const createLinkMetadata = getSanityCreateLinkMetadata(value)\n\n if (!CreateLinkedBannerContent || !createLinkMetadata) return null\n\n return (\n <Banner\n tone=\"transparent\"\n data-test-id=\"sanity-create-read-only-banner\"\n content={<CreateLinkedBannerContent metadata={createLinkMetadata} />}\n />\n )\n}\n","import {Text, useToast} from '@sanity/ui'\nimport {useCallback, useEffect, useState} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionInlineBadge,\n LATEST,\n type ReleaseDocument,\n Translate,\n useConditionalToast,\n useTranslation,\n useVersionOperations,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\n// How long to wait after user hit the \"Add to release\"-button before displaying the \"waiting…\" toast\nconst TOAST_DELAY = 1000\n\ntype VersionCreateState = {\n status: 'creating' | 'created'\n lastUpdate: Date\n}\n\nexport function DocumentNotInReleaseBanner({\n documentId,\n currentRelease,\n value,\n isScheduledRelease,\n}: {\n documentId: string\n currentRelease: ReleaseDocument\n value?: Record<string, unknown>\n isScheduledRelease?: boolean\n}): React.JSX.Element {\n const tone = getReleaseTone(currentRelease ?? LATEST)\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n const {createVersion} = useVersionOperations()\n\n const [versionCreateState, setVersionCreateState] = useState<VersionCreateState | undefined>()\n const toast = useToast()\n const handleAddToRelease = useCallback(async () => {\n if (currentRelease._id) {\n setVersionCreateState({status: 'creating', lastUpdate: new Date()})\n try {\n await createVersion(\n getReleaseIdFromReleaseDocumentId(currentRelease._id),\n documentId,\n value,\n )\n setVersionCreateState({status: 'created', lastUpdate: new Date()})\n } catch (err) {\n toast.push({\n status: 'error',\n closable: true,\n title: t('banners.release.error.title'),\n description: t('banners.release.error.description', {message: err.message}),\n })\n // Note: we only want to reset pending state in case of failure, not unconditionally the request completes (i.e. in a finally clause)\n // this is because the UI won't reflect that the document was successfully added to the release until we get the result back over the listener\n // once the listener event that adds the document to the release arrives the UI knows that a version exists,\n // and this banner will not be rendered anymore\n setVersionCreateState(undefined)\n }\n }\n }, [createVersion, currentRelease._id, documentId, t, toast, value])\n\n const now = useCurrentTime(200)\n\n useConditionalToast({\n status: 'info',\n id: 'add-document-to-release',\n enabled: Boolean(\n versionCreateState?.status === 'created' &&\n now.getTime() - versionCreateState.lastUpdate.getTime() > TOAST_DELAY,\n ),\n closable: true,\n title: t('banners.release.waiting.title'),\n description: t('banners.release.waiting.description'),\n })\n\n return (\n <Banner\n tone={tone}\n content={\n <Text size={1}>\n <Translate\n i18nKey=\"banners.release.not-in-release\"\n t={t}\n values={{\n title:\n currentRelease?.metadata?.title || tCore('release.placeholder-untitled-release'),\n }}\n components={{\n VersionBadge: getVersionInlineBadge(currentRelease),\n }}\n />\n </Text>\n }\n // Adding to a scheduled release is not allowed\n action={\n isScheduledRelease\n ? undefined\n : {\n text: t('banners.release.action.add-to-release'),\n tone: tone,\n disabled: Boolean(versionCreateState),\n onClick: handleAddToRelease,\n mode: 'default',\n }\n }\n />\n )\n}\n\nfunction useCurrentTime(updateIntervalMs: number): Date {\n const [currentTime, setCurrentTime] = useState(new Date())\n useEffect(() => {\n const intervalId = setInterval(() => {\n setCurrentTime(new Date())\n }, updateIntervalMs)\n return () => clearInterval(intervalId)\n }, [updateIntervalMs])\n return currentTime\n}\n","import {defineEvent} from '@sanity/telemetry'\n\ninterface TypeInfo {\n liveEditResolveType: 'publish' | 'discard'\n}\n\n/**\n * When a draft in a live edit document is published\n * @internal\n */\nexport const ResolvedLiveEdit = defineEvent<TypeInfo>({\n name: 'LiveEdit Draft Resolved',\n version: 1,\n description: 'User resolved a draft of a live edit document to continue editing',\n})\n","import {type SanityDocument} from '@sanity/client'\nimport {ErrorOutlineIcon} from '@sanity/icons'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Flex, Text} from '@sanity/ui'\nimport {useCallback, useEffect, useState} from 'react'\nimport {type ObjectSchemaType, Translate, useDocumentOperation, useTranslation} from 'sanity'\n\nimport {Button} from '../../../../../ui-components'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {ResolvedLiveEdit} from './__telemetry__/DraftLiveEditBanner.telemetry'\nimport {Banner} from './Banner'\n\ninterface DraftLiveEditBannerProps {\n displayed: Partial<SanityDocument> | null\n documentId: string\n schemaType: ObjectSchemaType\n}\n\nexport function DraftLiveEditBanner({\n displayed,\n documentId,\n schemaType,\n}: DraftLiveEditBannerProps): React.JSX.Element | null {\n const {t} = useTranslation(structureLocaleNamespace)\n const [isPublishing, setPublishing] = useState(false)\n const [isDiscarding, setDiscarding] = useState(false)\n const telemetry = useTelemetry()\n\n const {publish, discardChanges} = useDocumentOperation(documentId, displayed?._type || '')\n\n const handlePublish = useCallback(() => {\n publish.execute()\n setPublishing(true)\n telemetry.log(ResolvedLiveEdit, {liveEditResolveType: 'publish'})\n }, [publish, telemetry])\n\n const handleDiscard = useCallback(() => {\n discardChanges.execute()\n setDiscarding(true)\n telemetry.log(ResolvedLiveEdit, {liveEditResolveType: 'discard'})\n }, [discardChanges, telemetry])\n\n useEffect(() => {\n return () => {\n setPublishing(false)\n setDiscarding(false)\n }\n })\n\n return (\n <Banner\n content={\n <Flex align=\"center\" justify=\"space-between\" gap={2}>\n <Text size={1} weight=\"medium\">\n <Translate\n t={t}\n i18nKey={'banners.live-edit-draft-banner.text'}\n values={{schemaType: schemaType.title}}\n />\n </Text>\n\n <Button\n onClick={handlePublish}\n text={t('action.publish.live-edit.label')}\n tooltipProps={{content: t('banners.live-edit-draft-banner.publish.tooltip')}}\n loading={isPublishing}\n />\n\n <Button\n onClick={handleDiscard}\n text={t('banners.live-edit-draft-banner.discard.tooltip')}\n tooltipProps={{content: t('banners.live-edit-draft-banner.discard.tooltip')}}\n loading={isDiscarding}\n />\n </Flex>\n }\n data-testid=\"live-edit-type-banner\"\n icon={ErrorOutlineIcon}\n />\n )\n}\n","import {Flex, Text} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n isVersionId,\n Translate,\n useActiveReleases,\n useDocumentVersions,\n useOnlyHasVersions,\n useSetPerspective,\n useTranslation,\n VersionInlineBadge,\n} from 'sanity'\n\nimport {Button} from '../../../../../ui-components'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\nexport function OpenReleaseToEditBanner({\n documentId,\n isPinnedDraftOrPublished,\n}: {\n documentId: string\n isPinnedDraftOrPublished: boolean\n}): React.JSX.Element | null {\n const onlyHasVersions = useOnlyHasVersions({documentId})\n\n /** this banner should only be rendered in specific cases\n * 1. when the document is not a draft or published\n * 2. when the document only has version or versions\n * 3. when the global perspective is not set (published or draft)\n */\n\n if (!isVersionId(documentId)) {\n return null\n }\n\n if (!onlyHasVersions || !isPinnedDraftOrPublished) {\n return null\n }\n\n return <OpenReleaseToEditBannerInner documentId={documentId} />\n}\n\nexport function OpenReleaseToEditBannerInner({\n documentId,\n}: {\n documentId: string\n}): React.JSX.Element {\n const {data: activeReleases} = useActiveReleases()\n const setPerspective = useSetPerspective()\n const releaseId = getVersionFromId(documentId) ?? ''\n const currentVersion = useMemo(\n () => activeReleases.find((version) => version._id.includes(releaseId)),\n [activeReleases, releaseId],\n )\n const {t: tCore} = useTranslation()\n\n const {data: documentVersions} = useDocumentVersions({documentId})\n\n const documentVersionsTitleList = useMemo(\n () =>\n activeReleases\n .filter((version) => {\n return documentVersions.find((release) => {\n const r = getVersionFromId(release) ?? ''\n return getReleaseIdFromReleaseDocumentId(version._id) === r\n })\n })\n .map((version) => version.metadata.title || tCore('release.placeholder-untitled-release')),\n [activeReleases, documentVersions, tCore],\n )\n const tone = currentVersion && getReleaseTone(currentVersion)\n const {t} = useTranslation(structureLocaleNamespace)\n\n const handleGoToEdit = useCallback(async () => {\n setPerspective(releaseId)\n }, [releaseId, setPerspective])\n\n return (\n <Banner\n tone={tone}\n paddingY={0}\n data-testid=\"open-release-to-edit-banner\"\n content={\n <Flex direction={'row'} align=\"center\" justify=\"space-between\" flex={1}>\n <Text size={1}>\n <Flex direction={'row'} gap={1}>\n {documentVersionsTitleList.length > 1 ? (\n <Translate\n t={t}\n i18nKey=\"banners.release.navigate-to-edit-description-multiple\"\n components={{\n VersionBadge: () => (\n <VersionInlineBadge> {documentVersionsTitleList[0]}</VersionInlineBadge>\n ),\n }}\n values={{count: documentVersionsTitleList.length - 1}}\n />\n ) : (\n <Translate\n t={t}\n i18nKey=\"banners.release.navigate-to-edit-description-single\"\n components={{\n VersionBadge: () => (\n <VersionInlineBadge> {documentVersionsTitleList[0]}</VersionInlineBadge>\n ),\n }}\n />\n )}\n </Flex>\n </Text>\n\n <Button\n text={t('banners.release.action.open-to-edit')}\n tone={tone}\n onClick={handleGoToEdit}\n />\n </Flex>\n }\n />\n )\n}\n","import {WarningOutlineIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nexport function RevisionNotFoundBanner() {\n const {revisionNotFound} = useDocumentPane()\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (!revisionNotFound) return null\n\n return (\n <Banner\n tone=\"caution\"\n data-test-id=\"revision-not-found-banner\"\n icon={WarningOutlineIcon}\n content={<Text size={1}>{t('banners.revision-not-found.description')}</Text>}\n />\n )\n}\n","import {LockIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {\n formatRelativeLocalePublishDate,\n getReleaseTone,\n LATEST,\n type ReleaseDocument,\n Translate,\n useTranslation,\n} from 'sanity'\n\nimport {Banner} from './Banner'\n\nexport function ScheduledReleaseBanner({\n currentRelease,\n}: {\n currentRelease: ReleaseDocument\n}): React.JSX.Element {\n const tone = getReleaseTone(currentRelease ?? LATEST)\n\n const {t: tCore} = useTranslation()\n\n return (\n <Banner\n tone={tone}\n icon={LockIcon}\n content={\n <Text size={1}>\n <Translate\n t={tCore}\n i18nKey=\"release.banner.scheduled-for-publishing-on\"\n values={{\n date: formatRelativeLocalePublishDate(currentRelease),\n }}\n />\n </Text>\n }\n />\n )\n}\n","import {UnpublishIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {\n getVersionInlineBadge,\n isGoingToUnpublish,\n isReleaseDocument,\n Translate,\n usePerspective,\n useTranslation,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\n\nexport function UnpublishedDocumentBanner() {\n const {value} = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n const willBeUnpublished = isGoingToUnpublish(value)\n\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n if (isReleaseDocument(selectedPerspective) && willBeUnpublished) {\n const title =\n selectedPerspective.metadata?.title || tCore('release.placeholder-untitled-release')\n\n return (\n <Banner\n tone=\"critical\"\n content={\n <Text size={1}>\n <Translate\n t={t}\n i18nKey=\"banners.unpublished-release-banner.text\"\n values={{\n title,\n }}\n components={{\n VersionBadge: getVersionInlineBadge(selectedPerspective),\n }}\n />\n </Text>\n }\n icon={UnpublishIcon}\n />\n )\n }\n return null\n}\n","import {InfoOutlineIcon} from '@sanity/icons'\nimport {type ObjectSchemaType} from '@sanity/types'\nimport {Heading, Inline, Stack, Text} from '@sanity/ui'\nimport {useTranslation} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../../ui-components'\nimport {structureLocaleNamespace} from '../../../../i18n'\n\ninterface DocumentHeaderProps {\n documentId: string\n schemaType: ObjectSchemaType\n title?: string\n}\n\n/**\n * Use CSS container queries to conditionally render headings at different sizes.\n * We hide this entire container (including the document type) if container queries\n * not supported in the current browser.\n *\n * Note that usage of container queries in `styled-components` is only supported in `6.x`.\n * As such, studios that include `\"styled-components\": \"<6\"` as a dependency will only see\n * the largest heading size here, even if their browser supports it!\n */\n\nexport const TitleContainer = styled(Stack)`\n ${({theme}) => {\n return css`\n @supports not (container-type: inline-size) {\n display: none !important;\n }\n\n container-type: inline-size;\n\n [data-heading] {\n font-size: ${theme.sanity.fonts.heading.sizes[4].fontSize}px;\n line-height: ${theme.sanity.fonts.heading.sizes[4].lineHeight}px;\n overflow-wrap: break-word;\n text-wrap: pretty;\n }\n\n @container (max-width: 560px) {\n [data-heading] {\n font-size: ${theme.sanity.fonts.heading.sizes[3].fontSize}px;\n line-height: ${theme.sanity.fonts.heading.sizes[3].lineHeight}px;\n }\n }\n\n @container (max-width: 420px) {\n [data-heading] {\n font-size: ${theme.sanity.fonts.heading.sizes[2].fontSize}px;\n line-height: ${theme.sanity.fonts.heading.sizes[2].lineHeight}px;\n }\n }\n `\n }}\n`\n\n/**\n * Header containing current document title and type.\n * Document type is hidden if the document `_id` matches the current document `_type`.\n * The entire header is hidden if container queries are not supported.\n */\nexport const FormHeader = ({documentId, schemaType, title}: DocumentHeaderProps) => {\n const isSingleton = documentId === schemaType.name\n const description = schemaType.description\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (schemaType.__experimental_formPreviewTitle === false) {\n return null\n }\n return (\n <TitleContainer marginBottom={6} space={4}>\n {!isSingleton && (\n <Inline space={1}>\n <Text muted size={1}>\n {schemaType.title ?? schemaType.name}\n </Text>\n {description && (\n <Tooltip content={description} placement=\"right\">\n <InfoOutlineIcon data-testid=\"schema-description-icon\" />\n </Tooltip>\n )}\n </Inline>\n )}\n <Heading as=\"h2\" data-heading muted={!title} data-testid=\"document-panel-document-title\">\n {title ?? t('document-view.form-view.form-title-fallback')}\n </Heading>\n </TitleContainer>\n )\n}\n","/* eslint-disable no-nested-ternary */\nimport {Box, Container, Flex, focusFirstDescendant, Spinner, Text} from '@sanity/ui'\nimport {type FormEvent, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {tap} from 'rxjs/operators'\nimport {\n createPatchChannel,\n type DocumentMutationEvent,\n type DocumentRebaseEvent,\n FormBuilder,\n type FormDocumentValue,\n fromMutationPatches,\n type PatchMsg,\n PresenceOverlay,\n useConditionalToast,\n useDocumentPresence,\n useDocumentStore,\n usePerspective,\n useTranslation,\n} from 'sanity'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Delay} from '../../../../components'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {useDocumentTitle} from '../../useDocumentTitle'\nimport {FormHeader} from './FormHeader'\n\ninterface FormViewProps {\n hidden: boolean\n margins: [number, number, number, number]\n}\n\nconst preventDefault = (ev: FormEvent) => ev.preventDefault()\n\nexport const FormView = forwardRef<HTMLDivElement, FormViewProps>(function FormView(props, ref) {\n const {hidden, margins} = props\n\n const {\n collapsedFieldSets,\n collapsedPaths,\n displayed: value,\n editState,\n documentId,\n documentType,\n fieldActions,\n onChange,\n validation,\n ready,\n formState,\n onFocus,\n connectionState,\n onBlur,\n onSetCollapsedPath,\n onPathOpen,\n onSetCollapsedFieldSet,\n onSetActiveFieldGroup,\n openPath,\n } = useDocumentPane()\n const {selectedReleaseId} = usePerspective()\n const documentStore = useDocumentStore()\n const presence = useDocumentPresence(documentId)\n const {title} = useDocumentTitle()\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] = useState(() => createPatchChannel())\n\n const isLocked = editState?.transactionSyncLock?.enabled\n const {t} = useTranslation(structureLocaleNamespace)\n\n const conditionalToastParams = useMemo(\n () => ({\n id: `sync-lock`,\n status: 'warning' as const,\n enabled: isLocked,\n title: t('document-view.form-view.sync-lock-toast.title'),\n description: t('document-view.form-view.sync-lock-toast.description'),\n closable: true,\n }),\n [isLocked, t],\n )\n\n useConditionalToast(conditionalToastParams)\n\n useEffect(() => {\n const sub = documentStore.pair\n .documentEvents(documentId, documentType, selectedReleaseId)\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, selectedReleaseId])\n\n const hasRev = Boolean(value?._rev)\n const handleInitialValue = useEffectEvent(() => {\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 useEffect(() => {\n if (hasRev) {\n handleInitialValue()\n }\n // React to changes in hasRev only\n }, [hasRev])\n\n const [formRef, setFormRef] = useState<null | HTMLDivElement>(null)\n\n // We only want to run it on first mount\n const [focusedFirstDescendant, setFocusedFirstDescendant] = useState(false)\n useEffect(() => {\n // Only focus on the first descendant if there is not already a focus path\n // This is to avoid stealing focus from intent links\n if (!focusedFirstDescendant && ready && !formState?.focusPath.length && formRef) {\n setFocusedFirstDescendant(true)\n focusFirstDescendant(formRef)\n }\n }, [focusedFirstDescendant, formRef, formState?.focusPath.length, ready])\n\n const setRef = useCallback(\n (node: HTMLDivElement | null) => {\n setFormRef(node)\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n },\n [ref],\n )\n\n const isReadOnly = connectionState === 'reconnecting' || formState?.readOnly || !editState?.ready\n\n return (\n <Container\n hidden={hidden}\n paddingX={4}\n paddingTop={5}\n paddingBottom={9}\n sizing=\"border\"\n width={1}\n >\n <PresenceOverlay margins={margins}>\n <Box\n as=\"form\"\n onSubmit={preventDefault}\n ref={setRef}\n data-testid=\"form-view\"\n data-read-only={isReadOnly ? 'true' : undefined}\n >\n {connectionState === 'connecting' && !editState?.draft && !editState?.published ? (\n <Delay ms={300}>\n {/* TODO: replace with loading block */}\n <Flex align=\"center\" direction=\"column\" height=\"fill\" justify=\"center\">\n <Spinner muted />\n <Box marginTop={3}>\n <Text align=\"center\" muted size={1}>\n {t('document-view.form-view.loading')}\n </Text>\n </Box>\n </Flex>\n </Delay>\n ) : formState === null || hidden ? (\n <Box padding={2}>\n <Text>{t('document-view.form-view.form-hidden')}</Text>\n </Box>\n ) : (\n <>\n <FormHeader documentId={documentId} schemaType={formState.schemaType} title={title} />\n <FormBuilder\n __internal_fieldActions={fieldActions}\n __internal_patchChannel={patchChannel}\n changed={formState.changed}\n collapsedFieldSets={collapsedFieldSets}\n collapsedPaths={collapsedPaths}\n focused={formState.focused}\n focusPath={formState.focusPath}\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 openPath={openPath}\n presence={presence}\n readOnly={isReadOnly}\n schemaType={formState.schemaType}\n validation={validation}\n value={\n // note: the form state doesn't have a typed concept of a \"document\" value\n // but these should be compatible\n formState.value as FormDocumentValue\n }\n />\n </>\n )}\n </Box>\n </PresenceOverlay>\n </Container>\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 {TabList} from '@sanity/ui'\nimport {type ComponentType, type ReactNode, useCallback} from 'react'\n\nimport {Tab} from '../../../../../ui-components'\nimport {usePaneRouter} from '../../../../components'\nimport {useDocumentPane} from '../../useDocumentPane'\n\n/**\n * This component will render the tabs for the document pane, following this rules:\n * if the view tabs are wider than 200px it collapses to a dropdown\n * if the header is smaller than 480px it collapses to a dropdown\n * For this we need to first measure the pane header width and then the tabs width.\n *\n * Gotcha, if the tabs are wider han 200px it renders a dropdown and if then the tabs change to be smaller than 200px\n * it will not change back to tabs, this is a limitation of the current implementation but an ok tradeoff to avoid mounting\n * ghost elements just to measure the width.\n */\nexport function DocumentHeaderTabs() {\n const {activeViewId, paneKey, views} = useDocumentPane()\n\n const tabPanelId = `${paneKey}tabpanel`\n\n return (\n <TabList space={1}>\n {views.map((view, index) => (\n <DocumentHeaderTab\n icon={view.icon}\n id={`${paneKey}tab-${view.id}`}\n isActive={activeViewId === view.id}\n key={view.id}\n label={view.title}\n tabPanelId={tabPanelId}\n viewId={index === 0 ? null : (view.id ?? null)}\n />\n ))}\n </TabList>\n )\n}\n\nfunction DocumentHeaderTab(props: {\n icon?: ComponentType | ReactNode\n id: string\n isActive: boolean\n label: string\n tabPanelId: string\n viewId: string | null\n}) {\n const {icon, id, isActive, label, tabPanelId, viewId, ...rest} = props\n const {ready, editState} = useDocumentPane()\n const {setView} = usePaneRouter()\n const handleClick = useCallback(() => setView(viewId), [setView, viewId])\n\n return (\n <Tab\n {...rest} // required to enable <TabList> keyboard navigation\n aria-controls={tabPanelId}\n disabled={!ready && !editState?.draft && !editState?.published}\n icon={icon}\n id={id}\n label={label}\n onClick={handleClick}\n selected={isActive}\n />\n )\n}\n","import {unstable_useValuePreview as useValuePreview, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\n\nexport function DocumentHeaderTitle(): React.JSX.Element {\n const {connectionState, schemaType, title, value: documentValue} = useDocumentPane()\n const subscribed = Boolean(documentValue)\n\n const {error, value} = useValuePreview({\n enabled: subscribed,\n schemaType,\n value: documentValue,\n })\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (connectionState === 'connecting' && !subscribed) {\n return <></>\n }\n\n if (title) {\n return <>{title}</>\n }\n\n if (!documentValue) {\n return (\n <>\n {t('panes.document-header-title.new.text', {\n schemaType: schemaType?.title || schemaType?.name,\n })}\n </>\n )\n }\n\n if (error) {\n return <>{t('panes.document-header-title.error.text', {error: error.message})}</>\n }\n\n return (\n <>\n {value?.title || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>\n {t('panes.document-header-title.untitled.text')}\n </span>\n )}\n </>\n )\n}\n","import {StarFilledIcon, StarIcon} from '@sanity/icons'\nimport {Text} from '@sanity/ui'\nimport {type ComponentType} from 'react'\nimport {useManageFavorite, type UseManageFavoriteProps, useTranslation} from 'sanity'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {structureLocaleNamespace} from '../../../../i18n'\n\nexport const FavoriteToggle: ComponentType<UseManageFavoriteProps & {documentExists: boolean}> = ({\n documentExists,\n ...props\n}) => {\n const {isFavorited, isReady, favorite, unfavorite} = useManageFavorite(props)\n const {t} = useTranslation(structureLocaleNamespace)\n\n const description = t(\n isFavorited\n ? 'document.favorites.remove-from-favorites'\n : 'document.favorites.add-to-favorites',\n )\n\n return (\n <Button\n mode=\"bleed\"\n onClick={isFavorited ? unfavorite : favorite}\n disabled={!isReady || !documentExists}\n aria-label={description}\n aria-live=\"assertive\"\n tooltipProps={{\n content: <Text size={1}>{description}</Text>,\n placement: 'right',\n }}\n >\n <Text size={1}>{isFavorited ? <StarFilledIcon /> : <StarIcon />}</Text>\n </Button>\n )\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\nimport {memo, useMemo} from 'react'\nimport {CapabilityGate, getPublishedId, useActiveWorkspace, useTranslation} from 'sanity'\n\nimport {Button} from '../../../../../ui-components'\nimport {PaneHeader, usePane, usePaneRouter} from '../../../../components'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useStructureTool} from '../../../../useStructureTool'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {DocumentHeaderTabs} from './DocumentHeaderTabs'\nimport {DocumentHeaderTitle} from './DocumentHeaderTitle'\nimport {FavoriteToggle} from './FavoriteToggle'\n\n/**\n * When not collapsed this component will render the title and the tabs.\n * This component will render inside the document panel and not with the DocumentPanelHeader\n */\nexport const DocumentPanelSubHeader = memo(function DocumentPanelHeader() {\n const {editState, connectionState, views, documentId, displayed} = useDocumentPane()\n const {features} = useStructureTool()\n const {index, BackLink} = usePaneRouter()\n const {activeWorkspace} = useActiveWorkspace()\n const publishedDocId = getPublishedId(documentId)\n\n const showTabs = views.length > 1\n\n const {collapsed, isLast} = usePane()\n // Prevent focus if this is the last (non-collapsed) pane.\n const tabIndex = isLast && !collapsed ? -1 : 0\n\n // show the back button if both the feature is enabled and the current pane\n // is not the first\n const showBackButton = features.backButton && index > 0\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const title = useMemo(() => <DocumentHeaderTitle />, [])\n const tabs = useMemo(() => showTabs && <DocumentHeaderTabs />, [showTabs])\n\n const backButton = useMemo(\n () =>\n showBackButton && (\n <Button\n as={BackLink}\n data-as=\"a\"\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n tooltipProps={{content: t('pane-header.back-button.text')}}\n />\n ),\n [BackLink, showBackButton, t],\n )\n\n const favoriteToggle = (\n <CapabilityGate capability=\"comlink\" condition=\"available\">\n <FavoriteToggle\n resourceType=\"studio\"\n documentId={publishedDocId}\n documentType={displayed?._type ?? ''}\n resourceId={[activeWorkspace.projectId, activeWorkspace.dataset].join('.')}\n schemaName={activeWorkspace.name}\n projectId={activeWorkspace.projectId}\n dataset={activeWorkspace.dataset}\n documentExists={\n (editState?.ready &&\n (editState.version ?? editState.draft ?? editState.published) !== null) ??\n false\n }\n />\n </CapabilityGate>\n )\n\n return (\n <PaneHeader\n loading={connectionState === 'connecting' && !editState?.draft && !editState?.published}\n title={title}\n tabs={tabs}\n tabIndex={tabIndex}\n backButton={backButton}\n appendTitle={favoriteToggle}\n />\n )\n})\n","import {BoundaryElementProvider, Box, Flex, PortalProvider, usePortal} from '@sanity/ui'\nimport {useEffect, useMemo, useRef, useState} from 'react'\nimport {\n getSanityCreateLinkMetadata,\n getVersionFromId,\n isReleaseDocument,\n isReleaseScheduledOrScheduling,\n isSanityCreateLinked,\n isSystemBundle,\n LegacyLayerProvider,\n type ReleaseDocument,\n ScrollContainer,\n usePerspective,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {PaneContent, usePane, usePaneLayout, usePaneRouter} from '../../../components'\nimport {isLiveEditEnabled} from '../../../components/paneItem/helpers'\nimport {useStructureTool} from '../../../useStructureTool'\nimport {DocumentInspectorPanel} from '../documentInspector'\nimport {InspectDialog} from '../inspectDialog'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {\n DeletedDocumentBanners,\n DeprecatedDocumentTypeBanner,\n InsufficientPermissionBanner,\n ReferenceChangedBanner,\n} from './banners'\nimport {ArchivedReleaseDocumentBanner} from './banners/ArchivedReleaseDocumentBanner'\nimport {CanvasLinkedBanner} from './banners/CanvasLinkedBanner'\nimport {CreateLinkedBanner} from './banners/CreateLinkedBanner'\nimport {DocumentNotInReleaseBanner} from './banners/DocumentNotInReleaseBanner'\nimport {DraftLiveEditBanner} from './banners/DraftLiveEditBanner'\nimport {OpenReleaseToEditBanner} from './banners/OpenReleaseToEditBanner'\nimport {RevisionNotFoundBanner} from './banners/RevisionNotFoundBanner'\nimport {ScheduledReleaseBanner} from './banners/ScheduledReleaseBanner'\nimport {UnpublishedDocumentBanner} from './banners/UnpublishedDocumentBanner'\nimport {FormView} from './documentViews'\nimport {DocumentPanelSubHeader} from './header/DocumentPanelSubHeader'\n\ninterface DocumentPanelProps {\n footerHeight: number | null\n headerHeight: number | null\n isInspectOpen: boolean\n rootElement: HTMLDivElement | null\n setDocumentPanelPortalElement: (el: HTMLElement | null) => void\n footer: React.ReactNode\n}\n\nconst DocumentBox = styled(Box)({\n position: 'relative',\n})\n\nconst Scroller = styled(ScrollContainer)<{$disabled: boolean}>(({$disabled}) => {\n if ($disabled) {\n return {height: '100%'}\n }\n\n return css`\n height: 100%;\n overflow: auto;\n position: relative;\n scroll-behavior: smooth;\n outline: none;\n `\n})\n\nexport const DocumentPanel = function DocumentPanel(props: DocumentPanelProps) {\n const {\n footerHeight,\n headerHeight,\n isInspectOpen,\n rootElement,\n setDocumentPanelPortalElement,\n footer,\n } = props\n const {\n activeViewId,\n displayed,\n documentId,\n editState,\n inspector,\n value,\n views,\n ready,\n schemaType,\n permissions,\n isPermissionsLoading,\n } = useDocumentPane()\n const createLinkMetadata = getSanityCreateLinkMetadata(value)\n const showCreateBanner = isSanityCreateLinked(createLinkMetadata)\n\n const {params} = usePaneRouter()\n const {collapsed: layoutCollapsed} = usePaneLayout()\n const {collapsed} = usePane()\n const parentPortal = usePortal()\n const {features} = useStructureTool()\n const [_portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)\n const [documentScrollElement, setDocumentScrollElement] = useState<HTMLDivElement | null>(null)\n const formContainerElement = useRef<HTMLDivElement | null>(null)\n\n const requiredPermission = value._createdAt ? 'update' : 'create'\n\n const activeView = useMemo(\n () => views.find((view) => view.id === activeViewId) || views[0] || {type: 'form'},\n [activeViewId, views],\n )\n\n // Use a local portal container when split panes is supported\n const portalElement: HTMLElement | null = features.splitPanes\n ? _portalElement || parentPortal.element\n : parentPortal.element\n\n // Calculate the height of the header\n const margins: [number, number, number, number] = useMemo(() => {\n if (layoutCollapsed) {\n return [headerHeight || 0, 0, footerHeight ? footerHeight + 2 : 2, 0]\n }\n\n return [0, 0, 2, 0]\n }, [layoutCollapsed, footerHeight, headerHeight])\n\n const formViewHidden = activeView.type !== 'form'\n\n const activeViewNode = useMemo(() => {\n if (activeView.type === 'component' && activeView.component) {\n const ActiveViewComponent = activeView.component\n return (\n <ActiveViewComponent\n document={{\n draft: editState?.draft || null,\n displayed: displayed || value,\n historical: displayed,\n published: editState?.published || null,\n }}\n documentId={documentId}\n options={activeView.options}\n schemaType={schemaType}\n />\n )\n }\n return false\n }, [activeView, displayed, documentId, editState?.draft, editState?.published, schemaType, value])\n\n const isLiveEdit = isLiveEditEnabled(schemaType)\n\n // Scroll to top as `documentId` changes\n useEffect(() => {\n if (!documentScrollElement?.scrollTo) return\n documentScrollElement.scrollTo(0, 0)\n }, [documentId, documentScrollElement])\n\n // Pass portal element to `DocumentPane`\n useEffect(() => {\n if (portalElement) {\n setDocumentPanelPortalElement(portalElement)\n }\n }, [portalElement, setDocumentPanelPortalElement])\n\n const inspectDialog = useMemo(() => {\n return isInspectOpen ? <InspectDialog value={displayed || value} /> : null\n }, [isInspectOpen, displayed, value])\n\n const showInspector = Boolean(!collapsed && inspector)\n const {selectedPerspective, selectedReleaseId} = usePerspective()\n\n const banners = useMemo(() => {\n if (params?.historyVersion) {\n return <ArchivedReleaseDocumentBanner />\n }\n\n const isScheduledRelease =\n isReleaseDocument(selectedPerspective) && isReleaseScheduledOrScheduling(selectedPerspective)\n\n const documentInScheduledRelease = Boolean(\n isScheduledRelease &&\n displayed?._id &&\n getVersionFromId(displayed?._id) === selectedReleaseId,\n )\n\n if (documentInScheduledRelease) {\n return <ScheduledReleaseBanner currentRelease={selectedPerspective as ReleaseDocument} />\n }\n const isPinnedDraftOrPublish = isSystemBundle(selectedPerspective)\n\n if (\n displayed?._id &&\n getVersionFromId(displayed._id) !== selectedReleaseId &&\n ready &&\n !isPinnedDraftOrPublish\n ) {\n return (\n <DocumentNotInReleaseBanner\n documentId={value._id}\n currentRelease={selectedPerspective as ReleaseDocument}\n value={displayed || undefined}\n isScheduledRelease={isScheduledRelease}\n />\n )\n }\n\n if (\n activeView.type === 'form' &&\n isLiveEdit &&\n ready &&\n editState?.draft?._id &&\n !selectedReleaseId\n ) {\n return (\n <DraftLiveEditBanner\n displayed={displayed}\n documentId={documentId}\n schemaType={schemaType}\n />\n )\n }\n\n if (activeView.type !== 'form' || isPermissionsLoading) return null\n\n return (\n <>\n {showCreateBanner && <CreateLinkedBanner />}\n {!permissions?.granted && (\n <InsufficientPermissionBanner requiredPermission={requiredPermission} />\n )}\n <RevisionNotFoundBanner />\n <ReferenceChangedBanner />\n <DeprecatedDocumentTypeBanner />\n <CanvasLinkedBanner />\n <DeletedDocumentBanners />\n <UnpublishedDocumentBanner />\n <OpenReleaseToEditBanner\n documentId={displayed?._id ?? documentId}\n isPinnedDraftOrPublished={isPinnedDraftOrPublish}\n />\n </>\n )\n }, [\n params?.historyVersion,\n selectedPerspective,\n displayed,\n selectedReleaseId,\n ready,\n activeView.type,\n isLiveEdit,\n editState?.draft?._id,\n isPermissionsLoading,\n showCreateBanner,\n permissions?.granted,\n requiredPermission,\n documentId,\n value._id,\n schemaType,\n ])\n const showFormView = features.resizablePanes || !showInspector\n return (\n <PaneContent>\n <Flex height=\"fill\">\n {showFormView && (\n <Flex height=\"fill\" direction=\"column\" width=\"fill\" flex={2}>\n <LegacyLayerProvider zOffset=\"paneHeader\">\n {banners}\n <DocumentPanelSubHeader />\n </LegacyLayerProvider>\n <DocumentBox flex={2} overflow=\"hidden\">\n <PortalProvider\n element={portalElement}\n __unstable_elements={{documentScrollElement: documentScrollElement}}\n >\n <BoundaryElementProvider element={documentScrollElement}>\n <VirtualizerScrollInstanceProvider\n scrollElement={documentScrollElement}\n containerElement={formContainerElement}\n >\n <Scroller\n $disabled={layoutCollapsed || false}\n data-testid=\"document-panel-scroller\"\n ref={setDocumentScrollElement}\n >\n <FormView\n hidden={formViewHidden}\n margins={margins}\n ref={formContainerElement}\n />\n {activeViewNode}\n </Scroller>\n\n {inspectDialog}\n\n <div data-testid=\"document-panel-portal\" ref={setPortalElement} />\n </VirtualizerScrollInstanceProvider>\n </BoundaryElementProvider>\n </PortalProvider>\n </DocumentBox>\n\n {footer}\n </Flex>\n )}\n {showInspector && (\n <BoundaryElementProvider element={rootElement}>\n <DocumentInspectorPanel\n documentId={documentId}\n documentType={schemaType.name}\n flex={1}\n />\n </BoundaryElementProvider>\n )}\n </Flex>\n </PaneContent>\n )\n}\nDocumentPanel.displayName = 'DocumentPanel'\n","import {type Placement} from '@sanity/ui'\n\nimport {type DialogProps} from '../../../../../ui-components'\n\nexport const POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['left', 'bottom']\n\nexport const DIALOG_WIDTH_TO_UI_WIDTH: {[key: string]: DialogProps['width']} = {\n small: 0,\n medium: 1,\n large: 2,\n full: 'auto',\n}\n","import {\n Box,\n Button, // eslint-disable-line no-restricted-imports\n Flex,\n Grid,\n Popover, // eslint-disable-line no-restricted-imports\n Text,\n useClickOutsideEvent,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {useCallback, useRef} from 'react'\nimport {type DocumentActionConfirmDialogProps, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {POPOVER_FALLBACK_PLACEMENTS} from './constants'\n\nexport function ConfirmDialog(props: {\n dialog: DocumentActionConfirmDialogProps\n referenceElement: HTMLElement | null\n}) {\n const {dialog, referenceElement} = props\n\n return (\n <Popover\n content={<ConfirmDialogContent dialog={dialog} />}\n fallbackPlacements={POPOVER_FALLBACK_PLACEMENTS}\n open\n placement=\"top\"\n portal\n preventOverflow\n referenceElement={referenceElement}\n />\n )\n}\n\n/**\n * Dialog rendered by custom document actions of dialog type `confirm`.\n * As these are user configurable with public facing APIs, internal studio ui-components are not used.\n */\nfunction ConfirmDialogContent(props: {dialog: DocumentActionConfirmDialogProps}) {\n const {dialog} = props\n const {\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n // color,\n message,\n onCancel,\n onConfirm,\n tone,\n } = dialog\n const {t} = useTranslation(structureLocaleNamespace)\n const {isTopLayer} = useLayer()\n const ref = useRef<HTMLDivElement | null>(null)\n\n const handleGlobalKeyDown = useCallback(\n (event: any) => {\n if (event.key === 'Escape' && isTopLayer) onCancel()\n },\n [isTopLayer, onCancel],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(isTopLayer && onCancel, () => [ref.current])\n\n return (\n <Flex direction=\"column\" ref={ref} style={{minWidth: 320 - 16, maxWidth: 400}}>\n <Box flex={1} overflow=\"auto\" padding={4}>\n <Text>{message}</Text>\n </Box>\n <Box paddingX={4} paddingY={3} style={{borderTop: '1px solid var(--card-border-color)'}}>\n <Grid columns={2} gap={2}>\n <Button\n data-testid=\"confirm-dialog-cancel-button\"\n icon={cancelButtonIcon}\n onClick={onCancel}\n mode=\"ghost\"\n text={cancelButtonText || t('confirm-dialog.cancel-button.fallback-text')}\n />\n <Button\n data-testid=\"confirm-dialog-confirm-button\"\n icon={confirmButtonIcon}\n onClick={onConfirm}\n text={confirmButtonText || t('confirm-dialog.confirm-button.fallback-text')}\n tone={tone}\n />\n </Grid>\n </Box>\n </Flex>\n )\n}\n","import {\n Box,\n Dialog, // eslint-disable-line no-restricted-imports\n} from '@sanity/ui'\nimport {useId} from 'react'\nimport {type DocumentActionModalDialogProps, LegacyLayerProvider} from 'sanity'\n\nimport {DIALOG_WIDTH_TO_UI_WIDTH} from './constants'\n\n/**\n * Dialog rendered by custom document actions of dialog type `dialog`.\n * As these are user configurable with public facing APIs, internal studio ui-components are not used.\n */\nexport function ModalDialog(props: {dialog: DocumentActionModalDialogProps}) {\n const {dialog} = props\n const dialogId = useId()\n\n const footer = dialog.footer && (\n <Box paddingX={4} paddingY={3}>\n {dialog.footer}\n </Box>\n )\n\n return (\n <LegacyLayerProvider zOffset=\"fullscreen\">\n <Dialog\n animate\n __unstable_hideCloseButton={dialog.showCloseButton === false}\n footer={footer}\n header={dialog.header}\n id={dialogId}\n // eslint-disable-next-line react/jsx-handler-names\n onClose={dialog.onClose}\n // eslint-disable-next-line react/jsx-handler-names\n onClickOutside={dialog.onClose}\n width={dialog.width === undefined ? 1 : DIALOG_WIDTH_TO_UI_WIDTH[dialog.width]}\n >\n <Box padding={4}>{dialog.content}</Box>\n </Dialog>\n </LegacyLayerProvider>\n )\n}\n","import {\n Popover, // eslint-disable-line no-restricted-imports\n useClickOutsideEvent,\n useGlobalKeyDown,\n useLayer,\n} from '@sanity/ui'\nimport {useCallback, useRef} from 'react'\nimport {type DocumentActionPopoverDialogProps} from 'sanity'\n\nimport {POPOVER_FALLBACK_PLACEMENTS} from './constants'\n\nexport function PopoverDialog(props: {\n dialog: DocumentActionPopoverDialogProps\n referenceElement: HTMLElement | null\n}) {\n const {dialog, referenceElement} = props\n\n return (\n <Popover\n content={<PopoverDialogContent dialog={dialog} />}\n fallbackPlacements={POPOVER_FALLBACK_PLACEMENTS}\n open\n placement=\"top\"\n portal\n preventOverflow\n referenceElement={referenceElement}\n />\n )\n}\n\n/**\n * Popover rendered by custom document actions of dialog type `popover`.\n * As these are user configurable with public facing APIs, internal studio ui-components are not used.\n */\nfunction PopoverDialogContent(props: {dialog: DocumentActionPopoverDialogProps}) {\n const {dialog} = props\n const {content, onClose} = dialog\n const {isTopLayer} = useLayer()\n const ref = useRef<HTMLDivElement | null>(null)\n\n const handleGlobalKeyDown = useCallback(\n (event: any) => {\n if (event.key === 'Escape' && isTopLayer) onClose()\n },\n [isTopLayer, onClose],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(isTopLayer && onClose, () => [ref.current])\n\n return <div ref={ref}>{content}</div>\n}\n","import {PortalProvider, Text, usePortal} from '@sanity/ui'\nimport {type ReactNode, useId} from 'react'\nimport {type DocumentActionDialogProps} from 'sanity'\n\nimport {Dialog} from '../../../../ui-components'\nimport {DOCUMENT_PANEL_PORTAL_ELEMENT} from '../../../constants'\nimport {ConfirmDialog} from './dialogs/ConfirmDialog'\nimport {ModalDialog} from './dialogs/ModalDialog'\nimport {PopoverDialog} from './dialogs/PopoverDialog'\n\nexport interface ActionStateDialogProps {\n dialog: DocumentActionDialogProps\n referenceElement?: HTMLElement | null\n}\n\n// A portal provider that uses the document panel portal element if it exists\n// as the portal element so that dialogs are scoped to the document panel\nfunction DocumentActionPortalProvider(props: {children: ReactNode}) {\n const {children} = props\n const {element, elements} = usePortal()\n const portalElement = elements?.[DOCUMENT_PANEL_PORTAL_ELEMENT] || element\n\n return <PortalProvider element={portalElement}>{children}</PortalProvider>\n}\n\nexport function ActionStateDialog(props: ActionStateDialogProps) {\n const {dialog, referenceElement = null} = props\n const modalId = useId()\n\n if (dialog.type === 'confirm') {\n return <ConfirmDialog dialog={dialog} referenceElement={referenceElement} />\n }\n\n if (dialog.type === 'popover') {\n return <PopoverDialog dialog={dialog} referenceElement={referenceElement} />\n }\n\n if (dialog.type === 'dialog' || !dialog.type) {\n return (\n <DocumentActionPortalProvider>\n <ModalDialog dialog={dialog} />\n </DocumentActionPortalProvider>\n )\n }\n\n if (dialog.type === 'custom') {\n return <DocumentActionPortalProvider>{dialog?.component}</DocumentActionPortalProvider>\n }\n\n // @todo: add validation?\n const unknownModal: any = dialog\n\n // eslint-disable-next-line no-console\n console.warn(`Unsupported modal type ${unknownModal.type}`)\n\n return (\n <Dialog\n id={modalId}\n // eslint-disable-next-line react/jsx-handler-names\n onClose={unknownModal.onClose}\n // eslint-disable-next-line react/jsx-handler-names\n onClickOutside={unknownModal.onClose}\n width={1}\n >\n {unknownModal.content || (\n // eslint-disable-next-line i18next/no-literal-string\n <Text size={1}>\n Unexpected modal type (<code>{unknownModal.type}</code>)\n </Text>\n )}\n </Dialog>\n )\n}\n","import {Menu} from '@sanity/ui'\nimport {memo, type ReactNode, useCallback, useId, useMemo, useState} from 'react'\nimport {\n ContextMenuButton,\n type DocumentActionDescription,\n LegacyLayerProvider,\n useTranslation,\n} from 'sanity'\n\nimport {MenuButton, MenuItem, type PopoverProps} from '../../../../ui-components'\nimport {structureLocaleNamespace} from '../../../i18n'\nimport {ActionStateDialog} from './ActionStateDialog'\n\nexport interface ActionMenuButtonProps {\n actionStates: DocumentActionDescription[]\n disabled: boolean\n}\n\n/**\n * @internal\n */\nexport const ActionDialogWrapper = memo(function ActionDialogWrapper({\n actionStates,\n children,\n referenceElement,\n}: {\n actionStates: DocumentActionDescription[]\n children: ({handleAction}: {handleAction: (idx: number) => void}) => ReactNode\n referenceElement?: HTMLElement | null\n}) {\n const [actionIndex, setActionIndex] = useState(-1)\n const currentAction = useMemo(() => actionStates[actionIndex], [actionIndex, actionStates])\n\n const handleAction = useCallback((idx: number) => {\n setActionIndex(idx)\n }, [])\n\n const result = useMemo(() => children({handleAction}), [children, handleAction])\n\n return (\n <>\n {currentAction && currentAction.dialog && (\n <LegacyLayerProvider zOffset=\"paneFooter\">\n <ActionStateDialog dialog={currentAction.dialog} referenceElement={referenceElement} />\n </LegacyLayerProvider>\n )}\n {result}\n </>\n )\n})\n\n/**\n * @internal\n */\nexport function ActionMenuButton(props: ActionMenuButtonProps) {\n const {actionStates, disabled} = props\n const idPrefix = useId()\n\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement | null>(null)\n\n const popoverProps: PopoverProps = useMemo(\n () => ({\n placement: 'top-end',\n portal: true,\n preventOverflow: true,\n }),\n [],\n )\n\n const {t} = useTranslation(structureLocaleNamespace)\n const renderActionDialog = useCallback<\n ({handleAction}: {handleAction: (idx: number) => void}) => ReactNode\n >(\n ({handleAction}) => (\n <MenuButton\n id={`${idPrefix}-action-menu`}\n button={\n <ContextMenuButton\n aria-label={t('buttons.action-menu-button.aria-label')}\n disabled={disabled}\n data-testid=\"action-menu-button\"\n tooltipProps={{content: t('buttons.action-menu-button.tooltip')}}\n />\n }\n menu={\n <Menu padding={1}>\n {actionStates.map((actionState, idx) => (\n <ActionMenuListItem\n actionState={actionState}\n disabled={disabled}\n index={idx}\n // eslint-disable-next-line react/no-array-index-key\n key={idx}\n onAction={handleAction}\n />\n ))}\n </Menu>\n }\n popover={popoverProps}\n ref={setReferenceElement}\n />\n ),\n [actionStates, disabled, idPrefix, popoverProps, t],\n )\n\n return (\n <ActionDialogWrapper actionStates={actionStates} referenceElement={referenceElement}>\n {renderActionDialog}\n </ActionDialogWrapper>\n )\n}\n\ninterface ActionMenuListItemProps {\n actionState: DocumentActionDescription\n disabled: boolean\n index: number\n onAction: (idx: number) => void\n}\n\nexport function ActionMenuListItem(props: ActionMenuListItemProps) {\n const {actionState, disabled, index, onAction} = props\n const {onHandle} = actionState\n\n const handleClick = useCallback(() => {\n onAction(index)\n if (onHandle) onHandle()\n }, [index, onAction, onHandle])\n\n const hotkeys = useMemo(() => {\n return actionState.shortcut\n ? String(actionState.shortcut)\n .split('+')\n .map((s) => s.slice(0, 1).toUpperCase() + s.slice(1))\n : undefined\n }, [actionState.shortcut])\n\n return (\n <MenuItem\n data-testid={`action-${actionState.label.replace(' ', '')}`}\n disabled={disabled || Boolean(actionState.disabled)}\n hotkeys={hotkeys}\n icon={actionState.icon}\n onClick={handleClick}\n text={actionState.label}\n tone={actionState.tone}\n {...(actionState.disabled && {tooltipProps: {content: actionState.title}})}\n />\n )\n}\n","import {RevertIcon} from '@sanity/icons'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDialogProps,\n useDocumentOperation,\n useDocumentOperationEvent,\n useTranslation,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\n\n/** @internal */\nexport const HistoryRestoreAction: DocumentActionComponent = ({\n id,\n type,\n revision,\n onComplete,\n release,\n}) => {\n const {restore} = useDocumentOperation(id, type, release)\n const {revisionNotFound} = useDocumentPane()\n const event = useDocumentOperationEvent(id, type)\n const {navigateIntent} = useRouter()\n const prevEvent = useRef(event)\n const [isConfirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const {t} = useTranslation(structureLocaleNamespace)\n\n const handleConfirm = useCallback(() => {\n restore.execute(revision!)\n onComplete()\n }, [restore, revision, onComplete])\n\n /**\n * If the restore operation is successful, navigate to the document edit view\n */\n useEffect(() => {\n if (!event || event === prevEvent.current) return\n\n if (event.type === 'success' && event.op === 'restore') {\n navigateIntent('edit', {id, type})\n }\n\n prevEvent.current = event\n }, [event, id, navigateIntent, type])\n\n const handle = useCallback(() => {\n setConfirmDialogOpen(true)\n }, [])\n\n const dialog: DocumentActionDialogProps | null = useMemo(() => {\n if (isConfirmDialogOpen) {\n return {\n type: 'confirm',\n tone: 'critical',\n onCancel: onComplete,\n onConfirm: handleConfirm,\n message: t('action.restore.confirm.message'),\n }\n }\n\n return null\n }, [handleConfirm, isConfirmDialogOpen, onComplete, t])\n\n const isRevisionInitial = revision === '@initial'\n const isRevisionLatest = revision === undefined // undefined means latest revision\n\n return useMemo(() => {\n if (isRevisionLatest || revisionNotFound) {\n return null\n }\n\n return {\n label: t('action.restore.label'),\n tone: 'caution',\n onHandle: handle,\n title: t(\n isRevisionInitial\n ? 'action.restore.disabled.cannot-restore-initial'\n : 'action.restore.tooltip',\n ),\n icon: RevertIcon,\n dialog,\n disabled: isRevisionInitial,\n }\n }, [dialog, handle, isRevisionInitial, isRevisionLatest, revisionNotFound, t])\n}\n\nHistoryRestoreAction.action = 'restore'\nHistoryRestoreAction.displayName = 'HistoryRestoreAction'\n","/* eslint-disable no-warning-comments */\n/* eslint-disable camelcase */\nimport {Flex, LayerProvider, Stack, Text} from '@sanity/ui'\nimport {memo, useCallback, useMemo, useState} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n Hotkeys,\n isSanityDefinedAction,\n usePerspective,\n useSource,\n} from 'sanity'\n\nimport {Button, Tooltip} from '../../../../ui-components'\nimport {RenderActionCollectionState, type ResolvedAction} from '../../../components'\nimport {HistoryRestoreAction} from '../../../documentActions'\nimport {toLowerCaseNoSpaces} from '../../../util/toLowerCaseNoSpaces'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {ActionMenuButton} from './ActionMenuButton'\nimport {ActionStateDialog} from './ActionStateDialog'\n\ninterface DocumentStatusBarActionsInnerProps {\n disabled: boolean\n showMenu: boolean\n states: ResolvedAction[]\n}\n\nconst DocumentStatusBarActionsInner = memo(function DocumentStatusBarActionsInner(\n props: DocumentStatusBarActionsInnerProps,\n) {\n const {disabled, showMenu, states} = props\n const {__internal_tasks} = useSource()\n const {editState} = useDocumentPane()\n const {selectedReleaseId} = usePerspective()\n const [firstActionState, ...menuActionStates] = states\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n\n // TODO: This could be refactored to use the tooltip from the button if the firstAction.title was updated to a string.\n const tooltipContent = useMemo(() => {\n if (!firstActionState || (!firstActionState.title && !firstActionState.shortcut)) return null\n\n return (\n <Flex style={{maxWidth: 300}} align=\"center\" gap={3}>\n {firstActionState.title && <Text size={1}>{firstActionState.title}</Text>}\n {firstActionState.shortcut && (\n <Hotkeys\n data-testid=\"document-status-bar-hotkeys\"\n fontSize={1}\n style={{marginTop: -4, marginBottom: -4}}\n keys={String(firstActionState.shortcut)\n .split('+')\n .map((s) => s.slice(0, 1).toUpperCase() + s.slice(1).toLowerCase())}\n />\n )}\n </Flex>\n )\n }, [firstActionState])\n const showFirstActionButton = selectedReleaseId\n ? // If the first action is a custom action and we are in a version document show it.\n firstActionState && !isSanityDefinedAction(firstActionState)\n : firstActionState && !editState?.liveEdit\n\n const sideMenuItems = useMemo(() => {\n return showFirstActionButton ? menuActionStates : [firstActionState, ...menuActionStates]\n }, [showFirstActionButton, firstActionState, menuActionStates])\n\n return (\n <Flex align=\"center\" gap={1}>\n {__internal_tasks && __internal_tasks.footerAction}\n {showFirstActionButton && (\n <LayerProvider zOffset={200}>\n <Tooltip disabled={!tooltipContent} content={tooltipContent} placement=\"top\">\n <Stack>\n <Button\n data-testid={`action-${toLowerCaseNoSpaces(firstActionState.label)}`}\n disabled={disabled || Boolean(firstActionState.disabled)}\n icon={firstActionState.icon}\n // eslint-disable-next-line react/jsx-handler-names\n onClick={firstActionState.onHandle}\n ref={setButtonElement}\n text={firstActionState.label}\n tone={firstActionState.tone || 'primary'}\n />\n </Stack>\n </Tooltip>\n </LayerProvider>\n )}\n {showMenu && menuActionStates.length > 0 && (\n <ActionMenuButton actionStates={sideMenuItems} disabled={disabled} />\n )}\n {firstActionState && firstActionState.dialog && (\n <ActionStateDialog dialog={firstActionState.dialog} referenceElement={buttonElement} />\n )}\n </Flex>\n )\n})\n\nexport const DocumentStatusBarActions = memo(function DocumentStatusBarActions() {\n const {\n actions: allActions,\n connectionState,\n documentId,\n editState,\n isInitialValueLoading,\n } = useDocumentPane()\n\n // The restore action has a dedicated place in the UI; it's only visible when the user is viewing\n // a different document revision. It must be omitted from this collection.\n const actions = useMemo(\n () => (allActions ?? []).filter((action) => !isRestoreAction(action)),\n [allActions],\n )\n const actionProps: Omit<DocumentActionProps, 'onComplete'> | null = useMemo(\n () => (editState ? {...editState, initialValueResolved: !isInitialValueLoading} : null),\n [editState, isInitialValueLoading],\n )\n\n const renderDocumentStatusBarActions = useCallback<\n (props: {states: ResolvedAction[]}) => React.ReactNode\n >(\n ({states}) => (\n <DocumentStatusBarActionsInner\n disabled={connectionState !== 'connected'}\n showMenu={actions.length > 1}\n states={states}\n // Use document ID as key to make sure that the actions state is reset when the document changes\n key={documentId}\n />\n ),\n [actions.length, connectionState, documentId],\n )\n\n if (actions.length === 0 || !actionProps) {\n return null\n }\n\n return (\n <RenderActionCollectionState actions={actions} actionProps={actionProps} group=\"default\">\n {renderDocumentStatusBarActions}\n </RenderActionCollectionState>\n )\n})\n\nexport const HistoryStatusBarActions = memo(function HistoryStatusBarActions() {\n const {\n actions,\n connectionState,\n editState,\n revisionId: revision,\n isInitialValueLoading,\n } = useDocumentPane()\n\n const disabled = (editState?.draft || editState?.published || {})._rev === revision\n const actionProps: Omit<DocumentActionProps, 'onComplete'> | null = useMemo(\n () =>\n editState\n ? {\n ...editState,\n revision: revision || undefined,\n initialValueResolved: !isInitialValueLoading,\n }\n : null,\n [editState, revision, isInitialValueLoading],\n )\n\n // If multiple `restore` actions are defined, ensure only the final one is used.\n const historyActions = useMemo(() => (actions ?? []).filter(isRestoreAction).slice(-1), [actions])\n\n const renderDocumentStatusBarActions = useCallback<\n (props: {states: DocumentActionDescription[]}) => React.ReactNode\n >(\n ({states}) => (\n <DocumentStatusBarActionsInner\n disabled={connectionState !== 'connected' || Boolean(disabled)}\n showMenu={false}\n states={states}\n />\n ),\n [connectionState, disabled],\n )\n if (!actionProps) {\n return null\n }\n return (\n <RenderActionCollectionState actions={historyActions} actionProps={actionProps} group=\"default\">\n {renderDocumentStatusBarActions}\n </RenderActionCollectionState>\n )\n})\n\nexport function isRestoreAction(\n action: DocumentActionComponent,\n): action is DocumentActionComponent & {action: 'restore'} {\n return action.action === HistoryRestoreAction.action\n}\n","import {Text} from '@sanity/ui'\nimport {memo, useCallback, useMemo} from 'react'\nimport {\n formatRelativeLocalePublishDate,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n isDraftId,\n isPublishedId,\n isPublishedPerspective,\n isReleaseScheduledOrScheduling,\n isVersionId,\n type ReleaseDocument,\n Translate,\n useActiveReleases,\n useDateTimeFormat,\n type UseDateTimeFormatOptions,\n useOnlyHasVersions,\n usePerspective,\n useSchema,\n useSetPerspective,\n useTranslation,\n VersionChip,\n} from 'sanity'\n\nimport {isLiveEditEnabled} from '../../../../../components/paneItem/helpers'\nimport {usePaneRouter} from '../../../../../components/paneRouter/usePaneRouter'\nimport {useFilteredReleases} from '../../../../../hooks/useFilteredReleases'\nimport {useDocumentPane} from '../../../useDocumentPane'\n\nconst TooltipContent = ({release}: {release: ReleaseDocument}) => {\n const {t} = useTranslation()\n\n if (release.state === 'archived') {\n return <Text size={1}>{t('release.chip.tooltip.archived')}</Text>\n }\n if (release.metadata.releaseType === 'asap') {\n return <Text size={1}>{t('release.type.asap')}</Text>\n }\n if (release.metadata.releaseType === 'scheduled') {\n const isActive = release.state === 'active'\n\n return (\n release.metadata.intendedPublishAt && (\n <Text size={1}>\n {isActive ? (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.intended-for-date\"\n values={{\n date: formatRelativeLocalePublishDate(release),\n }}\n />\n ) : (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.scheduled-for-date\"\n values={{\n date: formatRelativeLocalePublishDate(release),\n }}\n />\n )}\n </Text>\n )\n )\n }\n\n if (release.metadata.releaseType === 'undecided') {\n return <Text size={1}>{t('release.type.undecided')}</Text>\n }\n return null\n}\n\nconst DATE_TIME_FORMAT: UseDateTimeFormatOptions = {\n dateStyle: 'medium',\n timeStyle: 'short',\n}\n\nexport const DocumentPerspectiveList = memo(function DocumentPerspectiveList() {\n const {selectedReleaseId, selectedPerspectiveName} = usePerspective()\n const {t} = useTranslation()\n const setPerspective = useSetPerspective()\n const {params, setParams} = usePaneRouter()\n const dateTimeFormat = useDateTimeFormat(DATE_TIME_FORMAT)\n const {loading} = useActiveReleases()\n const schema = useSchema()\n const {editState, displayed, documentType, documentId} = useDocumentPane()\n const isCreatingDocument = displayed && !displayed._createdAt\n const filteredReleases = useFilteredReleases({displayed, documentId})\n const onlyHasVersions = useOnlyHasVersions({documentId})\n\n const handlePerspectiveChange = useCallback(\n (perspective: Parameters<typeof setPerspective>[0]) => () => {\n if (perspective === 'published' && params?.historyVersion) {\n setParams({\n ...params,\n rev: params?.historyEvent || undefined,\n since: undefined,\n historyVersion: undefined,\n })\n }\n setPerspective(perspective)\n },\n [setPerspective, setParams, params],\n )\n\n const schemaType = schema.get(documentType)\n const isLiveEdit = schemaType ? isLiveEditEnabled(schemaType) : false\n\n const isPublishedChipDisabled = useMemo(() => {\n // If it's a live edit document the only option to edit it is through\n // the published perspective, users should be able to select it.\n if (isLiveEdit && !selectedReleaseId) return false\n\n // If it's not live edit, we want to check for the existence of the published doc.\n return !editState?.published\n }, [isLiveEdit, selectedReleaseId, editState?.published])\n\n const getReleaseChipState = useCallback(\n (release: ReleaseDocument): {selected: boolean; disabled?: boolean} => {\n if (!params?.historyVersion)\n return {\n selected:\n getReleaseIdFromReleaseDocumentId(release._id) ===\n getVersionFromId(displayed?._id || ''),\n }\n\n const isReleaseHistoryMatch =\n getReleaseIdFromReleaseDocumentId(release._id) === params.historyVersion\n\n return {selected: isReleaseHistoryMatch, disabled: isReleaseHistoryMatch}\n },\n [displayed?._id, params?.historyVersion],\n )\n\n const isPublishSelected: boolean = useMemo(() => {\n /**\n * The publish perspective is selected when:\n * - the document is live edit and there is no draft\n * - the document is published and the selected perspective is published\n */\n if (isLiveEdit && !editState?.draft?._id && !selectedReleaseId) return true\n if (\n isPublishedId(displayed?._id || '') &&\n isPublishedPerspective(selectedPerspectiveName || '')\n ) {\n return true\n }\n return false\n }, [\n displayed?._id,\n editState?.draft?._id,\n isLiveEdit,\n selectedPerspectiveName,\n selectedReleaseId,\n ])\n\n const isDraftSelected: boolean = useMemo(() => {\n const displayedId = displayed?._id || ''\n /** the draft is selected when:\n * not viewing a historical version,\n * when the document displayed is a draft,\n * when the perspective is null,\n * when the document is not published and the displayed version is draft,\n * when there is no draft (new document),\n */\n if (isPublishSelected) return false\n if (params?.historyVersion) return false\n if (selectedPerspectiveName) return false\n if (isVersionId(displayedId)) return false\n if (isDraftId(displayedId)) return true\n if (\n isPublishedId(displayedId) &&\n editState?.published &&\n isPublishedPerspective(selectedPerspectiveName || '')\n )\n return false\n return true\n }, [\n displayed?._id,\n editState?.published,\n isPublishSelected,\n params?.historyVersion,\n selectedPerspectiveName,\n ])\n\n const isDraftDisabled: boolean = useMemo(() => {\n // Draft is disabled when the document has no published or draft but has versions\n if (onlyHasVersions || (isCreatingDocument && selectedReleaseId)) {\n return true\n }\n\n // Draft is disabled when we are creating a new document inside a release\n // or when the document is live edit and there is no draft\n if (!editState?.draft && !isLiveEdit) {\n return false\n }\n\n if (isCreatingDocument && selectedReleaseId) return true\n if (isLiveEdit) return true\n return false\n }, [editState?.draft, isCreatingDocument, isLiveEdit, onlyHasVersions, selectedReleaseId])\n\n return (\n <>\n <VersionChip\n tooltipContent={\n <Text size={1}>\n {editState?.published && editState?.published?._updatedAt ? (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.published-date\"\n values={{date: dateTimeFormat.format(new Date(editState?.published._updatedAt))}}\n />\n ) : (\n <>{t('release.chip.tooltip.not-published')}</>\n )}\n </Text>\n }\n disabled={isPublishedChipDisabled}\n onClick={handlePerspectiveChange('published')}\n selected={isPublishSelected}\n text={t('release.chip.published')}\n tone=\"positive\"\n contextValues={{\n documentId: editState?.published?._id || editState?.id || '',\n menuReleaseId: editState?.published?._id || editState?.id || '',\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n documentType,\n fromRelease: 'published',\n isVersion: false,\n disabled: !editState?.published,\n }}\n />\n <VersionChip\n tooltipContent={\n <Text size={1}>\n {editState?.draft ? (\n <>\n {editState?.draft._updatedAt ? (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.edited-date\"\n values={{date: dateTimeFormat.format(new Date(editState?.draft._updatedAt))}}\n />\n ) : (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.created-date\"\n values={{date: dateTimeFormat.format(new Date(editState?.draft._createdAt))}}\n />\n )}\n </>\n ) : (\n <>\n {isLiveEdit\n ? t('release.chip.tooltip.draft-disabled.live-edit')\n : t('release.chip.tooltip.no-edits')}\n </>\n )}\n </Text>\n }\n selected={isDraftSelected}\n disabled={isDraftDisabled}\n text={t('release.chip.draft')}\n tone={editState?.draft ? 'caution' : 'neutral'}\n onClick={handlePerspectiveChange('drafts')}\n contextValues={{\n documentId: editState?.draft?._id || editState?.published?._id || editState?.id || '',\n menuReleaseId: editState?.draft?._id || editState?.published?._id || editState?.id || '',\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n documentType: documentType,\n fromRelease: 'draft',\n isVersion: false,\n disabled: !editState?.draft,\n }}\n />\n {filteredReleases.inCreation && (\n <VersionChip\n tooltipContent={<TooltipContent release={filteredReleases.inCreation} />}\n selected\n onClick={() => {}}\n locked={false}\n tone={getReleaseTone(filteredReleases.inCreation)}\n text={\n filteredReleases.inCreation.metadata.title || t('release.placeholder-untitled-release')\n }\n contextValues={{\n disabled: true, // disable the chip context menu, this one is in creation\n documentId: displayed?._id || '',\n menuReleaseId: filteredReleases.inCreation._id,\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n documentType,\n fromRelease: getReleaseIdFromReleaseDocumentId(filteredReleases.inCreation._id),\n releaseState: filteredReleases.inCreation.state,\n isVersion: true,\n }}\n />\n )}\n\n {displayed &&\n filteredReleases.currentReleases?.map((release) => (\n <VersionChip\n key={release._id}\n tooltipContent={<TooltipContent release={release} />}\n {...getReleaseChipState(release)}\n onClick={handlePerspectiveChange(getReleaseIdFromReleaseDocumentId(release._id))}\n text={release.metadata.title || t('release.placeholder-untitled-release')}\n tone={getReleaseTone(release)}\n locked={isReleaseScheduledOrScheduling(release)}\n contextValues={{\n documentId: displayed?._id || '',\n menuReleaseId: release._id,\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n documentType: documentType,\n fromRelease: getReleaseIdFromReleaseDocumentId(release._id),\n releaseState: release.state,\n isVersion: true,\n }}\n />\n ))}\n </>\n )\n})\n","import {ArrowLeftIcon, CloseIcon, SplitVerticalIcon} from '@sanity/icons'\nimport {Box, Card, Flex} from '@sanity/ui'\n// eslint-disable-next-line camelcase\nimport {getTheme_v2, rgba} from '@sanity/ui/theme'\nimport {\n type ForwardedRef,\n forwardRef,\n memo,\n useCallback,\n useDeferredValue,\n useMemo,\n useState,\n} from 'react'\nimport {type DocumentActionDescription, useFieldActions, useTranslation} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {Button, TooltipDelayGroupProvider} from '../../../../../ui-components'\nimport {\n PaneContextMenuButton,\n PaneHeader,\n PaneHeaderActionButton,\n RenderActionCollectionState,\n usePane,\n usePaneRouter,\n} from '../../../../components'\nimport {type _PaneMenuNode} from '../../../../components/pane/types'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {isMenuNodeButton, isNotMenuNodeButton, resolveMenuNodes} from '../../../../menuNodes'\nimport {type PaneMenuItem} from '../../../../types'\nimport {useStructureTool} from '../../../../useStructureTool'\nimport {ActionDialogWrapper, ActionMenuListItem} from '../../statusBar/ActionMenuButton'\nimport {isRestoreAction} from '../../statusBar/DocumentStatusBarActions'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {DocumentHeaderTitle} from './DocumentHeaderTitle'\nimport {DocumentPerspectiveList} from './perspective/DocumentPerspectiveList'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DocumentPanelHeaderProps {\n menuItems: PaneMenuItem[]\n}\n\nconst HorizontalScroller = styled(Card)((props) => {\n const theme = getTheme_v2(props.theme)\n\n return css`\n scrollbar-width: none;\n z-index: 1;\n flex: 1;\n position: relative;\n > div {\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n }\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: ${theme.space[3]}px;\n background: linear-gradient(to right, ${rgba(theme.color.bg, 0)}, var(--card-bg-color));\n }\n `\n})\n\nexport const DocumentPanelHeader = memo(\n forwardRef(function DocumentPanelHeader(\n _props: DocumentPanelHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {menuItems} = _props\n const {\n actions: allActions,\n editState,\n onMenuAction,\n isInitialValueLoading,\n onPaneClose,\n onPaneSplit,\n menuItemGroups,\n schemaType,\n connectionState,\n views,\n unstable_languageFilter,\n } = useDocumentPane()\n const {features} = useStructureTool()\n const {index, BackLink, hasGroupSiblings} = usePaneRouter()\n const {actions: fieldActions} = useFieldActions()\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n\n // The restore action has a dedicated place in the UI; it's only visible when the user is\n // viewing a different document revision. It must be omitted from this collection.\n const actions = useMemo(\n () => (allActions ?? []).filter((action) => !isRestoreAction(action)),\n [allActions],\n )\n\n const menuNodes = useMemo(\n () =>\n resolveMenuNodes({actionHandler: onMenuAction, fieldActions, menuItems, menuItemGroups}),\n [onMenuAction, fieldActions, menuItemGroups, menuItems],\n )\n\n const menuButtonNodes = useMemo(() => menuNodes.filter(isMenuNodeButton), [menuNodes])\n const contextMenuNodes = useMemo(() => menuNodes.filter(isNotMenuNodeButton), [menuNodes])\n const showTabs = views.length > 1\n\n const {collapsed, isLast} = usePane()\n // Prevent focus if this is the last (non-collapsed) pane.\n const tabIndex = isLast && !collapsed ? -1 : 0\n\n // there are three kinds of buttons possible:\n //\n // 1. split pane - creates a new split pane\n // 2. close split pane — closes the current split pane\n // 3. close pane group — closes the current pane group\n\n // show the split pane button if they're enabled and there is more than one\n // view available to use to create a split view\n const showSplitPaneButton = features.splitViews && onPaneSplit && views.length > 1\n\n // show the split pane button close button if the split button is showing\n // and there is more than one split pane open (aka has-siblings)\n const showSplitPaneCloseButton = showSplitPaneButton && hasGroupSiblings\n\n // show the back button if both the feature is enabled and the current pane\n // is not the first\n const showBackButton = features.backButton && index > 0\n\n // show the pane group close button if the `showSplitPaneCloseButton` is\n // _not_ showing (the split pane button replaces the group close button)\n // and if the back button is not showing (the back button and the close\n // button do the same thing and shouldn't be shown at the same time)\n // and if a BackLink component was provided\n const showPaneGroupCloseButton = !showSplitPaneCloseButton && !showBackButton && !!BackLink\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const renderPaneActions = useCallback<\n (props: {states: DocumentActionDescription[]}) => React.ReactNode\n >(\n ({states}) => (\n <DocumentPanelHeaderActionDialogDeferred\n contextMenuNodes={contextMenuNodes}\n setReferenceElement={setReferenceElement}\n referenceElement={referenceElement}\n states={states}\n />\n ),\n [contextMenuNodes, referenceElement],\n )\n\n const title = useMemo(() => <DocumentHeaderTitle />, [])\n const backButton = useMemo(\n () =>\n showBackButton && (\n <Button\n as={BackLink}\n data-as=\"a\"\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n tooltipProps={{content: t('pane-header.back-button.text')}}\n />\n ),\n [BackLink, showBackButton, t],\n )\n const renderedActions = useMemo(\n () => (\n <Flex align=\"center\" gap={1}>\n {unstable_languageFilter.length > 0 && (\n <>\n {unstable_languageFilter.map((LanguageFilterComponent, idx) => {\n return (\n <LanguageFilterComponent\n // eslint-disable-next-line react/no-array-index-key\n key={`language-filter-${idx}`}\n schemaType={schemaType}\n />\n )\n })}\n </>\n )}\n\n {menuButtonNodes.map((item) => (\n <PaneHeaderActionButton key={item.key} node={item} />\n ))}\n {editState && (\n <RenderActionCollectionState\n actions={actions}\n actionProps={{...editState, initialValueResolved: !isInitialValueLoading}}\n group=\"paneActions\"\n >\n {renderPaneActions}\n </RenderActionCollectionState>\n )}\n\n {showSplitPaneButton && (\n <Button\n aria-label={t('buttons.split-pane-button.aria-label')}\n icon={SplitVerticalIcon}\n key=\"split-pane-button\"\n mode=\"bleed\"\n onClick={onPaneSplit}\n tooltipProps={{content: t('buttons.split-pane-button.tooltip')}}\n />\n )}\n\n {showSplitPaneCloseButton && (\n <Button\n icon={CloseIcon}\n key=\"close-view-button\"\n mode=\"bleed\"\n onClick={onPaneClose}\n tooltipProps={{content: t('buttons.split-pane-close-button.title')}}\n />\n )}\n\n {showPaneGroupCloseButton && (\n <Button\n icon={CloseIcon}\n key=\"close-view-button\"\n mode=\"bleed\"\n tooltipProps={{content: t('buttons.split-pane-close-group-button.title')}}\n as={BackLink}\n />\n )}\n </Flex>\n ),\n [\n BackLink,\n actions,\n editState,\n isInitialValueLoading,\n menuButtonNodes,\n onPaneClose,\n onPaneSplit,\n renderPaneActions,\n schemaType,\n showPaneGroupCloseButton,\n showSplitPaneButton,\n showSplitPaneCloseButton,\n t,\n unstable_languageFilter,\n ],\n )\n\n return (\n <TooltipDelayGroupProvider>\n {collapsed ? (\n <PaneHeader\n border\n ref={ref}\n loading={connectionState === 'connecting' && !editState?.draft && !editState?.published}\n title={title}\n tabIndex={tabIndex}\n backButton={backButton}\n />\n ) : (\n <Card hidden={collapsed} style={{lineHeight: 0}} borderBottom>\n <Flex gap={3} paddingY={3}>\n <HorizontalScroller>\n <Flex\n flex={1}\n gap={1}\n overflow=\"auto\"\n paddingX={3}\n data-testid=\"document-perspective-list\"\n >\n <DocumentPerspectiveList />\n </Flex>\n </HorizontalScroller>\n\n <Box flex=\"none\" paddingRight={3}>\n {renderedActions}\n </Box>\n </Flex>\n </Card>\n )}\n </TooltipDelayGroupProvider>\n )\n }),\n)\n\nconst DocumentPanelHeaderActionDialogDeferred = memo(\n function DocumentPanelHeaderActionDialogDeferred(props: {\n states: DocumentActionDescription[]\n setReferenceElement: React.Dispatch<React.SetStateAction<HTMLElement | null>>\n referenceElement: HTMLElement | null\n contextMenuNodes: _PaneMenuNode[]\n }) {\n const {setReferenceElement, referenceElement, contextMenuNodes} = props\n /**\n * The purpose of this component is to allow deferring the rendering of document action hook states if the main thread becomes very busy.\n * The `useDeferredValue` doesn't have an effect unless it's used to delay rendering a component that has `React.memo` to prevent unnecessary re-renders.\n */\n const states = useDeferredValue(props.states)\n\n return (\n <DocumentPanelHeaderActionDialog\n setReferenceElement={setReferenceElement}\n referenceElement={referenceElement}\n contextMenuNodes={contextMenuNodes}\n states={states}\n />\n )\n },\n)\n\nconst DocumentPanelHeaderActionDialog = memo(function DocumentPanelHeaderActionDialog(props: {\n states: DocumentActionDescription[]\n setReferenceElement: React.Dispatch<React.SetStateAction<HTMLElement | null>>\n referenceElement: HTMLElement | null\n contextMenuNodes: _PaneMenuNode[]\n}) {\n const {states, setReferenceElement, contextMenuNodes, referenceElement} = props\n\n const renderActionDialog = useCallback<\n ({handleAction}: {handleAction: (idx: number) => void}) => React.ReactNode\n >(\n ({handleAction}) => (\n <div ref={setReferenceElement}>\n <PaneContextMenuButton\n nodes={contextMenuNodes}\n key=\"context-menu\"\n actionsNodes={\n states.length > 0\n ? states.map((actionState, actionIndex) => (\n <ActionMenuListItem\n key={actionState.label}\n actionState={actionState}\n disabled={Boolean(actionState.disabled)}\n index={actionIndex}\n onAction={handleAction}\n />\n ))\n : undefined\n }\n />\n </div>\n ),\n [contextMenuNodes, setReferenceElement, states],\n )\n\n return (\n <ActionDialogWrapper actionStates={states} referenceElement={referenceElement}>\n {renderActionDialog}\n </ActionDialogWrapper>\n )\n})\n","import {Button, type ButtonProps} from '../../../ui-components'\n\ninterface SpacerButtonProps {\n size?: ButtonProps['size']\n}\n\n/**\n * This renders a visually hidden <Button> component that is still contributes\n * to document layout.\n *\n * It's used to simplify padding in Sanity UI components that contain buttons which\n * may not always be rendered.\n *\n * TODO: let's find a more elegant solve to this layout shift problem\n *\n * @internal\n */\nexport function SpacerButton({size}: SpacerButtonProps) {\n return (\n <Button\n aria-hidden\n disabled\n size={size}\n style={{\n pointerEvents: 'none',\n visibility: 'hidden',\n width: 0,\n }}\n text=\"-\"\n />\n )\n}\n","import {Badge, type BadgeTone, Inline} from '@sanity/ui'\nimport {memo, useCallback, useDeferredValue} from 'react'\nimport {type DocumentBadgeDescription} from 'sanity'\n\nimport {Tooltip} from '../../../../ui-components'\nimport {RenderBadgeCollectionState} from '../../../components'\nimport {useDocumentPane} from '../useDocumentPane'\n\ninterface DocumentBadgesInnerProps {\n states: DocumentBadgeDescription[]\n}\n\nconst BADGE_TONES: Record<string, BadgeTone | undefined> = {\n primary: 'primary',\n success: 'positive',\n warning: 'caution',\n danger: 'critical',\n}\n\nconst DocumentBadgesInner = memo(function DocumentBadgesInner({states}: DocumentBadgesInnerProps) {\n if (states.length === 0) {\n return null\n }\n return (\n <Inline space={1}>\n {states.map((badge, index) => (\n <Tooltip\n content={badge.title}\n disabled={!badge.title}\n key={`${badge.label}-${index}`}\n placement=\"top\"\n portal\n >\n <Badge\n fontSize={1}\n mode=\"outline\"\n paddingX={2}\n paddingY={1}\n radius={4}\n tone={badge.color ? BADGE_TONES[badge.color] : undefined}\n style={{whiteSpace: 'nowrap'}}\n >\n {badge.label}\n </Badge>\n </Tooltip>\n ))}\n </Inline>\n )\n})\n\nconst DocumentBadgesDeferred = memo(function DocumentBadgesDeferred(\n props: DocumentBadgesInnerProps,\n) {\n /**\n * The purpose of this component is to allow deferring the rendering of document action hook states if the main thread becomes very busy.\n * The `useDeferredValue` doesn't have an effect unless it's used to delay rendering a component that has `React.memo` to prevent unnecessary re-renders.\n */\n const states = useDeferredValue(props.states)\n return <DocumentBadgesInner states={states} />\n})\n\nexport function DocumentBadges() {\n const {badges, editState} = useDocumentPane()\n\n const renderDocumentBadges = useCallback<\n (props: {states: DocumentBadgeDescription[]}) => React.ReactNode\n >(({states}) => <DocumentBadgesDeferred states={states} />, [])\n\n if (!editState || !badges) return null\n\n return (\n <RenderBadgeCollectionState badges={badges} badgeProps={editState}>\n {renderDocumentBadges}\n </RenderBadgeCollectionState>\n )\n}\n","import {type ChunkType, type StudioLocaleResourceKeys} from 'sanity'\n\n/**\n * Maps from a chunk type to an i18n key for the operation\n *\n * @internal\n */\nexport const TIMELINE_ITEM_I18N_KEY_MAPPING: Record<ChunkType, StudioLocaleResourceKeys> = {\n initial: 'timeline.operation.created-initial',\n create: 'timeline.operation.created',\n publish: 'timeline.operation.published',\n editLive: 'timeline.operation.edited-live',\n editDraft: 'timeline.operation.edited-draft',\n unpublish: 'timeline.operation.unpublished',\n discardDraft: 'timeline.operation.draft-discarded',\n delete: 'timeline.operation.deleted',\n}\n","import {motion} from 'framer-motion'\nimport {type ComponentProps} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nconst StyledMotionPath = styled(motion.path)`\n transform-origin: center;\n`\n\ntype MotionCircleProps = Omit<ComponentProps<typeof motion.circle>, 'd'>\ntype MotionPathProps = Omit<ComponentProps<typeof motion.path>, 'd' | 'ref'>\n\nconst Circle = (props: MotionCircleProps) => (\n <motion.circle fill=\"none\" r=\"8\" cx=\"12.5\" cy=\"12.5\" strokeWidth=\"1.2\" {...props} />\n)\nconst Arrows = (props: MotionPathProps) => (\n <StyledMotionPath\n fill=\"none\"\n d=\"M14 17.5619L11.5 20.5L14.5 23.0619M11 7.43811L13.5 4.50001L10.5 1.93811\"\n {...props}\n />\n)\nconst Checkmark = (props: MotionPathProps) => (\n <motion.path d=\"M9.5 12.1316L11.7414 14.5L16 10\" {...props} />\n)\n\nconst rotateAnimation = keyframes`\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n`\nconst RotateGroup = styled.g`\n transform-origin: center;\n\n &[data-rotate] {\n animation: ${rotateAnimation} 1s ease-in-out infinite;\n }\n`\n\nconst root = {\n syncing: {\n scale: 1,\n transition: {\n duration: 0,\n },\n },\n saved: {\n scale: [1, 0.8, 1.2, 0.9, 1.1, 0.95, 1.05, 0.99, 1],\n transition: {\n duration: 0.5,\n delay: 0.2,\n },\n },\n changes: {transition: {duration: 0}},\n}\n\nconst circle = {\n syncing: {\n strokeDasharray: '0, 0, 23, 3, 23, 3',\n strokeDashoffset: 10,\n opacity: 1,\n transition: {\n duration: 0,\n },\n },\n saved: {\n strokeDasharray: '0, 0, 23, 0, 23, 0',\n strokeDashoffset: 10,\n opacity: 1,\n transition: {\n duration: 0.2,\n },\n },\n changes: {\n strokeDasharray: '0, 60, 23, 0, 23, 0',\n strokeDashoffset: 0,\n opacity: 0,\n transition: {\n duration: 0.5,\n },\n },\n}\n\nconst arrows = {\n syncing: {\n opacity: 1,\n transition: {\n duration: 0,\n },\n },\n saved: {\n opacity: 0,\n transition: {\n duration: 0.2,\n },\n },\n changes: {\n opacity: 0,\n },\n}\n\nconst checkmark = {\n syncing: {\n pathLength: 0,\n transition: {duration: 0},\n },\n saved: {\n pathLength: 1,\n transition: {\n delay: 0.4,\n duration: 0.3,\n },\n },\n changes: {\n pathLength: 0,\n transition: {\n duration: 0.2,\n },\n },\n}\n\ninterface AnimatedStatusIconProps {\n status?: 'changes' | 'saved' | 'syncing'\n}\n\nexport function AnimatedStatusIcon(props: AnimatedStatusIconProps) {\n const {status} = props\n\n if (!status) {\n return null\n }\n\n return (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n data-sanity-icon=\"animated-status-icon\"\n >\n <motion.g variants={root} initial={status} animate={status}>\n <RotateGroup data-rotate={status === 'changes' ? undefined : ''}>\n <Arrows variants={arrows} initial={status} animate={status} />\n <Circle variants={circle} initial={status} animate={status} />\n </RotateGroup>\n <Checkmark variants={checkmark} initial={status} animate={status} />\n </motion.g>\n </svg>\n )\n}\n","import {type ButtonTone, Flex, Text} from '@sanity/ui'\nimport {TextWithTone, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {AnimatedStatusIcon} from './AnimatedStatusIcon'\n\ntype StatusType = 'saved' | 'syncing'\ninterface ReviewChangesButtonProps {\n status?: StatusType\n}\n\nconst STATUS_DICTIONARY: Record<StatusType, {i18nKey: string; tone: ButtonTone}> = {\n saved: {\n i18nKey: 'status-bar.document-status-pulse.status.saved.text',\n tone: 'positive',\n },\n syncing: {\n i18nKey: 'status-bar.document-status-pulse.status.syncing.text',\n tone: 'default',\n },\n}\n\nexport const DocumentStatusPulse = (props: ReviewChangesButtonProps) => {\n const {status} = props\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (status !== 'saved' && status !== 'syncing') {\n return null\n }\n\n const currentStatus = STATUS_DICTIONARY[status]\n\n return (\n <Flex align=\"center\" gap={2} data-testid=\"pane-footer-document-status-pulse\">\n <TextWithTone size={1} tone={currentStatus.tone}>\n <AnimatedStatusIcon status={status} />\n </TextWithTone>\n\n <Text muted size={1}>\n {t(currentStatus.i18nKey)}\n </Text>\n </Flex>\n )\n}\n","import {\n Box,\n // eslint-disable-next-line no-restricted-imports\n Button,\n Flex,\n Skeleton,\n Text,\n} from '@sanity/ui'\nimport {AnimatePresence, motion} from 'framer-motion'\nimport {useEffect, useLayoutEffect, useMemo, useState} from 'react'\nimport {\n AvatarSkeleton,\n isPublishedPerspective,\n TIMELINE_ITEM_I18N_KEY_MAPPING,\n useEvents,\n usePerspective,\n UserAvatar,\n useRelativeTime,\n useSource,\n useSyncState,\n useTimelineSelector,\n useTranslation,\n} from 'sanity'\n\nimport {HISTORY_INSPECTOR_NAME} from '../constants'\nimport {TIMELINE_ITEM_I18N_KEY_MAPPING as TIMELINE_ITEM_I18N_KEY_MAPPING_LEGACY} from '../timeline'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {DocumentStatusPulse} from './DocumentStatusPulse'\n\nconst RELATIVE_TIME_OPTIONS = {\n minimal: true,\n useTemporalPhrase: true,\n} as const\n\nconst MotionButton = motion.create(Button)\nconst MotionBox = motion.create(Box)\n\nconst ButtonSkeleton = () => {\n return (\n <Flex align=\"center\" gap={3} paddingLeft={1} paddingRight={2} paddingY={2}>\n <div style={{margin: -5}}>\n <AvatarSkeleton $size={0} animated />\n </div>\n <Skeleton animated style={{width: '80px', height: '15px'}} radius={2} />\n </Flex>\n )\n}\n\nconst DocumentStatusButton = ({\n author,\n translationKey,\n timestamp = '',\n}: {\n author: string\n translationKey: string\n timestamp?: string\n}) => {\n const {onHistoryOpen, inspector, onHistoryClose} = useDocumentPane()\n const {t} = useTranslation()\n const relativeTime = useRelativeTime(timestamp, RELATIVE_TIME_OPTIONS)\n\n return (\n <MotionButton\n data-testid=\"pane-footer-document-status\"\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n exit={{opacity: 0}}\n mode=\"bleed\"\n onClick={inspector?.name === HISTORY_INSPECTOR_NAME ? onHistoryClose : onHistoryOpen}\n padding={2}\n muted\n >\n <Flex align=\"center\" flex=\"none\" gap={3}>\n {author && (\n <div style={{margin: -5}}>\n <UserAvatar user={author} size={0} />\n </div>\n )}\n <Text muted size={1}>\n {t(translationKey)} {relativeTime}\n </Text>\n </Flex>\n </MotionButton>\n )\n}\n\nconst FallbackStatus = () => {\n const {editState} = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n\n const status = useMemo(() => {\n if (isPublishedPerspective(selectedPerspective) && editState?.published?._updatedAt) {\n return {\n translationKey: TIMELINE_ITEM_I18N_KEY_MAPPING.published.createDocumentVersion,\n timestamp: editState.published._updatedAt,\n }\n }\n if (editState?.version?._updatedAt) {\n return {\n translationKey:\n editState?.version?._updatedAt === editState?.version?._createdAt\n ? TIMELINE_ITEM_I18N_KEY_MAPPING.version.createDocumentVersion\n : TIMELINE_ITEM_I18N_KEY_MAPPING.version.editDocumentVersion,\n timestamp: editState.version._updatedAt,\n }\n }\n if (editState?.draft?._updatedAt) {\n return {\n translationKey:\n editState?.draft?._updatedAt === editState?.draft?._createdAt\n ? TIMELINE_ITEM_I18N_KEY_MAPPING.draft.createDocumentVersion\n : TIMELINE_ITEM_I18N_KEY_MAPPING.draft.editDocumentVersion,\n timestamp: editState.draft._updatedAt,\n }\n }\n return null\n }, [\n selectedPerspective,\n editState?.published?._updatedAt,\n editState?.version?._updatedAt,\n editState?.version?._createdAt,\n editState?.draft?._updatedAt,\n editState?.draft?._createdAt,\n ])\n if (!status) {\n return null\n }\n return (\n <DocumentStatusButton\n author=\"\"\n translationKey={status.translationKey}\n timestamp={status.timestamp}\n />\n )\n}\n\nconst EventsStatus = () => {\n const {events, loading} = useEvents()\n const event = events?.[0]\n\n if (!event && loading) {\n return <ButtonSkeleton />\n }\n if (!event) {\n return <FallbackStatus />\n }\n\n return (\n <DocumentStatusButton\n author={event.author}\n translationKey={TIMELINE_ITEM_I18N_KEY_MAPPING[event.documentVariantType][event.type]}\n timestamp={event.timestamp}\n />\n )\n}\n\nconst TimelineStatus = () => {\n const {timelineStore} = useDocumentPane()\n const chunks = useTimelineSelector(timelineStore, (state) => state.chunks)\n const loading = useTimelineSelector(timelineStore, (state) => state.isLoading)\n const event = chunks?.[0]\n\n if (!event && loading) {\n return <ButtonSkeleton />\n }\n if (!event) {\n return <FallbackStatus />\n }\n\n const author = Array.from(event.authors)[0]\n return (\n <DocumentStatusButton\n author={author}\n translationKey={TIMELINE_ITEM_I18N_KEY_MAPPING_LEGACY[event.type]}\n timestamp={event.endTimestamp}\n />\n )\n}\n\nconst SYNCING_TIMEOUT = 1000\nconst SAVED_TIMEOUT = 3000\n\nexport function DocumentStatusLine() {\n const {documentId, documentType, editState, value} = useDocumentPane()\n const [status, setStatus] = useState<'saved' | 'syncing' | null>(null)\n const source = useSource()\n const eventsEnabled = source.beta?.eventsAPI?.documents\n\n const syncState = useSyncState(documentId, documentType, editState?.release)\n\n const lastUpdated = value?._updatedAt\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n // Schedule an update to set the status to 'saved' when status changed to 'syncing.\n // We use `syncState.isSyncing` here to avoid the status being set to 'saved' when the document is syncing.\n if (status === 'syncing' && !syncState.isSyncing) {\n const timerId = setTimeout(() => setStatus('saved'), SYNCING_TIMEOUT)\n return () => clearTimeout(timerId)\n }\n // Schedule an update to clear the status when status changed to 'saved'\n if (status === 'saved') {\n const timerId = setTimeout(() => setStatus(null), SAVED_TIMEOUT)\n return () => clearTimeout(timerId)\n }\n }, [status, lastUpdated, syncState.isSyncing])\n\n // Clear the status when documentId changes to make sure we don't show the wrong status when opening a new document\n useLayoutEffect(() => {\n setStatus(null)\n }, [documentId])\n\n // Set status to 'syncing' when lastUpdated changes and we go from not syncing to syncing\n useLayoutEffect(() => {\n if (syncState.isSyncing) {\n setStatus('syncing')\n }\n }, [syncState.isSyncing, lastUpdated])\n\n return (\n <AnimatePresence>\n {status ? (\n <MotionBox\n paddingLeft={2}\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n exit={{opacity: 0}}\n >\n <DocumentStatusPulse status={status || undefined} />\n </MotionBox>\n ) : (\n <>{eventsEnabled ? <EventsStatus /> : <TimelineStatus />}</>\n )}\n </AnimatePresence>\n )\n}\n","import {RestoreIcon} from '@sanity/icons'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {format} from 'date-fns'\nimport {Translate, useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {useDocumentPane} from '../useDocumentPane'\n\nexport const StatusText = styled(Text)`\n color: var(--card-muted-fg-color);\n\n em {\n color: var(--card-fg-color);\n font-weight: 500;\n font-style: normal;\n }\n`\n\nexport function RevisionStatusLine(): React.JSX.Element {\n const {displayed, revisionNotFound} = useDocumentPane()\n const {t} = useTranslation()\n const date = displayed?._updatedAt || displayed?._createdAt\n\n const message = {\n name: 'revision',\n text: date ? (\n <Translate\n t={t}\n i18nKey=\"document-status.revision-from\"\n values={{\n date: format(new Date(date), `MMM d, yyyy '@' pp`),\n }}\n />\n ) : null,\n tone: 'caution',\n }\n\n return (\n <>\n <Flex flex={1} gap={3} padding={2}>\n <Box flex=\"none\">\n <Text size={1}>\n <RestoreIcon />\n </Text>\n </Box>\n <Box flex={1}>\n <StatusText size={1} textOverflow=\"ellipsis\">\n {revisionNotFound ? (\n <Translate t={t} i18nKey=\"document-status.revision-not-found\" />\n ) : (\n message.text\n )}\n </StatusText>\n </Box>\n </Flex>\n </>\n )\n}\n","import {useLayoutEffect} from 'react'\nimport {resizeObserver} from 'sanity'\n\nexport function useResizeObserver({\n element,\n onResize,\n}: {\n element?: HTMLDivElement | null\n onResize: (event: ResizeObserverEntry) => void\n}): void {\n useLayoutEffect(() => {\n if (element) {\n resizeObserver.observe(element, onResize)\n }\n\n return () => {\n if (element) {\n resizeObserver.unobserve(element)\n }\n }\n }, [element, onResize])\n}\n","import {Card, Flex} from '@sanity/ui'\nimport {motion} from 'framer-motion'\nimport {type Ref, useCallback, useMemo, useState} from 'react'\nimport {\n type CreateLinkMetadata,\n isPublishedPerspective,\n isReleaseDocument,\n isSanityCreateLinked,\n usePerspective,\n useSanityCreateConfig,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../../components'\nimport {SpacerButton} from '../../../components/spacerButton'\nimport {DOCUMENT_PANEL_PORTAL_ELEMENT} from '../../../constants'\nimport {EMPTY_PARAMS} from '../constants'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {useDocumentTitle} from '../useDocumentTitle'\nimport {DocumentBadges} from './DocumentBadges'\nimport {DocumentStatusBarActions, HistoryStatusBarActions} from './DocumentStatusBarActions'\nimport {DocumentStatusLine} from './DocumentStatusLine'\nimport {RevisionStatusLine} from './RevisionStatusLine'\nimport {useResizeObserver} from './useResizeObserver'\n\nexport interface DocumentStatusBarProps {\n actionsBoxRef?: Ref<HTMLDivElement>\n createLinkMetadata?: CreateLinkMetadata\n}\n\nconst CONTAINER_BREAKPOINT = 480 // px\n\nconst AnimatedCard = motion.create(Card)\n\nexport function DocumentStatusBar(props: DocumentStatusBarProps) {\n const {actionsBoxRef, createLinkMetadata} = props\n const {editState, onChange: onDocumentChange, revisionNotFound} = useDocumentPane()\n const {params = EMPTY_PARAMS} = usePaneRouter()\n const {selectedPerspective} = usePerspective()\n const {title} = useDocumentTitle()\n\n const CreateLinkedActions = useSanityCreateConfig().components?.documentLinkedActions\n\n const showingRevision = Boolean(params.rev)\n const [collapsed, setCollapsed] = useState<boolean | null>(null)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n\n const handleResize = useCallback((event: ResizeObserverEntry) => {\n setCollapsed(event.contentRect.width < CONTAINER_BREAKPOINT)\n }, [])\n\n useResizeObserver({element: rootElement, onResize: handleResize})\n\n const shouldRender = useMemo(() => {\n const isReady = Boolean(editState?.ready && typeof collapsed === 'boolean')\n if (selectedPerspective) {\n if (isPublishedPerspective(selectedPerspective)) {\n return isReady && Boolean(editState?.published)\n }\n if (isReleaseDocument(selectedPerspective)) {\n return isReady && Boolean(editState?.version)\n }\n }\n return isReady\n }, [collapsed, editState?.published, editState?.ready, editState?.version, selectedPerspective])\n\n let actions: React.JSX.Element | null = null\n if (createLinkMetadata && isSanityCreateLinked(createLinkMetadata) && CreateLinkedActions) {\n actions = (\n <CreateLinkedActions\n metadata={createLinkMetadata}\n panelPortalElementId={DOCUMENT_PANEL_PORTAL_ELEMENT}\n onDocumentChange={onDocumentChange}\n documentTitle={title}\n />\n )\n } else if (showingRevision) {\n actions = <HistoryStatusBarActions />\n } else {\n actions = <DocumentStatusBarActions />\n }\n\n if (showingRevision && revisionNotFound) {\n return null\n }\n\n return (\n <AnimatedCard\n key={showingRevision ? 'revision' : 'published'}\n initial={{opacity: 0.2}}\n animate={{opacity: 1, transition: {duration: 0.3}}}\n tone={showingRevision ? 'caution' : undefined}\n radius={3}\n ref={setRootElement}\n sizing=\"border\"\n padding={2}\n >\n {shouldRender && (\n <Flex\n align=\"stretch\"\n gap={1}\n justify=\"space-between\"\n paddingLeft={showingRevision ? 0 : 1}\n paddingRight={showingRevision ? 0 : 1}\n >\n <Flex align=\"center\" flex={1} gap={collapsed ? 2 : 3} wrap=\"wrap\" paddingRight={3}>\n <Flex align=\"center\">\n {showingRevision ? <RevisionStatusLine /> : <DocumentStatusLine />}\n <SpacerButton />\n </Flex>\n <DocumentBadges />\n </Flex>\n\n <Flex\n align=\"flex-start\"\n justify=\"flex-end\"\n ref={actionsBoxRef}\n style={{flexShrink: 0, marginLeft: 'auto'}}\n >\n <SpacerButton />\n {actions}\n </Flex>\n </Flex>\n )}\n </AnimatedCard>\n )\n}\n","import {isHotkey} from 'is-hotkey-esm'\nimport {\n type ElementType,\n type HTMLProps,\n memo,\n type Ref,\n useCallback,\n useMemo,\n useState,\n} from 'react'\nimport {type DocumentActionDescription, type DocumentActionProps, LegacyLayerProvider} from 'sanity'\n\nimport {RenderActionCollectionState} from '../../../components'\nimport {ActionStateDialog} from '../statusBar'\nimport {useDocumentPane} from '../useDocumentPane'\n\nexport interface KeyboardShortcutResponderProps {\n actionsBoxElement: HTMLElement | null\n activeIndex: number\n as?: ElementType\n currentMinWidth?: number\n flex?: number\n id: string\n minWidth?: number\n onActionStart: (index: number) => void\n rootRef: Ref<HTMLDivElement>\n states: DocumentActionDescription[]\n}\n\nconst KeyboardShortcutResponder = memo(function KeyboardShortcutResponder(\n props: KeyboardShortcutResponderProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {\n actionsBoxElement,\n activeIndex,\n as: As = 'div',\n children,\n id,\n onActionStart,\n onKeyDown,\n rootRef,\n states,\n ...rest\n } = props\n\n const activeAction = states[activeIndex]\n\n const handleKeyDown = useCallback(\n (event: any) => {\n const matchingStates = states.filter(\n (state) => state.shortcut && isHotkey(state.shortcut, event),\n )\n\n const matchingState = matchingStates[0]\n\n if (matchingStates.length > 1) {\n // eslint-disable-next-line no-console\n console.warn(\n `Keyboard shortcut conflict: More than one document action matches the shortcut \"${matchingState.shortcut}\"`,\n )\n }\n\n if (matchingState && !matchingState.disabled && matchingState.onHandle) {\n event.preventDefault()\n matchingState.onHandle()\n onActionStart(states.indexOf(matchingState))\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onActionStart, onKeyDown, states],\n )\n\n return (\n <As id={id} onKeyDown={handleKeyDown} tabIndex={-1} {...rest} ref={rootRef}>\n {children}\n {activeAction && activeAction.dialog && (\n <LegacyLayerProvider zOffset=\"paneFooter\">\n <ActionStateDialog dialog={activeAction.dialog} referenceElement={actionsBoxElement} />\n </LegacyLayerProvider>\n )}\n </As>\n )\n})\n\nexport interface DocumentActionShortcutsProps {\n actionsBoxElement: HTMLElement | null\n as?: ElementType\n currentMinWidth?: number\n debug?: boolean\n flex: number\n id: string\n minWidth: number\n rootRef: Ref<HTMLDivElement>\n}\n\nexport const DocumentActionShortcuts = memo(\n (props: DocumentActionShortcutsProps & Omit<HTMLProps<HTMLDivElement>, 'as'>) => {\n const {actionsBoxElement, as = 'div', children, ...rest} = props\n const {actions, editState, isInitialValueLoading, revisionId} = useDocumentPane()\n const [activeIndex, setActiveIndex] = useState(-1)\n\n const onActionStart = useCallback((idx: number) => {\n setActiveIndex(idx)\n }, [])\n\n const actionProps: DocumentActionProps | null = useMemo(\n () =>\n editState && {\n ...editState,\n\n // @todo: what to call here?\n onComplete: () => undefined,\n\n revision: revisionId || undefined,\n initialValueResolved: !isInitialValueLoading,\n },\n [editState, isInitialValueLoading, revisionId],\n )\n\n const renderDocumentActionShortcuts = useCallback<\n (props: {states: DocumentActionDescription[]}) => React.ReactNode\n >(\n ({states}) => (\n <KeyboardShortcutResponder\n {...rest}\n activeIndex={activeIndex}\n actionsBoxElement={actionsBoxElement}\n as={as}\n onActionStart={onActionStart}\n states={states}\n >\n {children}\n </KeyboardShortcutResponder>\n ),\n [actionsBoxElement, activeIndex, as, children, onActionStart, rest],\n )\n\n if (!actionProps || !actions) return null\n\n return (\n <RenderActionCollectionState actionProps={actionProps} actions={actions}>\n {renderDocumentActionShortcuts}\n </RenderActionCollectionState>\n )\n },\n)\n\nDocumentActionShortcuts.displayName = 'Memo(DocumentActionShortcuts)'\n","import {EarthAmericasIcon, JsonIcon, LinkIcon, TransferIcon} from '@sanity/icons'\nimport {type DocumentInspector, type DocumentInspectorMenuItem, type TFunction} from 'sanity'\n\nimport {type DocumentIdStack} from '../../hooks/useDocumentIdStack'\nimport {type PaneMenuItem, type StructureToolFeatures} from '../../types'\nimport {INSPECT_ACTION_PREFIX} from './constants'\n\ninterface GetMenuItemsParams {\n currentInspector?: DocumentInspector\n features: StructureToolFeatures\n hasValue: boolean\n inspectors: DocumentInspector[]\n previewUrl?: string | null\n documentIdStack?: DocumentIdStack\n inspectorMenuItems: DocumentInspectorMenuItem[]\n t: TFunction\n}\n\nfunction getInspectorItems({\n currentInspector,\n hasValue,\n inspectors,\n inspectorMenuItems,\n}: GetMenuItemsParams): PaneMenuItem[] {\n return inspectors\n .map((inspector, index) => {\n const menuItem = inspectorMenuItems[index]\n\n if (!menuItem || menuItem.hidden) return null\n\n return {\n action: `${INSPECT_ACTION_PREFIX}${inspector.name}`,\n group: menuItem.showAsAction ? undefined : 'inspectors',\n icon: menuItem.icon,\n disabled: !hasValue,\n selected: currentInspector?.name === inspector.name,\n shortcut: menuItem.hotkeys?.join('+'),\n showAsAction: menuItem.showAsAction,\n title: menuItem.title,\n tone: menuItem.tone,\n }\n })\n .filter(Boolean) as PaneMenuItem[]\n}\n\nfunction getInspectItem({hasValue, t}: GetMenuItemsParams): PaneMenuItem {\n return {\n action: 'inspect',\n group: 'inspectors',\n title: t('document-inspector.menu-item.title'),\n icon: JsonIcon,\n disabled: !hasValue,\n shortcut: 'Ctrl+Alt+I',\n }\n}\n\nfunction getCompareVersionsItem({documentIdStack, t}: GetMenuItemsParams): PaneMenuItem | null {\n const disabled = typeof documentIdStack?.previousId === 'undefined' && {\n reason: t('compare-versions.menu-item.disabled-reason'),\n }\n\n return {\n action: 'compareVersions',\n group: 'inspectors',\n title: t('compare-versions.menu-item.title'),\n icon: TransferIcon,\n disabled,\n }\n}\n\nexport function getProductionPreviewItem({previewUrl, t}: GetMenuItemsParams): PaneMenuItem | null {\n if (!previewUrl) return null\n\n return {\n action: 'production-preview',\n group: 'links',\n title: t('production-preview.menu-item.title'),\n icon: EarthAmericasIcon,\n shortcut: 'Ctrl+Alt+O',\n }\n}\n\nexport function getMenuItems(params: GetMenuItemsParams): PaneMenuItem[] {\n const inspectorItems = getInspectorItems(params)\n const items = [\n // Get production preview item\n getProductionPreviewItem(params),\n getCompareVersionsItem(params),\n ].filter(Boolean) as PaneMenuItem[]\n\n return [\n // Always present document menu item to copy current url to clipboard\n {\n action: 'copy-document-url',\n showAsAction: true,\n title: params.t('action.copy-document-url.label'),\n icon: LinkIcon,\n },\n ...inspectorItems,\n\n // TODO: convert to inspector or document view?\n getInspectItem(params),\n\n ...items,\n ]\n}\n","import {Card, Code, Stack, Text} from '@sanity/ui'\nimport {isDev, Translate, useTranslation} from 'sanity'\n\nimport {ErrorPane} from '../../error'\n\ninterface DocumentLayoutErrorProps {\n currentMinWidth?: number\n documentType?: string\n minWidth?: number\n paneKey: string\n value?: Record<string, unknown>\n}\n\nexport function DocumentLayoutError(props: DocumentLayoutErrorProps) {\n const {documentType, value, currentMinWidth, paneKey, minWidth} = props\n const {t} = useTranslation()\n\n return (\n <ErrorPane\n currentMinWidth={currentMinWidth}\n flex={2.5}\n minWidth={minWidth}\n paneKey={paneKey}\n title={\n <Translate\n t={t}\n i18nKey=\"panes.document-pane.document-unknown-type.title\"\n values={{documentType}}\n />\n }\n tone=\"caution\"\n >\n <Stack space={4}>\n {documentType && (\n <Text as=\"p\">\n <Translate\n t={t}\n i18nKey=\"panes.document-pane.document-unknown-type.text\"\n values={{documentType}}\n />\n </Text>\n )}\n\n {!documentType && (\n <Text as=\"p\">{t('panes.document-pane.document-unknown-type.without-schema.text')}</Text>\n )}\n\n {isDev && value && (\n /* eslint-disable i18next/no-literal-string */\n <>\n <Text as=\"p\">Here is the JSON representation of the document:</Text>\n\n <Card padding={3} overflow=\"auto\" radius={2} shadow={1} tone=\"inherit\">\n <Code language=\"json\" size={[1, 1, 2]}>\n {JSON.stringify(value, null, 2)}\n </Code>\n </Card>\n </>\n /* eslint-enable i18next/no-literal-string */\n )}\n </Stack>\n </ErrorPane>\n )\n}\n","import {DialogProvider, type DialogProviderProps, PortalProvider} from '@sanity/ui'\nimport {type Dispatch, type SetStateAction, useMemo} from 'react'\nimport {getSanityCreateLinkMetadata, useZIndex} from 'sanity'\n\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {PaneFooter} from '../../../components'\nimport {DOCUMENT_PANEL_PORTAL_ELEMENT} from '../../../constants'\nimport {DocumentStatusBar} from '../statusBar'\nimport {useDocumentPane} from '../useDocumentPane'\n\nconst DIALOG_PROVIDER_POSITION: DialogProviderProps['position'] = [\n // We use the `position: fixed` for dialogs on narrower screens (first two media breakpoints).\n 'fixed',\n 'fixed',\n // And we use the `position: absolute` strategy (within panes) on wide screens.\n 'absolute',\n]\n\nexport function DocumentLayoutFooter({\n documentPanelPortalElement,\n setFooterElement,\n setActionsBoxElement,\n}: {\n documentPanelPortalElement: HTMLElement | null\n setFooterElement: Dispatch<SetStateAction<HTMLDivElement | null>>\n setActionsBoxElement: Dispatch<SetStateAction<HTMLDivElement | null>>\n}) {\n const zOffsets = useZIndex()\n\n const {value} = useDocumentPane()\n const portalElements = useMemo(\n () => ({[DOCUMENT_PANEL_PORTAL_ELEMENT]: documentPanelPortalElement}),\n [documentPanelPortalElement],\n )\n\n const createLinkMetadata = getSanityCreateLinkMetadata(value)\n return (\n // These providers are added because we want the dialogs in `DocumentStatusBar` to be scoped to the document pane\n // The portal element comes from `DocumentPanel`.\n <PortalProvider __unstable_elements={portalElements}>\n <DialogProvider position={DIALOG_PROVIDER_POSITION} zOffset={zOffsets.portal}>\n <PaneFooter ref={setFooterElement} padding={1}>\n <TooltipDelayGroupProvider>\n <DocumentStatusBar\n actionsBoxRef={setActionsBoxElement}\n createLinkMetadata={createLinkMetadata}\n />\n </TooltipDelayGroupProvider>\n </PaneFooter>\n </DialogProvider>\n </PortalProvider>\n )\n}\n","import {DialogProvider, type DialogProviderProps, Flex, useElementRect} from '@sanity/ui'\nimport {isHotkey} from 'is-hotkey-esm'\nimport {useCallback, useMemo, useState} from 'react'\nimport {\n ChangeConnectorRoot,\n type DocumentFieldActionNode,\n type DocumentInspectorMenuItem,\n FieldActionsProvider,\n FieldActionsResolver,\n GetFormValueProvider,\n type Path,\n useGlobalCopyPasteElementHandler,\n useTranslation,\n useZIndex,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Pane, usePaneLayout, usePaneRouter} from '../../../components'\nimport {useDocumentIdStack} from '../../../hooks/useDocumentIdStack'\nimport {structureLocaleNamespace} from '../../../i18n'\nimport {useStructureTool} from '../../../useStructureTool'\nimport {\n DOCUMENT_INSPECTOR_MIN_WIDTH,\n DOCUMENT_PANEL_INITIAL_MIN_WIDTH,\n DOCUMENT_PANEL_MIN_WIDTH,\n} from '../constants'\nimport {DocumentInspectorMenuItemsResolver} from '../DocumentInspectorMenuItemsResolver'\nimport {DocumentOperationResults} from '../DocumentOperationResults'\nimport {DocumentPanel} from '../documentPanel'\nimport {DocumentPanelHeader} from '../documentPanel/header'\nimport {DocumentActionShortcuts} from '../keyboardShortcuts'\nimport {getMenuItems} from '../menuItems'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {DocumentLayoutError} from './DocumentLayoutError'\nimport {DocumentLayoutFooter} from './DocumentLayoutFooter'\n\nconst EMPTY_ARRAY: [] = []\n\nconst DIALOG_PROVIDER_POSITION: DialogProviderProps['position'] = [\n // We use the `position: fixed` for dialogs on narrower screens (first two media breakpoints).\n 'fixed',\n 'fixed',\n // And we use the `position: absolute` strategy (within panes) on wide screens.\n 'absolute',\n]\n\nconst StyledChangeConnectorRoot = styled(ChangeConnectorRoot)`\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n`\n\nexport function DocumentLayout() {\n const {\n changesOpen,\n displayed,\n documentId,\n documentType,\n editState,\n fieldActions,\n focusPath,\n inspectOpen,\n inspector,\n inspectors,\n onFocus,\n onHistoryOpen,\n onMenuAction,\n onPathOpen,\n paneKey,\n schemaType,\n value,\n isInitialValueLoading,\n ready,\n previewUrl,\n } = useDocumentPane()\n const {params: paneParams} = usePaneRouter()\n const {features} = useStructureTool()\n const {t} = useTranslation(structureLocaleNamespace)\n const {collapsed: layoutCollapsed} = usePaneLayout()\n\n const zOffsets = useZIndex()\n\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [footerElement, setFooterElement] = useState<HTMLDivElement | null>(null)\n const [headerElement, setHeaderElement] = useState<HTMLDivElement | null>(null)\n\n const [actionsBoxElement, setActionsBoxElement] = useState<HTMLDivElement | null>(null)\n const [documentPanelPortalElement, setDocumentPanelPortalElement] = useState<HTMLElement | null>(\n null,\n )\n\n useGlobalCopyPasteElementHandler({\n element: rootElement,\n focusPath,\n value,\n })\n\n const [inspectorMenuItems, setInspectorMenuItems] = useState<DocumentInspectorMenuItem[]>([])\n const [rootFieldActionNodes, setRootFieldActionNodes] = useState<DocumentFieldActionNode[]>([])\n\n const footerRect = useElementRect(footerElement)\n const headerRect = useElementRect(headerElement)\n const footerHeight = footerRect?.height\n const headerHeight = headerRect?.height\n const currentMinWidth =\n DOCUMENT_PANEL_INITIAL_MIN_WIDTH + (inspector ? DOCUMENT_INSPECTOR_MIN_WIDTH : 0)\n const minWidth = DOCUMENT_PANEL_MIN_WIDTH + (inspector ? DOCUMENT_INSPECTOR_MIN_WIDTH : 0)\n\n const currentInspector = useMemo(\n () => inspectors?.find((i) => i.name === inspector?.name),\n [inspectors, inspector?.name],\n )\n\n const documentIdStack = useDocumentIdStack({displayed, documentId, editState})\n\n const hasValue = Boolean(value)\n\n const menuItems = useMemo(\n () =>\n getMenuItems({\n currentInspector,\n features,\n hasValue,\n inspectorMenuItems,\n inspectors,\n previewUrl,\n documentIdStack,\n t,\n }),\n [\n currentInspector,\n documentIdStack,\n features,\n hasValue,\n inspectorMenuItems,\n inspectors,\n previewUrl,\n t,\n ],\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n for (const item of menuItems) {\n if (item.shortcut) {\n if (isHotkey(item.shortcut, event)) {\n event.preventDefault()\n event.stopPropagation()\n onMenuAction(item)\n return\n }\n }\n }\n },\n [onMenuAction, menuItems],\n )\n\n const onConnectorSetFocus = useCallback(\n (path: Path) => {\n onPathOpen(path)\n onFocus(path)\n },\n [onPathOpen, onFocus],\n )\n\n if (!schemaType) {\n return (\n <DocumentLayoutError\n currentMinWidth={currentMinWidth}\n documentType={documentType}\n minWidth={minWidth}\n paneKey={paneKey}\n value={value}\n />\n )\n }\n\n return (\n <GetFormValueProvider value={value}>\n {inspectors.length > 0 && (\n <DocumentInspectorMenuItemsResolver\n documentId={documentId}\n documentType={documentType}\n inspectors={inspectors}\n onMenuItems={setInspectorMenuItems}\n />\n )}\n\n {fieldActions.length > 0 && schemaType && (\n <FieldActionsResolver\n actions={fieldActions}\n documentId={documentId}\n documentType={documentType}\n onActions={setRootFieldActionNodes}\n path={EMPTY_ARRAY}\n schemaType={schemaType}\n />\n )}\n\n <FieldActionsProvider actions={rootFieldActionNodes} path={EMPTY_ARRAY}>\n <DocumentActionShortcuts\n actionsBoxElement={actionsBoxElement}\n as={Pane}\n currentMinWidth={currentMinWidth}\n data-testid=\"document-pane\"\n flex={2.5}\n id={paneKey}\n minWidth={minWidth}\n onKeyUp={handleKeyUp}\n rootRef={setRootElement}\n >\n <DocumentPanelHeader ref={setHeaderElement} menuItems={menuItems} />\n <DialogProvider position={DIALOG_PROVIDER_POSITION} zOffset={zOffsets.paneDialog}>\n <Flex direction=\"column\" flex={1} height={layoutCollapsed ? undefined : 'fill'}>\n <StyledChangeConnectorRoot\n data-testid=\"change-connector-root\"\n isReviewChangesOpen={changesOpen && paneParams?.changesInspectorTab === 'review'}\n onOpenReviewChanges={onHistoryOpen}\n onSetFocus={onConnectorSetFocus}\n >\n <DocumentPanel\n footerHeight={footerHeight || null}\n headerHeight={headerHeight || null}\n isInspectOpen={inspectOpen}\n rootElement={rootElement}\n setDocumentPanelPortalElement={setDocumentPanelPortalElement}\n footer={\n <DocumentLayoutFooter\n documentPanelPortalElement={documentPanelPortalElement}\n setFooterElement={setFooterElement}\n setActionsBoxElement={setActionsBoxElement}\n />\n }\n />\n </StyledChangeConnectorRoot>\n </Flex>\n </DialogProvider>\n <DocumentOperationResults />\n </DocumentActionShortcuts>\n </FieldActionsProvider>\n </GetFormValueProvider>\n )\n}\n","import {type ComponentType} from 'react'\nimport {type DocumentLayoutProps, useMiddlewareComponents} from 'sanity'\n\nimport {DocumentLayout} from './DocumentLayout'\nimport {pickDocumentLayoutComponent} from './pickDocumentLayoutComponent'\n\n/**\n * A hook that returns the document layout composed\n * by the Components API (`document.components.layout`).\n */\nexport function useDocumentLayoutComponent(): ComponentType<\n Omit<DocumentLayoutProps, 'renderDefault'>\n> {\n return useMiddlewareComponents({\n pick: pickDocumentLayoutComponent,\n defaultComponent: DocumentLayout,\n })\n}\n","import {defineEvent} from '@sanity/telemetry'\n\n/**\n * @internal\n */\nexport const DocumentURLCopied = defineEvent({\n name: 'DocumentURLCopied',\n version: 1,\n description: 'User copied document URL to clipboard',\n})\n","import {type Template} from 'sanity'\n\ninterface InitialValueOptions {\n documentType: string\n panePayload?: unknown\n templateName?: string\n templateParams?: Record<string, unknown>\n urlTemplate?: string\n}\n\n/**\n * @internal\n */\nexport function getInitialValueTemplateOpts(\n templates: Template[],\n opts: InitialValueOptions,\n): {templateName: string; templateParams: Record<string, unknown>} {\n const payload = opts.panePayload || {}\n const structureNodeTemplate = opts.templateName\n\n if (opts.urlTemplate && structureNodeTemplate && structureNodeTemplate !== opts.urlTemplate) {\n // eslint-disable-next-line no-console\n console.warn(\n `Conflicting templates: URL says \"${opts.urlTemplate}\", structure node says \"${structureNodeTemplate}\". Using \"${structureNodeTemplate}\".`,\n )\n }\n\n const template = structureNodeTemplate || opts.urlTemplate\n const typeTemplates = templates.filter((t) => t.schemaType === opts.documentType)\n\n const templateParams = {\n ...opts.templateParams,\n ...(typeof payload === 'object' ? payload || {} : {}),\n }\n\n let templateName = template\n\n // If we have not specified a specific template, and we only have a single\n // template available for a schema type, use it\n if (!template && typeTemplates.length === 1) {\n templateName = typeTemplates[0].id\n }\n\n return {templateName: templateName!, templateParams}\n}\n","import {useMemo} from 'react'\nimport {useInitialValue, useTemplates, useUnique} from 'sanity'\n\nimport {type PaneRouterContextValue, usePaneRouter} from '../../components'\nimport {type DocumentPaneNode} from '../../types'\nimport {getInitialValueTemplateOpts} from './getInitialValueTemplateOpts'\n\nexport const useDocumentPaneInitialValue = ({\n paneOptions,\n documentType,\n documentId,\n params,\n}: {\n paneOptions: DocumentPaneNode['options']\n documentType: string\n documentId: string\n params: NonNullable<PaneRouterContextValue['params']>\n}) => {\n const templates = useTemplates()\n const paneRouter = usePaneRouter()\n const panePayload = useUnique(paneRouter.payload)\n\n const {templateName, templateParams} = useMemo(\n () =>\n getInitialValueTemplateOpts(templates, {\n documentType,\n templateName: paneOptions.template,\n templateParams: paneOptions.templateParameters,\n panePayload,\n urlTemplate: params.template,\n }),\n [documentType, paneOptions, params.template, panePayload, templates],\n )\n\n const initialValueRaw = useInitialValue({\n documentId,\n documentType,\n templateName,\n templateParams,\n version: params.version,\n })\n\n const initialValue = useUnique(initialValueRaw)\n return initialValue\n}\n","import {omit} from 'lodash'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {type DocumentInspector, useSource} from 'sanity'\n\nimport {type PaneRouterContextValue} from '../../components'\nimport {type PaneMenuItem} from '../../types'\nimport {useStructureTool} from '../../useStructureTool'\nimport {HISTORY_INSPECTOR_NAME, INSPECT_ACTION_PREFIX} from './constants'\n\nexport function useDocumentPaneInspector({\n documentId,\n documentType,\n params,\n setParams,\n}: {\n params: NonNullable<PaneRouterContextValue['params']>\n documentId: string\n documentType: string\n setParams: (params: Record<string, string | undefined>) => void\n}) {\n const {features} = useStructureTool()\n const source = useSource()\n const inspectorsResolver = source.document.inspectors\n\n const inspectors: DocumentInspector[] = useMemo(\n () => inspectorsResolver({documentId, documentType}),\n [documentId, documentType, inspectorsResolver],\n )\n\n const [inspectorName, setInspectorName] = useState<string | null>(() => params.inspect || null)\n\n // Handle inspector name changes from URL\n const inspectParamRef = useRef<string | undefined>(params.inspect)\n useEffect(() => {\n if (inspectParamRef.current !== params.inspect) {\n inspectParamRef.current = params.inspect\n setInspectorName(params.inspect || null)\n }\n }, [params.inspect])\n\n const currentInspector = useMemo(\n () => inspectors?.find((i) => i.name === inspectorName),\n [inspectors, inspectorName],\n )\n const historyInspector = useMemo(\n () => inspectors.find((i) => i.name === HISTORY_INSPECTOR_NAME),\n [inspectors],\n )\n\n const changesOpen = currentInspector?.name === HISTORY_INSPECTOR_NAME\n\n const closeInspector = useCallback(\n (closeInspectorName?: string) => {\n const inspector = closeInspectorName && inspectors.find((i) => i.name === closeInspectorName)\n\n if (closeInspectorName && !inspector) {\n console.warn(`No inspector named \"${closeInspectorName}\"`)\n return\n }\n\n if (!currentInspector) {\n return\n }\n\n if (inspector) {\n const result = inspector.onClose?.({params}) ?? {params}\n\n setInspectorName(null)\n inspectParamRef.current = undefined\n\n setParams({...result.params, inspect: undefined})\n\n return\n }\n\n if (currentInspector) {\n const result = currentInspector.onClose?.({params}) ?? {params}\n\n setInspectorName(null)\n inspectParamRef.current = undefined\n\n setParams({...result.params, inspect: undefined})\n }\n },\n [currentInspector, inspectors, params, setParams],\n )\n\n const openInspector = useCallback(\n (nextInspectorName: string, paneParams?: Record<string, string>) => {\n const nextInspector = inspectors.find((i) => i.name === nextInspectorName)\n\n if (!nextInspector) {\n console.warn(`No inspector named \"${nextInspectorName}\"`)\n return\n }\n\n // if the inspector is already open, only update params\n if (currentInspector?.name === nextInspector.name) {\n setParams({...params, ...paneParams, inspect: nextInspector.name})\n return\n }\n\n let currentParams = params\n\n if (currentInspector) {\n const closeResult = nextInspector.onClose?.({params: currentParams}) ?? {\n params: currentParams,\n }\n\n currentParams = closeResult.params\n }\n\n const result = nextInspector.onOpen?.({params: currentParams}) ?? {params: currentParams}\n\n setInspectorName(nextInspector.name)\n inspectParamRef.current = nextInspector.name\n\n setParams({...result.params, ...paneParams, inspect: nextInspector.name})\n },\n [currentInspector, inspectors, params, setParams],\n )\n const handleHistoryClose = useCallback(() => {\n if (historyInspector) {\n closeInspector(historyInspector.name)\n }\n }, [closeInspector, historyInspector])\n\n const handleHistoryOpen = useCallback(() => {\n if (!features.reviewChanges) {\n return\n }\n\n if (historyInspector) {\n openInspector(historyInspector.name, {changesInspectorTab: 'review'})\n }\n }, [features.reviewChanges, openInspector, historyInspector])\n\n const inspectOpen = params.inspect === 'on'\n\n const toggleLegacyInspect = useCallback(\n (toggle = !inspectOpen) => {\n if (toggle) {\n setParams({...params, inspect: 'on'})\n } else {\n setParams(omit(params, 'inspect'))\n }\n },\n [inspectOpen, params, setParams],\n )\n\n const handleLegacyInspectClose = useCallback(\n () => toggleLegacyInspect(false),\n [toggleLegacyInspect],\n )\n\n const handleInspectorAction = useCallback(\n (item: PaneMenuItem) => {\n if (item.action === 'inspect') {\n toggleLegacyInspect(true)\n return true\n }\n\n if (typeof item.action !== 'string') return false\n const nextInspectorName = item.action.slice(INSPECT_ACTION_PREFIX.length)\n const nextInspector = inspectors.find((i) => i.name === nextInspectorName)\n\n if (nextInspector) {\n if (nextInspector.name === inspectorName) {\n closeInspector(nextInspector.name)\n } else {\n openInspector(nextInspector.name)\n }\n return true\n }\n return false\n },\n [closeInspector, inspectorName, inspectors, openInspector, toggleLegacyInspect],\n )\n\n return {\n changesOpen,\n currentInspector,\n inspectors,\n closeInspector,\n openInspector,\n handleHistoryClose,\n handleHistoryOpen,\n handleInspectorAction,\n // TODO: Deprecate this legacy inspect toggle it's used to render the <InspectDialog /> component\n handleLegacyInspectClose,\n inspectOpen,\n }\n}\n","import {type SanityDocument} from '@sanity/types'\nimport {useEffect, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {BehaviorSubject, from, of} from 'rxjs'\nimport {catchError, debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators'\nimport {isRecord, useSource} from 'sanity'\n\nconst isSanityDocument = (value: unknown): value is SanityDocument =>\n isRecord(value) && typeof value._id === 'string' && typeof value._type === 'string'\n\nexport function usePreviewUrl(value: Partial<SanityDocument> | undefined): string | undefined {\n const {resolveProductionUrl} = useSource().document\n const subject = useMemo(\n () => new BehaviorSubject<Partial<SanityDocument> | undefined>(undefined),\n [],\n )\n\n useEffect(() => {\n subject.next(value)\n }, [subject, value])\n\n const resolvedUrlObservable = useMemo(() => {\n return subject.asObservable().pipe(\n // this so that the preview URL isn't fetched on every keystroke\n distinctUntilChanged(),\n debounceTime(500),\n switchMap((document) =>\n isSanityDocument(document) ? from(resolveProductionUrl({document})) : of(undefined),\n ),\n distinctUntilChanged(),\n catchError((err) => {\n const message =\n isRecord(err) && typeof err.message === 'string' ? err.message : 'Unknown error'\n throw new Error(`An error was thrown while trying to get your preview url: ${message}`)\n }),\n )\n }, [resolveProductionUrl, subject])\n\n return useObservable(resolvedUrlObservable)\n}\n","/* eslint-disable camelcase */\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {type ObjectSchemaType, type SanityDocument, type SanityDocumentLike} from '@sanity/types'\nimport {useToast} from '@sanity/ui'\nimport {fromString as pathFromString, resolveKeyedPath} from '@sanity/util/paths'\nimport {memo, useCallback, useEffect, useMemo, useState} from 'react'\nimport {\n type DocumentActionsContext,\n type DocumentActionsVersionType,\n type DocumentFieldAction,\n type EditStateFor,\n EMPTY_ARRAY,\n getPublishedId,\n isVersionId,\n type PartialContext,\n useCopyPaste,\n useDocumentForm,\n usePerspective,\n useSchema,\n useSource,\n useStudioUrl,\n useTranslation,\n useUnique,\n} from 'sanity'\nimport {DocumentPaneContext} from 'sanity/_singletons'\n\nimport {usePaneRouter} from '../../components'\nimport {useDiffViewRouter} from '../../diffView/hooks/useDiffViewRouter'\nimport {useDocumentIdStack} from '../../hooks/useDocumentIdStack'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {type PaneMenuItem} from '../../types'\nimport {DocumentURLCopied} from './__telemetry__'\nimport {DEFAULT_MENU_ITEM_GROUPS, EMPTY_PARAMS, INSPECT_ACTION_PREFIX} from './constants'\nimport {type DocumentPaneContextValue} from './DocumentPaneContext'\nimport {\n type DocumentPaneProviderProps as DocumentPaneProviderWrapperProps,\n type HistoryStoreProps,\n} from './types'\nimport {useDocumentPaneInitialValue} from './useDocumentPaneInitialValue'\nimport {useDocumentPaneInspector} from './useDocumentPaneInspector'\nimport {usePreviewUrl} from './usePreviewUrl'\n\ninterface DocumentPaneProviderProps extends DocumentPaneProviderWrapperProps {\n historyStore: HistoryStoreProps\n}\n\n/**\n * @internal\n */\n// eslint-disable-next-line complexity, max-statements\nexport const DocumentPaneProvider = memo((props: DocumentPaneProviderProps) => {\n const {children, index, pane, paneKey, onFocusPath, forcedVersion, historyStore} = props\n const {\n store: timelineStore,\n error: timelineError,\n ready: timelineReady,\n revisionDocument,\n onOlderRevision,\n sinceDocument,\n isPristine,\n revisionId,\n lastNonDeletedRevId,\n } = historyStore\n\n const schema = useSchema()\n const {setDocumentMeta} = useCopyPaste()\n const {\n document: {\n actions: documentActions,\n badges: documentBadges,\n unstable_fieldActions: fieldActionsResolver,\n unstable_languageFilter: languageFilterResolver,\n },\n } = useSource()\n const telemetry = useTelemetry()\n const paneRouter = usePaneRouter()\n const setPaneParams = paneRouter.setParams\n const {push: pushToast} = useToast()\n const {\n options,\n menuItemGroups = DEFAULT_MENU_ITEM_GROUPS,\n title = null,\n views: viewsProp = [],\n } = pane\n const paneOptions = useUnique(options)\n const documentIdRaw = paneOptions.id\n const documentId = getPublishedId(documentIdRaw)\n const documentType = options.type\n const params = useUnique(paneRouter.params) || EMPTY_PARAMS\n const {buildStudioUrl} = useStudioUrl()\n\n const perspective = usePerspective()\n\n const {selectedReleaseId, selectedPerspectiveName} = useMemo(() => {\n // TODO: COREL - Remove this after updating sanity-assist to use <PerspectiveProvider>\n if (forcedVersion) {\n return forcedVersion\n }\n return {\n selectedPerspectiveName: perspective.selectedPerspectiveName,\n selectedReleaseId: perspective.selectedReleaseId,\n }\n }, [forcedVersion, perspective.selectedPerspectiveName, perspective.selectedReleaseId])\n\n const diffViewRouter = useDiffViewRouter()\n\n const initialValue = useDocumentPaneInitialValue({\n paneOptions,\n documentId,\n documentType,\n params,\n })\n\n const isInitialValueLoading = initialValue.loading\n const {\n changesOpen,\n currentInspector,\n inspectors,\n closeInspector,\n openInspector,\n handleHistoryClose,\n handleHistoryOpen,\n handleInspectorAction,\n inspectOpen,\n handleLegacyInspectClose,\n } = useDocumentPaneInspector({documentId, documentType, params, setParams: setPaneParams})\n\n const [isDeleting, setIsDeleting] = useState(false)\n\n /**\n * Determine if the current document is deleted.\n *\n * When the timeline is available – we check for the absence of an editable document pair\n * (both draft + published versions) as well as a non 'pristine' timeline (i.e. a timeline that consists\n * of at least one chunk).\n *\n * In the _very rare_ case where the timeline cannot be loaded – we skip this check and always assume\n * the document is NOT deleted. Since we can't accurately determine document deleted status without history,\n * skipping this check means that in these cases, users will at least be able to create new documents\n * without them being incorrectly marked as deleted.\n */\n const getIsDeleted = useCallback(\n (editState: EditStateFor) => {\n if (!timelineReady) return false\n return (\n Boolean(!editState?.draft && !editState?.published && !editState?.version) && !isPristine\n )\n },\n [timelineReady, isPristine],\n )\n\n const getComparisonValue = useCallback(\n (editState: EditStateFor) => {\n return changesOpen ? sinceDocument || editState?.published : editState?.published || null\n },\n [changesOpen, sinceDocument],\n )\n\n const schemaType = schema.get(documentType) as ObjectSchemaType | undefined\n\n const getIsReadOnly = useCallback(\n (editState: EditStateFor): boolean => {\n const isDeleted = getIsDeleted(editState)\n const seeingHistoryDocument = Boolean(params.rev)\n return seeingHistoryDocument || isDeleting || isDeleted\n },\n [getIsDeleted, isDeleting, params.rev],\n )\n\n const getDisplayed = useCallback(\n (value: SanityDocumentLike) => {\n if (onOlderRevision) {\n return revisionDocument || {_id: value._id, _type: value._type}\n }\n return value\n },\n [onOlderRevision, revisionDocument],\n )\n\n const {\n editState,\n connectionState,\n focusPath,\n onChange,\n validation,\n ready: formReady,\n value,\n formState,\n permissions,\n onPathOpen,\n isPermissionsLoading,\n formStateRef,\n onProgrammaticFocus,\n\n collapsedFieldSets,\n collapsedPaths,\n onBlur,\n onFocus,\n onSetActiveFieldGroup,\n onSetCollapsedPath,\n onSetCollapsedFieldSet,\n openPath,\n } = useDocumentForm({\n documentType,\n documentId,\n initialValue: initialValue,\n comparisonValue: getComparisonValue,\n releaseId: selectedReleaseId,\n selectedPerspectiveName,\n initialFocusPath: params.path ? pathFromString(params.path) : EMPTY_ARRAY,\n readOnly: getIsReadOnly,\n onFocusPath,\n getFormDocumentValue: getDisplayed,\n })\n\n const getDocumentVersionType = useCallback(() => {\n let version: DocumentActionsVersionType\n switch (true) {\n case Boolean(params.rev):\n version = 'revision'\n break\n case selectedReleaseId && isVersionId(value._id):\n version = 'version'\n break\n case selectedPerspectiveName === 'published':\n version = 'published'\n break\n default:\n version = 'draft'\n }\n\n return version\n }, [selectedPerspectiveName, selectedReleaseId, params, value._id])\n\n const actionsPerspective = useMemo(() => getDocumentVersionType(), [getDocumentVersionType])\n\n const documentActionsProps: PartialContext<DocumentActionsContext> = useMemo(\n () => ({\n schemaType: documentType,\n documentId,\n versionType: actionsPerspective,\n releaseId: selectedReleaseId,\n }),\n [documentType, documentId, actionsPerspective, selectedReleaseId],\n )\n\n // Resolve document actions\n const actions = useMemo(\n () => documentActions(documentActionsProps),\n [documentActions, documentActionsProps],\n )\n\n // Resolve document badges\n const badges = useMemo(\n () => documentBadges({schemaType: documentType, documentId}),\n [documentBadges, documentId, documentType],\n )\n\n // Resolve document language filter\n const languageFilter = useMemo(\n () => languageFilterResolver({schemaType: documentType, documentId}),\n [documentId, documentType, languageFilterResolver],\n )\n\n const views = useUnique(viewsProp)\n\n const activeViewId = params.view || (views[0] && views[0].id) || null\n\n // TODO: this may cause a lot of churn. May be a good idea to prevent these\n // requests unless the menu is open somehow\n const previewUrl = usePreviewUrl(value)\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const fieldActions: DocumentFieldAction[] = useMemo(\n () => (schemaType ? fieldActionsResolver({documentId, documentType, schemaType}) : []),\n [documentId, documentType, fieldActionsResolver, schemaType],\n )\n\n /**\n * Note that in addition to connection and edit state, we also wait for a valid document timeline\n * range to be loaded. This means if we're loading an older revision, the full transaction range must\n * be loaded in full prior to the document being displayed.\n *\n * Previously, visiting studio URLs with timeline params would display the 'current' document and then\n * 'snap' in the older revision, which was disorienting and could happen mid-edit.\n *\n * In the event that the timeline cannot be loaded due to TimelineController errors or blocked requests,\n * we skip this readiness check to ensure that users aren't locked out of editing. Trying to select\n * a timeline revision in this instance will display an error localized to the popover itself.\n */\n const ready = formReady && (!params.rev || timelineReady || !!timelineError)\n\n const displayed: Partial<SanityDocument> | undefined = useMemo(\n () => getDisplayed(value),\n [getDisplayed, value],\n )\n\n const {previousId} = useDocumentIdStack({displayed, documentId, editState})\n\n const setTimelineRange = useCallback(\n (newSince: string, newRev: string | null) => {\n setPaneParams({\n ...params,\n since: newSince,\n rev: newRev || undefined,\n })\n },\n [params, setPaneParams],\n )\n\n const handlePaneClose = useCallback(() => paneRouter.closeCurrent(), [paneRouter])\n\n const handlePaneSplit = useCallback(() => paneRouter.duplicateCurrent(), [paneRouter])\n\n const handleMenuAction = useCallback(\n async (item: PaneMenuItem) => {\n if (item.action === 'production-preview' && previewUrl) {\n window.open(previewUrl)\n return true\n }\n\n if (item.action === 'copy-document-url' && navigator) {\n telemetry.log(DocumentURLCopied)\n // Chose to copy the user's current URL instead of\n // the document's edit intent link because\n // of bugs when resolving a document that has\n // multiple access paths within Structure\n const copyUrl = buildStudioUrl({\n coreUi: (url) => `${url}/intent/edit/id=${documentId};type=${documentType}`,\n })\n await navigator.clipboard.writeText(copyUrl)\n pushToast({\n id: 'copy-document-url',\n status: 'info',\n title: t('panes.document-operation-results.operation-success_copy-url'),\n })\n return true\n }\n\n if (item.action === 'reviewChanges') {\n handleHistoryOpen()\n return true\n }\n\n if (\n item.action === 'inspect' ||\n (typeof item.action === 'string' && item.action.startsWith(INSPECT_ACTION_PREFIX))\n ) {\n handleInspectorAction(item)\n }\n\n if (item.action === 'compareVersions' && typeof previousId !== 'undefined') {\n diffViewRouter.navigateDiffView({\n mode: 'version',\n previousDocument: {\n type: documentType,\n id: previousId,\n },\n nextDocument: {\n type: documentType,\n id: value._id,\n },\n })\n return true\n }\n\n return false\n },\n [\n previewUrl,\n previousId,\n telemetry,\n buildStudioUrl,\n pushToast,\n t,\n documentId,\n documentType,\n handleHistoryOpen,\n handleInspectorAction,\n diffViewRouter,\n value._id,\n ],\n )\n\n useEffect(() => {\n setDocumentMeta({\n documentId,\n documentType,\n schemaType: schemaType!,\n onChange,\n })\n }, [documentId, documentType, schemaType, onChange, setDocumentMeta])\n\n const compareValue = useMemo(() => getComparisonValue(editState), [editState, getComparisonValue])\n const isDeleted = useMemo(() => getIsDeleted(editState), [editState, getIsDeleted])\n const revisionNotFound = onOlderRevision && !revisionDocument\n\n const documentPane: DocumentPaneContextValue = useMemo(\n () =>\n ({\n actions,\n activeViewId,\n badges,\n changesOpen,\n closeInspector,\n collapsedFieldSets,\n collapsedPaths,\n compareValue,\n connectionState,\n displayed,\n documentId,\n documentIdRaw,\n documentType,\n editState,\n fieldActions,\n focusPath,\n inspector: currentInspector || null,\n inspectors,\n onBlur,\n onChange,\n onFocus,\n onPathOpen,\n onHistoryClose: handleHistoryClose,\n onHistoryOpen: handleHistoryOpen,\n onInspectClose: handleLegacyInspectClose,\n onMenuAction: handleMenuAction,\n onPaneClose: handlePaneClose,\n onPaneSplit: handlePaneSplit,\n onSetActiveFieldGroup,\n onSetCollapsedPath,\n onSetCollapsedFieldSet,\n openInspector,\n openPath,\n index,\n inspectOpen,\n validation,\n menuItemGroups: menuItemGroups || [],\n paneKey,\n previewUrl,\n ready,\n schemaType: schemaType!,\n isPermissionsLoading,\n isInitialValueLoading,\n permissions,\n setTimelineRange,\n setIsDeleting,\n isDeleting,\n isDeleted,\n timelineError,\n timelineStore,\n title,\n value,\n selectedReleaseId,\n views,\n formState,\n unstable_languageFilter: languageFilter,\n revisionId,\n revisionNotFound,\n lastNonDeletedRevId,\n }) satisfies DocumentPaneContextValue,\n [\n actions,\n activeViewId,\n badges,\n changesOpen,\n closeInspector,\n collapsedFieldSets,\n collapsedPaths,\n compareValue,\n connectionState,\n displayed,\n documentId,\n documentIdRaw,\n documentType,\n editState,\n fieldActions,\n focusPath,\n currentInspector,\n inspectors,\n onBlur,\n onChange,\n onFocus,\n onPathOpen,\n handleHistoryClose,\n handleHistoryOpen,\n handleLegacyInspectClose,\n handleMenuAction,\n handlePaneClose,\n handlePaneSplit,\n onSetActiveFieldGroup,\n onSetCollapsedPath,\n onSetCollapsedFieldSet,\n openInspector,\n openPath,\n index,\n inspectOpen,\n validation,\n menuItemGroups,\n paneKey,\n previewUrl,\n ready,\n schemaType,\n isPermissionsLoading,\n isInitialValueLoading,\n permissions,\n setTimelineRange,\n isDeleting,\n isDeleted,\n timelineError,\n timelineStore,\n title,\n value,\n selectedReleaseId,\n views,\n formState,\n languageFilter,\n revisionId,\n revisionNotFound,\n lastNonDeletedRevId,\n ],\n )\n\n // Reset `focusPath` when `documentId` or `params.path` changes\n useEffect(() => {\n if (ready && params.path) {\n const {path, ...restParams} = params\n const pathFromUrl = resolveKeyedPath(formStateRef.current?.value, pathFromString(path))\n onProgrammaticFocus(pathFromUrl)\n\n // remove the `path`-param from url after we have consumed it as the initial focus path\n paneRouter.setParams(restParams)\n }\n\n return undefined\n }, [formStateRef, onProgrammaticFocus, paneRouter, params, ready])\n\n return (\n <DocumentPaneContext.Provider value={documentPane}>{children}</DocumentPaneContext.Provider>\n )\n})\n\nDocumentPaneProvider.displayName = 'Memo(DocumentPaneProvider)'\n","import {type ObjectSchemaType} from '@sanity/types'\nimport {useMemo} from 'react'\nimport {\n EMPTY_ARRAY,\n EventsProvider,\n getDraftId,\n getPublishedId,\n getReleaseIdFromReleaseDocumentId,\n getVersionId,\n isDeleteDocumentGroupEvent,\n isDeleteDocumentVersionEvent,\n PerspectiveProvider,\n useArchivedReleases,\n useEditState,\n useEventsStore,\n usePerspective,\n useSchema,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../components'\nimport {EMPTY_PARAMS} from './constants'\nimport {usePaneOptions} from './DocumentPane'\nimport {DocumentPaneProvider} from './DocumentPaneProvider'\nimport {type DocumentPaneProviderProps} from './types'\n\nexport const DocumentEventsPane = (props: DocumentPaneProviderProps) => {\n const {params = EMPTY_PARAMS} = usePaneRouter()\n const options = usePaneOptions(props.pane.options, params)\n const schema = useSchema()\n const documentType = options.type\n const schemaType = schema.get(options.type) as ObjectSchemaType | undefined\n const liveEdit = Boolean(schemaType?.liveEdit)\n\n const {selectedPerspectiveName, selectedReleaseId, selectedPerspective} = usePerspective()\n const {data: archivedReleases} = useArchivedReleases()\n const editState = useEditState(\n getPublishedId(options.id),\n documentType,\n 'default',\n selectedReleaseId,\n )\n\n const showingPublishedOnDraft = liveEdit && selectedPerspective === 'drafts' && !editState?.draft\n const {rev, since} = params\n const historyVersion = params.historyVersion\n\n const documentId = useMemo(() => {\n if (showingPublishedOnDraft) {\n return getPublishedId(options.id)\n }\n if (\n historyVersion &&\n archivedReleases.some(\n (release) => getReleaseIdFromReleaseDocumentId(release._id) === historyVersion,\n )\n ) {\n // Check if we have a release that matches with this historyVersion\n return getVersionId(options.id, historyVersion)\n }\n if (typeof selectedPerspectiveName === 'undefined') {\n return getDraftId(options.id)\n }\n if (selectedPerspectiveName === 'published') {\n return getPublishedId(options.id)\n }\n if (selectedReleaseId) {\n return getVersionId(options.id, selectedPerspectiveName)\n }\n return options.id\n }, [\n archivedReleases,\n historyVersion,\n selectedPerspectiveName,\n options.id,\n showingPublishedOnDraft,\n selectedReleaseId,\n ])\n\n const eventsStore = useEventsStore({documentId, documentType: options.type, rev, since})\n\n const historyStoreProps = useMemo(\n () => ({\n error: eventsStore.error,\n revisionId: eventsStore.revision?.revisionId || null,\n onOlderRevision: Boolean(rev && !eventsStore.revision?.loading),\n revisionDocument: eventsStore.revision?.document || null,\n sinceDocument: eventsStore.sinceRevision?.document || null,\n ready: !eventsStore.loading,\n isPristine: Boolean(eventsStore.events.length === 0),\n lastNonDeletedRevId:\n eventsStore.events.find(\n (e) => !isDeleteDocumentGroupEvent(e) && !isDeleteDocumentVersionEvent(e),\n )?.id || null,\n }),\n [eventsStore, rev],\n )\n\n const value = useMemo(() => eventsStore, [eventsStore])\n\n return (\n <EventsProvider value={value}>\n {historyVersion ? (\n <PerspectiveProvider\n selectedPerspectiveName={historyVersion}\n excludedPerspectives={EMPTY_ARRAY}\n >\n <DocumentPaneProvider {...props} historyStore={historyStoreProps} />\n </PerspectiveProvider>\n ) : (\n <DocumentPaneProvider {...props} historyStore={historyStoreProps} />\n )}\n </EventsProvider>\n )\n}\n","import {type SanityDocument} from '@sanity/types'\nimport {useMemo, useState} from 'react'\nimport {getPublishedId, useTimelineSelector, useTimelineStore} from 'sanity'\n\nimport {usePaneRouter} from '../../components'\nimport {EMPTY_PARAMS} from './constants'\nimport {usePaneOptions} from './DocumentPane'\nimport {DocumentPaneProvider} from './DocumentPaneProvider'\nimport {type DocumentPaneProviderProps} from './types'\n\nexport const DocumentPaneWithLegacyTimelineStore = (props: DocumentPaneProviderProps) => {\n const {pane} = props\n const paneRouter = usePaneRouter()\n const options = usePaneOptions(pane.options, paneRouter.params)\n\n const params = paneRouter.params || EMPTY_PARAMS\n\n const [timelineError, setTimelineError] = useState<Error | null>(null)\n\n const store = useTimelineStore({\n documentId: getPublishedId(options.id),\n documentType: options.type,\n onError: setTimelineError,\n rev: params.rev,\n since: params.since,\n })\n\n const onOlderRevision = useTimelineSelector(store, (state) => state.onOlderRevision)\n const revTime = useTimelineSelector(store, (state) => state.revTime)\n const sinceAttributes = useTimelineSelector(store, (state) => state.sinceAttributes)\n const timelineDisplayed = useTimelineSelector(store, (state) => state.timelineDisplayed)\n const timelineReady = useTimelineSelector(store, (state) => state.timelineReady)\n const isPristine = useTimelineSelector(store, (state) => state.isPristine)\n const lastNonDeletedRevId = useTimelineSelector(store, (state) => state.lastNonDeletedRevId)\n\n const historyStoreProps = useMemo(\n () => ({\n store,\n error: timelineError,\n revisionId: revTime?.id || null,\n onOlderRevision: onOlderRevision,\n revisionDocument: timelineDisplayed as SanityDocument | null,\n sinceDocument: sinceAttributes as SanityDocument | null,\n ready: timelineReady,\n isPristine: Boolean(isPristine),\n lastNonDeletedRevId,\n }),\n [\n store,\n timelineError,\n revTime?.id,\n onOlderRevision,\n timelineDisplayed,\n sinceAttributes,\n timelineReady,\n isPristine,\n lastNonDeletedRevId,\n ],\n )\n return <DocumentPaneProvider {...props} historyStore={historyStoreProps} />\n}\n","import {memo} from 'react'\nimport {useSource} from 'sanity'\n\nimport {DocumentEventsPane} from './DocumentEventsPane'\nimport {DocumentPaneWithLegacyTimelineStore} from './DocumentPaneLegacyTimeline'\nimport {type DocumentPaneProviderProps} from './types'\n\n/**\n * @internal\n */\nexport const DocumentPaneProviderWrapper = memo((props: DocumentPaneProviderProps) => {\n const source = useSource()\n if (source.beta?.eventsAPI?.documents) {\n return <DocumentEventsPane {...props} />\n }\n return <DocumentPaneWithLegacyTimelineStore {...props} />\n})\nDocumentPaneProviderWrapper.displayName = 'Memo(DocumentPaneProviderWrapper)'\n","import {useEffect, useRef} from 'react'\nimport {usePerspective} from 'sanity'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {usePaneRouter} from '../../components'\nimport {EMPTY_PARAMS} from './constants'\n\n/**\n * This hooks takes care of resetting the history related params when the perspective changes.\n * It needs to be placed in a stable component, like the `DocumentPane`, which won't be unmounted when the perspective changes.\n */\nexport function useResetHistoryParams() {\n const {params = EMPTY_PARAMS, setParams} = usePaneRouter()\n\n const {selectedPerspectiveName} = usePerspective()\n const isMounted = useRef(false)\n\n const updateHistoryParams = useEffectEvent((_perspective?: string) => {\n // Check if any of the history related params are set, and reset them, don't unnecessarily update the params\n const PARAMS_TO_UPDATE = ['since', 'historyVersion', 'rev', 'preserveRev']\n const shouldUpdateParams = PARAMS_TO_UPDATE.some((param) => params[param])\n if (!shouldUpdateParams) return\n\n setParams({\n ...params,\n // Reset the history related params when the perspective changes, as they don't make sense\n // in the context of the new perspective - preserveRev is used when setting draft revision.\n rev: params.preserveRev === 'true' ? params.rev : undefined,\n preserveRev: undefined,\n since: undefined,\n historyVersion: undefined,\n })\n })\n useEffect(() => {\n // Skip the first run to avoid resetting the params on initial load\n if (isMounted.current) {\n updateHistoryParams(selectedPerspectiveName)\n }\n }, [selectedPerspectiveName])\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n}\n","import {type Path} from '@sanity/types'\nimport {Stack, Text} from '@sanity/ui'\nimport {fromString as pathFromString} from '@sanity/util/paths'\nimport {memo, useMemo} from 'react'\nimport {\n CopyPasteProvider,\n ReferenceInputOptionsProvider,\n SourceProvider,\n Translate,\n useDocumentType,\n usePerspective,\n useSource,\n useTemplatePermissions,\n useTemplates,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../components'\nimport {DiffViewDocumentLayout} from '../../diffView/plugin/DiffViewDocumentLayout'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {type DocumentPaneNode} from '../../types'\nimport {ErrorPane} from '../error'\nimport {LoadingPane} from '../loading'\nimport {CommentsWrapper} from './comments'\nimport {useDocumentLayoutComponent} from './document-layout'\nimport {DocumentPaneProviderWrapper} from './DocumentPaneProviderWrapper'\nimport {type DocumentPaneProviderProps} from './types'\nimport {useResetHistoryParams} from './useResetHistoryParams'\n\ntype DocumentPaneOptions = DocumentPaneNode['options']\n\n/**\n * @internal\n */\nexport const DocumentPane = memo(function DocumentPane(props: DocumentPaneProviderProps) {\n const {name: parentSourceName} = useSource()\n\n return (\n <SourceProvider name={props.pane.source || parentSourceName}>\n <CopyPasteProvider>\n <DocumentPaneInner {...props} />\n </CopyPasteProvider>\n </SourceProvider>\n )\n})\n\nfunction DocumentPaneInner(props: DocumentPaneProviderProps) {\n const {pane, paneKey} = props\n const {resolveNewDocumentOptions} = useSource().document\n const {selectedPerspectiveName} = usePerspective()\n const paneRouter = usePaneRouter()\n const options = usePaneOptions(pane.options, paneRouter.params)\n const {documentType, isLoaded: isDocumentLoaded} = useDocumentType(options.id, options.type)\n useResetHistoryParams()\n const DocumentLayout = useDocumentLayoutComponent()\n\n // The templates that should be creatable from inside this document pane.\n // For example, from the \"Create new\" menu in reference inputs.\n const templateItems = useMemo(() => {\n return resolveNewDocumentOptions({\n type: 'document',\n documentId: options.id,\n schemaType: options.type,\n })\n }, [options.id, options.type, resolveNewDocumentOptions])\n\n const [templatePermissions, isTemplatePermissionsLoading] = useTemplatePermissions({\n templateItems,\n })\n const isLoaded = isDocumentLoaded && !isTemplatePermissionsLoading\n\n const providerProps = useMemo(() => {\n return isLoaded && documentType && options.type !== documentType\n ? mergeDocumentType(props, options, documentType)\n : props\n }, [props, documentType, isLoaded, options])\n\n const {ReferenceChildLink, handleEditReference, groupIndex, routerPanesState} = paneRouter\n const childParams = routerPanesState[groupIndex + 1]?.[0].params || {}\n const routerPanesStateLength = routerPanesState.length\n const {parentRefPath} = childParams\n\n const activePath: {path: Path; state: 'selected' | 'pressed' | 'none'} = useMemo(() => {\n return parentRefPath\n ? {\n path: pathFromString(parentRefPath),\n state:\n // eslint-disable-next-line no-nested-ternary\n groupIndex >= routerPanesStateLength - 1\n ? 'none'\n : groupIndex >= routerPanesStateLength - 2\n ? 'selected'\n : 'pressed',\n }\n : {path: [], state: 'none'}\n }, [parentRefPath, groupIndex, routerPanesStateLength])\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (options.type === '*' && !isLoaded) {\n return (\n <LoadingPane\n flex={2.5}\n minWidth={320}\n paneKey={paneKey}\n title={t('panes.document-pane.document-not-found.loading')}\n />\n )\n }\n\n if (!documentType) {\n return (\n <ErrorPane\n flex={2.5}\n minWidth={320}\n paneKey={paneKey}\n title={t('panes.document-pane.document-not-found.title')}\n >\n <Stack space={4}>\n <Text as=\"p\">\n <Translate\n t={t}\n i18nKey=\"panes.document-pane.document-not-found.text\"\n values={{id: options.id}}\n components={{Code: ({children}) => <code>{children}</code>}}\n />\n </Text>\n </Stack>\n </ErrorPane>\n )\n }\n\n return (\n <DocumentPaneProviderWrapper\n // this needs to be here to avoid formState from being re-used across (incompatible) document types\n // see https://github.com/sanity-io/sanity/discussions/3794 for a description of the problem\n key={`${documentType}-${options.id}-${selectedPerspectiveName || ''}`}\n {...providerProps}\n >\n {/* NOTE: this is a temporary location for this provider until we */}\n {/* stabilize the reference input options formally in the form builder */}\n {/* eslint-disable-next-line react/jsx-pascal-case */}\n <ReferenceInputOptionsProvider\n EditReferenceLinkComponent={ReferenceChildLink}\n onEditReference={handleEditReference}\n initialValueTemplateItems={templatePermissions}\n activePath={activePath}\n >\n <DiffViewDocumentLayout documentId={options.id} documentType={options.type}>\n <CommentsWrapper documentId={options.id} documentType={options.type}>\n <DocumentLayout documentId={options.id} documentType={options.type} />\n </CommentsWrapper>\n </DiffViewDocumentLayout>\n </ReferenceInputOptionsProvider>\n </DocumentPaneProviderWrapper>\n )\n}\n\n/**\n * @internal\n */\nexport function usePaneOptions(\n options: DocumentPaneOptions,\n params: Record<string, string | undefined> = {},\n): DocumentPaneOptions {\n const templates = useTemplates()\n\n return useMemo(() => {\n // The document type is provided, so return\n if (options.type && options.type !== '*') {\n return options\n }\n\n // Attempt to derive document type from the template configuration\n const templateName = options.template || params.template\n const template = templateName ? templates.find((t) => t.id === templateName) : undefined\n const documentType = template?.schemaType\n\n // No document type was found in a template\n if (!documentType) {\n return options\n }\n\n // The template provided the document type, so modify the pane’s `options` property\n return {...options, type: documentType}\n }, [options, params.template, templates])\n}\n\nfunction mergeDocumentType(\n props: DocumentPaneProviderProps,\n options: DocumentPaneOptions,\n documentType: string,\n): DocumentPaneProviderProps {\n return {\n ...props,\n pane: {\n ...props.pane,\n options: {...options, type: documentType},\n },\n }\n}\n"],"x_google_ignoreList":[10,32,33,34],"mappings":"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"}
|