sanity 6.7.0 → 6.8.0-next.13

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.
Files changed (140) hide show
  1. package/lib/{AddonDatasetProvider-DGvQRg0M.js → AddonDatasetProvider-j4tCiH3e.js} +2 -2
  2. package/lib/{AddonDatasetProvider-DGvQRg0M.js.map → AddonDatasetProvider-j4tCiH3e.js.map} +1 -1
  3. package/lib/{CalendarFilter-Cz5HCFLA.js → CalendarFilter-D7qsXo8l.js} +3 -3
  4. package/lib/{CalendarFilter-Cz5HCFLA.js.map → CalendarFilter-D7qsXo8l.js.map} +1 -1
  5. package/lib/{CommentsDocumentLayout-C8D--w7w.js → CommentsDocumentLayout-DdqM0Xva.js} +2 -2
  6. package/lib/{CommentsDocumentLayout-C8D--w7w.js.map → CommentsDocumentLayout-DdqM0Xva.js.map} +1 -1
  7. package/lib/{CommentsField-01fndj6n.js → CommentsField-boIeJpD6.js} +3 -3
  8. package/lib/{CommentsField-01fndj6n.js.map → CommentsField-boIeJpD6.js.map} +1 -1
  9. package/lib/{CommentsInput-DEXCCEGP.js → CommentsInput-CXUjX47s.js} +5 -5
  10. package/lib/{CommentsInput-DEXCCEGP.js.map → CommentsInput-CXUjX47s.js.map} +1 -1
  11. package/lib/{CommentsInspector-DBY7KD3P.js → CommentsInspector-DnhaBRvP.js} +5 -5
  12. package/lib/{CommentsInspector-DBY7KD3P.js.map → CommentsInspector-DnhaBRvP.js.map} +1 -1
  13. package/lib/{CommentsListItem-BEGOSIY0.js → CommentsListItem-Dn3MXuMi.js} +3 -3
  14. package/lib/{CommentsListItem-BEGOSIY0.js.map → CommentsListItem-Dn3MXuMi.js.map} +1 -1
  15. package/lib/{CommentsSelectedPathProvider-Clvemp0W.js → CommentsSelectedPathProvider-jbvY-MJ0.js} +3 -3
  16. package/lib/{CommentsSelectedPathProvider-Clvemp0W.js.map → CommentsSelectedPathProvider-jbvY-MJ0.js.map} +1 -1
  17. package/lib/{CommentsStudioLayout-D1kFwOni.js → CommentsStudioLayout-jxq4yKzW.js} +4 -4
  18. package/lib/{CommentsStudioLayout-D1kFwOni.js.map → CommentsStudioLayout-jxq4yKzW.js.map} +1 -1
  19. package/lib/{PaneContainer-QCEhEyzd.js → PaneContainer-BtFBEWLZ.js} +5 -6
  20. package/lib/PaneContainer-BtFBEWLZ.js.map +1 -0
  21. package/lib/{PresentationToolGrantsCheck-CxqDuu8I.js → PresentationToolGrantsCheck-CITNu5DG.js} +14 -6
  22. package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -0
  23. package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js → ReleasesMetadataProvider-16P_iZKZ.js} +2 -2
  24. package/lib/{ReleasesMetadataProvider-DH9ZPiY1.js.map → ReleasesMetadataProvider-16P_iZKZ.js.map} +1 -1
  25. package/lib/{ReleasesNav-DIkvTixA.js → ReleasesNav-BzrUhOoJ.js} +59 -19
  26. package/lib/ReleasesNav-BzrUhOoJ.js.map +1 -0
  27. package/lib/{ReleasesStudioLayout-KuVpj5_v.js → ReleasesStudioLayout-DEWAqdmR.js} +8 -8
  28. package/lib/{ReleasesStudioLayout-KuVpj5_v.js.map → ReleasesStudioLayout-DEWAqdmR.js.map} +1 -1
  29. package/lib/{ReleasesTool-DN5FBLWz.js → ReleasesTool-DJhN0bPA.js} +14 -14
  30. package/lib/{ReleasesTool-DN5FBLWz.js.map → ReleasesTool-DJhN0bPA.js.map} +1 -1
  31. package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js → SchedulePublishingStudioLayout-B3d-Pcp4.js} +3 -3
  32. package/lib/{SchedulePublishingStudioLayout-B5K8nqiH.js.map → SchedulePublishingStudioLayout-B3d-Pcp4.js.map} +1 -1
  33. package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js → SchedulePublishingUpsellProvider-tHnK31n0.js} +2 -2
  34. package/lib/{SchedulePublishingUpsellProvider-CSMocuXk.js.map → SchedulePublishingUpsellProvider-tHnK31n0.js.map} +1 -1
  35. package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js → ScheduledPublishingEnabledProvider-CzQXgTsk.js} +3 -3
  36. package/lib/{ScheduledPublishingEnabledProvider-DGpt_kKu.js.map → ScheduledPublishingEnabledProvider-CzQXgTsk.js.map} +1 -1
  37. package/lib/{SearchProvider-Iy4-6hcz.js → SearchProvider-D_Y0UV_W.js} +24 -24
  38. package/lib/SearchProvider-D_Y0UV_W.js.map +1 -0
  39. package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js → SingleDocReleaseLayout-BCJmxy5s.js} +2 -2
  40. package/lib/{SingleDocReleaseLayout-CRJT6Vu9.js.map → SingleDocReleaseLayout-BCJmxy5s.js.map} +1 -1
  41. package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js → SingleDocReleaseUpsellProvider-CpUQPbkP.js} +4 -4
  42. package/lib/{SingleDocReleaseUpsellProvider-BRUYOryN.js.map → SingleDocReleaseUpsellProvider-CpUQPbkP.js.map} +1 -1
  43. package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js → TasksStudioActiveToolLayout-uoPm3E0Y.js} +11 -11
  44. package/lib/{TasksStudioActiveToolLayout-BUnLMMYi.js.map → TasksStudioActiveToolLayout-uoPm3E0Y.js.map} +1 -1
  45. package/lib/{TasksStudioLayout-ClMZ9sWa.js → TasksStudioLayout-CFRlrtHs.js} +5 -5
  46. package/lib/{TasksStudioLayout-ClMZ9sWa.js.map → TasksStudioLayout-CFRlrtHs.js.map} +1 -1
  47. package/lib/{Tool-CGMUCSOs.js → Tool-CjZmRZ_L.js} +12 -12
  48. package/lib/{Tool-CGMUCSOs.js.map → Tool-CjZmRZ_L.js.map} +1 -1
  49. package/lib/{UnpublishVersionDialog-DnGH3SLI.js → UnpublishVersionDialog-dJM5TcRn.js} +4 -4
  50. package/lib/{UnpublishVersionDialog-DnGH3SLI.js.map → UnpublishVersionDialog-dJM5TcRn.js.map} +1 -1
  51. package/lib/{UpsellDialog-Dcjf8OuF.js → UpsellDialog-2urLJ5H5.js} +2 -2
  52. package/lib/{UpsellDialog-Dcjf8OuF.js.map → UpsellDialog-2urLJ5H5.js.map} +1 -1
  53. package/lib/{VariantsStudioNavbar-D8L9UWqH.js → VariantsStudioNavbar-BbpP-SV6.js} +7 -27
  54. package/lib/VariantsStudioNavbar-BbpP-SV6.js.map +1 -0
  55. package/lib/{VariantsTool-JHeKZHcr.js → VariantsTool-BpDy94Yo.js} +7 -7
  56. package/lib/{VariantsTool-JHeKZHcr.js.map → VariantsTool-BpDy94Yo.js.map} +1 -1
  57. package/lib/{WorkspaceLoader-CtnP9tNF.js → WorkspaceLoader-COkgKUSq.js} +25 -25
  58. package/lib/{WorkspaceLoader-CtnP9tNF.js.map → WorkspaceLoader-COkgKUSq.js.map} +1 -1
  59. package/lib/_createContext.js +1 -1
  60. package/lib/_singletons.d.ts +1 -1
  61. package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js → buildTextSelectionFromFragment-DkScjl9L.js} +3 -3
  62. package/lib/{buildTextSelectionFromFragment-k_rh1KNa.js.map → buildTextSelectionFromFragment-DkScjl9L.js.map} +1 -1
  63. package/lib/{datastores-X2znh4zT.js → datastores-BKRF0Q9p.js} +16 -5
  64. package/lib/datastores-BKRF0Q9p.js.map +1 -0
  65. package/lib/desk.d.ts +1 -1
  66. package/lib/desk.js +2 -2
  67. package/lib/{index-Z0jxEn8U.d.ts → index-CnGXln7W.d.ts} +62 -12
  68. package/lib/index.d.ts +2 -2
  69. package/lib/index.js +640 -257
  70. package/lib/index.js.map +1 -1
  71. package/lib/{inputResolver-CwZU1DyA.js → inputResolver-BxWoGLcP.js} +4 -4
  72. package/lib/{inputResolver-CwZU1DyA.js.map → inputResolver-BxWoGLcP.js.map} +1 -1
  73. package/lib/{list-CQ5wYKGN.js → list-BqCyKicl.js} +2 -2
  74. package/lib/{list-CQ5wYKGN.js.map → list-BqCyKicl.js.map} +1 -1
  75. package/lib/{navigation.telemetry-Poh1ANIW.js → navigation.telemetry-BdALj7hP.js} +7 -7
  76. package/lib/{navigation.telemetry-Poh1ANIW.js.map → navigation.telemetry-BdALj7hP.js.map} +1 -1
  77. package/lib/pane-8ExVl8qY.js +2 -0
  78. package/lib/pane-wKH9j_H3.js +2 -0
  79. package/lib/{plugin-CNhX_Tb7.js → plugin-BQpcUNhw.js} +6 -6
  80. package/lib/{plugin-CNhX_Tb7.js.map → plugin-BQpcUNhw.js.map} +1 -1
  81. package/lib/{plugin-CXnu--df.js → plugin-CWQXnaVS.js} +5 -5
  82. package/lib/{plugin-CXnu--df.js.map → plugin-CWQXnaVS.js.map} +1 -1
  83. package/lib/{plugin-WOJhZc9d.js → plugin-DbF85jWy.js} +4 -4
  84. package/lib/{plugin-WOJhZc9d.js.map → plugin-DbF85jWy.js.map} +1 -1
  85. package/lib/{plugin-C220AR82.js → plugin-QIqhqpZS.js} +3 -3
  86. package/lib/{plugin-C220AR82.js.map → plugin-QIqhqpZS.js.map} +1 -1
  87. package/lib/presentation.js +1 -1
  88. package/lib/{scheduleItem-DvRHEFEW.js → scheduleItem-CBN6T3h1.js} +8 -8
  89. package/lib/{scheduleItem-DvRHEFEW.js.map → scheduleItem-CBN6T3h1.js.map} +1 -1
  90. package/lib/{schedules-pdE6eEGn.js → schedules-ORlte5Aq.js} +3 -3
  91. package/lib/{schedules-pdE6eEGn.js.map → schedules-ORlte5Aq.js.map} +1 -1
  92. package/lib/structure.js +2 -2
  93. package/lib/{structureTool-BwC_ba3R.js → structureTool-CB6Y6xfI.js} +6 -6
  94. package/lib/{structureTool-BwC_ba3R.js.map → structureTool-CB6Y6xfI.js.map} +1 -1
  95. package/lib/{structureTool-BRYk4qG7.js → structureTool-CupaRvVm.js} +68 -68
  96. package/lib/structureTool-CupaRvVm.js.map +1 -0
  97. package/lib/{studioClient--dm-G_7a.js → studioClient-CJOrhmsT.js} +2 -2
  98. package/lib/{studioClient--dm-G_7a.js.map → studioClient-CJOrhmsT.js.map} +1 -1
  99. package/lib/{useBundleDocuments-oAq5rEkm.js → useBundleDocuments-Bhs3f0QF.js} +15 -13
  100. package/lib/useBundleDocuments-Bhs3f0QF.js.map +1 -0
  101. package/lib/{useComments-DYQ9xguT.js → useComments-b_kg13ZL.js} +2 -2
  102. package/lib/{useComments-DYQ9xguT.js.map → useComments-b_kg13ZL.js.map} +1 -1
  103. package/lib/{useCommentsTelemetry-BoYJL3eG.js → useCommentsTelemetry-BFtot5ib.js} +3 -3
  104. package/lib/{useCommentsTelemetry-BoYJL3eG.js.map → useCommentsTelemetry-BFtot5ib.js.map} +1 -1
  105. package/lib/{useDocumentPreviewValues-v43xdQrb.js → useDocumentPreviewValues-Cp12V_zK.js} +3 -3
  106. package/lib/{useDocumentPreviewValues-v43xdQrb.js.map → useDocumentPreviewValues-Cp12V_zK.js.map} +1 -1
  107. package/lib/{useFeatureEnabled-4gSsu40G.js → useFeatureEnabled-CKA9SpR4.js} +2 -2
  108. package/lib/{useFeatureEnabled-4gSsu40G.js.map → useFeatureEnabled-CKA9SpR4.js.map} +1 -1
  109. package/lib/{useFieldActions-BKWh56GI.js → useFieldActions-BT0dmvAk.js} +2 -2
  110. package/lib/{useFieldActions-BKWh56GI.js.map → useFieldActions-BT0dmvAk.js.map} +1 -1
  111. package/lib/{useReleasesToolAvailable-5DSPa2Gx.js → useReleasesToolAvailable-BtNPK1ns.js} +3 -3
  112. package/lib/{useReleasesToolAvailable-5DSPa2Gx.js.map → useReleasesToolAvailable-BtNPK1ns.js.map} +1 -1
  113. package/lib/{useScheduledDraftMenuActions-BxKkDOS8.js → useScheduledDraftMenuActions-Btn2NKF9.js} +38 -21
  114. package/lib/useScheduledDraftMenuActions-Btn2NKF9.js.map +1 -0
  115. package/lib/{useSetVariant-C6TkfVCm.js → useSetVariant-D6nDqKeX.js} +3 -3
  116. package/lib/{useSetVariant-C6TkfVCm.js.map → useSetVariant-D6nDqKeX.js.map} +1 -1
  117. package/lib/{useStudioUrl-CGakngEM.js → useStudioUrl-DFBaha5x.js} +5 -5
  118. package/lib/{useStudioUrl-CGakngEM.js.map → useStudioUrl-DFBaha5x.js.map} +1 -1
  119. package/lib/{useTimeZone-BoKWaSj6.js → useTimeZone-DceoecRg.js} +2 -2
  120. package/lib/{useTimeZone-BoKWaSj6.js.map → useTimeZone-DceoecRg.js.map} +1 -1
  121. package/lib/{userComponent-DIoiRgtl.js → userComponent-DBLembOH.js} +2 -2
  122. package/lib/{userComponent-DIoiRgtl.js.map → userComponent-DBLembOH.js.map} +1 -1
  123. package/lib/{validationUtils-CX9mO1s1.js → validationUtils-BefUKU_E.js} +4 -4
  124. package/lib/{validationUtils-CX9mO1s1.js.map → validationUtils-BefUKU_E.js.map} +1 -1
  125. package/lib/{version-CUL0S-Ix.js → version-D8FgjwBF.js} +2 -2
  126. package/lib/{version-CUL0S-Ix.js.map → version-D8FgjwBF.js.map} +1 -1
  127. package/package.json +10 -10
  128. package/lib/Delay-DjgiAi06.js +0 -21
  129. package/lib/Delay-DjgiAi06.js.map +0 -1
  130. package/lib/PaneContainer-QCEhEyzd.js.map +0 -1
  131. package/lib/PresentationToolGrantsCheck-CxqDuu8I.js.map +0 -1
  132. package/lib/ReleasesNav-DIkvTixA.js.map +0 -1
  133. package/lib/SearchProvider-Iy4-6hcz.js.map +0 -1
  134. package/lib/VariantsStudioNavbar-D8L9UWqH.js.map +0 -1
  135. package/lib/datastores-X2znh4zT.js.map +0 -1
  136. package/lib/pane-CoSiSpvR.js +0 -2
  137. package/lib/pane-ptq8ykm7.js +0 -2
  138. package/lib/structureTool-BRYk4qG7.js.map +0 -1
  139. package/lib/useBundleDocuments-oAq5rEkm.js.map +0 -1
  140. package/lib/useScheduledDraftMenuActions-BxKkDOS8.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureTool-CupaRvVm.js","names":["useContext","DocumentPaneContext","DocumentPaneContextValue","useDocumentPane","documentPane","Error","useMemo","isPublishedPerspective","prepareForPreview","usePerspective","useTranslation","useValuePreview","structureLocaleNamespace","useDocumentPane","UseDocumentTitle","error","title","useDocumentTitle","$","_c","connectionState","schemaType","editState","isDeleted","lastRevisionDocument","selectedPerspectiveName","t","t0","bb0","published","version","draft","documentValue","subscribed","Boolean","t1","bb1","t3","prepared","t2","console","warn","deletedDocumentPreview","enabled","value","error_0","t4","Symbol","for","undefined","name","t5","t6","message","SanityDocumentLike","useSchema","useTranslation","structureLocaleNamespace","useDocumentTitle","DocTitleProps","document","DocTitle","props","$","_c","documentValue","schema","schemaType","get","_type","t","title","t0","t1","color","InfoOutlineIcon","Box","Flex","Inline","rem","Text","useTranslation","styled","Tooltip","structureLocaleNamespace","ChevronWrapper","CrossDatasetReferencesDetails","details","CrossDatasetReferencesSummary","summary","Table","table","theme","sanity","space","DocumentIdFlex","OtherReferenceCount","props","$","_c","t","difference","totalCount","references","length","t0","count","t1","t2","t3","Symbol","for","t4","t5","PrepareViewOptions","SanityDocument","SchemaType","SortOrdering","Flex","ComponentType","useMemo","useObservable","DocumentPresence","DocumentPreviewPresence","DocumentPreviewStore","DocumentStatus","DocumentStatusIndicator","GeneralPreviewLayoutKey","getPreviewStateObservable","getPreviewValueWithFallback","SanityDefaultPreview","useDocumentVersionInfo","usePerspective","TooltipDelayGroupProvider","PaneItemPreviewProps","documentPreviewStore","icon","layout","presence","schemaType","sortOrder","Pick","value","_id","_type","PaneItemPreview","props","$","_c","versionsInfo","perspectiveStack","t0","bb0","undefined","t1","by","ordering","title","name","viewOptions","previewStateObservable","t2","Symbol","for","snapshot","isLoading","original","previewIsLoading","t3","draft","published","versions","length","status","t4","tooltip","t5","fallback","t6","useContext","PaneRouterContext","PaneRouterContextValue","usePaneRouter","SchemaType","ReactNode","useCallback","getPublishedId","PreviewCard","SanityDocument","useDocumentPresence","useDocumentPreviewStore","PaneItemPreview","usePaneRouter","EMPTY_ARRAY","ReferencePreviewLinkProps","onClick","type","icon","value","_id","_type","ReferencePreviewLink","props","$","_c","t0","t1","publishedId","documentPresence","documentPreviewStore","ReferenceChildLink","t2","name","LinkComponent","linkProps","Link","t3","t4","length","t5","t6","Card","Flex","Stack","Text","useMemo","useObservable","getDocumentVariantType","getPreviewStateObservable","getPreviewValueWithFallback","getPublishedId","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","ReleaseAvatarIcon","ReleaseTitle","SanityDefaultPreview","SchemaType","useActiveReleases","useDocumentPreviewStore","useSchema","useTranslation","styled","EllipsisText","VersionItemPreview","t0","$","_c","versionId","schemaType","t","documentPreviewStore","t1","documentVariant","data","releases","t2","perspectiveStack","previewStateObservable","t3","Symbol","for","snapshot","isLoading","original","previewIsLoading","t4","bb0","undefined","t5","t6","r","_id","find","release","bb1","systemTitle","tone","t7","name","fallback","_type","t8","backgroundColor","t9","t10","t11","metadata","title","_temp","t12","t13","t14","icon","VersionsPreviewList","documentType","documentVersions","schema","get","Error","map","version","displayTitle","ChevronDownIcon","CopyIcon","DocumentsIcon","UnknownIcon","WarningOutlineIcon","Box","Card","Flex","Stack","Text","useToast","useCallback","SanityDefaultPreview","Translate","useSchema","useTranslation","Button","structureLocaleNamespace","ChevronWrapper","CrossDatasetReferencesDetails","CrossDatasetReferencesSummary","DocumentIdFlex","OtherReferenceCount","Table","ReferencePreviewLink","ReferringDocuments","VersionsPreviewList","DeletionConfirmationDialogBodyProps","Required","documentTitle","React","ReactNode","action","onReferenceLinkClick","documentId","documentType","documentVersions","ConfirmDeleteDialogBody","t0","$","_c","crossDatasetReferences","internalReferences","totalCount","datasetNames","hasUnknownDatasetNames","schema","toast","t","t1","item","type","get","_type","_id","renderPreviewItem","t2","DocumentTitle","confirmationMessage","t3","t4","normalizedDatasetNames","t5","length","t6","join","t7","t8","count","datasets","context","datasetSubtitle","t9","t10","Symbol","for","t11","t12","t13","t14","t15","t16","t17","references","map","item_0","t18","borderTop","undefined","documentCount","minWidth","filter","_temp","t19","index","projectId","datasetName","referenceId","content","navigator","clipboard","writeText","catch","push","status","title","t20","t21","t22","reference","ClientError","SanityClient","useMemo","useObservable","combineLatest","concat","EMPTY","fromEvent","Observable","of","timer","catchError","distinctUntilChanged","map","shareReplay","startWith","switchMap","AvailabilityResponse","DEFAULT_STUDIO_CLIENT_OPTIONS","DocumentStore","getDraftId","getPublishedId","useClient","useDocumentStore","isClientError","e","POLL_INTERVAL","visiblePoll$","getVisiblePoll$","document","pipe","visibilityState","visible","refCount","bufferSize","ReferringDocuments","isLoading","totalCount","projectIds","datasetNames","hasUnknownDatasetNames","internalReferences","references","Array","_id","_type","crossDatasetReferences","projectId","documentId","datasetName","getDocumentExistence","versionedClient","draftId","publishedId","requestOptions","uri","getDataUrl","json","query","excludeContent","tag","observable","request","omitted","nonExistant","filter","doc","reason","length","undefined","some","id","fetchCrossDatasetReferences","context","checkDocumentId","currentDataset","config","dataset","url","statusCode","ReferringDocumentsOptions","documentStore","referringDocuments","internalReferences$","withLoadingState","fetchInternalReferences","crossDatasetReferences$","isInternalReferencesLoading","isCrossDatasetReferencesLoading","from","Set","crossDatasetReference","Boolean","sort","INITIAL_STATE","useReferringDocuments","$","_c","t0","referringDocuments$","referencesClause","totalClause","fetchQuery","listenQuery","fetch","listen","transitions","throttleTime","source","Type","value","Box","Flex","useCallback","useId","useMemo","getPublishedId","LoadingBlock","useDocumentVersions","useTranslation","styled","Dialog","structureLocaleNamespace","DocTitle","ConfirmDeleteDialogBody","useReferringDocuments","DialogBody","LoadingContainer","attrs","align","direction","justify","DeleteReferenceCounts","totalReferenceCount","internalReferenceCount","crossDatasetReferenceCount","ConfirmDeleteDialogProps","id","type","action","onCancel","onConfirm","versions","referenceCounts","ConfirmDeleteDialog","t0","$","_c","t1","undefined","t","dialogId","internalReferences","crossDatasetReferences","isLoading","totalCount","projectIds","datasetNames","hasUnknownDatasetNames","t2","_id","_type","t3","t4","documentTitle","showConfirmButton","t5","t6","documentId","data","documentVersions","loading","versionsLoading","t7","handleConfirm","t8","context","t9","t10","onClick","text","t11","t12","cancelButton","confirmButton","t13","t14","Box","Text","ComponentProps","useCallback","useId","useState","useTranslation","Dialog","ErrorBoundary","structureLocaleNamespace","ConfirmDeleteDialog","ConfirmDeleteDialogProps","ArgType","T","arg","U","ErrorInfo","ConfirmDeleteDialogContainer","props","$","_c","t","id","error","setError","t0","Symbol","for","handleRetry","t1","confirmButton","text","onClick","tone","onCancel","Card","styled","Root","PANE_DEFAULT_MIN_WIDTH","PaneConfigOpts","PaneResizeCache","_calcPaneResize","cache","left","right","deltaX","leftFlex","leftW","rightFlex","rightW","sum","flex","width","leftMinWidth","minWidth","rightMinWidth","leftMaxWidth","Math","min","maxWidth","Infinity","rightMaxWidth","minDeltaX","rightMinDeltaX","maxDeltaX","leftMaxDeltaX","_deltaX","max","_getDOMPath","rootElement","HTMLElement","el","path","e","parentElement","children","Array","from","childNodes","index","indexOf","unshift","_getDOMPath","EMPTY_PATH","_sortElements","rootElement","HTMLElement","elements","map","WeakMap","element","set","_sortByElementPath","a","b","_a","get","_b","len","Math","max","length","i","aIndex","bIndex","sort","PANE_COLLAPSED_WIDTH","PANE_DEFAULT_MIN_WIDTH","_calcPaneResize","_sortElements","PaneConfigOpts","PaneData","PaneResizeCache","PaneResizeData","PaneLayoutState","expandedElement","HTMLElement","panes","resizing","PaneLayoutStateObserver","state","PaneLayoutController","collapse","element","expand","maximize","mount","options","resize","type","leftElement","deltaX","setRootElement","nextRootElement","setRootWidth","nextRootWidth","subscribe","observer","createPaneLayoutController","observers","elements","optionsMap","WeakMap","original","userCollapsedElementSet","Set","cache","Partial","rootElement","rootWidth","maximizedElement","resizeDataMap","Map","add","_notifyObservers","delete","set","push","idx","indexOf","splice","leftIndex","leftOptions","get","rightElement","rightOptions","left","flex","width","offsetWidth","right","leftW","rightW","leftFlex","rightFlex","leftResizeData","rightResizeData","currentMinWidth","currentMaxWidth","maxWidth","Infinity","_elements","unshift","dataMap","len","length","lastElement","collapsedWidth","remaingWidth","minWidth","isLast","userCollapsed","has","sizeCollapsed","collapsed","resizeData","maximized","data","CardProps","useElementRect","HTMLProps","useEffect","useMemo","useState","PaneLayoutContext","Root","createPaneLayoutController","PaneLayoutState","PaneLayoutContextValue","PaneLayoutProps","minWidth","onCollapse","onExpand","PaneLayout","props","$","_c","children","restProps","controller","_temp","rootElement","setRootElement","rootRect","width","collapsed","undefined","t0","Symbol","for","expandedElement","panes","resizing","state","setState","t1","t2","t3","t4","setRootWidth","t5","t6","subscribe","t7","t8","t9","collapse","expand","mount","resize","paneLayout","t10","t11","t12","t13","t14","CloseIcon","Box","Card","CardProps","Flex","Text","ElementType","HTMLProps","ReactNode","useTranslation","styled","Button","structureLocaleNamespace","DocumentInspectorHeaderProps","as","closeButtonLabel","flex","onClose","title","Root","position","zIndex","lineHeight","DocumentInspectorHeader","props","$","_c","children","forwardedAs","restProps","t","t0","t1","t2","content","t3","t4","t5","defineEvent","DocumentVariantType","DiffViewDocumentSelectionInfo","documentVariantTypes","DiffViewDocumentSelectionChangedInfo","previousDocumentVariantTypes","DiffViewEntered","name","version","description","DiffViewExited","DiffViewDocumentSelectionChanged","useMemo","Subject","PathSyncChannel","PathSyncState","useCreatePathSyncChannel","$","_c","t0","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","isEqual","useEffect","useMemo","useRef","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","t0","$","_c","t1","undefined","onParamsError","onActiveChanged","onTargetDocumentsChanged","routerState","nextDocument","previousDocument","t2","_searchParams","searchParams","URLSearchParams","get","anyParamSet","some","_temp","previousState","t3","t4","t5","t6","parseParams","params","t7","errors","result","t8","t9","bb0","t10","Symbol","for","t11","current","t12","t13","previous","next","t14","t15","param","DiffViewStateError","DiffViewStateErrorWithInput","error","input","ParamsSuccess","Pick","ParamsError","previousDocumentType","previousDocumentId","split","filter","Boolean","nextDocumentType","nextDocumentId","push","length","selectActiveTransition","useEffect","ScrollMirror","useScrollMirror","elements","$","_c","t0","t1","existentElements","filter","_temp","length","scrollMirror","destroy","element","getReleaseIdFromReleaseDocumentId","getVersionFromId","isDraftId","isPublishedId","ReleaseDocument","TargetPerspective","findRelease","documentId","releases","find","_id","CloseIcon","LockIcon","TransferIcon","Badge","Box","Button","ButtonProps","ButtonTone","Flex","Menu","MenuItem","Stack","Text","TFunction","ComponentType","useMemo","DocumentLayoutProps","getDraftId","getPublishedId","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","getVersionId","isReleaseDocument","isReleaseScheduledOrScheduling","isSystemBundleName","LATEST","PUBLISHED","ReleaseAvatar","ReleaseDocument","ReleaseTitle","TargetPerspective","useActiveReleases","useDocumentVersions","useEditState","useFormatRelativeLocalePublishDate","useTranslation","useWorkspace","styled","MenuButton","structureLocaleNamespace","useDiffViewRouter","useDiffViewState","findRelease","VersionModeHeaderLayout","header","VersionModeHeaderLayoutSection","div","VersionModeHeader","state","Pick","t0","$","_c","documentId","t","t1","data","documentVersions","exitDiffView","navigateDiffView","documents","activeReleases","t2","flatMap","_temp","releasesIds","t3","t4","release","releaseId","_id","includes","filter","releases","fetchingState","releasesState","t5","selectedDocumentId","previous","previousDocument","id","onSelectPreviousRelease","t6","selectedDocumentId_0","next","nextDocument","onSelectNextRelease","t7","t8","t9","t10","t11","Symbol","for","t12","t13","justifySelf","t14","t15","t16","VersionMenuProps","role","onSelectRelease","document","type","VersionMenu","undefined","published","draft","selected","tStructure","tCore","drafts","enabled","isDraftModelEnabled","getMenuButtonProps","map","VersionMenuItemProps","onSelect","isSelected","VersionMenuItem","formatPublishDate","onClick","releasePerspective","join","minWidth","metadata","title","size","weight","releaseType","text","tone","disabled","icon","iconRight","loading","error","Error","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","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","TargetPerspective","useActiveReleases","useDocumentForm","useEditState","useMiddlewareComponents","VirtualizerScrollInstanceProvider","CommentsEnabledContext","ReviewChangesContext","styled","pickDocumentLayoutComponent","usePathSyncChannel","PathSyncChannel","findRelease","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","DiffViewDocument","compareValue","useCompareValue","data","releases","patchChannel","_temp","perspective","perspectiveName","selectedPerspectiveName","releaseId","comparisonValue","displayInlineChanges","formState","onChange","onFocus","onBlur","onSetActiveFieldGroup","onSetCollapsedFieldSet","onSetCollapsedPath","collapsedFieldSets","ready","collapsedPaths","schemaType","value","onProgrammaticFocus","openPath","onPathOpen","onPathOpenFromForm","isLoading","pathSyncChannel","path","push","source","subscription","subscribe","path_0","unsubscribe","enabled","mode","focusPath","changed","focused","groups","validation","members","sanitizeBundleName","hasUpstreamVersion","presence","undefined","UseCompareValueOptions","Pick","compareDocumentEditState","bb0","version","draft","published","bundle","ReturnType","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","disableNew","diffViewReferenceInputOptionsContext","t2","t3","t4","previous","type","id","next","t5","t6","t7","useTelemetry","useToast","ComponentType","PropsWithChildren","DocumentVariantType","DocumentLayoutProps","getDocumentVariantType","useTranslation","structureLocaleNamespace","DiffViewEntered","DiffViewExited","DiffViewDocumentSelectionChanged","DiffView","selectActiveTransition","useDiffViewState","DiffViewDocumentLayout","Pick","t0","$","_c","children","documentId","toast","t","log","t1","errors","push","id","status","title","description","map","t2","error","input","t3","previousState","state","documentVariantTypes","documentIdsToVariantTypes","documents","previous","next","previousState_0","state_0","previousDocumentVariantTypes","t4","onParamsError","onActiveChanged","onTargetDocumentsChanged","isActive","t5","t6","ids","filter","Box","CardTone","Pane","PaneContent","PaneHeader","ErrorPane","props","$","_c","children","currentMinWidth","flex","minWidth","paneKey","title","t0","tone","t1","undefined","t2","t3","t4","merge","Observable","of","delay","mapTo","isDev","WaitMessage","messageKey","message","getWaitMessages","path","thresholds","ms","length","join","push","src","map","threshold","pipe","_raf2","CardTone","Flex","memo","useEffect","useMemo","useState","Observable","Delay","LoadingBlock","useTranslation","styled","Pane","PaneContent","structureLocaleNamespace","getWaitMessages","WaitMessage","LoadingPaneProps","delay","flex","message","p","minWidth","paneKey","path","selected","title","tone","DELAY","DEFAULT_MESSAGE_KEY","Content","LoadingPane","props","$","_c","t0","t1","undefined","messageProp","t","t2","bb0","t3","split","resolvedMessage","currentMessage","setCurrentMessage","t4","t5","subscribe","sub","messageKey","unsubscribe","contentElement","setContentElement","mounted","setMounted","t6","t7","t8","t9","t10","t11","content","t12","t13","displayName","useCallback","useLayoutEffect","useRef","COMMENTS_INSPECTOR_NAME","CommentsEnabledProvider","CommentsProvider","useCommentsEnabled","getTargetScopeId","usePerspective","useRouter","usePaneRouter","useDocumentPane","CommentsWrapperProps","children","React","ReactNode","documentId","documentType","CommentsWrapper","props","$","_c","t0","t1","CommentsProviderWrapper","enabled","connectionState","onPathOpen","inspector","openInspector","targetDocumentState","selectedReleaseId","selectedVariantName","params","setParams","resolveIntentLink","scopeId","selectedCommentId","comment","scheduledDraft","paramsRef","t2","current","t3","commentId","searchParams","push","intentLink","id","type","inspect","window","location","origin","getCommentLink","t4","undefined","handleClearSelectedComment","t5","name","handleOpenCommentsInspector","t6","t7","t8","useMemo","useRef","DocumentActionComponent","DocumentActionDescription","DocumentActionProps","EMPTY_ARRAY","getDocumentIdForCanvasLink","GetHookCollectionState","getReleaseIdFromReleaseDocumentId","useActiveReleases","useCanvasCompanionDoc","useTranslation","DocumentActionsStateContext","structureLocaleNamespace","useDocumentPane","ResolvedAction","action","DocumentActionsProvider","props","$","_c","children","data","activeReleases","actions","editState","isInitialValueLoading","revisionId","onCompleteRef","t0","release","t1","candidate","map","_temp","find","matchingReleaseName","revision","undefined","initialValueResolved","actionProps","t2","Symbol","for","current","t3","onComplete","t4","t5","t6","states","r","_id","SUPPORTED_CANVAS_LOCKED_ACTIONS","ActionsGuardWrapperProps","Omit","React","ReactNode","ActionsGuardWrapper","t","isLockedByCanvas","s","includes","disabled","title","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","INCOMING_REFERENCES_INSPECTOR_NAME","memo","useCallback","useEffect","useMemo","useState","DocumentInspector","DocumentInspectorMenuItem","useUnique","DocumentInspectorMenuItemsResolverProps","documentId","documentType","inspectors","onMenuItems","items","DocumentInspectorMenuItemsResolver","props","$","_c","len","length","t0","Array","from","menuItems","setMenuItems","t1","t2","newFieldActions","i","t3","Symbol","for","index","node","prev","next","setMenuItem","t4","t5","filter","Boolean","t6","t7","inspector","index_0","useMenuItem","defineInspectorMenuItemComponent","name","const","_temp","map","InspectorMenuItems","_temp2","t8","InspectorMenuItem","key","displayName","NonNullable","menuItem","useContext","DocumentPaneInfoContext","DocumentPaneInfoContextValue","useDocumentPaneInfo","documentPaneInfo","Error","useToast","memo","useEffect","useMemo","useRef","isDocumentLimitError","Translate","useDocumentLimitsUpsellContext","useDocumentOperationEvent","useTranslation","usePaneRouter","structureLocaleNamespace","useDocumentPane","useDocumentPaneInfo","useDocumentTitle","IGNORE_OPS","DocumentOperationResults","$","_c","push","pushToast","value","documentPaneValue","documentId","documentType","documentTitleInfo","titleError","error","event","prevEvent","paneRouter","t","handleOpenDialog","t0","bb0","title","includes","op","type","t1","documentTitleBase","t2","length","slice","documentTitle","t3","t4","current","cleanupId","closable","duration","status","context","description","message","idPair","versionId","Strong","setTimeout","closeCurrentAndAfter","clearTimeout","SchemaType","isLiveEditEnabled","schemaType","Pick","liveEdit","SchemaType","EditStateFor","Workspace","isLiveEditEnabled","Context","editState","Pick","workspace","document","drafts","schemaType","hasObsoleteDraft","result","reason","ready","undefined","draftExists","draft","enabled","isDraftModelEnabled","EditStateFor","isNewDocument","isPerspectiveWriteable","mustChooseNewDocumentDestination","isSelectedPerspectiveWriteable","editState","ReturnType","Pick","result","Box","Suspense","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","useCallback","useMemo","useObservable","map","KeyValueStoreValue","useKeyValueStore","STRUCTURE_TOOL_NAMESPACE","useStructureToolSetting","namespace","key","defaultValue","$","_c","keyValueStore","t0","filter","Boolean","keyValueStoreKey","join","t1","t2","value","getKey","pipe","value$","value_0","ValueType","newValue","setKey","set","t3","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","target","maybeSelectAll","selectAll","keyCode","metaKey","ctrlKey","preventDefault","currentTarget","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","Text","useMemo","getReleaseIdFromReleaseDocumentId","getVersionInlineBadge","isCardinalityOneRelease","ReleaseTitle","Translate","useArchivedReleases","useTranslation","usePaneRouter","structureLocaleNamespace","Banner","ArchivedReleaseDocumentBanner","t0","$","_c","t1","undefined","releaseId","t","tCore","data","archivedReleases","params","setParams","effectiveReleaseId","historyVersion","t2","rev","historyEvent","since","scheduledDraft","handleGoBack","t3","t4","r","_id","find","release","bb0","state","description","t5","metadata","title","t6","t7","t8","displayTitle","VersionBadge","t9","children","BadgeWithTone","archivedRelease","text","onClick","t10","ComposeSparklesIcon","InfoOutlineIcon","LaunchIcon","Box","Card","Container","Flex","Heading","Text","useClickOutsideEvent","useCallback","useMemo","useRef","useState","getDocumentVariantType","useCanvasCompanionDoc","useNavigateToCanvasDoc","useTranslation","styled","Button","Popover","structureLocaleNamespace","useDocumentPane","Banner","Image","img","CANVAS_IMAGE_URL","CANVAS_APP_NAME","CanvasPopoverContent","t0","$","_c","onClose","isLockedByCanvas","t","ref","t1","Symbol","for","current","t2","popoverHeading","t3","popoverDescription","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","WarningOutlineIcon","ObjectSchemaType","Flex","Text","ComponentType","useCallback","getVersionInlineBadge","isPerspectiveWriteable","isReleaseDocument","PerspectiveNotWriteableReason","ReleasesNav","ReleasesNavMenuItemPropsGetter","ReleaseTitle","TargetPerspective","Translate","useTranslation","useWorkspace","structureLocaleNamespace","Banner","Props","schemaType","selectedPerspective","reason","ChooseNewDocumentDestinationBanner","t0","$","_c","t","tCore","document","t1","drafts","t2","enabled","isDraftModelEnabled","t3","t4","perspective","disabled","result","menuItemProps","releaseDoc","undefined","metadata","title","releaseTitle","t5","t6","t7","VersionBadge","t8","children","BadgeWithTone","t9","t10","t11","t12","DocumentRemoveIcon","ReadOnlyIcon","Text","useCallback","isDraftPerspective","isPublishedPerspective","isReleaseDocument","ReleaseDocument","Translate","useDocumentOperation","usePerspective","useTranslation","useRouter","structureLocaleNamespace","useDocumentPane","Banner","DeletedDocumentBanners","$","_c","isDeleted","isDeleting","ready","selectedPerspective","state","t0","Symbol","for","DeletedDocumentBanner","documentId","documentType","restore","navigateIntent","execute","id","type","handleRestore","t","t1","t2","onClick","text","t3","t4","t5","ArchivedReleaseBanner","release","metadata","title","ErrorOutlineIcon","Text","isDeprecatedSchemaType","Translate","useTranslation","structureLocaleNamespace","useDocumentPaneInfo","Banner","DeprecatedDocumentTypeBanner","$","_c","schemaType","t","t0","t1","deprecated","reason","Text","useToast","useCallback","useEffect","useState","getReleaseIdFromReleaseDocumentId","getReleaseTone","isAgentBundleName","getVersionInlineBadge","LATEST","ReleaseTitle","SystemBundle","TargetPerspective","Translate","useConditionalToast","useTranslation","useVersionOperations","structureLocaleNamespace","Banner","TOAST_DELAY","VersionCreateState","status","lastUpdate","Date","DocumentNotInReleaseBanner","t0","$","_c","documentId","currentRelease","isScheduledRelease","t1","t2","tone","t","tCore","createVersion","isAnonymousBundle","t3","metadata","title","releaseTitle","versionCreateState","setVersionCreateState","toast","t4","_id","bundleId","t5","err","push","closable","description","message","undefined","handleAddToRelease","now","useCurrentTime","Boolean","getTime","t6","t7","t8","id","enabled","t9","t10","VersionBadge","t11","children","BadgeWithTone","t12","text","disabled","onClick","mode","t13","updateIntervalMs","Symbol","for","currentTime","setCurrentTime","intervalId","setInterval","clearInterval","SanityDocumentLike","getTargetDocument","SystemVariant","VersionInfoDocumentStub","VariantCreateBaseDocument","_id","_rev","findVariantCreateBaseDocument","variant","documentVersions","fallback","Pick","preferredVariantDocument","bundle","Text","useToast","useCallback","useMemo","useState","getVariantTitle","isDraftPerspective","isPublishedPerspective","isReleaseDocument","Translate","useConditionalToast","useDocumentVersions","useGetDefaultPerspective","usePerspective","useTranslation","useVariantDocumentOperations","structureLocaleNamespace","useDocumentPane","Banner","findVariantCreateBaseDocument","TOAST_DELAY","VariantDocumentCreateStatus","DocumentNotInVariantBanner","$","_c","t","tCore","value","documentId","selectedPerspective","selectedVariant","selectedReleaseId","t0","versions","createVariantDocument","status","setStatus","toast","defaultPerspective","t1","variantTitle","t2","bb0","t3","metadata","title","String","perspectiveTitle","baseDocument","variant","documentVersions","fallback","_id","_rev","baseId","ifBaseRevisionId","documentGroupId","t4","err","push","closable","description","message","Error","handleAddToVariant","t5","t6","t7","id","enabled","delay","isActionAllowed","t8","t9","Symbol","for","VariantBadge","_temp","PerspectiveTitle","_temp2","t10","t11","text","tone","disabled","onClick","mode","undefined","t12","children","children_0","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","useWorkspace","AskToEditDialogOpened","RequestPermissionDialog","useRoleRequestsStatus","structureLocaleNamespace","useDocumentPane","Banner","InsufficientPermissionBannerProps","requiredPermission","InsufficientPermissionBanner","t0","$","_c","currentUser","workspace","documentId","schemaType","t1","name","document","askToEdit","enabled","documentType","askToEditEnabled","data","roleRequestStatus","loading","requestStatusLoading","error","requestStatusError","requestSent","setRequestSent","requestPending","currentUserRoles","roles","isOnlyViewer","length","showRequestPermissionDialog","setShowRequestPermissionDialog","t2","Symbol","for","style","listFormat","t","telemetry","roleTitles","map","_temp","formatToParts","_temp2","showAskToEditAction","t3","Roles","t4","count","t5","t6","onClick","undefined","log","text","tone","disabled","mode","t7","t8","t9","part","type","value","role","title","defineEvent","TypeInfo","liveEditResolveType","ResolvedLiveEdit","name","version","description","SanityDocument","ErrorOutlineIcon","useTelemetry","Flex","Text","ComponentType","useCallback","useEffect","useState","getDraftId","getPublishedId","ObjectSchemaType","Translate","useDocumentOperation","useTranslation","Button","useDiffViewRouter","structureLocaleNamespace","ResolvedLiveEdit","Banner","ObsoleteDraftBannerProps","displayed","Partial","documentId","schemaType","i18nKey","isEditBlocking","ObsoleteDraftBanner","t0","$","_c","t","isPublishing","setPublishing","isDiscarding","setDiscarding","telemetry","publish","discardChanges","_type","t1","execute","log","liveEditResolveType","handlePublish","t2","handleDiscard","t3","Symbol","for","diffViewRouter","t4","_id","name","navigateDiffView","mode","previousDocument","type","id","nextDocument","compareDraft","t5","title","t6","t7","t8","t9","t10","content","t11","t12","t13","t14","t15","Flex","Text","useCallback","useMemo","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","isCardinalityOneRelease","isVersionId","ReleaseTitle","Translate","useActiveReleases","useDocumentVersions","useOnlyHasVersions","useSetPerspective","useTranslation","VersionInlineBadge","structureLocaleNamespace","Banner","OpenReleaseToEditBanner","t0","$","_c","documentId","isPinnedDraftOrPublished","t1","onlyHasVersions","t2","OpenReleaseToEditBannerInner","data","activeReleases","setPerspective","releaseId","t3","version","_id","includes","find","currentVersion","t","tCore","documentVersions","t4","t5","version_0","hasDocumentVersion","release","r","filter","documentVersionReleases","tone","t6","handleGoToEdit","length","firstRelease","t7","fallback","t8","t9","displayTitle","VersionBadge","count","metadata","title","t10","text","onClick","mode","undefined","t11","PauseIcon","Text","Translate","useTranslation","structureLocaleNamespace","Banner","PausedScheduledDraftBanner","$","_c","t","t0","CloseIcon","SyncIcon","WarningOutlineIcon","KeyedSegment","Reference","Text","fromString","pathFromString","get","pathGet","memo","useCallback","useMemo","useObservable","concat","Observable","of","debounceTime","map","DocumentAvailability","getPublishedId","isSystemBundle","useDocumentPreviewStore","usePerspective","useTranslation","usePaneRouter","structureLocaleNamespace","RouterPaneGroup","Banner","ParentReferenceInfo","loading","result","availability","draft","published","version","refValue","ReferenceChangedBanner","$","_c","documentPreviewStore","selectedPerspectiveName","params","groupIndex","routerPanesState","replaceCurrent","BackLink","routerReferenceId","id","parentGroup","parentSibling","parentId","hasHistoryOpen","Boolean","rev","t0","parentRefPath","t","t1","bb0","parentRefPathSegment","t2","Symbol","for","publishedId","path","keyedSegmentIndex","findIndex","_temp","t3","undefined","t4","t5","snapshot","_ref","unstable_observePathsDocumentPair","slice","pipe","referenceInfoObservable","referenceInfo","Record","handleReloadReference","shouldHide","available","onClick","icon","text","as","t6","t7","displayName","p","WarningOutlineIcon","Text","useTranslation","structureLocaleNamespace","useDocumentPane","Banner","RevisionNotFoundBanner","$","_c","revisionNotFound","t","t0","t1","SanityDocument","WarningOutlineIcon","Text","getPublishedId","Translate","useScheduledDraftDocument","useTranslation","structureLocaleNamespace","Banner","ScheduledDraftOverrideBannerProps","releaseId","draftDocument","Partial","ScheduledDraftOverrideBanner","t0","$","_c","t","firstDocument","scheduledDraftDocument","draftPublishedId","_id","scheduledPublishedId","draftRev","_rev","scheduledBaseRev","_system","base","rev","publishedDocumentsMatch","baseRevisionsDiffer","t1","LockIcon","Text","getReleaseTone","LATEST","ReleaseDocument","Translate","useFormatRelativeLocalePublishDate","useTranslation","Banner","ScheduledReleaseBanner","t0","$","_c","currentRelease","t1","t2","tone","t","tCore","formatPublishDate","t3","t4","date","t5","t6","UnpublishIcon","Stack","Text","getVersionInlineBadge","isGoingToUnpublish","isReleaseDocument","ReleaseTitle","Translate","usePerspective","useTranslation","structureLocaleNamespace","useDocumentPane","Banner","UnpublishedDocumentBanner","$","_c","value","editState","selectedPerspective","isCurrentVersionGoingToUnpublish","version","t","tCore","t0","metadata","title","releaseTitle","t1","t2","VersionBadge","t3","children","BadgeWithTone","t4","t5","WarningOutlineIcon","Text","Translate","useTranslation","structureLocaleNamespace","Banner","VariantDefinitionNotFoundBanner","t0","$","_c","requestedVariantName","t","t1","name","t2","Symbol","for","VariantName","_temp","t3","children","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","Flex","focusFirstDescendant","Spinner","Text","FormEvent","forwardRef","useCallback","useEffect","useEffectEvent","useMemo","useState","tap","createPatchChannel","Delay","DocumentMutationEvent","DocumentRebaseEvent","FormBuilder","FormContainer","FormDocumentValue","FormRow","fromMutationPatches","getTargetScopeId","PatchMsg","PresenceOverlay","useConditionalToast","useDocumentPresence","useDocumentStore","usePerspective","useTranslation","structureLocaleNamespace","useDocumentPane","useDocumentTitle","FormHeader","FormViewProps","hidden","margins","preventDefault","ev","FormView","HTMLFormElement","props","ref","$","_c","collapsedFieldSets","collapsedPaths","displayed","value","editState","documentId","documentType","fieldActions","onChange","validation","ready","formState","onFocus","connectionState","onBlur","onSetCollapsedPath","onPathOpen","onSetCollapsedFieldSet","onSetActiveFieldGroup","openPath","inspectOpen","compareValue","hasUpstreamVersion","focusPath","syncState","targetDocumentState","selectedPerspective","documentStore","t0","scopeId","presence","title","patchChannel","_temp","isLocked","transactionSyncLock","enabled","t","t1","t2","t3","id","status","const","description","closable","conditionalToastParams","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","pending","stalled","recovering","copy","active","undefined","t14","t15","syncToastParams","t16","pair","sub","documentEvents","pipe","event","type","publish","prepareMutationEvent","prepareRebaseEvent","subscribe","unsubscribe","t17","hasRev","Boolean","_rev","t18","patches","snapshot","handleInitialValue","t19","t20","formRef","setFormRef","hasFocusedAnyPath","setHasFocusedAnyPath","t21","length","t22","t23","t24","t25","t26","node","current","setRef","isReadOnly","readOnly","t27","t28","draft","published","schemaType","changed","focused","groups","members","t29","t30","t31","mutations","map","mut","patch","filter","document","origin","remotePatches","remoteMutations","localPatches","localMutations","concat","TabList","ComponentType","ReactNode","useCallback","Tab","usePaneRouter","useDocumentPane","useDocumentPaneInfo","DocumentHeaderTabs","$","_c","activeViewId","paneKey","views","tabPanelId","t0","t1","view","index","id","icon","title","map","DocumentHeaderTab","props","isActive","label","rest","viewId","ready","editState","setView","handleClick","draft","published","t2","useContext","ResolvedPanesContext","Panes","DEFAULT_VALUE","paneDataItems","routerPanes","resolvedPanes","maximizedPane","setMaximizedPane","useResolvedPanesList","context","defineEvent","DocumentPaneMaximized","name","version","description","DocumentPaneCollapsed","DocumentPaneNavigatedInfo","path","DocumentPaneNavigated","useTelemetry","useCallback","useMemo","useDocumentPreviewValues","usePerspective","useTranslation","useRouter","useRouterState","Button","LOADING_PANE","structureLocaleNamespace","Panes","RouterPanes","DocumentPaneNavigated","DocumentHeaderBreadcrumbItem","t0","$","_c","paneData","index","pane","router","t","routerState","telemetry","panes","t1","routerPanes","perspectiveStack","staticTitle","title","documentId","type","options","id","documentType","t2","t3","t4","value","previewValue","isLoading","t5","bb0","t6","displayTitle","groupIndex","log","path","navigate","slice","handleClick","t7","t8","t9","content","t10","t11","ArrowRightIcon","Box","Flex","Text","Fragment","LOADING_PANE","Panes","DocumentHeaderBreadcrumbItem","DocumentHeaderBreadcrumb","t0","$","_c","paneDataItems","currentPaneIndex","t1","t2","paneData","idx","isDocumentPane","pane","type","key","map","useMemo","useTranslation","structureLocaleNamespace","useResolvedPanesList","useDocumentPane","useDocumentTitle","DocumentHeaderBreadcrumb","DocumentHeaderTitle","$","_c","connectionState","schemaType","title","value","documentValue","index","paneDataItems","documentTitle","error","subscribed","Boolean","t","t0","some","_temp","hasMaximizedPane","t1","Symbol","for","name","t2","t3","color","paneData","maximized","StarIcon","StarFilledIcon","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","useActiveWorkspace","useTranslation","Button","PaneHeader","usePane","usePaneRouter","structureLocaleNamespace","useStructureTool","useDocumentPane","DocumentHeaderTabs","DocumentHeaderTitle","FavoriteToggle","DocumentPanelSubHeader","DocumentPanelHeader","$","_c","editState","connectionState","views","documentId","displayed","features","index","BackLink","activeWorkspace","showTabs","length","collapsed","isLast","tabIndex","showBackButton","backButton","t","t0","Symbol","for","title","t1","tabs","t2","content","t3","_id","t4","_type","t5","dataset","projectId","t6","join","t7","ready","version","draft","published","t8","name","favoriteToggle","t9","t10","BoundaryElementProvider","Box","Flex","PortalProvider","usePortal","useEffect","useMemo","useRef","useState","getReleaseIdFromReleaseDocumentId","getVersionFromId","isCardinalityOneRelease","isDraftId","isGoingToUnpublish","isNewDocument","isPausedCardinalityOneRelease","isPerspectiveWriteable","isReleaseDocument","isReleaseScheduledOrScheduling","isSystemBundle","LegacyLayerProvider","ReleaseDocument","ScrollContainer","useArchivedReleases","useFilteredReleases","usePausedScheduledDraft","usePerspective","useWorkspace","VirtualizerScrollInstanceProvider","css","styled","PaneContent","usePane","usePaneLayout","usePaneRouter","hasObsoleteDraft","mustChooseNewDocumentDestination","useStructureTool","DocumentInspectorPanel","InspectDialog","useDocumentPane","ArchivedReleaseDocumentBanner","CanvasLinkedBanner","ChooseNewDocumentDestinationBanner","DeletedDocumentBanners","DeprecatedDocumentTypeBanner","DocumentNotInReleaseBanner","DocumentNotInVariantBanner","InsufficientPermissionBanner","ObsoleteDraftBanner","OpenReleaseToEditBanner","PausedScheduledDraftBanner","ReferenceChangedBanner","RevisionNotFoundBanner","ScheduledDraftOverrideBanner","ScheduledReleaseBanner","UnpublishedDocumentBanner","VariantDefinitionNotFoundBanner","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","targetDocumentState","params","collapsed","layoutCollapsed","parentPortal","features","_portalElement","setPortalElement","documentScrollElement","setDocumentScrollElement","formContainerElement","workspace","requiredPermission","_createdAt","t0","find","view","id","type","activeView","portalElement","splitPanes","element","t1","bb0","t2","t3","t4","Symbol","for","margins","formViewHidden","component","options","draft","published","ActiveViewComponent","historical","activeViewNode","prevDocumentIdRef","undefined","t5","scrollTo","current","t6","t7","t8","inspectDialog","showInspector","Boolean","selectedReleaseId","selectedPerspectiveName","selectedPerspective","hasDocumentInRelease","status","targetDocument","t9","historyVersion","t10","filteredReleases","isPaused","isPausedDraft","data","archivedReleases","t11","t12","release","_id","archivedScheduledDraftRelease","granted","archivedReleaseId","isScheduledRelease","documentInScheduledRelease","isSelectedPerspectiveWriteable","isDraftModelEnabled","document","drafts","enabled","result","reason","allFilteredReleases","currentReleases","notCurrentReleases","scheduledCardinalityOneRelease","_temp","isPinnedDraftOrPublish","requestedVariantName","isCurrentVersionGoingToUnpublish","version","displayedHasObsoleteDraft","displayedIsDraft","t13","banners","t14","portalElements","showFormView","resizablePanes","t15","t16","name","t17","displayName","release_0","toLowerCaseNoSpaces","str","toLocaleLowerCase","replaceAll","CheckmarkIcon","Box","Label","MenuDivider","Text","MouseEvent","useCallback","TooltipOfDisabled","useGetI18nText","useI18nText","useIntentLink","MenuGroup","MenuItem","PopoverProps","Intent","toLowerCaseNoSpaces","_PaneMenuItem","_PaneMenuNode","MENU_GROUP_POPOVER_PROPS","constrainSize","placement","portal","PaneMenuButtonItem","props","$","_c","disabled","isAfterGroup","node","getI18nText","undefined","type","t0","Symbol","for","title","children","length","expanded","t1","t2","t3","map","child","childIndex","key","Boolean","t4","icon","child_0","childIndex_0","t5","PaneContextMenuItemResolver","intent","PaneContextMenuItem","reason","tooltipContent","showSelectionIndicator","selected","hideSelectionIndicator","hotkey","split","iconRight","onAction","t6","tone","t7","t8","t9","t10","PaneContextIntentMenuItem","params","intentLink","event","onClick","handleClick","href","Menu","MenuDivider","ReactNode","useId","ContextMenuButton","MenuButton","PopoverProps","PaneMenuButtonItem","_PaneMenuItem","_PaneMenuNode","PaneContextMenuButtonProps","nodes","actionsNodes","CONTEXT_MENU_POPOVER_PROPS","constrainSize","placement","portal","nodesHasTone","tone","NonNullable","some","node","type","children","PaneContextMenuButton","props","$","_c","id","hasCritical","hasCaution","t0","undefined","t1","t2","t3","map","nodeIndex","isAfterGroup","key","t4","t5","UnknownIcon","Menu","MouseEvent","useCallback","useId","StatusButton","useI18nText","useTranslation","useIntentLink","Button","MenuButton","Intent","PaneMenuButtonItem","_PaneMenuGroup","_PaneMenuItem","getDisabledReason","node","disabled","disabledReason","undefined","ariaLabel","isDisabled","reason","Boolean","PaneHeaderActionButtonProps","PaneHeaderActionButton","props","$","_c","type","t0","console","warn","PaneHeaderMenuItemActionButtonProps","PaneHeaderMenuItemActionButton","title","t","intent","t1","t2","hotkey","split","t3","t4","hotkeys","content","t5","icon","onAction","selected","tone","PaneHeaderActionIntentButton","params","intentLink","event","onClick","handleClick","t6","placement","portal","t7","href","PaneHeaderMenuGroupActionButtonProps","PaneHeaderMenuGroupActionButton","children","map","child","idx","key","memo","useContext","DocumentActionComponent","DocumentActionDescription","DocumentActionGroup","DocumentActionsStateContext","ResolvedAction","action","RenderActionCollectionProps","children","props","states","React","ReactNode","group","RenderActionCollectionState","$","_c","Error","t0","filteredStates","filter","state","hookGroup","includes","displayName","RevertIcon","useCallback","useEffect","useMemo","useRef","useState","DocumentActionComponent","DocumentActionDialogProps","getPairTarget","useDocumentOperation","useDocumentOperationEvent","useTranslation","useRouter","structureLocaleNamespace","useDocumentPane","useHistoryRestoreAction","t0","$","_c","id","type","revision","revisionNotFound","targetDocumentState","isTargetReady","status","t1","restore","event","navigateIntent","prevEvent","isConfirmDialogOpen","setConfirmDialogOpen","t","t2","execute","handleConfirm","t3","Symbol","for","handleCancel","t4","t5","current","op","t6","handle","t7","bb0","t8","t9","tone","onCancel","onConfirm","message","dialog","isRevisionInitial","isRevisionLatest","undefined","bb1","t10","t11","t12","t13","label","onHandle","title","icon","disabled","action","displayName","negate","_PaneMenuGroup","_PaneMenuItem","_PaneMenuNode","DocumentFieldMenuActionNode","PaneMenuItem","PaneMenuItemGroup","isMenuNodeButton","node","type","renderAsButton","isNotMenuNodeButton","resolveMenuNodes","params","actionHandler","item","fieldActions","menuItems","menuItemGroups","nodes","keyOffset","i","length","a","push","mapFieldActionToPaneMenuNode","groups","itemGroup","group","find","g","key","id","children","expanded","title","i18n","ungroupedItems","disabled","reason","icon","hideSelectionIndicator","hotkey","shortcut","intent","onAction","showAsAction","selected","tone","map","child","childIdx","iconRight","Placement","DialogProps","POPOVER_FALLBACK_PLACEMENTS","DIALOG_WIDTH_TO_UI_WIDTH","key","small","medium","large","full","DocumentActionConfirmDialogProps","useTranslation","ConfirmPopover","structureLocaleNamespace","POPOVER_FALLBACK_PLACEMENTS","ConfirmDialog","props","$","_c","dialog","referenceElement","t","cancelButtonIcon","cancelButtonText","confirmButtonIcon","confirmButtonText","message","onCancel","onConfirm","tone","t0","t1","t2","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","currentAction","t1","Symbol","for","idx","handleAction","t2","result","t3","dialog","t4","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","t5","title","tooltipProps","t6","icon","tone","s","slice","toUpperCase","defineEvent","DocumentURLCopied","name","version","description","DocumentIDCopied","InlineChangesSwitchedOn","InlineChangesSwitchedOff","LinkIcon","ShareIcon","TargetIcon","useTelemetry","Menu","useToast","useCallback","useMemo","getDraftId","getVersionId","isNewDocument","isVersionId","useDocumentVersions","usePerspective","useStudioUrl","useTargetDocumentState","useTranslation","useRouter","Button","MenuButton","MenuItem","usePaneRouter","structureLocaleNamespace","DocumentIDCopied","DocumentURLCopied","useDocumentPane","useDocumentPaneInfo","CopyDocumentActions","$","_c","documentId","documentType","schemaType","editState","targetDocumentState","t0","data","existingDocumentIds","loading","documentVersionsLoading","selectedReleaseId","selectedPerspectiveName","params","resolveIntentLink","buildIntentUrl","t","telemetry","push","pushToast","scheduledDraft","liveEdit","t1","bb0","versionReleaseId","t2","contextAwareDocumentId","selectedVariantMissing","status","existenceCheckReady","Boolean","ready","copiedVersionMissing","includes","documentExists","log","searchParams","intentParams","id","type","intentLink","copyUrl","navigator","clipboard","writeText","title","handleCopyLink","t3","handleCopyId","t4","t5","content","t6","t7","t8","t9","t10","t11","Symbol","for","portal","placement","t12","defineEvent","DocumentGroupInventoryHintPressed","version","name","description","combineLatest","from","map","Observable","tap","Storage","readCount","Promise","writeCount","value","readHasDisplayed","writeHasDisplayed","HintStatus","STORAGE_NAMESPACE","COUNT_KEY","DISPLAYED_KEY","SESSION_LIMIT","SUPPRESSED_COUNT","browserStorageAdapter","item","localStorage","getItem","storageKey","parsedItem","JSON","parse","console","warn","setItem","stringify","sessionStorage","hintStatus","pipe","count","hasDisplayed","sessionCountToStatus","status","all","suppressHint","path","concat","join","sessionCount","InfoOutlineIcon","useTelemetry","Flex","Text","useMemo","ComponentType","useObservable","useTranslation","styled","css","structureLocaleNamespace","useDocumentPane","DocumentGroupInventoryHintPressed","browserStorageAdapter","hintStatus","suppressHint","DocumentGroupInventoryHint","$","_c","t","setIsDocumentGroupInventoryActive","telemetry","t0","Symbol","for","status","t1","log","t2","t3","t4","t5","TextButton","button","theme","Card","Flex","Text","BadgeTone","forwardRef","ForwardRefExoticComponent","memo","RefAttributes","SVGProps","getReleaseTone","getVariantTitle","isDraftPerspective","isPublishedPerspective","isReleaseDocument","ReleaseTitle","usePerspective","useTranslation","SystemVariant","TargetPerspective","ReleaseAvatarIcon","styled","useDocumentPane","RhombusIcon","Omit","SVGSVGElement","props","ref","$","_c","t0","Symbol","for","t1","TargetBadge","BadgeContainer","getPerspectiveBadgeTone","selectedPerspective","PerspectiveBadgeLabel","t","t2","metadata","title","t3","t4","size","weight","t5","t6","VariantBadgeLabel","variant","DocumentTargetBadges","targetDocumentState","isInCurrentTarget","status","Boolean","targetDocument","selectedVariant","undefined","useEffect","useState","useChipScrollPosition","containerRef","$","_c","showGradient","setShowGradient","t0","t1","checkOverflow","container","current","scrollWidth","clientWidth","needsScrolling","scrollLeft","isAtEnd","setupObservers","container_0","intersectionObserver","mutationObserver","IntersectionObserver","entries","entry","isIntersecting","updateLastChipObserver","disconnect","lastChip","children","length","observe","MutationObserver","childList","subtree","intersectionObserver_0","mutationObserver_0","useCallback","useMemo","getReleaseIdFromReleaseDocumentId","isCardinalityOneRelease","isReleaseDocument","TargetPerspective","useGetDefaultPerspective","useSetPerspective","useSingleDocRelease","usePaneRouter","PerspectiveNavigator","navigate","perspective","usePerspectiveNavigator","$","_c","setPerspective","params","setParams","defaultPerspective","onSetScheduledDraftPerspective","t0","_id","historyVersion","rev","historyEvent","undefined","since","newPerspective","scheduledDraft","t1","BadgeTone","useCallback","useMemo","getReleaseIdFromReleaseDocumentId","getVariantTitle","getVersionFromId","isDraftId","isGoingToUnpublish","isPublishedId","isPublishedPerspective","isVersionId","TargetPerspective","useAgentVersionDisplay","useDocumentVersions","useFilteredReleases","usePerspective","useSchema","useSetPerspective","useSingleDocRelease","useWorkspace","useAllVariants","VersionInfoDocumentStub","useSetVariant","getTargetDocument","isLiveEditEnabled","usePaneRouter","useDocumentPane","useDocumentPaneInfo","usePerspectiveNavigator","DocumentPerspectiveList","filteredReleases","ReturnType","getVersionDisplay","version","displayName","tone","getReleaseChipState","releaseId","selected","disabled","handleCopyToDraftsNavigate","handlePerspectiveChange","perspective","isDraftDisabled","isDraftModelEnabled","isDraftSelected","isLiveEdit","isPublishedChipDisabled","isPublishSelected","nonReleaseVersions","variantVersions","handleVariantSelectionChange","selectedVariantDisplay","useDocumentPerspectiveList","$","_c","selectedReleaseId","selectedPerspectiveName","selectedVariant","bundle","setPerspective","params","schema","editState","displayed","documentType","documentId","isCreatingDocument","_createdAt","t0","historyVersion","t1","byId","variants","t2","versions","documentVersions","data","documentVersionsIds","onlyHasVersions","length","some","_temp","workspace","onSetScheduledDraftPerspective","t3","scheduledDraft","navigate","t4","schemaType","get","published","t5","bb0","t6","_id","isCurrentVersionGoingToUnpublish","Boolean","isReleaseHistoryMatch","draft","t7","bb1","t8","displayedId","t9","bb2","document","drafts","enabled","filteredVersionIds","getAgentVersionDisplay","t10","t11","includes","filter","filteredVersions","version_0","isVariantVersion","_system","variant","variantId","_ref","undefined","variantTitle","bundleId","const","t12","_temp2","t13","_temp3","setVariant","t14","version_3","variantId_0","variant_0","versionBundle","t15","bb3","targetVariantDocument","t16","version_2","version_1","hasRelease","release","hasVariant","versionId","ReleaseDocument","ChevronDownIcon","ChevronUpIcon","Container","Flex","useClickOutsideEvent","useMemo","useRef","useState","VersionInfoDocumentStub","Chip","getPublishedId","getVersionFromId","AgentVersionDisplay","useTranslation","VersionChip","Popover","Tooltip","NonReleaseVersionsSelect","props","$","_c","nonReleaseVersions","selectedPerspective","onSelectBundle","onCopyToDraftsNavigate","documentType","getVersionDisplay","releasesLoading","releases","mode","t","nonReleaseDropdownOpen","setNonReleaseDropdownOpen","popoverReferenceElement","setPopoverReferenceElement","t0","v","_id","t1","extract","selectedNonReleaseVersion","otherNonReleaseVersions","popoverRef","t2","t3","Symbol","for","event","target","matches","isPortal","HTMLElement","current","length","t4","bundleId","versionDisplay","displayName","tone","documentId","isVersion","t5","count","_temp","t6","t7","nonReleaseVersion","scopeId","_system","selected","versionDisplay_0","map","t8","t9","v_0","xs","T","predicate","x","i","findIndex","match","undefined","rest","slice","concat","Stack","Text","memo","Chip","getReleaseIdFromReleaseDocumentId","getReleaseTone","isGoingToUnpublish","isReleaseScheduledOrScheduling","ReleaseDocument","ReleaseTitle","SanityDocumentLike","Translate","useActiveReleases","useDateTimeFormat","UseDateTimeFormatOptions","useFormatRelativeLocalePublishDate","usePerspective","useTranslation","VersionChip","useDocumentPerspectiveList","useDocumentPane","useDocumentPaneInfo","NonReleaseVersionsSelect","TooltipContent","t0","$","_c","release","t","formatPublishDate","state","t1","t2","metadata","releaseType","isActive","intendedPublishAt","date","DATE_TIME_FORMAT","dateStyle","timeStyle","DocumentPerspectiveList","selectedPerspectiveName","dateTimeFormat","loading","editState","displayed","documentType","filteredReleases","getVersionDisplay","getReleaseChipState","handleCopyToDraftsNavigate","handlePerspectiveChange","handleVariantSelectionChange","isDraftDisabled","variantVersions","isDraftModelEnabled","isDraftSelected","isLiveEdit","isPublishedChipDisabled","isPublishSelected","nonReleaseVersions","selectedVariantDisplay","published","_updatedAt","format","Date","t3","_id","id","t4","t5","notCurrentReleases","documentId","releases","releasesLoading","bundleId","isVersion","disabled","t6","t7","draft","_createdAt","t8","inCreation","title","t9","displayTitle","fullTitle","isTruncated","maxWidth","_temp","version","currentReleases","map","t10","displayTitle_0","fullTitle_0","isTruncated_0","scopeId","_system","t11","t12","tone","displayName","t13","length","t14","ArrowLeftIcon","CloseIcon","CollapseIcon","ExpandIcon","SplitVerticalIcon","useTelemetry","Box","Card","Flex","getTheme_v2","rgba","ForwardedRef","forwardRef","memo","useCallback","useDeferredValue","useMemo","useRef","useState","FieldPresenceInner","DocumentActionDescription","useDocumentPresence","useFieldActions","useTranslation","useZIndex","useWorkspace","css","styled","Button","TooltipDelayGroupProvider","PaneContextMenuButton","PaneHeader","PaneHeaderActionButton","_PaneMenuNode","usePane","usePaneRouter","RenderActionCollectionState","ResolvedAction","useHistoryRestoreAction","structureLocaleNamespace","isMenuNodeButton","isNotMenuNodeButton","resolveMenuNodes","useResolvedPanesList","PaneMenuItem","useStructureTool","ActionDialogWrapper","ActionMenuListItem","useDocumentPane","DocumentPaneCollapsed","DocumentPaneMaximized","CopyDocumentActions","DocumentGroupInventoryHint","DocumentHeaderTitle","DocumentTargetBadges","useChipScrollPosition","DocumentPerspectiveList","DocumentPanelHeaderProps","menuItems","HorizontalScroller","$showGradient","props","theme","color","bg","DocumentPanelHeader","_props","ref","$","_c","editState","onMenuAction","onPaneClose","onPaneSplit","onSetMaximizedPane","menuItemGroups","schemaType","connectionState","views","unstable_languageFilter","documentId","features","beta","index","BackLink","hasGroupSiblings","maximizedPane","actions","fieldActions","referenceElement","setReferenceElement","scrollContainerRef","showGradient","telemetry","zIndex","paneHeaderZIndex","Array","isArray","paneHeader","t0","actionHandler","menuNodes","t1","filter","menuButtonNodes","t2","contextMenuNodes","hasDocumentGroupInventory","documentGroupInventory","enabled","collapsed","isLast","tabIndex","showSplitPaneButton","splitViews","length","showSplitPaneCloseButton","showBackButton","backButton","showPaneGroupCloseButton","t","presence","t3","_temp","documentLevelPresence","isMaximizedPane","pane","type","options","id","t4","log","handleFocusPane","t5","Symbol","for","title","t6","content","t7","draft","published","lineHeight","position","minWidth","map","LanguageFilterComponent","idx","_temp2","t8","states","DocumentPanelHeaderActionDialogDeferred","_temp3","DocumentPanelHeaderActionDialog","handleAction","actionState","actionIndex","label","Boolean","disabled","undefined","renderActionDialog","p","path","item","key","state","action","isHotkey","ElementType","HTMLProps","memo","Ref","useCallback","useState","DocumentActionDescription","LegacyLayerProvider","RenderActionCollectionState","ActionStateDialog","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","setActiveIndex","Symbol","for","idx","displayName","CheckmarkIcon","ComponentType","HiddenCheckmarkIcon","$","_c","t0","Symbol","for","visibility","CheckmarkIcon","EarthAmericasIcon","JsonIcon","TransferIcon","DocumentIdStack","DocumentInspector","DocumentInspectorMenuItem","TFunction","PaneMenuItem","StructureToolFeatures","HiddenCheckmarkIcon","INSPECT_ACTION_PREFIX","GetMenuItemsParams","currentInspector","features","hasValue","inspectors","previewUrl","documentIdStack","inspectorMenuItems","t","displayInlineChanges","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","getInlineChangesItem","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","Card","Layer","styled","Root","RootCard","Box","ForwardedRef","forwardRef","ReactNode","LegacyLayerProvider","Root","RootCard","usePane","PaneFooterProps","children","padding","PaneFooter","props","ref","$","_c","collapsed","t0","t1","Button","ButtonProps","SpacerButtonProps","size","SpacerButton","t0","$","_c","t1","Symbol","for","pointerEvents","visibility","width","t2","memo","ReactNode","DocumentBadgeDescription","DocumentBadgeProps","EditStateFor","GetHookCollectionState","Badge","args","Args","Description","RenderBadgeCollectionProps","badges","badgeProps","children","props","states","RenderBadgeCollectionState","$","_c","t0","displayName","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","label","title","color","undefined","whiteSpace","Flex","LayerProvider","Stack","Text","memo","useCallback","useMemo","useState","DEFAULT_STUDIO_CLIENT_OPTIONS","DocumentGroupInventory","DocumentGroupInventoryAction","DocumentGroupInventoryProps","Hotkeys","isGoingToUnpublish","isSanityDefinedAction","useClient","useDocumentStore","usePausedScheduledDraft","usePerspective","useSource","Button","Tooltip","ReferencePreviewLink","referringDocuments","VersionsPreviewList","DocTitle","usePaneRouter","RenderActionCollectionState","ResolvedAction","DOCUMENT_PANEL_PORTAL_ELEMENT","useHistoryRestoreAction","useDocumentPerspectiveList","toLowerCaseNoSpaces","useDocumentPane","ActionMenuButton","ActionStateDialog","documentGroupInventoryComponents","DocumentStatusBarActionsInnerProps","disabled","states","DocumentStatusBarActionsInner","props","$","_c","__internal_tasks","beta","displayed","editState","isDocumentGroupInventoryActive","setIsDocumentGroupInventoryActive","documentId","documentType","params","showingRevision","Boolean","rev","perspectiveList","client","documentStore","t0","versionedClient","referringDocuments$","t1","requestDocumentGroupInventoryClose","selectedReleaseId","firstActionState","menuActionStates","buttonElement","setButtonElement","isPaused","hasDocumentGroupInventory","documentGroupInventory","enabled","t2","bb0","title","shortcut","t3","Symbol","for","maxWidth","t4","t5","marginTop","marginBottom","String","split","map","_temp","t6","tooltipContent","shouldShowScheduleAsFirstActionButton","action","liveEdit","version","showFirstActionButton","filter","sideMenuItems","_id","targetDocumentId","footerAction","t7","t8","label","icon","onHandle","tone","t9","length","t10","dialog","t11","DocumentStatusBarActions","_temp2","RenderDocumentStatusBarActions","connectionState","_temp3","state","HistoryStatusBarActions","_temp4","RenderHistoryStatusBarActions","revisionId","revision","draft","published","_rev","_temp5","slice","s","toUpperCase","toLowerCase","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","useState","AvatarSkeleton","getTargetScopeId","isPublishedPerspective","TIMELINE_ITEM_I18N_KEY_MAPPING","useEvents","usePerspective","UserAvatar","useRelativeTime","useSource","useSyncState","useTimelineSelector","useTranslation","HISTORY_INSPECTOR_NAME","TIMELINE_ITEM_I18N_KEY_MAPPING_LEGACY","useDocumentPane","useDocumentPaneInfo","DocumentStatusPulse","RELATIVE_TIME_OPTIONS","minimal","useTemporalPhrase","const","MotionButton","create","MotionBox","getDocumentStatusKey","timelineKey","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","getStatus","published","_updatedAt","createDocumentVersion","version","_createdAt","editDocumentVersion","draft","status","EventsStatus","events","loading","event","documentVariantType","type","TimelineStatus","timelineStore","chunks","_temp","_temp2","authors","Array","from","endTimestamp","SYNCING_TIMEOUT","SAVED_TIMEOUT","DocumentStatusLine","value","targetDocumentState","documentId","documentType","setStatus","source","eventsEnabled","beta","eventsAPI","documents","scopeId","syncState","lastUpdated","isSyncing","timerId","setTimeout","clearTimeout","timerId_0","state","state_0","isLoading","RestoreIcon","Box","Flex","Text","format","useContext","Translate","useTranslation","EventsContext","styled","useDocumentPane","StatusText","RevisionStatusLine","$","_c","displayed","revisionNotFound","events","revision","revisionEvent","find","ev","id","revisionId","t","date","timestamp","_updatedAt","_createdAt","t0","t1","Date","t2","name","text","tone","message","t3","Symbol","for","t4","t5","useLayoutEffect","useResizeObserver","t0","$","_c","element","onResize","t1","t2","observer","ResizeObserver","entries","entry","find","e","target","observe","disconnect","Card","Flex","motion","Ref","useCallback","useMemo","useState","isPublishedPerspective","isReleaseDocument","usePerspective","usePaneRouter","SpacerButton","EMPTY_PARAMS","useDocumentPane","DocumentBadges","DocumentStatusBarActions","HistoryStatusBarActions","DocumentStatusLine","RevisionStatusLine","useResizeObserver","DocumentStatusBarProps","actionsBoxRef","HTMLDivElement","CONTAINER_BREAKPOINT","AnimatedCard","create","DocumentStatusBar","props","$","_c","editState","revisionNotFound","targetDocumentState","params","t0","undefined","selectedPerspective","selectedVariantName","showingRevision","Boolean","rev","collapsed","setCollapsed","rootElement","setRootElement","t1","Symbol","for","event","contentRect","width","handleResize","t2","element","onResize","t3","bb0","isReady","ready","status","published","version","shouldRender","actions","t4","t5","opacity","t6","transition","duration","t7","t8","flexShrink","marginLeft","t9","DialogProvider","DialogProviderProps","PortalProvider","Dispatch","SetStateAction","useMemo","useZIndex","TooltipDelayGroupProvider","PaneFooter","DOCUMENT_PANEL_PORTAL_ELEMENT","DocumentStatusBar","DIALOG_PROVIDER_POSITION","DocumentLayoutFooter","t0","$","_c","documentPanelPortalElement","setFooterElement","setActionsBoxElement","zOffsets","t1","portalElements","t2","t3","t4","portal","t5","DialogProvider","DialogProviderProps","Flex","useElementRect","clsx","isHotkey","ComponentProps","useCallback","useMemo","useState","ChangeConnectorRoot","DocumentFieldActionNode","DocumentInspectorMenuItem","FieldActionsProvider","FieldActionsResolver","GetFormValueProvider","Path","useDocumentIdStack","useGlobalCopyPasteElementHandler","useTranslation","useZIndex","useRouter","Pane","usePaneLayout","usePaneRouter","DocumentActionsProvider","structureLocaleNamespace","useStructureTool","DOCUMENT_INSPECTOR_MIN_WIDTH","DOCUMENT_PANEL_INITIAL_MIN_WIDTH","DOCUMENT_PANEL_MIN_WIDTH","DocumentInspectorMenuItemsResolver","DocumentOperationResults","DocumentPanel","DocumentPanelHeader","DocumentActionShortcuts","getMenuItems","useDocumentPane","changeConnectorRoot","DocumentLayoutError","DocumentLayoutFooter","EMPTY_ARRAY","DIALOG_PROVIDER_POSITION","StyledChangeConnectorRoot","props","$","_c","className","restProps","t0","t1","DocumentLayout","changesOpen","displayed","documentId","documentType","editState","fieldActions","focusPath","inspectOpen","inspector","inspectors","onFocus","onHistoryOpen","onMenuAction","onPathOpen","paneKey","schemaType","value","previewUrl","stickyParams","params","paneParams","features","t","collapsed","layoutCollapsed","zOffsets","rootElement","setRootElement","footerElement","setFooterElement","headerElement","setHeaderElement","actionsBoxElement","setActionsBoxElement","documentPanelPortalElement","setDocumentPanelPortalElement","element","Symbol","for","inspectorMenuItems","setInspectorMenuItems","t2","rootFieldActionNodes","setRootFieldActionNodes","footerRect","headerRect","footerHeight","height","headerHeight","currentMinWidth","minWidth","name","t3","find","i","currentInspector","t4","documentIdStack","hasValue","Boolean","t5","displayInlineChanges","t6","menuItems","t7","event","item","shortcut","preventDefault","stopPropagation","handleKeyUp","t8","path","onConnectorSetFocus","t9","length","t10","t11","t12","undefined","t13","changesInspectorTab","t14","t15","t16","t17","t18","t19","t20","paneDialog","t21","t22","t23","t24","ComponentType","DocumentLayoutProps","useMiddlewareComponents","DocumentLayout","pickDocumentLayoutComponent","useDocumentLayoutComponent","$","_c","t0","Symbol","for","pick","defaultComponent","SanityDocument","ObjectSchemaType","useEffect","useTranslation","useValuePreview","LOADING_PANE","structureLocaleNamespace","Panes","DocumentPaneNode","useStructureTool","StructureTitleProps","resolvedPanes","DocumentTitle","t0","$","_c","isDeleted","displayed","ready","schemaType","t","isNewDocument","_createdAt","t1","t2","enabled","value","isLoading","previewValueIsLoading","t3","name","title","documentTitle","newTitle","useConstructDocumentTitle","t4","document","t5","PassthroughTitle","props","StructureTitle","length","lastPane","isLoadingPane","Symbol","for","isDocumentPane","activeTitle","structureToolBaseTitle","structureContext","filter","_temp","join","pane","type","useContext","EventsContext","EventsContextFallback","revision","useDeletedDocumentLastRevision","$","_c","t0","document","t1","loading","t2","lastRevisionDocument","defineEvent","DocumentInitialLoadMeasuredData","durationMs","documentTypeName","isNewDocument","hasRevisionParam","DocumentInitialLoadMeasured","name","version","description","maxSampleRate","useTelemetry","useEffect","useRef","EditStateFor","DocumentInitialLoadMeasured","UseDocumentInitialLoadTelemetryOptions","ready","schemaTypeName","editState","Pick","hasRevisionParam","useDocumentInitialLoadTelemetry","t0","$","_c","telemetry","t0Ref","t1","t2","Symbol","for","current","performance","now","firedRef","t3","t4","isNewDoc","draft","published","version","log","durationMs","documentTypeName","isNewDocument","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","template","templateParameters","templateName","templateParams","urlTemplate","t2","version","initialValueRaw","initialValue","useCallback","useEffect","useMemo","useRef","useState","DocumentInspector","useSource","PaneRouterContextValue","PaneMenuItem","useStructureTool","HISTORY_INSPECTOR_NAME","INSPECT_ACTION_PREFIX","useDocumentPaneInspector","t0","$","_c","documentId","documentType","params","setParams","features","source","inspectorsResolver","document","inspectors","t1","t2","inspect","inspectorName","setInspectorName","inspectParamRef","t3","t4","current","t5","find","i","name","currentInspector","t6","_temp","historyInspector","changesOpen","t7","closeInspectorName","inspector","i_1","console","warn","result","onClose","undefined","result_0","closeInspector","t8","nextInspectorName","paneParams","nextInspector","i_2","currentParams","closeResult","result_1","onOpen","openInspector","t9","handleHistoryClose","t10","reviewChanges","changesInspectorTab","handleHistoryOpen","inspectOpen","t11","t12","toggle","toggleLegacyInspect","handleLegacyInspectClose","t13","item","action","nextInspectorName_0","slice","length","nextInspector_0","i_3","handleInspectorAction","t14","i_0","SanityDocument","useEffect","useMemo","useObservable","BehaviorSubject","from","of","catchError","debounceTime","distinctUntilChanged","switchMap","isRecord","useSource","isSanityDocument","value","_id","_type","usePreviewUrl","$","_c","resolveProductionUrl","document","t0","Symbol","for","undefined","subject","t1","t2","next","t3","asObservable","pipe","_temp","resolvedUrlObservable","err","message","Error","useTelemetry","ObjectSchemaType","Path","SanityDocument","SanityDocumentLike","fromString","pathFromString","resolveKeyedPath","ComponentProps","ComponentType","useCallback","useEffect","useEffectEvent","useMemo","useRef","useState","DivergencesProvider","DocumentActionsContext","DocumentActionsVersionType","DocumentFieldAction","EditStateFor","EMPTY_ARRAY","getPublishedId","getReleaseIdFromReleaseDocumentId","isCardinalityOneRelease","isGoingToUnpublish","isPausedCardinalityOneRelease","isPerspectiveWriteable","isVersionId","ParseErrorsProvider","PartialContext","pathToString","ReleaseDocument","selectUpstreamVersion","useActiveReleases","useCopyPaste","useDocumentDivergences","useDocumentForm","useDocumentIdStack","usePerspective","useSchema","useSource","useTargetDocumentState","useUnique","useWorkspace","DocumentPaneContext","DocumentPaneInfoContext","useRouter","usePaneRouter","DocumentTitle","useDiffViewRouter","useDeletedDocumentLastRevision","PaneMenuItem","InlineChangesSwitchedOff","InlineChangesSwitchedOn","DEFAULT_MENU_ITEM_GROUPS","EMPTY_PARAMS","INSPECT_ACTION_PREFIX","DocumentPaneContextValue","DocumentPaneInfoContextValue","DocumentPaneProviderProps","DocumentPaneProviderWrapperProps","HistoryStoreProps","useDocumentInitialLoadTelemetry","useDocumentPaneInitialValue","useDocumentPaneInspector","usePreviewUrl","historyStore","DocumentPaneProvider","props","$","_c","children","index","pane","paneKey","onFocusPath","onSetMaximizedPane","maximized","t0","forcedVersion","undefined","store","timelineStore","error","timelineError","ready","timelineReady","revisionDocument","onOlderRevision","sinceDocument","isPristine","revisionId","lastNonDeletedRevId","schema","setDocumentMeta","document","t1","actions","documentActions","badges","documentBadges","unstable_fieldActions","fieldActionsResolver","unstable_languageFilter","languageFilterResolver","drafts","t2","enabled","draftsEnabled","telemetry","router","paneRouter","setPaneParams","setParams","options","menuItemGroups","t3","title","t4","views","t5","t6","viewsProp","paneOptions","documentIdRaw","id","t7","documentId","documentType","type","params","perspective","workspace","advancedVersionControlEnabled","advancedVersionControl","isDraftModelEnabled","enhancedObjectDialogEnabled","t8","bb0","t9","selectedPerspectiveName","selectedReleaseId","data","releases","diffViewRouter","t10","initialValue","isInitialValueLoading","loading","t11","changesOpen","currentInspector","inspectors","closeInspector","openInspector","handleHistoryClose","handleHistoryOpen","handleInspectorAction","inspectOpen","handleLegacyInspectClose","isDeleting","setIsDeleting","isDocumentGroupInventoryActive","setIsDocumentGroupInventoryActive","lastRevisionDocument","t12","editState","Boolean","draft","published","version","getIsDeleted","t13","upstreamEditState","upstream","getComparisonValue","t14","get","schemaType","targetDocumentState","isVariantTargetReadOnly","selectedVariantName","status","t15","rev","selectedPerspective","editState_0","isDeleted","seeingHistoryDocument","currentRelease","find","r","_id","isPaused","result","getIsReadOnly","t16","value","_type","isDeleted_0","_createdAt","_updatedAt","getDisplayed","t17","path","t18","stickyParams","displayInlineChanges","t19","comparisonValue","releaseId","initialFocusPath","readOnly","getFormDocumentValue","isOlderRevision","editState_1","upstreamEditState_0","hasUpstreamVersion","connectionState","syncState","focusPath","onChange","validation","formReady","value_0","formState","permissions","onPathOpen","isPermissionsLoading","formStateRef","onProgrammaticFocus","collapsedFieldSets","collapsedPaths","onBlur","onFocus","onSetActiveFieldGroup","onSetCollapsedPath","onSetCollapsedFieldSet","openPath","t20","getDocumentVersionType","actionsVersionType","t21","versionType","documentActionsContext","t22","t23","nextPath","handlePathOpen","t24","t25","languageFilter","activeViewId","view","previewUrl","t26","fieldActions","t27","name","t28","t29","schemaTypeName","hasRevisionParam","t30","displayed","t31","strict","previousId","t32","newSince","newRev","since","setTimelineRange","t33","closeCurrent","handlePaneClose","t34","duplicateCurrent","handlePaneSplit","t35","nextState","log","navigate","String","toggleInlineChanges","t36","item","action","window","open","startsWith","navigateDiffView","mode","previousDocument","nextDocument","handleMenuAction","t37","t38","t39","compareValue","isDeleted_1","revisionNotFound","t40","bb1","currentDisplayed","t41","t42","t43","inspector","onHistoryClose","onHistoryOpen","onInspectClose","onMenuAction","onPaneClose","onPaneSplit","documentPane","t44","t45","documentPaneInfo","pathRef","paramPath","t46","urlPath","currentOpenPathString","current","pathFromUrl","syncPathFromUrl","t47","t48","isDivergencesEnabled","t49","subjectId","divergencesProps","t50","t51","t52","t53","t54","t55","Record","releaseDocument","DivergenceAutofocus","Pick","ReturnType","divergenceNavigator","focusedDivergence","state","focusDivergentPath","ObjectSchemaType","useMemo","EMPTY_ARRAY","EventsProvider","getDraftId","getPublishedId","getReleaseIdFromReleaseDocumentId","getVersionId","PerspectiveProvider","useArchivedReleases","getTargetDocument","useEventsStore","usePerspective","useSchema","useTargetDocumentState","useDocumentVersions","usePaneRouter","EMPTY_PARAMS","usePaneOptions","DocumentPaneProvider","DocumentPaneProviderProps","DocumentEventsPane","props","$","_c","params","t0","undefined","options","pane","schema","schemaType","get","type","liveEdit","Boolean","selectedPerspectiveName","selectedPerspective","selectedVariantName","data","archivedReleases","t1","id","t2","documentId","versions","t3","targetDocumentState","draftVersion","bundle","variant","documentVersions","showingPublishedOnDraft","rev","since","historyVersion","t4","bb0","t5","some","release","_id","status","targetDocument","length","documentType","eventsStore","t6","error","t7","revision","revisionId","t8","loading","t9","document","t10","sinceRevision","t11","t12","events","t13","lastNonDeletedRevId","onOlderRevision","revisionDocument","sinceDocument","ready","isPristine","historyStoreProps","value","t14","t15","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","Boolean","t6","error","revisionId","revisionDocument","sinceDocument","ready","historyStoreProps","t7","state","state_0","state_1","state_2","state_3","state_4","state_5","ReactNode","PerspectiveProvider","usePerspective","useRouter","usePaneRouter","DocumentPerspectiveProvider","t0","$","_c","children","paneRouter","excludedPerspectives","router","selectedVariantName","stickyParams","variant","undefined","scheduledDraft","params","t1","memo","useCallback","SingleDocReleaseProvider","useSource","usePaneRouter","DocumentEventsPane","DocumentPaneWithLegacyTimelineStore","DocumentPerspectiveProvider","DocumentPaneProviderProps","DocumentPaneProviderWrapper","props","$","_c","source","setParams","params","t0","releaseId","scheduledDraft","perspective","handleSetScheduledDraftPerspective","t1","beta","eventsAPI","documents","t2","displayName","useEffect","useEffectEvent","useRef","usePerspective","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","getPublishedId","ReferenceInputOptionsProvider","SourceProvider","Translate","useDocumentType","usePerspective","useSource","useTargetDocumentState","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","selectedVariantName","paneRouter","options","usePaneOptions","params","documentType","isLoaded","isDocumentLoaded","id","type","targetDocumentState","DocumentLayout","documentId","schemaType","templateItems","templatePermissions","isTemplatePermissionsLoading","t3","mergeDocumentType","providerProps","ReferenceChildLink","handleEditReference","groupIndex","routerPanesState","t4","childParams","routerPanesStateLength","length","parentRefPath","t5","path","state","activePath","t","t6","t7","t8","Symbol","for","Code","_temp","t9","t10","status","variantTargetKey","targetDocument","_id","t11","children","undefined","templates","bb0","templateName","template","find","nanoid","randomIdCache","WeakMap","assignId","obj","cachedValue","get","id","set","WarningOutlineIcon","SanityDocument","GeneralPreviewLayoutKey","SanityDefaultPreview","Translate","useTranslation","structureLocaleNamespace","MissingSchemaTypeProps","layout","value","MissingSchemaType","props","$","_c","t","t0","Symbol","for","Code","t1","_type","documentType","t2","t3","t4","_id","documentId","t5","t6","_temp","ChevronRightIcon","DocumentIcon","FolderIcon","isSanityDocument","PreviewValue","SanityDocument","SchemaType","SortOrdering","Box","CardProps","Text","ComponentType","MouseEvent","startTransition","useCallback","useEffect","useMemo","useRef","useState","FIXME","GeneralPreviewLayoutKey","getPublishedId","PreviewCard","SanityDefaultPreview","useDocumentPresence","useDocumentPreviewStore","useEditState","useSchema","MissingSchemaType","usePaneRouter","PaneItemPreview","PaneItemProps","id","layout","icon","pressed","selected","sortOrder","Pick","title","value","schemaType","margin","marginBottom","marginTop","getIconWithFallback","defaultIcon","PaneItem","props","$","_c","t0","undefined","schema","documentPreviewStore","ChildLink","documentPresence","hasSchemaType","Boolean","name","get","clicked","setClicked","t1","bb0","t2","t3","Symbol","for","opacity","t4","t5","preview","e","metaKey","handleClick","preloading","setPreload","timeoutRef","current","setTimeout","handleMouseEnter","t6","clearTimeout","handleMouseLeave","t7","t8","t9","t10","t11","PreloadDocumentPane","documentId","documentType","displayName","ComponentProps","ForwardedRef","forwardRef","ReactNode","useMemo","IntentLink","Button","ButtonProps","PaneMenuItem","RouterIntent","NonNullable","IntentButton","props","ref","$","_c","intent","restProps","t0","Link","linkProps","linkRef","type","params","searchParams","t1","disabled","HTMLButtonElement","ComponentProps","ReactNode","InsufficientPermissionsMessage","useCurrentUser","useTranslation","Tooltip","structureLocaleNamespace","InsufficientPermissionsMessageTooltipProps","reveal","context","loading","children","InsufficientPermissionsMessageTooltip","t0","$","_c","currentUser","t","t1","t2","t3","AddIcon","Menu","ComponentProps","ForwardedRef","forwardRef","useMemo","InitialValueTemplateItem","ReleaseId","Template","TemplatePermissionsResult","useGetI18nText","usePerspective","useTemplatePermissions","useTemplates","useTranslation","IntentLink","Button","MenuButton","MenuItem","PopoverProps","structureLocaleNamespace","IntentButton","InsufficientPermissionsMessageTooltip","PaneHeaderIntentProps","POPOVER_PROPS","constrainSize","placement","portal","getIntent","templates","item","version","typeName","find","t","id","templateId","schemaType","baseParams","template","type","initialDocumentId","params","parameters","searchParams","undefined","PaneHeaderCreateButtonProps","templateItems","PaneHeaderCreateButton","t0","$","_c","selectedReleaseId","t1","getI18nText","t2","templatePermissions","isTemplatePermissionsLoading","nothingGranted","length","every","_temp","t3","bb0","t4","Symbol","for","reduce","_temp2","permissionsById","t5","t6","firstItem","permissions","disabled","granted","intent","title","t7","t8","content","t9","t10","itemIndex","permissions_0","disabled_0","intent_0","i","Link","linkProps","linkRef","displayName","icon","map","acc","permission_0","permission","Flex","uniqBy","memo","useCallback","useMemo","EMPTY_ARRAY","EMPTY_OBJECT","InitialValueTemplateItem","useTemplates","isMenuNodeButton","isNotMenuNodeButton","resolveMenuNodes","PaneMenuItem","PaneMenuItemGroup","StructureToolPaneActionHandler","PaneContextMenuButton","PaneHeaderActionButton","PaneHeaderCreateButton","isNonNullable","value","T","NonNullable","undefined","hashObject","sortObject","v","Array","isArray","map","Object","entries","sort","keyA","keyB","localeCompare","normalize","JSON","parse","stringify","PaneHeaderActionsProps","initialValueTemplateItems","menuItems","menuItemGroups","actionHandlers","Record","PaneHeaderActions","props","$","_c","t0","t1","t2","t3","initialValueTemplateItemsFromStructure","templates","t4","item","id","toggleHandler","setMenuItemState","_menuItemId","params","action","console","warn","handler","paramsWithId","isSelected","selected","handleAction","t5","actionHandler","filter","_temp","menuNodes","t6","actionNodes","t7","contextMenuNodes","t8","some","_temp2","hasContextMenuContent","t9","t10","item_1","menuItemIndex","intent","type","intentParams","templateParams","templateId","template","find","t","initialDocumentId","_temp3","initialValueTemplateItemFromMenuItems","_temp4","combinedInitialValueTemplates","t11","t12","_temp5","t13","t14","item_0","node","children","length","initialDocumentId_0","item_2","template_0","menuItemIndex_0","templateParams_0","initialValueTemplateItem","title","i18n","icon","description","parameters","schemaType","item_3","node_0","key","ComponentType","ForwardedRef","forwardRef","useContext","useMemo","PaneRouterContext","StateLink","BackLinkProps","BackLink","props","ref","$","_c","routerPanesState","groupIndex","t0","slice","panes","t1","state","t2","defineEvent","DocumentPublishedInfo","publishedImmediately","previouslyPublished","PublishButtonDisabledInfo","isRemoteEvent","StageInfo","stage","DocumentPublished","name","version","description","DocumentIdInfo","documentId","PublishButtonClicked","PublishButtonDisabledStart","PublishButtonDisabledComplete","DocumentDeletedInfo","referenceCount","internalReferenceCount","crossDatasetReferenceCount","DeleteStageInfo","DocumentDeleted","TrashIcon","useTelemetry","useCallback","useMemo","useState","catchError","filter","firstValueFrom","map","of","timeout","DocumentActionComponent","getPairTarget","getTargetScopeId","InsufficientPermissionsMessage","isAgentBundleName","isReleaseScheduledOrScheduling","useCurrentUser","useDocumentOperation","useDocumentPairPermissions","useDocumentStore","useDocumentVersionTypeSortedList","useTranslation","ConfirmDeleteDialog","DeleteReferenceCounts","structureLocaleNamespace","useDocumentPane","DocumentDeleted","DISABLED_REASON_TITLE_KEY","NOTHING_TO_DELETE","NOT_READY","TARGET_NOT_FOUND","DELETE_OUTCOME_TIMEOUT","useDeleteAction","t0","$","_c","id","type","draft","targetDocumentState","isTargetReady","status","scopeId","t1","isAgentBundle","t2","delete","deleteOp","isDeleting","setIsDeleting","isConfirmDialogOpen","setConfirmDialogOpen","documentStore","telemetry","t","t3","documentId","sortedDocumentList","t4","some","hasScheduledRelease","t5","Symbol","for","handleCancel","t6","pair","versions","referenceCounts","totalReferenceCount","referenceCount","internalReferenceCount","crossDatasetReferenceCount","referenceInfo","log","stage","operationEvents","pipe","_temp","_temp2","first","_temp3","then","outcome","execute","handleConfirm","t7","handle","t8","version","permission","permissions","isPermissionsLoading","currentUser","_id","granted","t9","bb0","t10","t11","t12","tone","icon","disabled","label","title","getTitle","Boolean","t13","t14","component","t15","shortcut","onHandle","dialog","action","displayName","event","op","event_0","const","Text","useId","useTranslation","Dialog","structureLocaleNamespace","ConfirmDiscardDialogProps","onCancel","onConfirm","publishedExists","ConfirmDiscardDialog","t0","$","_c","t","dialogId","t1","t2","t3","confirmButton","text","onClick","t4","t5","t6","ResetIcon","useCallback","useMemo","useState","DocumentActionComponent","getPairTarget","getTargetScopeId","InsufficientPermissionsMessage","isPublishedId","useCurrentUser","useDocumentOperation","useDocumentPairPermissions","useTranslation","ConfirmDiscardDialog","structureLocaleNamespace","useDocumentPane","DISABLED_REASON_KEY","NO_CHANGES","NOT_PUBLISHED","NOT_READY","TARGET_NOT_FOUND","const","useDiscardChangesAction","t0","$","_c","id","type","published","version","draft","displayed","targetDocumentState","isTargetReady","status","t1","scopeId","isVariantTarget","variant","undefined","publishedCounterpartExists","publishedSibling","Boolean","t2","discardChanges","isConfirmDialogOpen","setConfirmDialogOpen","t3","permission","permissions","isPermissionsLoading","currentUser","t","isPublished","_id","t4","execute","handleConfirm","t5","Symbol","for","handleCancel","t6","handle","granted","t7","bb0","t8","t9","t10","tone","icon","disabled","label","title","t11","t12","component","t13","onHandle","dialog","action","displayName","CopyIcon","uuid","useCallback","useMemo","useState","filter","firstValueFrom","DuplicateDocumentActionComponent","getPairTarget","getTargetScopeId","InsufficientPermissionsMessage","useCurrentUser","useDocumentOperation","useDocumentPairPermissions","useDocumentStore","useTranslation","useRouter","structureLocaleNamespace","useDocumentPane","DISABLED_REASON_KEY","NOTHING_TO_DUPLICATE","NOT_READY","TARGET_NOT_FOUND","useDuplicateAction","t0","$","_c","id","type","mapDocument","documentStore","targetDocumentState","isTargetReady","status","t1","scopeId","t2","duplicate","navigateIntent","isDuplicating","setDuplicating","t3","version","permission","permissions","isPermissionsLoading","t","currentUser","t4","pair","dupeId","duplicateSuccess","operationEvents","pipe","_temp","execute","handle","granted","t5","bb0","t6","t7","t8","icon","disabled","label","title","Boolean","t9","onHandle","action","displayName","e","op","PublishIcon","useTelemetry","isValidationErrorMarker","Text","useToast","useCallback","useEffect","useMemo","useState","DocumentActionComponent","getPairTarget","getTargetScopeId","InsufficientPermissionsMessage","isPublishedPerspective","TFunction","useCurrentUser","useDocumentOperation","useDocumentPairPermissions","useEditState","usePerspective","useRelativeTime","useSyncState","useTranslation","useValidationStatus","structureLocaleNamespace","StructureLocaleResourceKeys","useDocumentPane","DocumentPublished","PublishButtonDisabledComplete","PublishButtonDisabledStart","PublishButtonClicked","DISABLED_REASON_TITLE_KEY","Record","LIVE_EDIT_ENABLED","ALREADY_PUBLISHED","NO_CHANGES","NOT_READY","NOT_PUBLISHABLE","TARGET_NOT_FOUND","const","PUBLISHED_STATE","status","getDisabledReason","reason","publishedAt","t","AlreadyPublished","t0","$","_c","t1","Symbol","for","useTemporalPhrase","timeSincePublished","t2","t3","usePublishAction","props","id","type","liveEdit","draft","published","release","version","selectedPerspective","selectedVariantName","publishState","setPublishState","changesOpen","documentId","documentType","value","targetDocumentState","isTargetReady","scopeId","isVariantTarget","variant","undefined","publishedInfo","publishedSibling","publishedRevisionId","_rev","publish","validationStatus","_id","syncState","editState","revision","toast","validation","some","hasValidationErrors","publishScheduled","setPublishScheduled","isSyncing","isValidating","t4","permission","permissions","isPermissionsLoading","currentUser","t5","disabled","_updatedAt","title","currentPublishRevision","telemetry","t6","execute","log","stage","publishRevision","doPublish","t7","validationComplete","push","description","t8","t9","didPublish","nextState","delay","timer","setTimeout","clearTimeout","t10","isWaitingToPublish","Boolean","transactionSyncLock","enabled","t11","isRemoteEvent","t12","t13","t14","_createdAt","publishedImmediately","previouslyPublished","handle","granted","t15","bb0","t16","t17","t18","t19","tone","icon","label","t20","shortcut","onHandle","action","displayName","UnpublishIcon","useCallback","useMemo","useState","DocumentActionComponent","DocumentActionModalDialogProps","getPairTarget","getTargetScopeId","InsufficientPermissionsMessage","useCurrentUser","useDocumentOperation","useDocumentPairPermissions","usePerspective","useTranslation","ConfirmDeleteDialog","structureLocaleNamespace","useDocumentPane","DISABLED_REASON_KEY","NOT_PUBLISHED","NOT_READY","LIVE_EDIT_ENABLED","TARGET_NOT_FOUND","useUnpublishAction","t0","$","_c","id","type","draft","liveEditSchemaType","release","targetDocumentState","isTargetReady","status","t1","scopeId","isVariantTarget","variant","undefined","isVariantUnpublishable","publishedSibling","t2","unpublish","isConfirmDialogOpen","setConfirmDialogOpen","t3","version","permission","permissions","isPermissionsLoading","currentUser","t","selectedPerspective","isDraft","t4","Symbol","for","handleCancel","t5","execute","handleConfirm","t6","bb0","t7","_id","t8","onClose","content","dialog","granted","disabled","tone","icon","label","title","Boolean","onHandle","action","displayName","DocumentBadgeComponent","useLiveEditBadge","props","liveEditSchemaType","version","label","color","displayName","uuid","EMPTY_PARAMS","LOADING_PANE","PaneNode","RouterPanes","state","activePanes","Array","setActivePanes","panes","getIntentState","intent","params","Record","routerState","payload","editDocumentId","id","i","length","pane","canHandleIntent","index","type","schemaTypeName","options","filter","paneParams","getPaneParams","slice","concat","template","version","_id","_type","_template","rest","ErrorOutlineIcon","Flex","Stack","TextWithTone","useTranslation","TimelineError","t0","$","_c","versionError","t","t1","Symbol","for","t2","t3","t4","t5","t6","ChevronLeftIcon","MouseEvent","useCallback","useTranslation","styled","Button","structureLocaleNamespace","TIMELINE_LIST_WRAPPER_ID","hideScrollbarOnExpand","isExpanded","listWrapper","document","getElementById","firstChildren","children","HTMLElement","hasScrollbar","scrollHeight","clientHeight","currentStyle","getComputedStyle","overflowY","style","setTimeout","FlipIcon","ExpandableTimelineItemButton","t0","$","_c","onExpand","t","t1","e","stopPropagation","handleExpandClick","t2","t3","t4","content","t5","Box","Flex","Stack","css","styled","StackWrapper","ListWrapper","$maxHeight","props","Root","$visible","IconComponent","AddIcon","CloseIcon","EditIcon","PublishIcon","TrashIcon","UnpublishIcon","TIMELINE_ICON_COMPONENTS","key","create","delete","discardDraft","initial","editDraft","editLive","publish","unpublish","IconComponent","ChunkType","TIMELINE_ICON_COMPONENTS","getTimelineEventIconComponent","type","AvatarSize","AvatarStack","UserAvatar","UserAvatarStackProps","maxLength","userIds","size","withTooltip","UserAvatarStack","t0","$","_c","t1","undefined","t2","t3","userId","map","Box","Card","Flex","Skeleton","Stack","Text","getTheme_v2","ThemeColorAvatarColorKey","MouseEvent","useCallback","useMemo","AvatarSkeleton","ChunkType","RelativeTimeOptions","useDateTimeFormat","UserAvatar","useRelativeTime","useTranslation","useUser","css","styled","Tooltip","getTimelineEventIconComponent","TIMELINE_ITEM_I18N_KEY_MAPPING","UserAvatarStack","ChunksWithCollapsedDrafts","IconBox","$color","props","theme","color","avatar","fg","bg","sizes","size","TIMELINE_ITEM_EVENT_TONE","Record","initial","create","publish","editLive","editDraft","unpublish","discardDraft","delete","withinSelection","TimelineItemProps","chunk","isSelected","onSelect","collaborators","Set","optionsMenu","React","ReactNode","RELATIVE_TIME_OPTIONS","minimal","useTemporalPhrase","NameSkeleton","font","text","lineHeight","UserLine","t0","$","_c","userId","user","loading","t1","t2","displayName","t3","TooltipContent","t","map","_temp","t4","TimelineItem","type","endTimestamp","timestamp","IconComponent","authors","Array","from","authorUserIds","collaboratorsUsersIds","isSelectable","Symbol","for","dateStyle","timeStyle","dateFormat","t5","Date","date","updatedTimeAgo","t6","parsedDate","format","formattedDate","formattedTimestamp","t7","evt","preventDefault","stopPropagation","handleClick","t8","position","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","length","t20","t21","id","t22","Chunk","ChunkType","NonPublishChunk","Omit","type","Exclude","parentId","PublishChunk","children","collaborators","Set","isNonPublishChunk","chunk","isPublishChunk","getPreviousPublishAction","chunks","previousPublish","index","length","ChunksWithCollapsedDrafts","addChunksMetadata","result","push","Array","from","authors","forEach","id","add","Box","Text","useCallback","useEffect","useMemo","useState","Chunk","CommandList","CommandListRenderItemCallback","LoadingBlock","useTranslation","ExpandableTimelineItemButton","ListWrapper","Root","StackWrapper","TimelineItem","addChunksMetadata","ChunksWithCollapsedDrafts","isNonPublishChunk","isPublishChunk","TimelineProps","chunks","hasMoreChunks","lastChunk","onLoadMore","onSelect","chunk","listMaxHeight","TIMELINE_LIST_WRAPPER_ID","Timeline","t0","$","_c","selectedChunk","t1","undefined","mounted","setMounted","t","selectedChunkId","id","t2","chunksWithMetadata","t3","selected","find","parentId","Set","expandedParents","setExpandedParents","t4","t5","selected_0","chunk_0","prev","has","next","add","t6","t7","chunk_1","filter","filteredChunks","length","t8","t9","Symbol","for","parentId_0","prev_0","next_0","delete","handleExpandParent","t10","findIndex","chunk_2","selectedIndex","t11","chunk_3","timelineChunk","c","console","error","handleSelectChunk","t12","chunk_4","t13","activeIndex","isFirst","collaborators","children","renderItem","t14","t15","t16","t17","t18","ChevronDownIcon","Flex","Placement","PortalProvider","useClickOutsideEvent","useGlobalKeyDown","useToast","useCallback","useMemo","useState","Chunk","useTimelineSelector","useTranslation","styled","Button","Popover","useDocumentPane","Timeline","TimelineError","TIMELINE_ITEM_I18N_KEY_MAPPING","TimelineMenuProps","chunk","mode","placement","Root","TIMELINE_MENU_PORTAL","TimelineMenu","t0","$","_c","setTimelineRange","timelineError","ready","timelineStore","open","setOpen","button","setButton","popoverRef","setPopoverRef","toast","chunks","_temp","loading","_temp2","hasMoreChunks","_temp3","realRevChunk","_temp4","sinceTime","_temp5","t","t1","Symbol","for","handleOpen","t2","handleClose","t3","event","key","focus","handleGlobalKeyDown","t4","t5","revChunk","run","sinceId","revId","findRangeForRev","t6","err","push","closable","description","message","status","title","selectRev","sinceChunk","run_0","sinceId_0","revId_0","findRangeForSince","t7","selectSince","loadMore","handleLoadMore","t8","bb0","t9","filter","c","index","filteredChunks","t10","content","revLabel","formatParams","timestamp","dateStyle","timeStyle","type","context","Date","endTimestamp","sinceLabel","buttonLabel","portalElements","t11","t12","t13","t14","t15","maxWidth","t16","t17","t18","t19","state_3","state","state_2","state_1","state_0","isLoading","ObjectDiff","BoundaryElementProvider","Box","Card","Flex","Text","useMemo","useState","ChangeFieldWrapper","ChangeList","DocumentChangeContextInstance","LoadingBlock","NoChanges","ObjectSchemaType","ScrollContainer","usePerspective","useTimelineSelector","useTranslation","DocumentChangeContext","styled","structureLocaleNamespace","TimelineError","TimelineMenu","useDocumentPane","Scroller","Grid","ChangesInspector","t0","$","_c","showChanges","documentId","schemaType","timelineError","timelineStore","value","selectedReleaseId","scrollRef","setScrollRef","rev","_temp","diff","_temp2","onOlderRevision","_temp3","selectionState","_temp4","sinceTime","_temp5","loading","isComparingCurrent","t","structureT","t1","FieldWrapper","_temp6","rootDiff","showFromValue","documentContext","t2","Symbol","for","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","props","state_3","state","state_2","state_1","state_0","revTime","Content","error","Card","Flex","MouseEvent","useCallback","DocumentGroupEvent","Event","isDeleteDocumentGroupEvent","isDeleteDocumentVersionEvent","isScheduleDocumentVersionEvent","isUnpublishDocumentEvent","isUnscheduleDocumentVersionEvent","useTranslation","Tooltip","TimelineItemProps","event","isSelected","onSelect","chunk","optionsMenu","React","ReactNode","getIsSelectable","EventTimelineItem","t0","$","_c","t","t1","isSelectable","t2","evt","preventDefault","stopPropagation","handleClick","t3","t4","t5","t6","cursor","width","t7","t8","timestamp","t9","t10","Flex","Menu","MenuItem","Text","usePortal","useCallback","ContextMenuButton","getReleaseIdFromReleaseDocumentId","getReleaseTone","getVersionFromId","isReleaseDocument","PublishDocumentVersionEvent","RELEASES_INTENT","ReleaseTitle","Translate","useSetPerspective","useTranslation","useWorkspace","VersionInlineBadge","IntentLink","MenuButton","usePaneRouter","structureLocaleNamespace","TIMELINE_MENU_PORTAL","PublishedEventMenu","t0","$","_c","event","t","tCore","portalContext","params","setParams","setPerspective","document","drafts","t1","enabled","isDraftModelEnabled","t2","id","versionId","versionRevisionId","rev","since","undefined","historyEvent","historyVersion","handleOpenReleaseDocument","t3","preserveRev","setTimeout","handleOpenDraftDocument","releaseTitle","release","metadata","title","t4","releaseFallback","t5","t6","children","VersionBadge","isMenuDisabled","t7","t8","t9","releaseId","_id","t10","content","t11","t12","textDecoration","t13","displayTitle","t14","children_0","t15","displayTitle_0","t16","children_1","_temp","elements","Symbol","for","portal","placement","fallbackPlacements","children_2","Box","Flex","Spinner","Stack","Text","motion","Variants","useCallback","useEffect","useMemo","useState","CommandList","CommandListRenderItemCallback","DocumentGroupEvent","getDocumentVariantType","isCreateDocumentVersionEvent","isDeleteDocumentVersionEvent","isEditDocumentVersionEvent","isPublishDocumentVersionEvent","LoadingBlock","useTranslation","ExpandableTimelineItemButton","ListWrapper","Root","EventTimelineItem","PublishedEventMenu","TimelineProps","events","hasMoreEvents","selectedEventId","onLoadMore","onSelect","event","fetchEventChildren","Promise","listMaxHeight","TimelineItemWrapper","create","CHILDREN_ITEMS_VARIANTS","initial","opacity","animate","exit","ITEM_HEIGHT","TIMELINE_LIST_WRAPPER_ID","EventsTimeline","t0","$","_c","allEvents","t1","undefined","mounted","setMounted","t","t2","selectedEvent","find","id","parentId","Set","expandedParents","setExpandedParents","t3","Symbol","for","expandingParents","setExpandingParents","t4","filter","event_0","isLastEvent","length","has","t5","event_1","isExpanding","prev","next","delete","add","prev_0","next_0","prev_1","next_1","handleExpandParent","t6","event_2","handleSelectChunk","t7","event_3","documentVariantType","documentId","creationEvent","renderOptionsMenu","t8","event_4","t9","activeIndex","showExpandingLoader","isLastEvent_0","duration","delay","height","timestamp","renderItem","t10","t11","t12","event_5","findIndex","selectedIndex","t13","t14","displayName","ChevronDownIcon","Flex","Placement","PortalProvider","useClickOutsideEvent","useGlobalKeyDown","useToast","useCallback","useMemo","useState","DocumentGroupEvent","isDeleteDocumentGroupEvent","isDeleteDocumentVersionEvent","isScheduleDocumentVersionEvent","isUnpublishDocumentEvent","isUnscheduleDocumentVersionEvent","TIMELINE_ITEM_I18N_KEY_MAPPING","useEvents","useTranslation","styled","Button","Popover","useDocumentPane","TimelineError","EventsTimeline","TimelineMenuProps","event","events","mode","placement","Root","TIMELINE_MENU_PORTAL","formatParams","timestamp","dateStyle","timeStyle","EventsTimelineMenu","t0","$","_c","setTimelineRange","open","setOpen","button","setButton","popoverRef","setPopoverRef","toast","nextCursor","loading","error","eventsError","findRangeForRevision","findRangeForSince","loadMoreEvents","expandEvent","t","t1","Symbol","for","handleOpen","t2","handleClose","t3","e","key","focus","handleGlobalKeyDown","t4","t5","revEvent","run","console","since","rev","id","t6","err","push","closable","description","message","status","title","selectRev","sinceEvent","since_0","rev_0","t7","selectSince","handleLoadMore","t8","bb0","t9","Boolean","t10","t11","t12","content","documentVariantType","type","context","Date","revLabel","length","sinceLabel","buttonLabel","portalElements","t13","t14","t15","t16","maxWidth","t17","t18","t19","t20","diffInput","wrap","BoundaryElementProvider","Box","Card","Flex","Spinner","Stack","Text","motion","ReactElement","useMemo","useState","useObservable","ChangeFieldWrapper","ChangeList","ChangesError","DocumentChangeContextInstance","DocumentGroupEvent","isReleaseDocument","LoadingBlock","NoChanges","ObjectDiff","ObjectSchemaType","ScrollContainer","Translate","useEditState","useEvents","usePerspective","useTranslation","DocumentChangeContext","styled","structureLocaleNamespace","EventsTimelineMenu","useDocumentPane","Scroller","Grid","SpinnerContainer","DIFF_INITIAL_VALUE","diff","loading","error","CompareWithPublishedView","$","_c","documentId","documentType","schemaType","editState","displayed","targetDocumentState","selectedPerspective","selectedPerspectiveName","selectedReleaseId","t","isVariantTarget","status","variant","undefined","siblingScopeId","publishedSibling","_system","scopeId","siblingEditState","publishedComparisonBase","version","published","t0","author","rootDiff","draft","_rev","t1","t2","t3","metadata","title","t4","t5","t6","t7","isComparingCurrent","FieldWrapper","_temp","value","showFromValue","t8","t9","t10","EventsInspector","showChanges","timelineError","formState","scrollRef","setScrollRef","events","revision","sinceRevision","getChangesList","revisionId","changesList$","diffLoading","diffError","readOnly","_temp2","documentContext","bb0","Symbol","for","find","e","id","e_0","sinceEvent","toEvent","bb1","slice","event","parentId","indexOf","map","sinceEvents","length","position","t11","t12","t13","t14","t15","t16","opacity","delay","duration","t17","t18","t19","t20","t21","props","path","children","Content","sameRevisionSelected","type","SameRevisionSelected","BoundaryElementProvider","Card","Flex","useToast","useCallback","useState","DocumentGroupEvent","isDeleteDocumentGroupEvent","isDeleteDocumentVersionEvent","isScheduleDocumentVersionEvent","isUnpublishDocumentEvent","isUnscheduleDocumentVersionEvent","LoadingBlock","ScrollContainer","useEvents","useTranslation","styled","EventsTimeline","TimelineError","useDocumentPane","Scroller","EventsSelector","t0","$","_c","showList","scrollRef","setScrollRef","listHeight","setListHeight","setTimelineRange","t1","el","clientHeight","getScrollerRef","events","nextCursor","loading","error","revision","loadMoreEvents","findRangeForRevision","expandEvent","t","toast","t2","event","run","console","since","rev","id","t3","err","push","closable","description","message","status","title","selectRev","initialLoad","length","revisionId","Boolean","BoundaryElementProvider","Card","Flex","useToast","useCallback","useState","Chunk","ScrollContainer","usePerspective","useTimelineSelector","useTranslation","styled","Timeline","TimelineError","useDocumentPane","Scroller","HistorySelector","t0","$","_c","showList","timelineError","setTimelineRange","timelineStore","selectedReleaseId","scrollRef","setScrollRef","listHeight","setListHeight","t1","Symbol","for","el","clientHeight","getScrollerRef","chunks","_temp","realRevChunk","_temp2","hasMoreChunks","_temp3","loading","_temp4","t","toast","t2","revChunk","run","sinceId","revId","findRangeForRev","t3","err","push","closable","description","message","status","title","selectRev","loadMore","handleLoadMore","t4","Boolean","state_2","state","isLoading","state_1","state_0","CloseIcon","InfoOutlineIcon","Box","Card","Flex","TabList","TabPanel","Text","useState","DocumentInspectorProps","isReleaseDocument","TargetPerspective","TFunction","Translate","usePerspective","useSource","useTranslation","styled","Button","Tab","Tooltip","usePaneRouter","structureLocaleNamespace","HISTORY_INSPECTOR_NAME","ChangesInspector","EventsInspector","EventsSelector","HistorySelector","FadeInFlex","TABS","const","isValidTab","tab","includes","ChangesTabs","props","$","_c","params","setParams","source","parentRef","setParentRef","t","tCore","isReady","inspect","selectedPerspective","t0","changesInspectorTab","paneRouterTab","t1","since","undefined","setPaneRouterTab","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","onClose","t14","t15","content","t16","t17","t18","t19","Symbol","for","t20","t21","perspectiveLabel","t22","perspective","t23","t24","t25","t26","beta","eventsAPI","documents","t27","t28","t29","t30","t31","metadata","title","RestoreIcon","DocumentInspector","useTranslation","useStructureTool","HISTORY_INSPECTOR_NAME","ChangesTabs","changesInspector","name","useMenuItem","features","t","hidden","reviewChanges","icon","title","component","onClose","params","since","undefined","rev","changesInspectorTab","historyVersion","onOpen","Box","Flex","CrossDatasetReferencePreview","PreviewCard","CrossDatasetIncomingReference","CrossDatasetIncomingReferenceDocument","CrossDatasetIncomingReferenceDocumentPreview","t0","$","_c","type","document","t1","id","studioUrl","t2","t3","t4","t5","href","target","rel","as","t6","availability","t7","Boolean","t8","t9","preview","title","published","icon","_temp","undefined","t10","dataset","projectId","t11","t12","DocumentIcon","PreviewValue","catchError","map","Observable","of","startWith","switchMap","mergeMapArray","DocumentAvailability","DocumentPreviewStore","getPreviewPaths","getPublishedId","isNonNullable","prepareForPreview","SanityClient","fetchCrossDatasetReferences","CrossDatasetIncomingReference","INITIAL_STATE","documents","loading","InputIncomingReferencesOptions","documentId","type","client","documentPreviewStore","InspectorIncomingReferencesOptions","CompleteReferencesResponse","projectId","datasetName","CrossDatasetIncomingReferenceDocument","id","availability","preview","published","dataset","getCrossDatasetIncomingReferences","versionedClient","pipe","referencesResult","res","references","filter","ref","document","observeDocumentTypeFromId","documentType","_id","title","subtitle","media","available","reason","const","previewPaths","observePaths","result","previewValue","icon","err","console","error","Error","cause","catchError","distinctUntilChanged","filter","map","Observable","of","startWith","switchMap","mergeMapArray","DocumentPreviewStore","getPublishedId","SanityClient","SanityDocument","IncomingReferencesFilterResolver","IncomingReferencesOptions","INITIAL_STATE","documents","loading","resolveRawFilterCallback","filterResolver","document","getClient","options","apiVersion","resolvedFilter","filterParams","undefined","InputIncomingReferencesOptions","documentId","documentPreviewStore","type","InspectorIncomingReferencesOptions","getIncomingReferences","filterQueryRaw","filterParamsRaw","publishedId","Record","unstable_observeDocument","pipe","a","b","_rev","JSON","stringify","filterQuery","unstable_observeDocumentIdSet","insert","state","documentIds","id","Boolean","doc","seenPublishedId","pId","_id","includes","push","err","console","error","Error","cause","Box","styled","INCOMING_REFERENCES_ITEM_HEIGHT","INCOMING_REFERENCES_MAX_VISIBLE_ITEMS","IncomingReferencesListContainer","$itemCount","Math","min","Path","SanityDocument","SchemaType","ReactNode","useCallback","getPublishedId","pathToString","PreviewCard","useDocumentPresence","useDocumentPreviewStore","PaneItemPreview","usePaneRouter","IncomingReferencePreviewProps","type","value","path","IncomingReferencePreview","props","$","_c","t0","_id","t1","publishedId","documentPresence","documentPreviewStore","ChildLink","t2","name","LinkComponent","linkProps","Link","t3","icon","t4","t5","Box","Card","Flex","Text","motion","getReferencePaths","SanityDocument","useSchema","useTranslation","IncomingReferencePreview","structureLocaleNamespace","FadeInFlex","create","IncomingReferenceDocument","props","$","_c","t","document","referenceToId","t0","referencePaths","schema","t1","_type","get","schemaType","t2","type","t3","Symbol","for","opacity","t4","SanityDocument","Box","Card","Flex","Stack","Text","useCallback","useMemo","useObservable","map","CommandList","CommandListRenderItemCallback","DEFAULT_STUDIO_CLIENT_OPTIONS","LoadingBlock","useClient","useDocumentPreviewStore","useSchema","useSource","useTranslation","CrossDatasetIncomingReferenceDocumentPreview","CrossDatasetIncomingReferenceDocument","getCrossDatasetIncomingReferences","getIncomingReferences","INCOMING_REFERENCES_ITEM_HEIGHT","IncomingReferencesListContainer","structureLocaleNamespace","useDocumentPaneInfo","IncomingReferenceDocument","TypeSectionProps","type","documents","T","renderItem","getItemKey","index","emptyMessage","TypeSection","t0","$","_c","schema","t","t1","get","schemaType","title","t2","t3","length","t4","IncomingReferencesList","documentId","getClient","documentPreviewStore","client","pipe","_temp3","references$","references","_temp6","crossDatasetIncomingRefs$","crossDatasetRefs","document","renderSameDatasetItem","renderCrossDatasetItem","_temp7","showEmptyState","loading","list","t5","t6","type_3","documents_1","_id","t7","type_4","documents_2","index_0","id","document_0","documents_0","loading_0","documentsByType_0","reduce","_temp4","Record","Object","entries","documentsByType","_temp5","type_2","docs_0","docs","acc_0","doc_0","type_1","doc","acc","push","_temp","_temp2","type_0","_type","Card","Flex","DocumentInspectorComponent","DocumentInspectorProps","useTranslation","DocumentInspectorHeader","IncomingReferencesList","IncomingReferencesInspector","props","$","_c","t","t0","t1","onClose","t2","t3","t4","Symbol","for","t5","SyncIcon","DocumentInspector","useTranslation","INCOMING_REFERENCES_INSPECTOR_NAME","IncomingReferencesInspector","incomingReferencesInspector","name","useMenuItem","t","icon","title","component","Path","SanityDocument","SchemaType","isArray","isRecord","getPathTitles","options","path","schemaType","value","Partial","Array","name","title","result","s","v","segment","undefined","Error","jsonType","field","fields","find","f","push","type","itemType","of","ofType","_type","_key","values","i","objectTypes","filter","length","JSON","stringify","IconComponent","ErrorOutlineIcon","InfoOutlineIcon","WarningOutlineIcon","ObjectSchemaType","Path","SanityDocument","SchemaType","ValidationMarker","Box","Card","CardTone","Flex","Stack","Text","ErrorInfo","Fragment","MouseEvent","useCallback","useMemo","useState","DocumentInspectorProps","isGoingToUnpublish","mergeParseErrors","useParseErrors","useTranslation","ErrorBoundary","DocumentInspectorHeader","useDocumentPane","getPathTitles","MARKER_ICON","Record","error","warning","info","MARKER_TONE","ValidationInspector","props","$","_c","onClose","onFocus","onPathOpen","schemaType","validation","value","editState","parseErrors","t0","mergedValidation","t","t1","path","handleOpen","t2","version","isVersionGoingToUnpublish","t3","t4","t5","t6","length","map","marker","i","t7","ValidationCard","onOpen","event","selection","window","getSelection","toString","currentTarget","contains","anchorNode","handleClick","errorInfo","setErrorInfo","Icon","level","message","userSelect","DocumentNodePathBreadcrumbs","bb0","e","console","pathTitles","_temp","color","opacity","fontWeight","title","name","CheckmarkCircleIcon","ErrorOutlineIcon","WarningOutlineIcon","useMemo","DocumentInspector","DocumentInspectorMenuItem","DocumentInspectorUseMenuItemProps","FormNodeValidation","isGoingToUnpublish","isValidationError","isValidationWarning","mergeParseErrors","useParseErrors","useTranslation","VALIDATION_INSPECTOR_NAME","useDocumentPane","ValidationInspector","useMenuItem","_props","$","_c","t","validation","validationMarkers","value","parseErrors","t0","merged","map","_temp","hasErrors","some","hasWarnings","t1","isDocumentGoingToUnpublish","t2","bb0","icon","t3","bb1","tone","t4","length","t5","t6","hidden","title","showAsAction","item","level","message","path","validationInspector","name","component","omit","decodeJsonParams","encodeJsonParams","route","RouterPaneGroup","RouterPanes","RouterPaneSibling","EMPTY_PARAMS","legacyEditParamsToState","params","Record","JSON","parse","decodeURIComponent","console","warn","encodePanesSegment","panes","map","group","encodeChunks","join","encodeURIComponent","legacyEditParamsToPath","stringify","toState","pathSegment","parsePanesSegment","toPath","router","create","intents","path","transform","children","panePattern","isParam","str","test","isPayloadLike","exclusiveParams","Truthy","T","NonNullable","isTruthy","Boolean","t","parseChunks","chunks","initial","sibling","payload","undefined","reduce","pane","chunk","key","slice","indexOf","value","length","tryParseBase64Payload","index","id","firstSibling","paneIsFirstSibling","sameAsFirst","encodedPayload","encodedParams","Object","entries","filter","entry","valueFromFirstSibling","includes","concat","flat","parseOldPanesSegment","split","restOfSiblings","segment","buffer","match","payloadChunk","tryParsePayload","push","json","err","message","data","MasterDetailIcon","lazy","definePlugin","DocumentActionComponent","useDeleteAction","useDiscardChangesAction","useDuplicateAction","useHistoryRestoreAction","usePublishAction","useUnpublishAction","useLiveEditBadge","getIntentState","structureUsEnglishLocaleBundle","changesInspector","incomingReferencesInspector","validationInspector","router","StructureToolOptions","documentActions","destructiveActionNames","documentBadges","inspectors","structureTool","options","icon","name","document","actions","prevActions","context","combinedActions","Array","from","Set","destructiveActions","filter","action","includes","otherActions","versionType","sortedActions","sort","a","b","badges","prevBadges","prevInspectors","tools","title","component","canHandleIntent","intent","params","canHandleCreateIntent","canHandleEditIntent","controlsDocumentTitle","__internalApplicationType","i18n","bundles","Record","handle","mode","template","Object","keys","length"],"sources":["../src/structure/panes/document/useDocumentPane.tsx","../src/structure/panes/document/useDocumentTitle.ts","../src/structure/components/DocTitle.tsx","../src/structure/components/confirmDeleteDialog/ConfirmDeleteDialogBody.styles.tsx","../src/structure/components/paneItem/PaneItemPreview.tsx","../src/structure/components/paneRouter/usePaneRouter.ts","../src/structure/components/confirmDeleteDialog/ReferencePreviewLink.tsx","../src/structure/components/confirmDeleteDialog/VersionsPreviewList.tsx","../src/structure/components/confirmDeleteDialog/ConfirmDeleteDialogBody.tsx","../src/structure/components/confirmDeleteDialog/useReferringDocuments.ts","../src/structure/components/confirmDeleteDialog/ConfirmDeleteDialog.tsx","../src/structure/components/confirmDeleteDialog/index.tsx","../src/structure/components/pane/PaneLayout.styles.tsx","../src/structure/components/pane/helpers/_calcPaneResize.ts","../src/structure/components/pane/helpers/_getDOMPath.ts","../src/structure/components/pane/helpers/_sortElements.ts","../src/structure/components/pane/paneLayoutController.ts","../src/structure/components/pane/PaneLayout.tsx","../src/structure/panes/document/documentInspector/DocumentInspectorHeader.tsx","../src/structure/diffView/__telemetry__/diffView.telemetry.ts","../src/structure/diffView/hooks/useCreatePathSyncChannel.ts","../src/structure/diffView/constants.ts","../src/structure/diffView/hooks/useDiffViewRouter.ts","../src/structure/diffView/types/diffViewMode.ts","../src/structure/diffView/hooks/useDiffViewState.ts","../src/structure/diffView/hooks/useScrollMirror.tsx","../src/structure/diffView/utils/findRelease.ts","../src/structure/diffView/versionMode/components/VersionModeHeader.tsx","../src/structure/diffView/components/DialogLayout.ts","../src/structure/panes/document/document-layout/pickDocumentLayoutComponent.ts","../src/structure/diffView/hooks/usePathSyncChannel.ts","../src/structure/diffView/components/Scroller.ts","../src/structure/diffView/components/DiffViewPane.tsx","../src/structure/diffView/components/EditReferenceLinkComponent.tsx","../src/structure/diffView/components/DiffView.tsx","../src/structure/diffView/plugin/DiffViewDocumentLayout.tsx","../src/structure/panes/error/ErrorPane.tsx","../src/structure/panes/loading/getWaitMessages.ts","../src/structure/panes/loading/LoadingPane.tsx","../src/structure/panes/document/comments/CommentsWrapper.tsx","../src/structure/DocumentActionsProvider.tsx","../src/structure/panes/document/constants.ts","../src/structure/panes/document/DocumentInspectorMenuItemsResolver.tsx","../src/structure/panes/document/useDocumentPaneInfo.tsx","../src/structure/panes/document/DocumentOperationResults.tsx","../src/structure/components/paneItem/helpers.tsx","../src/structure/hasObsoleteDraft.ts","../src/structure/mustChooseNewDocumentDestination.ts","../src/structure/panes/document/documentInspector/DocumentInspectorPanel.tsx","../src/structure/useStructureToolSetting.ts","../src/structure/panes/document/inspectDialog/constants.ts","../src/structure/panes/document/inspectDialog/helpers.ts","../src/structure/panes/document/inspectDialog/InspectDialog.styles.tsx","../src/structure/panes/document/inspectDialog/Search.tsx","../src/structure/panes/document/inspectDialog/InspectDialog.tsx","../src/structure/panes/document/documentPanel/banners/Banner.tsx","../src/structure/panes/document/documentPanel/banners/ArchivedReleaseDocumentBanner.tsx","../src/structure/panes/document/documentPanel/banners/CanvasLinkedBanner.tsx","../src/structure/panes/document/documentPanel/banners/ChooseNewDocumentDestinationBanner.tsx","../src/structure/panes/document/documentPanel/banners/DeletedDocumentBanners.tsx","../src/structure/panes/document/documentPanel/banners/DeprecatedDocumentTypeBanner.tsx","../src/structure/panes/document/documentPanel/banners/DocumentNotInReleaseBanner.tsx","../src/structure/panes/document/documentPanel/banners/findVariantCreateBaseDocument.ts","../src/structure/panes/document/documentPanel/banners/DocumentNotInVariantBanner.tsx","../src/structure/components/requestPermissionDialog/__telemetry__/RequestPermissionDialog.telemetry.ts","../src/structure/components/requestPermissionDialog/RequestPermissionDialog.tsx","../src/structure/components/requestPermissionDialog/useRoleRequestsStatus.tsx","../src/structure/panes/document/documentPanel/banners/InsufficientPermissionBanner.tsx","../src/structure/panes/document/documentPanel/banners/__telemetry__/DraftLiveEditBanner.telemetry.ts","../src/structure/panes/document/documentPanel/banners/ObsoleteDraftBanner.tsx","../src/structure/panes/document/documentPanel/banners/OpenReleaseToEditBanner.tsx","../src/structure/panes/document/documentPanel/banners/PausedScheduledDraftBanner.tsx","../src/structure/panes/document/documentPanel/banners/ReferenceChangedBanner.tsx","../src/structure/panes/document/documentPanel/banners/RevisionNotFoundBanner.tsx","../src/structure/panes/document/documentPanel/banners/ScheduledDraftOverrideBanner.tsx","../src/structure/panes/document/documentPanel/banners/ScheduledReleaseBanner.tsx","../src/structure/panes/document/documentPanel/banners/UnpublishedDocumentBanner.tsx","../src/structure/panes/document/documentPanel/banners/VariantDefinitionNotFoundBanner.tsx","../src/structure/panes/document/documentPanel/documentViews/FormHeader.tsx","../src/structure/panes/document/documentPanel/documentViews/FormView.tsx","../src/structure/panes/document/documentPanel/header/DocumentHeaderTabs.tsx","../src/structure/structureResolvers/useResolvedPanesList.ts","../src/structure/panes/document/documentPanel/header/__telemetry__/focus.telemetry.ts","../src/structure/panes/document/documentPanel/header/DocumentHeaderBreadcrumbItem.tsx","../src/structure/panes/document/documentPanel/header/DocumentHeaderBreadcrumb.tsx","../src/structure/panes/document/documentPanel/header/DocumentHeaderTitle.tsx","../src/structure/panes/document/documentPanel/header/FavoriteToggle.tsx","../src/structure/panes/document/documentPanel/header/DocumentPanelSubHeader.tsx","../src/structure/panes/document/documentPanel/DocumentPanel.tsx","../src/structure/util/toLowerCaseNoSpaces.tsx","../src/structure/components/pane/PaneMenuButtonItem.tsx","../src/structure/components/pane/PaneContextMenuButton.tsx","../src/structure/components/pane/PaneHeaderActionButton.tsx","../src/structure/components/RenderActionCollectionState.tsx","../src/structure/documentActions/HistoryRestoreAction.tsx","../src/structure/menuNodes.ts","../src/structure/panes/document/statusBar/dialogs/constants.ts","../src/structure/panes/document/statusBar/dialogs/ConfirmDialog.tsx","../src/structure/panes/document/statusBar/dialogs/ModalDialog.tsx","../src/structure/panes/document/statusBar/dialogs/PopoverDialog.tsx","../src/structure/panes/document/statusBar/ActionStateDialog.tsx","../src/structure/panes/document/statusBar/ActionMenuButton.tsx","../src/structure/panes/document/__telemetry__/documentPanes.telemetry.ts","../src/structure/panes/document/documentPanel/header/CopyDocumentActions.tsx","../src/structure/panes/document/documentPanel/header/__telemetry__/documentGroupInventoryHint.telemetry.ts","../src/structure/panes/document/documentPanel/header/documentGroupInventoryHint/hintStatus.ts","../src/structure/panes/document/documentPanel/header/documentGroupInventoryHint/DocumentGroupInventoryHint.tsx","../src/structure/panes/document/documentPanel/header/DocumentTargetBadges.tsx","../src/structure/panes/document/documentPanel/header/hook/useChipScrollPosition.tsx","../src/structure/hooks/usePerspectiveNavigator.ts","../src/structure/hooks/useDocumentPerspectiveList.ts","../src/structure/panes/document/documentPanel/header/NonReleaseVersionsSelect.tsx","../src/structure/panes/document/documentPanel/header/perspective/DocumentPerspectiveList.tsx","../src/structure/panes/document/documentPanel/header/DocumentPanelHeader.tsx","../src/structure/panes/document/keyboardShortcuts/DocumentActionShortcuts.tsx","../src/structure/panes/document/components/HiddenCheckmarkIcon.tsx","../src/structure/panes/document/menuItems.ts","../src/structure/panes/document/document-layout/DocumentLayout.css.ts","../src/structure/panes/document/document-layout/DocumentLayoutError.tsx","../src/structure/components/pane/PaneFooter.styles.tsx","../src/structure/components/pane/PaneFooter.tsx","../src/structure/components/spacerButton/SpacerButton.tsx","../src/structure/components/RenderBadgeCollectionState.tsx","../src/structure/panes/document/statusBar/DocumentBadges.tsx","../src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx","../src/structure/panes/document/timeline/timelineI18n.ts","../src/structure/panes/document/statusBar/DocumentStatusPulse/AnimatedStatusIcon.tsx","../src/structure/panes/document/statusBar/DocumentStatusPulse/DocumentStatusPulse.tsx","../src/structure/panes/document/statusBar/DocumentStatusLine.tsx","../src/structure/panes/document/statusBar/RevisionStatusLine.tsx","../src/structure/panes/document/statusBar/useResizeObserver.ts","../src/structure/panes/document/statusBar/DocumentStatusBar.tsx","../src/structure/panes/document/document-layout/DocumentLayoutFooter.tsx","../src/structure/panes/document/document-layout/DocumentLayout.tsx","../src/structure/panes/document/document-layout/useDocumentLayoutComponent.ts","../src/structure/components/structureTool/StructureTitle.tsx","../src/structure/hooks/useDeletedDocumentLastRevision.ts","../src/structure/panes/document/__telemetry__/documentInitialLoad.telemetry.ts","../src/structure/panes/document/useDocumentInitialLoadTelemetry.ts","../src/structure/panes/document/getInitialValueTemplateOpts.ts","../src/structure/panes/document/useDocumentPaneInitialValue.ts","../src/structure/panes/document/useDocumentPaneInspector.ts","../src/structure/panes/document/usePreviewUrl.ts","../src/structure/panes/document/DocumentPaneProvider.tsx","../src/structure/panes/document/DocumentEventsPane.tsx","../src/structure/panes/document/DocumentPaneLegacyTimeline.tsx","../src/structure/panes/document/DocumentPerspectiveProvider.tsx","../src/structure/panes/document/DocumentPaneProviderWrapper.tsx","../src/structure/panes/document/useResetHistoryParams.ts","../src/structure/panes/document/DocumentPane.tsx","../src/structure/structureResolvers/assignId.ts","../src/structure/components/MissingSchemaType.tsx","../src/structure/components/paneItem/PaneItem.tsx","../src/structure/components/IntentButton.tsx","../src/structure/components/paneHeaderActions/InsufficientPermissionsMessageTooltip.tsx","../src/structure/components/paneHeaderActions/PaneHeaderCreateButton.tsx","../src/structure/components/paneHeaderActions/PaneHeaderActions.tsx","../src/structure/components/paneRouter/BackLink.tsx","../src/structure/documentActions/__telemetry__/documentActions.telemetry.ts","../src/structure/documentActions/DeleteAction.tsx","../src/structure/components/confirmDiscardDialog/ConfirmDiscardDialog.tsx","../src/structure/documentActions/DiscardChangesAction.tsx","../src/structure/documentActions/DuplicateAction.tsx","../src/structure/documentActions/PublishAction.tsx","../src/structure/documentActions/UnpublishAction.tsx","../src/structure/documentBadges/LiveEditBadge.ts","../src/structure/getIntentState.ts","../src/structure/panes/document/timeline/TimelineError.tsx","../src/structure/panes/document/timeline/expandableTimelineItemButton.tsx","../src/structure/panes/document/timeline/timeline.styled.tsx","../src/structure/panes/document/timeline/constants.ts","../src/structure/panes/document/timeline/helpers.ts","../src/structure/panes/document/timeline/userAvatarStack.tsx","../src/structure/panes/document/timeline/timelineItem.tsx","../src/structure/panes/document/timeline/utils.ts","../src/structure/panes/document/timeline/timeline.tsx","../src/structure/panes/document/timeline/timelineMenu.tsx","../src/structure/panes/document/inspectors/changes/ChangesInspector.tsx","../src/structure/panes/document/timeline/events/EventTimelineItem.tsx","../src/structure/panes/document/timeline/events/PublishedEventMenu.tsx","../src/structure/panes/document/timeline/events/EventsTimeline.tsx","../src/structure/panes/document/timeline/events/EventsTimelineMenu.tsx","../src/structure/panes/document/inspectors/changes/EventsInspector.tsx","../src/structure/panes/document/inspectors/changes/EventsSelector.tsx","../src/structure/panes/document/inspectors/changes/HistorySelector.tsx","../src/structure/panes/document/inspectors/changes/ChangesTabs.tsx","../src/structure/panes/document/inspectors/changes/index.ts","../src/structure/components/incomingReferencesDecoration/CrossDatasetIncomingReference/CrossDatasetIncomingReferenceDocumentPreview.tsx","../src/structure/components/incomingReferencesDecoration/CrossDatasetIncomingReference/getCrossDatasetIncomingReferences.tsx","../src/structure/components/incomingReferencesDecoration/getIncomingReferences.tsx","../src/structure/components/incomingReferencesDecoration/shared.ts","../src/structure/components/incomingReferencesDecoration/IncomingReferencePreview.tsx","../src/structure/panes/document/inspectors/incomingReferences/IncomingReferenceDocument.tsx","../src/structure/panes/document/inspectors/incomingReferences/IncomingReferencesList.tsx","../src/structure/panes/document/inspectors/incomingReferences/IncomingReferencesInspector.tsx","../src/structure/panes/document/inspectors/incomingReferences/index.ts","../src/structure/panes/document/inspectors/validation/getPathTitles.ts","../src/structure/panes/document/inspectors/validation/ValidationInspector.tsx","../src/structure/panes/document/inspectors/validation/index.ts","../src/structure/router.ts","../src/structure/structureTool.ts"],"sourcesContent":["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 {useMemo} from 'react'\nimport {\n isPublishedPerspective,\n prepareForPreview,\n usePerspective,\n useTranslation,\n useValuePreview,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../i18n'\nimport {useDocumentPane} from './useDocumentPane'\n\n/**\n * useDocumentTitle hook return type.\n *\n * @beta\n * @hidden\n */\nexport interface 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, editState, isDeleted, lastRevisionDocument} =\n useDocumentPane()\n const {selectedPerspectiveName} = usePerspective()\n const {t} = useTranslation(structureLocaleNamespace)\n // follows the same logic as the StructureTitle component\n const documentValue = useMemo(() => {\n if (isDeleted) {\n return lastRevisionDocument\n }\n // When viewing published perspective, prioritize published document\n if (selectedPerspectiveName && isPublishedPerspective(selectedPerspectiveName)) {\n return editState?.published\n }\n return editState?.version || editState?.draft || editState?.published\n }, [isDeleted, lastRevisionDocument, editState, selectedPerspectiveName])\n const subscribed = Boolean(documentValue)\n\n // For deleted documents, we need to handle the preview differently since useValuePreview\n // will return null for deleted documents. Instead, we directly prepare the preview\n // from the lastRevisionDocument data.\n const deletedDocumentPreview = useMemo(() => {\n if (isDeleted && lastRevisionDocument && schemaType) {\n try {\n const prepared = prepareForPreview(lastRevisionDocument, schemaType)\n return prepared\n } catch (error) {\n console.warn('Failed to prepare preview for deleted document:', error)\n return null\n }\n }\n return null\n }, [isDeleted, lastRevisionDocument, schemaType])\n\n const {error, value} = useValuePreview({\n // disable useValuePreview for deleted documents\n enabled: subscribed && !isDeleted,\n schemaType,\n value: documentValue,\n })\n\n if (connectionState === 'connecting' && !subscribed) {\n return {error: undefined, title: undefined}\n }\n\n // For deleted documents, use the directly prepared preview\n if (isDeleted && deletedDocumentPreview) {\n return {error: undefined, title: deletedDocumentPreview.title}\n }\n\n if (!value && !isDeleted) {\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 {type SanityDocumentLike} from '@sanity/types'\nimport {useSchema, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentTitle} from '../panes/document/useDocumentTitle'\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 const {title} = useDocumentTitle()\n\n if (!schemaType) {\n return <code>{t('doc-title.unknown-schema-type.text', {schemaType: documentValue._type})}</code>\n }\n\n return (\n <>\n {title || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>{t('doc-title.fallback.text')}</span>\n )}\n </>\n )\n}\n","import {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {Box, Flex, Inline, rem, Text} from '@sanity/ui'\nimport {useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {structureLocaleNamespace} from '../../i18n'\n\nexport const ChevronWrapper = styled(Box)`\n margin-left: auto;\n`\n\nexport const CrossDatasetReferencesDetails = styled.details`\n flex: none;\n\n &[open] ${ChevronWrapper} {\n transform: rotate(180deg);\n }\n`\n\nexport const CrossDatasetReferencesSummary = styled.summary`\n list-style: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n`\n\nexport const Table = styled.table`\n width: 100%;\n text-align: left;\n padding: 0 ${({theme}) => rem(theme.sanity.space[2])};\n border-collapse: collapse;\n\n th {\n padding: ${({theme}) => rem(theme.sanity.space[1])};\n }\n\n td {\n padding: 0 ${({theme}) => rem(theme.sanity.space[1])};\n }\n\n tr > *:last-child {\n text-align: right;\n }\n`\n\nexport const DocumentIdFlex = styled(Flex)`\n min-height: 33px;\n`\n\nexport const OtherReferenceCount = (props: {totalCount: number; references: unknown[]}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const difference = props.totalCount - props.references.length\n\n if (!difference) return null\n\n return (\n <Box padding={2}>\n <Inline space={2}>\n <Text size={1} muted>\n {t('confirm-delete-dialog.other-reference-count.title', {count: difference})}\n </Text>\n\n <Tooltip\n portal\n placement=\"top\"\n content={t('confirm-delete-dialog.other-reference-count.tooltip')}\n >\n <Text size={1} muted>\n <InfoOutlineIcon />\n </Text>\n </Tooltip>\n </Inline>\n </Box>\n )\n}\n","import {\n type PrepareViewOptions,\n type SanityDocument,\n type SchemaType,\n type SortOrdering,\n} from '@sanity/types'\nimport {Flex} from '@sanity/ui'\nimport {type ComponentType, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {\n type DocumentPresence,\n DocumentPreviewPresence,\n type DocumentPreviewStore,\n DocumentStatus,\n DocumentStatusIndicator,\n type GeneralPreviewLayoutKey,\n getPreviewStateObservable,\n getPreviewValueWithFallback,\n SanityDefaultPreview,\n useDocumentVersionInfo,\n usePerspective,\n} from 'sanity'\n\nimport {TooltipDelayGroupProvider} from '../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\n\nexport interface PaneItemPreviewProps {\n documentPreviewStore: DocumentPreviewStore\n icon: ComponentType | false\n layout: GeneralPreviewLayoutKey\n presence?: DocumentPresence[]\n schemaType: SchemaType\n sortOrder?: Pick<SortOrdering, 'by'>\n value: SanityDocument | {_id: string; _type: string}\n}\n\n/**\n * Preview component for _documents_ rendered in structure panes.\n *\n * Note that non-document previews are not handled by this component,\n * despite being pane items! Non-document previews bypass this entirely\n * and are rendered by `<SanityDefaultPreview>`.\n */\nexport function PaneItemPreview(props: PaneItemPreviewProps) {\n const {icon, layout, presence, schemaType, sortOrder, value} = props\n\n const versionsInfo = useDocumentVersionInfo(value._id)\n\n const {perspectiveStack} = usePerspective()\n const viewOptions = useMemo((): PrepareViewOptions | undefined => {\n if (!sortOrder) return undefined\n return {\n ordering: {\n title: '',\n name: '',\n by: sortOrder.by,\n },\n }\n }, [sortOrder])\n const previewStateObservable = useMemo(() => {\n return getPreviewStateObservable(\n props.documentPreviewStore,\n schemaType,\n value._id,\n perspectiveStack,\n viewOptions,\n )\n }, [props.documentPreviewStore, schemaType, value._id, perspectiveStack, viewOptions])\n\n const {\n snapshot,\n original,\n isLoading: previewIsLoading,\n } = useObservable(previewStateObservable, {\n snapshot: null,\n isLoading: true,\n original: null,\n })\n\n const isLoading = previewIsLoading\n\n const status = isLoading ? null : (\n <TooltipDelayGroupProvider>\n <Flex align=\"center\" gap={3}>\n {presence && presence.length > 0 && <DocumentPreviewPresence presence={presence} />}\n <DocumentStatusIndicator\n draft={versionsInfo.draft}\n published={versionsInfo.published}\n versions={versionsInfo.versions}\n />\n </Flex>\n </TooltipDelayGroupProvider>\n )\n\n const tooltip = (\n <DocumentStatus\n draft={versionsInfo.draft}\n published={versionsInfo.published}\n versions={versionsInfo.versions}\n />\n )\n\n return (\n <SanityDefaultPreview\n {...getPreviewValueWithFallback({snapshot, original, fallback: value})}\n isPlaceholder={isLoading}\n icon={icon}\n layout={layout}\n status={status}\n tooltip={tooltip}\n />\n )\n}\n","import {useContext} from 'react'\nimport {PaneRouterContext} from 'sanity/_singletons'\n\nimport {type PaneRouterContextValue} from './types'\n\n// re-exported here so the public entry can surface the context without\n// depending on sanity/_singletons directly (boundaries policy)\nexport {PaneRouterContext}\n\n/**\n *\n * @hidden\n * @beta\n */\nexport function usePaneRouter(): PaneRouterContextValue {\n return useContext(PaneRouterContext)\n}\n","import {type SchemaType} from '@sanity/types'\nimport {type ReactNode, useCallback} from 'react'\nimport {\n getPublishedId,\n PreviewCard,\n type SanityDocument,\n useDocumentPresence,\n useDocumentPreviewStore,\n} from 'sanity'\n\nimport {PaneItemPreview} from '../paneItem/PaneItemPreview'\nimport {usePaneRouter} from '../paneRouter/usePaneRouter'\n\nconst EMPTY_ARRAY: [] = []\n\ninterface ReferencePreviewLinkProps {\n onClick?: () => void\n type: SchemaType & {icon?: any}\n value: SanityDocument | {_id: string; _type: string}\n}\n\nexport function ReferencePreviewLink(props: ReferencePreviewLinkProps) {\n const {onClick, type, value} = props\n const publishedId = getPublishedId(value?._id)\n const documentPresence = useDocumentPresence(publishedId)\n const documentPreviewStore = useDocumentPreviewStore()\n const {ReferenceChildLink} = usePaneRouter()\n\n const Link = useCallback(\n function LinkComponent(linkProps: {children: ReactNode}) {\n return (\n <ReferenceChildLink\n documentId={value?._id}\n documentType={type?.name}\n parentRefPath={EMPTY_ARRAY}\n {...linkProps}\n />\n )\n },\n [ReferenceChildLink, type?.name, value?._id],\n )\n\n return (\n <PreviewCard __unstable_focusRing as={Link} data-as=\"a\" onClick={onClick} radius={2}>\n <PaneItemPreview\n documentPreviewStore={documentPreviewStore}\n icon={type?.icon}\n layout=\"compact\"\n presence={documentPresence?.length > 0 ? documentPresence : EMPTY_ARRAY}\n schemaType={type}\n value={value}\n />\n </PreviewCard>\n )\n}\n","import {Card, Flex, Stack, Text} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {\n getDocumentVariantType,\n getPreviewStateObservable,\n getPreviewValueWithFallback,\n getPublishedId,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n ReleaseAvatarIcon,\n ReleaseTitle,\n SanityDefaultPreview,\n type SchemaType,\n useActiveReleases,\n useDocumentPreviewStore,\n useSchema,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst EllipsisText = styled(Text)`\n /* text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; */\n max-width: 120px;\n`\n\nconst VersionItemPreview = ({\n versionId,\n schemaType,\n}: {\n versionId: string\n schemaType: SchemaType\n}) => {\n const {t} = useTranslation()\n\n const documentPreviewStore = useDocumentPreviewStore()\n const documentVariant = getDocumentVariantType(versionId)\n const {data: releases} = useActiveReleases()\n const previewStateObservable = useMemo(() => {\n const perspectiveStack = [\n documentVariant === 'version'\n ? (getVersionFromId(versionId) as string)\n : documentVariant === 'published'\n ? 'published'\n : 'drafts',\n ]\n return getPreviewStateObservable(\n documentPreviewStore,\n schemaType,\n getPublishedId(versionId),\n perspectiveStack,\n )\n }, [documentPreviewStore, schemaType, versionId, documentVariant])\n\n const {\n snapshot,\n original,\n isLoading: previewIsLoading,\n } = useObservable(previewStateObservable, {\n snapshot: null,\n isLoading: true,\n original: null,\n })\n const release = useMemo(() => {\n if (documentVariant !== 'version') {\n return undefined\n }\n return releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === getVersionFromId(versionId),\n )\n }, [releases, versionId, documentVariant])\n\n const systemTitle = useMemo(() => {\n if (documentVariant === 'version') return undefined\n return documentVariant === 'published' ? t('release.chip.published') : t('release.chip.draft')\n }, [documentVariant, t])\n\n const tone = release\n ? getReleaseTone(release)\n : documentVariant === 'published'\n ? 'positive'\n : 'caution'\n\n return (\n <SanityDefaultPreview\n {...getPreviewValueWithFallback({\n snapshot,\n original,\n fallback: {\n _id: versionId,\n _type: schemaType.name,\n },\n })}\n isPlaceholder={previewIsLoading}\n icon={schemaType.icon}\n layout={'default'}\n status={\n <Card border radius=\"full\">\n <Card radius={'full'} tone={tone} style={{backgroundColor: 'transparent'}}>\n <Flex align=\"center\" gap={2} paddingY={2} paddingRight={3} paddingLeft={2}>\n <Text size={1}>\n <ReleaseAvatarIcon\n release={documentVariant === 'version' && release ? release : documentVariant}\n />\n </Text>\n {documentVariant === 'version' ? (\n <ReleaseTitle\n title={release?.metadata?.title}\n fallback={getVersionFromId(versionId) as string}\n >\n {({displayTitle}) => (\n <EllipsisText size={1} weight=\"medium\" textOverflow=\"ellipsis\">\n {displayTitle}\n </EllipsisText>\n )}\n </ReleaseTitle>\n ) : (\n <EllipsisText size={1} weight=\"medium\" textOverflow=\"ellipsis\">\n {systemTitle}\n </EllipsisText>\n )}\n </Flex>\n </Card>\n </Card>\n }\n />\n )\n}\n\n/**\n * Given a document id and type, returns a list of the versions of the document with all the previews\n * Also indicates the version of the document in a badge next to the preview.\n *\n */\nexport const VersionsPreviewList = ({\n documentType,\n documentVersions,\n}: {\n documentType: string\n documentVersions: string[]\n}) => {\n const schema = useSchema()\n\n const schemaType = schema.get(documentType)\n if (!schemaType) {\n throw new Error(`Schema type ${documentType} not found`)\n }\n\n return (\n <Card border padding={1} radius={2}>\n <Stack>\n {documentVersions?.map((version) => (\n <VersionItemPreview key={version} versionId={version} schemaType={schemaType} />\n ))}\n </Stack>\n </Card>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {CopyIcon} from '@sanity/icons/Copy'\nimport {DocumentsIcon} from '@sanity/icons/Documents'\nimport {UnknownIcon} from '@sanity/icons/Unknown'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Box, Card, Flex, Stack, Text, useToast} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {SanityDefaultPreview, Translate, useSchema, useTranslation} from 'sanity'\n\nimport {Button} from '../../../ui-components/button/Button'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {\n ChevronWrapper,\n CrossDatasetReferencesDetails,\n CrossDatasetReferencesSummary,\n DocumentIdFlex,\n OtherReferenceCount,\n Table,\n} from './ConfirmDeleteDialogBody.styles'\nimport {ReferencePreviewLink} from './ReferencePreviewLink'\nimport {type ReferringDocuments} from './useReferringDocuments'\nimport {VersionsPreviewList} from './VersionsPreviewList'\n\ntype DeletionConfirmationDialogBodyProps = Required<ReferringDocuments> & {\n documentTitle: React.ReactNode\n action: 'unpublish' | 'delete'\n onReferenceLinkClick?: () => void\n documentId: string\n documentType: string\n documentVersions: string[]\n}\n\n/**\n * The inner part of the `ConfirmDeleteDialog`. This is ran when both the\n * `crossDatasetReferences` and `internalReferences` are loaded.\n */\nexport function ConfirmDeleteDialogBody({\n crossDatasetReferences,\n internalReferences,\n documentTitle,\n totalCount,\n action,\n datasetNames,\n hasUnknownDatasetNames,\n documentId,\n documentType,\n onReferenceLinkClick,\n documentVersions,\n}: DeletionConfirmationDialogBodyProps) {\n const schema = useSchema()\n const toast = useToast()\n const {t} = useTranslation(structureLocaleNamespace)\n\n const renderPreviewItem = useCallback(\n (item: {_id: string; _type: string}) => {\n const type = schema.get(item._type)\n if (type) {\n return <ReferencePreviewLink type={type} value={item} onClick={onReferenceLinkClick} />\n }\n\n return (\n // Padding added to match the ReferencePreviewLink styling\n <Box padding={2}>\n <SanityDefaultPreview\n icon={UnknownIcon}\n title={t('confirm-delete-dialog.preview-item.preview-unavailable.title')}\n subtitle={t('confirm-delete-dialog.preview-item.preview-unavailable.subtitle', {\n documentId: item._id,\n })}\n layout=\"default\"\n />\n </Box>\n )\n },\n [schema, t, onReferenceLinkClick],\n )\n const confirmationMessage = useCallback(\n () => (\n <Stack space={4}>\n <Text as=\"p\" size={1}>\n <Translate\n t={t}\n i18nKey=\"confirm-delete-dialog.confirmation.text\"\n context={action}\n components={{DocumentTitle: () => <strong>{documentTitle}</strong>}}\n />\n </Text>\n {action === 'delete' && (\n <VersionsPreviewList documentType={documentType} documentVersions={documentVersions} />\n )}\n </Stack>\n ),\n [t, action, documentTitle, documentType, documentVersions],\n )\n\n if (internalReferences?.totalCount === 0 && crossDatasetReferences?.totalCount === 0) {\n return confirmationMessage()\n }\n\n // We do some extra checks to handle cases where you have unavailable dataset\n // name(s) due to permissions, both alone and in combination with known datasets\n\n // This normalizes one or more undefined dataset names to the catch-all `unavailable`\n const normalizedDatasetNames = [\n ...datasetNames,\n ...(hasUnknownDatasetNames ? ['unavailable'] : []),\n ]\n\n const datasetSubtitle = t('confirm-delete-dialog.cdr-summary.subtitle', {\n count: normalizedDatasetNames.length,\n datasets: normalizedDatasetNames.join(', '),\n context: hasUnknownDatasetNames && normalizedDatasetNames.length ? 'unavailable' : '',\n })\n\n return (\n <Flex direction=\"column\" gap={4}>\n {confirmationMessage()}\n <div>\n <Card borderTop padding={1} />\n <Card padding={3} radius={2} tone=\"caution\" flex=\"none\">\n <Flex>\n <Text aria-hidden=\"true\" size={1}>\n <WarningOutlineIcon />\n </Text>\n <Box flex={1} marginLeft={3}>\n <Text size={1}>\n <Translate\n i18nKey=\"confirm-delete-dialog.referring-document-count.text\"\n components={{DocumentTitle: () => documentTitle}}\n t={t}\n values={{count: totalCount}}\n />\n </Text>\n </Box>\n </Flex>\n </Card>\n </div>\n\n <Box flex=\"none\">\n <Text size={1}>\n <Translate\n i18nKey=\"confirm-delete-dialog.referring-documents-descriptor.text\"\n t={t}\n context={action}\n components={{DocumentTitle: () => documentTitle}}\n />\n </Text>\n </Box>\n <Card radius={2} shadow={1} flex=\"auto\" padding={1}>\n <Flex direction=\"column\">\n {internalReferences.totalCount > 0 && (\n <Stack as=\"ul\" space={2} data-testid=\"internal-references\">\n {internalReferences?.references.map((item) => (\n <Box key={item._id} as=\"li\">\n {renderPreviewItem(item)}\n </Box>\n ))}\n\n {internalReferences.totalCount > internalReferences.references.length && (\n <Box as=\"li\" padding={3}>\n <OtherReferenceCount {...internalReferences} />\n </Box>\n )}\n </Stack>\n )}\n\n {crossDatasetReferences.totalCount > 0 && (\n <CrossDatasetReferencesDetails\n data-testid=\"cross-dataset-references\"\n style={{\n // only add the border if needed\n borderTop:\n internalReferences.totalCount > 0\n ? '1px solid var(--card-shadow-outline-color)'\n : undefined,\n }}\n >\n <CrossDatasetReferencesSummary>\n <Card\n as=\"a\"\n marginTop={internalReferences.totalCount > 0 ? 2 : 0}\n radius={2}\n shadow={1}\n paddingY={1}\n >\n <Flex align=\"center\" gap={3} paddingX={3} paddingY={1}>\n <Text size={1}>\n <DocumentsIcon />\n </Text>\n <Stack space={2}>\n <Text textOverflow=\"ellipsis\" size={1}>\n {t('confirm-delete-dialog.cdr-summary.title', {\n count: normalizedDatasetNames.length,\n documentCount: t('confirm-delete-dialog.cdr-summary.document-count', {\n count: crossDatasetReferences.totalCount,\n }),\n })}\n </Text>\n <Text title={datasetSubtitle} textOverflow=\"ellipsis\" size={1} muted>\n {datasetSubtitle}\n </Text>\n </Stack>\n <ChevronWrapper>\n <Text muted size={1}>\n <ChevronDownIcon />\n </Text>\n </ChevronWrapper>\n </Flex>\n </Card>\n </CrossDatasetReferencesSummary>\n\n <Box overflow=\"auto\" paddingTop={2}>\n <Table>\n <thead>\n <tr>\n <th>\n <Text muted size={1} style={{minWidth: '5rem'}} weight=\"medium\">\n {t('confirm-delete-dialog.cdr-table.project-id.label')}\n </Text>\n </th>\n <th>\n <Text muted size={1} weight=\"medium\">\n {t('confirm-delete-dialog.cdr-table.dataset.label')}\n </Text>\n </th>\n <th>\n <Text muted size={1} weight=\"medium\">\n {t('confirm-delete-dialog.cdr-table.document-id.label')}\n </Text>\n </th>\n </tr>\n </thead>\n <tbody>\n {crossDatasetReferences.references\n .filter((reference): reference is Required<typeof reference> => {\n return 'projectId' in reference\n })\n .map(({projectId, datasetName, documentId: referenceId}, index) => (\n <tr key={`${documentId}-${index}`}>\n <td>\n <Text size={1}>{projectId}</Text>\n </td>\n <td>\n <Text size={1}>{datasetName || 'unavailable'}</Text>\n </td>\n <td>\n <DocumentIdFlex align=\"center\" gap={2} justify=\"flex-end\">\n <Text textOverflow=\"ellipsis\" size={1}>\n {referenceId || 'unavailable'}\n </Text>\n {referenceId && (\n <Button\n mode=\"bleed\"\n icon={CopyIcon}\n tooltipProps={{\n content: t(\n 'confirm-delete-dialog.cdr-table.copy-id-button.tooltip',\n ),\n }}\n onClick={() => {\n navigator.clipboard.writeText(referenceId).catch(() => {\n toast.push({\n status: 'error',\n title: t(\n 'confirm-delete-dialog.cdr-table.id-copied-toast.title-failed',\n ),\n })\n })\n }}\n />\n )}\n </DocumentIdFlex>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n\n <OtherReferenceCount {...crossDatasetReferences} />\n </Box>\n </CrossDatasetReferencesDetails>\n )}\n </Flex>\n </Card>\n <Box flex=\"none\">\n <Text size={1}>\n <Translate\n i18nKey=\"confirm-delete-dialog.referential-integrity-disclaimer.text\"\n t={t}\n context={action}\n components={{DocumentTitle: () => documentTitle}}\n />\n </Text>\n </Box>\n </Flex>\n )\n}\n","import {type ClientError, type SanityClient} from '@sanity/client'\nimport {useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {combineLatest, concat, EMPTY, fromEvent, type Observable, of, timer} from 'rxjs'\nimport {\n catchError,\n distinctUntilChanged,\n map,\n shareReplay,\n startWith,\n switchMap,\n} from 'rxjs/operators'\nimport {\n type AvailabilityResponse,\n DEFAULT_STUDIO_CLIENT_OPTIONS,\n type DocumentStore,\n getDraftId,\n getPublishedId,\n useClient,\n useDocumentStore,\n} from 'sanity'\n\n// this is used in place of `instanceof` so the matching can be more robust and\n// won't have any issues with dual packages etc\n// https://nodejs.org/api/packages.html#dual-package-hazard\nfunction isClientError(e: unknown): e is ClientError {\n if (typeof e !== 'object') return false\n if (!e) return false\n return 'statusCode' in e && 'response' in e\n}\n\nconst POLL_INTERVAL = 5000\n\n// only fetches when the document is visible\nlet visiblePoll$: Observable<number>\nconst getVisiblePoll$ = () => {\n if (!visiblePoll$) {\n visiblePoll$ = fromEvent(document, 'visibilitychange').pipe(\n // add empty emission to have this fire on creation\n startWith(null),\n map(() => document.visibilityState === 'visible'),\n distinctUntilChanged(),\n switchMap((visible) =>\n visible\n ? // using timer instead of interval since timer will emit on creation\n timer(0, POLL_INTERVAL)\n : EMPTY,\n ),\n shareReplay({refCount: true, bufferSize: 1}),\n )\n }\n return visiblePoll$\n}\n\nexport type ReferringDocuments = {\n isLoading: boolean\n totalCount: number\n projectIds: string[]\n datasetNames: string[]\n hasUnknownDatasetNames: boolean\n internalReferences?: {\n totalCount: number\n references: Array<{_id: string; _type: string}>\n }\n crossDatasetReferences?: {\n totalCount: number\n references: Array<{\n /**\n * The project ID of the document that is currently referencing the subject\n * document. Unlike `documentId` and `datasetName`, this should always be\n * defined.\n */\n projectId: string\n /**\n * The ID of the document that is currently referencing the subject\n * document. This will be omitted if there is no access to the current\n * project and dataset pair (e.g. if no `sanity-project-token` were\n * configured)\n */\n documentId?: string\n /**\n * The dataset name that is currently referencing the subject document.\n * This will be omitted if there is no access to the current project and\n * dataset pair (e.g. if no `sanity-project-token` were configured)\n */\n datasetName?: string\n }>\n }\n}\n\nfunction getDocumentExistence(\n documentId: string,\n {versionedClient}: {versionedClient: SanityClient},\n): Observable<string | undefined> {\n const draftId = getDraftId(documentId)\n const publishedId = getPublishedId(documentId)\n const requestOptions = {\n uri: versionedClient.getDataUrl('doc', `${draftId},${publishedId}`),\n json: true,\n query: {excludeContent: 'true'},\n tag: 'use-referring-documents.document-existence',\n }\n return versionedClient.observable.request<AvailabilityResponse>(requestOptions).pipe(\n map(({omitted}) => {\n const nonExistant = omitted.filter((doc) => doc.reason === 'existence')\n if (nonExistant.length === 2) {\n // None of the documents exist\n return undefined\n }\n\n if (nonExistant.length === 0) {\n // Both exist, so use the published one\n return publishedId\n }\n\n // If the draft does not exist, use the published ID, and vice versa\n return nonExistant.some((doc) => doc.id === draftId) ? publishedId : draftId\n }),\n )\n}\n\n/**\n * fetches the cross-dataset references using the client observable.request\n * method (for that requests can be automatically cancelled)\n */\nexport function fetchCrossDatasetReferences(\n documentId: string,\n context: {versionedClient: SanityClient},\n): Observable<ReferringDocuments['crossDatasetReferences']> {\n const {versionedClient} = context\n\n return getVisiblePoll$().pipe(\n switchMap(() => getDocumentExistence(documentId, context)),\n switchMap((checkDocumentId) => {\n if (!checkDocumentId) {\n return of({totalCount: 0, references: []})\n }\n\n const currentDataset = versionedClient.config().dataset\n\n return versionedClient.observable\n .request({\n url: `/data/references/${currentDataset}/documents/${checkDocumentId}/to?excludeInternalReferences=true&excludePaths=true`,\n tag: 'use-referring-documents.external',\n })\n .pipe(\n catchError((e) => {\n // it's possible that referencing document doesn't exist yet so the\n // API will return a 404. In those cases, we want to catch and return\n // a response with no references\n if (isClientError(e) && e.statusCode === 404) {\n return of({totalCount: 0, references: []})\n }\n\n throw e\n }),\n )\n }),\n )\n}\n\n/**\n * @internal\n */\nexport interface ReferringDocumentsOptions {\n documentId: string\n versionedClient: SanityClient\n documentStore: DocumentStore\n}\n\n/**\n * Returns an observable describing the documents that refer to the given\n * document, both within the same dataset (internal references) and across\n * datasets (cross-dataset references). The observable keeps emitting as the\n * underlying queries poll/listen for changes.\n *\n * @internal\n */\nexport function referringDocuments({\n documentId,\n versionedClient,\n documentStore,\n}: ReferringDocumentsOptions): Observable<ReferringDocuments> {\n const publishedId = getPublishedId(documentId)\n\n const internalReferences$ = withLoadingState(fetchInternalReferences(publishedId, documentStore))\n\n const crossDatasetReferences$ = withLoadingState(\n getVisiblePoll$().pipe(\n switchMap(() => fetchCrossDatasetReferences(publishedId, {versionedClient})),\n ),\n )\n\n return combineLatest([internalReferences$, crossDatasetReferences$]).pipe(\n map(\n ([\n [internalReferences, isInternalReferencesLoading],\n [crossDatasetReferences, isCrossDatasetReferencesLoading],\n ]): ReferringDocuments => {\n const projectIds = Array.from(\n new Set(\n crossDatasetReferences?.references\n .map((crossDatasetReference) => crossDatasetReference.projectId)\n .filter(Boolean),\n ),\n ).sort()\n\n const datasetNames = Array.from(\n new Set<string>(\n crossDatasetReferences?.references\n .map((crossDatasetReference) => crossDatasetReference?.datasetName || '')\n .filter((datasetName) => Boolean(datasetName) && datasetName !== ''),\n ),\n ).sort()\n\n const hasUnknownDatasetNames = Boolean(\n crossDatasetReferences?.references.some(\n (crossDatasetReference) => typeof crossDatasetReference.datasetName !== 'string',\n ),\n )\n\n return {\n totalCount:\n (internalReferences?.totalCount || 0) + (crossDatasetReferences?.totalCount || 0),\n projectIds,\n datasetNames,\n hasUnknownDatasetNames,\n internalReferences,\n crossDatasetReferences,\n isLoading: isInternalReferencesLoading || isCrossDatasetReferencesLoading,\n }\n },\n ),\n )\n}\n\nconst INITIAL_STATE: ReferringDocuments = {\n isLoading: true,\n totalCount: 0,\n projectIds: [],\n datasetNames: [],\n hasUnknownDatasetNames: false,\n internalReferences: undefined,\n crossDatasetReferences: undefined,\n}\n\nexport function useReferringDocuments(documentId: string): ReferringDocuments {\n const versionedClient = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const documentStore = useDocumentStore()\n\n const referringDocuments$ = useMemo(\n () => referringDocuments({documentId, versionedClient, documentStore}),\n [documentId, versionedClient, documentStore],\n )\n\n return useObservable(referringDocuments$, INITIAL_STATE)\n}\n\n/**\n+ * Fetches the documents within the same dataset that reference the subject\n+ * document using the document store's `listenQuery`\n+ */\nfunction fetchInternalReferences(\n documentId: string,\n documentStore: DocumentStore,\n): Observable<ReferringDocuments['internalReferences']> {\n const referencesClause = '*[references($documentId)][0...100]{_id,_type}'\n const totalClause = 'count(*[references($documentId)])'\n const fetchQuery = `{\"references\":${referencesClause},\"totalCount\":${totalClause}}`\n const listenQuery = '*[references($documentId)]'\n\n return documentStore.listenQuery(\n {fetch: fetchQuery, listen: listenQuery},\n {documentId},\n {tag: 'use-referring-documents', transitions: ['appear', 'disappear'], throttleTime: 5000},\n ) as Observable<ReferringDocuments['internalReferences']>\n}\n\nfunction withLoadingState<Type>(source: Observable<Type>): Observable<[Type | undefined, boolean]> {\n return concat(\n of<[Type | undefined, boolean]>([undefined, true]),\n source.pipe(map((value): [Type | undefined, boolean] => [value, false])),\n )\n}\n","import {Box, Flex} from '@sanity/ui'\nimport {useCallback, useId, useMemo} from 'react'\nimport {getPublishedId, LoadingBlock, useDocumentVersions, useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Dialog} from '../../../ui-components/dialog/Dialog'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {DocTitle} from '../DocTitle'\nimport {ConfirmDeleteDialogBody} from './ConfirmDeleteDialogBody'\nimport {useReferringDocuments} from './useReferringDocuments'\n\nconst DialogBody = styled(Box)`\n box-sizing: border-box;\n`\n\nconst LoadingContainer = styled(Flex).attrs({\n align: 'center',\n direction: 'column',\n justify: 'center',\n})`\n height: 110px;\n`\n\n/**\n * The reference counts known at the point a delete is confirmed, surfaced so\n * callers can record telemetry about how heavily referenced a document was.\n *\n * @internal\n */\nexport interface DeleteReferenceCounts {\n totalReferenceCount: number\n internalReferenceCount: number\n crossDatasetReferenceCount: number\n}\n\n/** @internal */\nexport interface ConfirmDeleteDialogProps {\n /**\n * Incoming document ID used to find other referencing documents. This\n * field respects draft IDs (e.g. if you pass in a published ID when one\n * doesn't exist the document title may not show up).\n */\n id: string\n /**\n * The schema typename of the incoming document\n */\n type: string\n /**\n * The name of the action being done. (e.g. the `'unpublish'` action requires\n * the same document deletion confirmation).\n */\n action?: 'delete' | 'unpublish'\n onCancel: () => void\n onConfirm: (versions: string[], referenceCounts: DeleteReferenceCounts) => void\n}\n\n/**\n * A confirmation dialog used to prevent unwanted document deletes. Loads all\n * the referencing internal and cross-data references prior to showing the\n * delete button.\n *\n * @internal\n */\nexport function ConfirmDeleteDialog({\n id,\n type,\n action = 'delete',\n onCancel,\n onConfirm,\n}: ConfirmDeleteDialogProps) {\n const {t} = useTranslation(structureLocaleNamespace)\n const dialogId = `deletion-confirmation-${useId()}`\n const {\n internalReferences,\n crossDatasetReferences,\n isLoading,\n totalCount,\n projectIds,\n datasetNames,\n hasUnknownDatasetNames,\n } = useReferringDocuments(id)\n const documentTitle = <DocTitle document={useMemo(() => ({_id: id, _type: type}), [id, type])} />\n const showConfirmButton = !isLoading\n const {data: documentVersions, loading: versionsLoading} = useDocumentVersions({\n documentId: getPublishedId(id),\n })\n\n const handleConfirm = useCallback(() => {\n onConfirm(documentVersions, {\n totalReferenceCount: totalCount,\n internalReferenceCount: internalReferences?.totalCount ?? 0,\n crossDatasetReferenceCount: crossDatasetReferences?.totalCount ?? 0,\n })\n }, [onConfirm, documentVersions, totalCount, internalReferences, crossDatasetReferences])\n\n return (\n <Dialog\n width={1}\n id={dialogId}\n header={t('confirm-delete-dialog.header.text', {context: action})}\n footer={{\n cancelButton: {\n onClick: onCancel,\n text: t('confirm-delete-dialog.cancel-button.text'),\n },\n confirmButton: showConfirmButton\n ? {\n text:\n totalCount > 0\n ? t('confirm-delete-dialog.confirm-anyway-button.text', {context: action})\n : t('confirm-delete-dialog.confirm-button.text', {context: action}),\n onClick: handleConfirm,\n }\n : undefined,\n }}\n onClose={onCancel}\n onClickOutside={onCancel}\n >\n <DialogBody>\n {crossDatasetReferences && internalReferences && !isLoading && !versionsLoading ? (\n <ConfirmDeleteDialogBody\n crossDatasetReferences={crossDatasetReferences}\n internalReferences={internalReferences}\n documentTitle={documentTitle}\n isLoading={isLoading}\n totalCount={totalCount}\n action={action}\n projectIds={projectIds}\n datasetNames={datasetNames}\n hasUnknownDatasetNames={hasUnknownDatasetNames}\n onReferenceLinkClick={onCancel}\n documentId={id}\n documentType={type}\n documentVersions={documentVersions}\n />\n ) : (\n <LoadingContainer data-testid=\"loading-container\">\n <LoadingBlock showText title={t('confirm-delete-dialog.loading.text')} />\n </LoadingContainer>\n )}\n </DialogBody>\n </Dialog>\n )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {type ComponentProps, useCallback, useId, useState} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Dialog} from '../../../ui-components/dialog/Dialog'\nimport {ErrorBoundary} from '../../../ui-components/errorBoundary/ErrorBoundary'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {ConfirmDeleteDialog, type ConfirmDeleteDialogProps} from './ConfirmDeleteDialog'\n\ntype ArgType<T> = T extends (arg: infer U) => unknown ? U : never\ntype ErrorInfo = ArgType<ComponentProps<typeof ErrorBoundary>['onCatch']>\n\n/** @internal */\nfunction ConfirmDeleteDialogContainer(props: ConfirmDeleteDialogProps) {\n const {t} = useTranslation(structureLocaleNamespace)\n const id = useId()\n const [error, setError] = useState<ErrorInfo | null>(null)\n const handleRetry = useCallback(() => setError(null), [])\n\n return error ? (\n <Dialog\n id={`dialog-error-${id}`}\n data-testid=\"confirm-delete-error-dialog\"\n header={t('confirm-delete-dialog.error.title.text')}\n footer={{\n confirmButton: {\n text: t('confirm-delete-dialog.error.retry-button.text'),\n onClick: handleRetry,\n tone: 'default',\n },\n }}\n onClose={props.onCancel}\n >\n <Box padding={4}>\n <Text size={1}>{t('confirm-delete-dialog.error.message.text')}</Text>\n </Box>\n </Dialog>\n ) : (\n <ErrorBoundary onCatch={setError}>\n <ConfirmDeleteDialog {...props} />\n </ErrorBoundary>\n )\n}\n\nexport {ConfirmDeleteDialogContainer as ConfirmDeleteDialog}\n","import {Card} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const Root = styled(Card)`\n transition: opacity 200ms;\n position: relative;\n z-index: 1;\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n opacity: 0;\n\n &:not([hidden]) {\n display: flex;\n }\n\n &:not([data-collapsed]) {\n overflow: auto;\n }\n\n &[data-mounted] {\n opacity: 1;\n }\n\n &[data-resizing] {\n pointer-events: none;\n }\n`\n","import {PANE_DEFAULT_MIN_WIDTH} from '../constants'\nimport {type PaneConfigOpts, type PaneResizeCache} from '../types'\n\nexport function _calcPaneResize(\n cache: PaneResizeCache,\n left: PaneConfigOpts,\n right: PaneConfigOpts,\n deltaX: number,\n): {leftFlex: number; leftW: number; rightFlex: number; rightW: number} {\n const sum = {\n flex: cache.left.flex + cache.right.flex,\n width: cache.left.width + cache.right.width,\n }\n\n const leftMinWidth = left.minWidth ?? PANE_DEFAULT_MIN_WIDTH\n const rightMinWidth = right.minWidth ?? PANE_DEFAULT_MIN_WIDTH\n\n const leftMaxWidth = Math.min(left.maxWidth || Infinity, sum.width - rightMinWidth)\n const rightMaxWidth = Math.min(right.maxWidth || Infinity, sum.width - leftMinWidth)\n\n // Get min. delta X\n let minDeltaX = leftMinWidth - cache.left.width\n const rightMinDeltaX = cache.right.width - rightMaxWidth\n if (minDeltaX < rightMinDeltaX) {\n minDeltaX = rightMinDeltaX\n }\n\n // Get max. delta X\n let maxDeltaX = cache.right.width - rightMinWidth\n const leftMaxDeltaX = leftMaxWidth - cache.left.width\n if (maxDeltaX > leftMaxDeltaX) {\n maxDeltaX = leftMaxDeltaX\n }\n\n const _deltaX = Math.min(Math.max(deltaX, minDeltaX), maxDeltaX)\n\n const leftW = cache.left.width + _deltaX\n const rightW = cache.right.width - _deltaX\n\n const leftFlex = (leftW / sum.width) * sum.flex\n const rightFlex = (rightW / sum.width) * sum.flex\n\n return {leftFlex, leftW, rightFlex, rightW}\n}\n","/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n","import {_getDOMPath} from './_getDOMPath'\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement, elements: HTMLElement[]): void {\n // Create a map containing the DOM path of each pane element.\n // The DOM path is relative to the `rootElement`, and is used in the next step for sorting.\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const element of elements) {\n map.set(element, _getDOMPath(rootElement, element))\n }\n\n const _sortByElementPath = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sortByElementPath)\n}\n","import {PANE_COLLAPSED_WIDTH, PANE_DEFAULT_MIN_WIDTH} from './constants'\nimport {_calcPaneResize} from './helpers/_calcPaneResize'\nimport {_sortElements} from './helpers/_sortElements'\nimport {\n type PaneConfigOpts,\n type PaneData,\n type PaneResizeCache,\n type PaneResizeData,\n} from './types'\n\nexport interface PaneLayoutState {\n expandedElement: HTMLElement | null\n panes: PaneData[]\n resizing: boolean\n}\n\nexport type PaneLayoutStateObserver = (state: PaneLayoutState) => void\n\nexport interface PaneLayoutController {\n collapse: (element: HTMLElement) => void\n expand: (element: HTMLElement) => void\n maximize: (element: HTMLElement) => void\n mount: (element: HTMLElement, options: PaneConfigOpts) => () => void\n resize: (type: 'start' | 'move' | 'end', leftElement: HTMLElement, deltaX: number) => void\n setRootElement: (nextRootElement: HTMLElement | null) => void\n setRootWidth: (nextRootWidth: number) => void\n subscribe: (observer: PaneLayoutStateObserver) => () => void\n}\n\nexport function createPaneLayoutController(): PaneLayoutController {\n const observers: PaneLayoutStateObserver[] = []\n const elements: HTMLElement[] = []\n const optionsMap = new WeakMap<HTMLElement, PaneConfigOpts & {original: PaneConfigOpts}>()\n const userCollapsedElementSet = new Set<HTMLElement>()\n const cache: Partial<PaneResizeCache> = {}\n\n // Mutable internal state\n let rootElement: HTMLElement | null = null\n let rootWidth = 0\n let expandedElement: HTMLElement | null = null\n let maximizedElement: HTMLElement | null = null\n let resizeDataMap = new Map<HTMLElement, PaneResizeData>()\n let resizing = false\n\n function collapse(element: HTMLElement) {\n userCollapsedElementSet.add(element)\n\n if (expandedElement === element) {\n expandedElement = null\n }\n\n _notifyObservers()\n }\n\n function expand(element: HTMLElement) {\n userCollapsedElementSet.delete(element)\n\n expandedElement = element\n\n _notifyObservers()\n }\n\n function maximize(element: HTMLElement) {\n maximizedElement = element\n\n _notifyObservers()\n }\n\n function mount(element: HTMLElement, options: PaneConfigOpts) {\n optionsMap.set(element, {...options, original: options})\n\n elements.push(element)\n\n if (rootElement) {\n _sortElements(rootElement, elements)\n }\n\n expand(element)\n\n return () => {\n const idx = elements.indexOf(element)\n\n if (idx > -1) {\n elements.splice(idx, 1)\n }\n\n optionsMap.delete(element)\n\n if (maximizedElement === element) {\n maximizedElement = null\n }\n\n _notifyObservers()\n }\n }\n\n function resize(type: 'start' | 'move' | 'end', leftElement: HTMLElement, deltaX: number) {\n const leftIndex = elements.indexOf(leftElement)\n const leftOptions = optionsMap.get(leftElement)\n\n if (!leftOptions) return\n\n const rightElement = elements[leftIndex + 1]\n const rightOptions = optionsMap.get(rightElement)\n\n if (!rightOptions) return\n\n if (type === 'start') {\n resizing = true\n\n cache.left = {\n element: leftElement,\n flex: leftOptions.flex || 1,\n width: leftElement.offsetWidth,\n }\n\n cache.right = {\n element: rightElement,\n flex: rightOptions.flex || 1,\n width: rightElement.offsetWidth,\n }\n\n _notifyObservers()\n }\n\n if (type === 'move' && cache.left && cache.right) {\n resizeDataMap = new Map<HTMLElement, PaneResizeData>()\n\n const {leftW, rightW, leftFlex, rightFlex} = _calcPaneResize(\n cache as PaneResizeCache,\n leftOptions,\n rightOptions,\n deltaX,\n )\n\n // update resize cache\n resizeDataMap.set(leftElement, {flex: leftFlex, width: leftW})\n resizeDataMap.set(rightElement, {flex: rightFlex, width: rightW})\n\n _notifyObservers()\n }\n\n if (type === 'end') {\n resizing = false\n\n const leftResizeData = resizeDataMap.get(leftElement)\n const rightResizeData = resizeDataMap.get(rightElement)\n\n // Update left options\n optionsMap.set(leftElement, {\n ...leftOptions,\n currentMinWidth: 0,\n currentMaxWidth: leftOptions.maxWidth ?? Infinity,\n flex: leftResizeData?.flex ?? leftOptions.flex,\n })\n\n // Update right options\n optionsMap.set(rightElement, {\n ...rightOptions,\n currentMinWidth: 0,\n currentMaxWidth: leftOptions.maxWidth ?? Infinity,\n flex: rightResizeData?.flex ?? rightOptions.flex,\n })\n\n // Reset resize data map\n resizeDataMap = new Map()\n\n // Reset cache\n delete cache.left\n delete cache.right\n\n _notifyObservers()\n }\n }\n\n function setRootElement(nextRootElement: HTMLElement | null) {\n rootElement = nextRootElement\n }\n\n function setRootWidth(nextRootWidth: number) {\n rootWidth = nextRootWidth\n _notifyObservers()\n }\n\n function subscribe(observer: PaneLayoutStateObserver) {\n observers.push(observer)\n\n return () => {\n const idx = observers.push(observer)\n\n if (idx > -1) {\n observers.splice(idx, 1)\n }\n }\n }\n\n return {collapse, expand, maximize, mount, resize, setRootElement, setRootWidth, subscribe}\n\n function _notifyObservers() {\n if (!rootWidth) return\n\n // Create a reversed array of pane elements, so we can loop over them backwards.\n // Place the expanded element first (so it has the least chance of being collapsed).\n const _elements: HTMLElement[] = []\n for (const element of elements) {\n if (element !== expandedElement) {\n _elements.unshift(element)\n }\n }\n if (expandedElement) {\n _elements.unshift(expandedElement)\n }\n\n const dataMap = new WeakMap<HTMLElement, PaneData>()\n const len = _elements.length\n const lastElement = _elements[0]\n const collapsedWidth = (len - 1) * PANE_COLLAPSED_WIDTH\n\n let remaingWidth = rootWidth - collapsedWidth\n\n for (const element of _elements) {\n const options = optionsMap.get(element)\n\n if (!options) {\n continue\n }\n\n const minWidth = options.currentMinWidth || options.minWidth || PANE_DEFAULT_MIN_WIDTH\n const isLast = element === lastElement\n\n // A pane is collapsed if:\n // - it’s explictly collapsed by the user\n const userCollapsed = userCollapsedElementSet.has(element)\n // - it’s minimum width is larger than the remaining width\n const sizeCollapsed = minWidth > remaingWidth\n // - if the element is not the last (expanded pane)\n const collapsed = isLast ? false : userCollapsed || sizeCollapsed\n\n const resizeData = resizeDataMap.get(element)\n\n // Collect pane data\n dataMap.set(element, {\n element: element,\n collapsed: collapsed,\n currentMinWidth: resizeData?.width ?? options.currentMinWidth,\n currentMaxWidth: resizeData?.width ?? options.currentMaxWidth,\n flex: resizeData?.flex ?? options.flex ?? 1,\n maximized: element === maximizedElement,\n })\n\n // Update remaining width\n if (collapsed) {\n remaingWidth -= PANE_COLLAPSED_WIDTH\n } else {\n remaingWidth -= minWidth - PANE_COLLAPSED_WIDTH\n }\n }\n\n const panes: PaneData[] = []\n\n for (const element of elements) {\n const data = dataMap.get(element)\n\n if (data) panes.push(data)\n }\n\n for (const observer of observers) {\n observer({\n expandedElement: expandedElement || elements[elements.length - 1] || null,\n panes,\n resizing,\n })\n }\n }\n}\n","import {type CardProps, useElementRect} from '@sanity/ui'\nimport {type HTMLProps, useEffect, useMemo, useState} from 'react'\nimport {PaneLayoutContext} from 'sanity/_singletons'\n\nimport {Root} from './PaneLayout.styles'\nimport {createPaneLayoutController, type PaneLayoutState} from './paneLayoutController'\nimport {type PaneLayoutContextValue} from './types'\n\n/**\n *\n * @hidden\n * @beta This API will change. DO NOT USE IN PRODUCTION.\n */\nexport interface PaneLayoutProps {\n minWidth?: number\n onCollapse?: () => void\n onExpand?: () => void\n}\n\n/**\n *\n * @hidden\n * @beta This API will change. DO NOT USE IN PRODUCTION.\n */\nexport function PaneLayout(\n props: PaneLayoutProps &\n CardProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'wrap'>,\n) {\n const {children, minWidth, onCollapse, onExpand, ...restProps} = props\n const [controller] = useState(() => createPaneLayoutController())\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const rootRect = useElementRect(rootElement)\n const width = rootRect?.width || 0\n const collapsed = width === undefined || !minWidth ? undefined : width < minWidth\n const [state, setState] = useState<PaneLayoutState>({\n expandedElement: null,\n panes: [],\n resizing: false,\n })\n\n // Set root element\n useEffect(() => controller.setRootElement(rootElement), [controller, rootElement])\n\n // Set root size\n useEffect(() => controller.setRootWidth(width), [controller, width])\n\n // Subscribe to state changes\n useEffect(() => controller.subscribe(setState), [controller])\n\n // Call the `onCollapse` and `onExpand` callbacks as the `collapsed` boolean changes\n useEffect(() => {\n if (collapsed === undefined) return\n if (collapsed && onCollapse) onCollapse()\n if (!collapsed && onExpand) onExpand()\n }, [collapsed, onCollapse, onExpand])\n\n // This is the context value that gives each pane the information they need\n const paneLayout: PaneLayoutContextValue = useMemo(\n () => ({\n collapse: controller.collapse,\n collapsed,\n expand: controller.expand,\n expandedElement: state.expandedElement,\n mount: controller.mount,\n panes: state.panes,\n resize: controller.resize,\n resizing: state.resizing,\n }),\n [collapsed, controller, state.expandedElement, state.panes, state.resizing],\n )\n\n return (\n <PaneLayoutContext.Provider value={paneLayout}>\n <Root\n data-ui=\"PaneLayout\"\n {...restProps}\n data-collapsed={collapsed ? '' : undefined}\n // The `data-resizing` attribute is used to improve cursor behavior\n data-resizing={state.resizing ? '' : undefined}\n // The `data-mounted` attribute is used to fade in the layout and prevent flash of\n // non-collapsed panes\n data-mounted={width ? '' : undefined}\n ref={setRootElement}\n >\n {children}\n </Root>\n </PaneLayoutContext.Provider>\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {Box, Card, type CardProps, Flex, Text} from '@sanity/ui'\nimport {type ElementType, type HTMLProps, type ReactNode} from 'react'\nimport {useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {structureLocaleNamespace} from '../../../i18n'\n\nexport interface DocumentInspectorHeaderProps {\n as?: ElementType\n closeButtonLabel: string\n flex?: CardProps['flex']\n onClose: () => void\n title: ReactNode\n}\n\nconst Root = styled(Card)({\n position: 'relative',\n zIndex: '1',\n lineHeight: '0',\n})\n\n/** @internal */\nexport function DocumentInspectorHeader(\n props: DocumentInspectorHeaderProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref'>,\n) {\n const {as: forwardedAs, children, closeButtonLabel, onClose, title, ...restProps} = props\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <Root {...restProps} as={forwardedAs}>\n <Flex padding={2}>\n <Box flex={1} padding={3}>\n <Text as=\"h1\" size={1} weight=\"medium\">\n {title}\n </Text>\n </Box>\n <Box flex=\"none\" padding={1}>\n <Button\n aria-label={closeButtonLabel}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n tooltipProps={{content: t('document-inspector.close-button.tooltip')}}\n />\n </Box>\n </Flex>\n {children}\n </Root>\n )\n}\n","import {defineEvent} from '@sanity/telemetry'\nimport {type DocumentVariantType} from 'sanity'\n\ninterface DiffViewDocumentSelectionInfo {\n /**\n * The document variants being viewed, in the order that they are displayed.\n */\n documentVariantTypes: DocumentVariantType[]\n}\n\ninterface DiffViewDocumentSelectionChangedInfo extends DiffViewDocumentSelectionInfo {\n /**\n * The document variants that were being viewed, in the order that they were\n * displayed, before the user changed them.\n */\n previousDocumentVariantTypes: DocumentVariantType[]\n}\n\n/**\n * @internal\n */\nexport const DiffViewEntered = defineEvent<DiffViewDocumentSelectionInfo>({\n name: 'DiffViewEntered',\n version: 1,\n description: 'User entered document comparison view',\n})\n\n/**\n * @internal\n */\nexport const DiffViewExited = defineEvent<DiffViewDocumentSelectionInfo>({\n name: 'DiffViewExited',\n version: 1,\n description: 'User exited document comparison view',\n})\n\n/**\n * @internal\n */\nexport const DiffViewDocumentSelectionChanged = defineEvent<DiffViewDocumentSelectionChangedInfo>({\n name: 'DiffViewDocumentSelectionChanged',\n version: 1,\n description: 'User set one of the documents being compared',\n})\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 from 'lodash-es/fromPairs.js'\nimport toPairs from 'lodash-es/toPairs.js'\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 isEqual from 'lodash-es/isEqual.js'\nimport {useEffect, useMemo, useRef} 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 onActiveChanged,\n onTargetDocumentsChanged,\n}: {\n onParamsError?: (errors: DiffViewStateErrorWithInput[]) => void\n onActiveChanged?: (previousState: DiffViewState | undefined, state: DiffViewState) => void\n onTargetDocumentsChanged?: (\n previousState: DiffViewState | undefined,\n state: DiffViewState,\n ) => 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 const previousState = useRef<DiffViewState | undefined>(undefined)\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 const state = useMemo<DiffViewState>(() => {\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 }, [params])\n\n useEffect(() => {\n if (\n typeof onActiveChanged === 'function' &&\n previousState.current?.isActive !== state.isActive\n ) {\n onActiveChanged(previousState.current, state)\n }\n }, [onActiveChanged, state])\n\n useEffect(() => {\n if (\n typeof onTargetDocumentsChanged === 'function' &&\n previousState.current?.isActive &&\n state.isActive &&\n !isEqual(\n [\n previousState?.current?.documents?.previous.id,\n previousState?.current?.documents?.next.id,\n ],\n [state.documents?.previous.id, state.documents?.next.id],\n )\n ) {\n onTargetDocumentsChanged(previousState.current, state)\n }\n }, [onTargetDocumentsChanged, state])\n\n useEffect(() => {\n previousState.current = state\n }, [state])\n\n return state\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\n/**\n * Given the previous and current states, determine whether the view became\n * active (entered) or became inactive (exited).\n *\n * @internal\n */\nexport function selectActiveTransition(\n previousState: Pick<DiffViewState, 'isActive'> | undefined,\n state: Pick<DiffViewState, 'isActive'>,\n): 'entered' | 'exited' | undefined {\n if (!previousState?.isActive && state.isActive) {\n return 'entered'\n }\n\n if (previousState?.isActive && !state.isActive) {\n return 'exited'\n }\n\n return undefined\n}\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 {\n getReleaseIdFromReleaseDocumentId,\n getVersionFromId,\n isDraftId,\n isPublishedId,\n type ReleaseDocument,\n type TargetPerspective,\n} from 'sanity'\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 *\n * TODO: Return a type compatible with `TargetPerspective` (`\"draft\"` must be `\"drafts\"`).\n *\n * @internal\n */\nexport function findRelease(\n documentId: string,\n releases: ReleaseDocument[],\n): TargetPerspective | undefined {\n if (isPublishedId(documentId)) {\n return 'published'\n }\n\n if (isDraftId(documentId)) {\n return 'draft'\n }\n\n return (\n releases.find(\n ({_id}) => getReleaseIdFromReleaseDocumentId(_id) === getVersionFromId(documentId),\n ) ?? getVersionFromId(documentId)\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {LockIcon} from '@sanity/icons/Lock'\nimport {TransferIcon} from '@sanity/icons/Transfer'\nimport {\n Badge,\n Box,\n // oxlint-disable-next-line no-restricted-imports -- we need more control over how the `Button` component is rendered\n Button,\n // oxlint-disable-next-line no-restricted-imports -- the resolved menu button props are spread onto the `@sanity/ui` Button above\n type ButtonProps,\n type ButtonTone,\n Flex,\n Menu,\n // oxlint-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// oxlint-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 ComponentType, useMemo} from 'react'\nimport {\n type DocumentLayoutProps,\n getDraftId,\n getPublishedId,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n getVersionId,\n isReleaseDocument,\n isReleaseScheduledOrScheduling,\n isSystemBundleName,\n LATEST,\n PUBLISHED,\n ReleaseAvatar,\n type ReleaseDocument,\n ReleaseTitle,\n type TargetPerspective,\n useActiveReleases,\n useDocumentVersions,\n useEditState,\n useFormatRelativeLocalePublishDate,\n useTranslation,\n useWorkspace,\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'\nimport {findRelease} from '../../utils/findRelease'\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 {\n state: 'pending' | 'ready' | 'error'\n } & 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 releasesState = fetchingState(activeReleases)\n\n const onSelectPreviousRelease = (selectedDocumentId: string): void => {\n if (typeof documents?.previous !== 'undefined') {\n navigateDiffView({\n previousDocument: {\n ...documents.previous,\n id: selectedDocumentId,\n },\n })\n }\n }\n\n const onSelectNextRelease = (selectedDocumentId: string): void => {\n if (typeof documents?.next !== 'undefined') {\n navigateDiffView({\n nextDocument: {\n ...documents.next,\n id: selectedDocumentId,\n },\n })\n }\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 releasesState={releasesState}\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 releasesState={releasesState}\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 releasesState: 'pending' | 'ready' | 'error'\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 releasesState,\n onSelectRelease,\n role,\n documentId,\n document,\n}) => {\n // No `getTargetScopeId(useTargetDocumentState())` here: this menu inspects the draft/published pair of the\n // specific document selected for the diff pane, independent of the selected perspective.\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 const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n if (releasesState === 'error') {\n return (\n <Badge tone=\"critical\" radius={3}>\n {tStructure('compare-version.error.loadReleases.title')}\n </Badge>\n )\n }\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, releasesState})}\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 {isDraftModelEnabled && 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 const formatPublishDate = useFormatRelativeLocalePublishDate()\n\n const onClick = () => {\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 }\n\n if (type) {\n const releasePerspective = type === 'published' ? PUBLISHED : LATEST\n\n return (\n <MenuItem padding={1} paddingRight={3} onClick={onClick} pressed={isSelected}>\n <Flex gap={1}>\n <ReleaseAvatar padding={2} release={releasePerspective} />\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 return (\n <MenuItem padding={1} paddingRight={3} onClick={onClick} pressed={isSelected}>\n <Flex gap={1}>\n <ReleaseAvatar padding={2} release={release} />\n <Stack flex={1} paddingY={2} paddingRight={2} space={2} style={{minWidth: 0}}>\n <ReleaseTitle\n title={release.metadata.title}\n fallback={tCore('release.placeholder-untitled-release')}\n textProps={{size: 1, weight: 'medium'}}\n />\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 {formatPublishDate(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 releasesState,\n}: {\n releasesState: 'pending' | 'ready'\n selected?: TargetPerspective\n tCore: TFunction\n tStructure: TFunction\n}): Pick<ButtonProps, 'text' | 'tone' | 'icon' | 'iconRight' | 'disabled'> {\n if (releasesState === 'pending') {\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} release={selected} />,\n iconRight: selected && isReleaseScheduledOrScheduling(selected) ? <LockIcon /> : undefined,\n tone,\n }\n }\n\n if (isSystemBundleName(selected)) {\n const tone: ButtonTone = selected === 'published' ? 'positive' : 'caution'\n const releasePerspective = selected === 'published' ? PUBLISHED : LATEST\n\n return {\n text: tStructure(['compare-versions.status', selected].join('.')),\n icon: <ReleaseAvatar padding={1} release={releasePerspective} />,\n tone,\n }\n }\n\n return {\n text: selected,\n // oxlint-disable-next-line @sanity/i18n/no-attribute-string-literals\n icon: <ReleaseAvatar padding={1} releaseType=\"undecided\" />,\n tone: 'neutral',\n }\n}\n\nfunction fetchingState({\n loading,\n error,\n}: {\n loading: boolean\n error?: Error\n}): 'pending' | 'ready' | 'error' {\n if (loading) {\n return 'pending'\n }\n\n if (typeof error !== 'undefined') {\n return 'error'\n }\n\n return 'ready'\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-es/noop.js'\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 type TargetPerspective,\n useActiveReleases,\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 {findRelease} from '../utils/findRelease'\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 '--grid-area': `${role}-document`,\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 {/* oxlint-disable-next-line react/react-compiler -- this is intentional and how the middleware components has to work */}\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 {data: releases} = useActiveReleases()\n const [patchChannel] = useState(() => createPatchChannel())\n const perspective = useMemo(() => findRelease(documentId, releases), [documentId, releases])\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 openPath,\n onPathOpen: onPathOpenFromForm,\n } = useDocumentForm({\n documentId: getPublishedId(documentId),\n documentType,\n selectedPerspectiveName: perspectiveName(documentId),\n releaseId: getVersionFromId(documentId),\n comparisonValue: compareValue,\n displayInlineChanges: true,\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 onPathOpenFromForm(path)\n pathSyncChannel.push({source: role, path})\n },\n [onPathOpenFromForm, pathSyncChannel, role],\n )\n\n useEffect(() => {\n const subscription = pathSyncChannel.path.subscribe((path) => {\n onPathOpenFromForm(path)\n onProgrammaticFocus(path)\n })\n return () => subscription.unsubscribe()\n }, [onPathOpenFromForm, onProgrammaticFocus, pathSyncChannel.path, role])\n\n return isLoading ? (\n <LoadingBlock showText />\n ) : (\n <CommentsEnabledContext.Provider\n value={{\n enabled: false,\n mode: null,\n }}\n >\n <FormBuilder\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 openPath={openPath}\n changed={formState.changed}\n focused={formState.focused}\n groups={formState.groups}\n validation={formState.validation}\n members={formState.members}\n perspective={sanitizeBundleName(perspective)}\n hasUpstreamVersion={formState.hasUpstreamVersion}\n presence={formState.presence}\n schemaType={schemaType}\n value={value}\n compareValue={compareValue}\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 // No `getTargetScopeId(useTargetDocumentState())` here: the version is derived from the specific\n // compare-document id being diffed, not from the selected perspective.\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\n// TODO: Refactor `findRelease` to return a type compatible with `TargetPerspective` (`\"draft\"` must be `\"drafts\"`), so that `sanitizeBundleName` can be removed.\nfunction sanitizeBundleName(bundle: ReturnType<typeof findRelease>): TargetPerspective | undefined {\n if (bundle === 'draft') {\n return 'drafts'\n }\n\n return bundle\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 {useTelemetry} from '@sanity/telemetry/react'\nimport {useToast} from '@sanity/ui'\nimport {type ComponentType, type PropsWithChildren} from 'react'\nimport {\n type DocumentVariantType,\n type DocumentLayoutProps,\n getDocumentVariantType,\n useTranslation,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../i18n'\nimport {\n DiffViewEntered,\n DiffViewExited,\n DiffViewDocumentSelectionChanged,\n} from '../__telemetry__/diffView.telemetry'\nimport {DiffView} from '../components/DiffView'\nimport {selectActiveTransition, 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 {log} = useTelemetry()\n const {isActive, documents} = 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 onActiveChanged: (previousState, state) => {\n if (selectActiveTransition(previousState, state) === 'entered') {\n log(DiffViewEntered, {\n documentVariantTypes: documentIdsToVariantTypes([\n state.documents?.previous.id,\n state.documents?.next.id,\n ]),\n })\n return\n }\n\n if (\n selectActiveTransition(previousState, state) === 'exited' &&\n typeof previousState !== 'undefined'\n ) {\n log(DiffViewExited, {\n documentVariantTypes: documentIdsToVariantTypes([\n previousState.documents?.previous.id,\n previousState.documents?.next.id,\n ]),\n })\n }\n },\n onTargetDocumentsChanged: (previousState, state) => {\n if (typeof previousState === 'undefined') {\n return\n }\n\n log(DiffViewDocumentSelectionChanged, {\n previousDocumentVariantTypes: documentIdsToVariantTypes([\n previousState.documents?.previous.id,\n previousState.documents?.next.id,\n ]),\n documentVariantTypes: documentIdsToVariantTypes([\n state.documents?.previous.id,\n state.documents?.next.id,\n ]),\n })\n },\n })\n\n return (\n <>\n {children}\n {isActive && <DiffView documentId={documentId} />}\n </>\n )\n}\n\nfunction documentIdsToVariantTypes(ids: (string | undefined)[]): DocumentVariantType[] {\n return ids.filter((id) => typeof id === 'string').map(getDocumentVariantType)\n}\n","import {Box, type CardTone} from '@sanity/ui'\n\nimport {Pane} from '../../components/pane/Pane'\nimport {PaneContent} from '../../components/pane/PaneContent'\nimport {PaneHeader} from '../../components/pane/PaneHeader'\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 {merge, type Observable, of} from 'rxjs'\nimport {delay, mapTo} from 'rxjs/operators'\nimport {isDev} from 'sanity'\n\n/**\n * @internal\n */\nexport type WaitMessage = {messageKey: string} | {message: string}\n\n/**\n * @internal\n */\nexport function getWaitMessages(path: string[]): Observable<WaitMessage> {\n const thresholds: (WaitMessage & {ms: number})[] = [\n {ms: 300, messageKey: 'panes.resolving.default-message'},\n {ms: 5000, messageKey: 'panes.resolving.slow-resolve-message'},\n ]\n\n if (isDev) {\n const message = [\n 'Check console for errors?',\n 'Is your observable/promise resolving?',\n path.length > 0 ? `Structure path: ${path.join(' ➝ ')}` : '',\n ]\n\n thresholds.push({\n ms: 10000,\n message: message.join('\\n'),\n })\n }\n\n const src = of(null)\n\n return merge(\n ...thresholds.map((threshold) =>\n src.pipe(\n mapTo(\n 'messageKey' in threshold\n ? {messageKey: threshold.messageKey}\n : {message: threshold.message},\n ),\n delay(threshold.ms),\n ),\n ),\n )\n}\n","import {_raf2, type CardTone, Flex} from '@sanity/ui'\nimport {memo, useEffect, useMemo, useState} from 'react'\nimport {type Observable} from 'rxjs'\nimport {Delay, LoadingBlock, useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Pane} from '../../components/pane/Pane'\nimport {PaneContent} from '../../components/pane/PaneContent'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {getWaitMessages, type WaitMessage} from './getWaitMessages'\n\ninterface LoadingPaneProps {\n delay?: number\n flex?: number\n message?: string | ((p: string[]) => string | Observable<WaitMessage>)\n minWidth?: number\n paneKey: string\n path?: string\n selected?: boolean\n title?: string\n tone?: CardTone\n}\n\nconst DELAY = false\nconst DEFAULT_MESSAGE_KEY = 'panes.resolving.default-message'\n\nconst Content = styled(Flex)`\n opacity: 0;\n transition: opacity 200ms;\n\n &[data-mounted] {\n opacity: 1;\n }\n`\n\n/**\n * @internal\n */\nexport const LoadingPane = memo((props: LoadingPaneProps) => {\n const {\n delay = 300,\n flex,\n message: messageProp = getWaitMessages,\n minWidth,\n paneKey,\n path,\n selected,\n title,\n tone,\n } = props\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const resolvedMessage = useMemo(() => {\n if (typeof messageProp === 'function') {\n return messageProp(path ? path.split(';') : [])\n }\n\n return messageProp\n }, [messageProp, path])\n\n const [currentMessage, setCurrentMessage] = useState<string | null>(() => {\n if (typeof resolvedMessage === 'string') return resolvedMessage\n return t(DEFAULT_MESSAGE_KEY)\n })\n\n useEffect(() => {\n if (typeof resolvedMessage !== 'object') return undefined\n if (typeof resolvedMessage.subscribe !== 'function') return undefined\n\n const sub = resolvedMessage.subscribe((message) => {\n setCurrentMessage('messageKey' in message ? t(message.messageKey) : message.message)\n })\n\n return () => sub.unsubscribe()\n }, [resolvedMessage, t])\n\n const [contentElement, setContentElement] = useState<HTMLDivElement | null>(null)\n const [mounted, setMounted] = useState(false)\n\n useEffect(() => {\n if (!contentElement) return undefined\n return _raf2(() => setMounted(true))\n }, [contentElement])\n\n const content = (\n <Content\n align=\"center\"\n data-mounted={mounted ? '' : undefined}\n direction=\"column\"\n height=\"fill\"\n justify=\"center\"\n ref={setContentElement}\n >\n <LoadingBlock showText title={title || currentMessage} />\n </Content>\n )\n\n return (\n <Pane flex={flex} id={paneKey} minWidth={minWidth} selected={selected} tone={tone}>\n <PaneContent>{DELAY ? <Delay ms={delay}>{content}</Delay> : content}</PaneContent>\n </Pane>\n )\n})\n\nLoadingPane.displayName = 'Memo(LoadingPane)'\n","import {useCallback, useLayoutEffect, useRef} from 'react'\nimport {\n COMMENTS_INSPECTOR_NAME,\n CommentsEnabledProvider,\n CommentsProvider,\n useCommentsEnabled,\n getTargetScopeId,\n usePerspective,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {usePaneRouter} from '../../../components/paneRouter/usePaneRouter'\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, targetDocumentState} =\n useDocumentPane()\n const {selectedReleaseId, selectedVariantName} = usePerspective()\n const {params, setParams} = usePaneRouter()\n const {resolveIntentLink} = useRouter()\n\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, reverting is disabled\n // below instead of silently operating on the base pair.\n const scopeId = getTargetScopeId(targetDocumentState)\n\n const selectedCommentId = params?.comment\n const scheduledDraft = params?.scheduledDraft\n const paramsRef = useRef(params)\n\n useLayoutEffect(() => {\n paramsRef.current = params\n }, [params])\n\n const getCommentLink = useCallback(\n (commentId: string) => {\n const searchParams: [string, string][] =\n selectedReleaseId && !scheduledDraft ? [['perspective', selectedReleaseId]] : []\n\n if (selectedVariantName) {\n searchParams.push(['variant', selectedVariantName])\n }\n\n const intentLink = resolveIntentLink(\n 'edit',\n {\n id: documentId,\n type: documentType,\n inspect: COMMENTS_INSPECTOR_NAME,\n comment: commentId,\n ...(scheduledDraft ? {scheduledDraft} : {}),\n },\n searchParams,\n )\n return `${window.location.origin}${intentLink}`\n },\n [\n documentId,\n documentType,\n resolveIntentLink,\n scheduledDraft,\n selectedReleaseId,\n selectedVariantName,\n ],\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={scopeId}\n >\n {children}\n </CommentsProvider>\n )\n}\n","import {useMemo, useRef} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionProps,\n EMPTY_ARRAY,\n getDocumentIdForCanvasLink,\n GetHookCollectionState,\n getReleaseIdFromReleaseDocumentId,\n useActiveReleases,\n useCanvasCompanionDoc,\n useTranslation,\n} from 'sanity'\nimport {DocumentActionsStateContext} from 'sanity/_singletons'\n\nimport {structureLocaleNamespace} from './i18n'\nimport {useDocumentPane} from './panes/document/useDocumentPane'\n\ninterface ResolvedAction extends DocumentActionDescription {\n action?: DocumentActionComponent['action']\n}\n\n/** @internal */\nexport function DocumentActionsProvider(props: {children: React.ReactNode}) {\n const {children} = props\n\n const {data: activeReleases} = useActiveReleases()\n\n const {actions, editState, isInitialValueLoading, revisionId} = useDocumentPane()\n\n const onCompleteRef = useRef<() => void>(null)\n\n const actionProps: Omit<DocumentActionProps, 'onComplete'> | null = useMemo(() => {\n // note: this is actually the bundle id of the current document\n\n const matchingReleaseName = activeReleases\n .map((r) => getReleaseIdFromReleaseDocumentId(r._id))\n .find((candidate) => candidate === editState?.release)\n\n return editState\n ? {\n ...editState,\n release: matchingReleaseName,\n revision: revisionId || undefined,\n initialValueResolved: !isInitialValueLoading,\n }\n : null\n }, [editState, isInitialValueLoading, revisionId, activeReleases])\n\n if (!actionProps) {\n return null\n }\n\n return (\n <GetHookCollectionState<DocumentActionProps, ResolvedAction>\n args={{\n ...actionProps,\n onComplete: () => onCompleteRef.current?.(),\n }}\n hooks={actions || EMPTY_ARRAY}\n resetRef={onCompleteRef}\n >\n {({states}) => (\n <ActionsGuardWrapper states={states} actionProps={actionProps}>\n {children}\n </ActionsGuardWrapper>\n )}\n </GetHookCollectionState>\n )\n}\n\n/**\n * The actions that remain available while a document is locked by Canvas (i.e. not editable in\n * Studio). Custom actions and other unsupported actions are disabled with a tooltip explaining why.\n * When the document is linked but editable, no actions are disabled.\n */\nconst SUPPORTED_CANVAS_LOCKED_ACTIONS: DocumentActionComponent['action'][] = [\n 'delete',\n 'duplicate',\n 'publish',\n 'unpublish',\n 'unlinkFromCanvas',\n 'editInCanvas',\n 'linkToCanvas',\n 'schedule',\n 'discardVersion',\n 'unpublishVersion',\n]\n\ninterface ActionsGuardWrapperProps {\n states: ResolvedAction[]\n actionProps: Omit<DocumentActionProps, 'onComplete'>\n children: React.ReactNode\n}\n\n// merge this into the DocumentActionsProvider itself\nfunction ActionsGuardWrapper(props: ActionsGuardWrapperProps) {\n const {states, children, actionProps} = props\n const {t} = useTranslation(structureLocaleNamespace)\n\n const {isLockedByCanvas} = useCanvasCompanionDoc(getDocumentIdForCanvasLink(actionProps))\n\n return (\n <DocumentActionsStateContext.Provider\n value={\n isLockedByCanvas\n ? states.map((s) => {\n if (!s.action || !SUPPORTED_CANVAS_LOCKED_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 : states\n }\n >\n {children}\n </DocumentActionsStateContext.Provider>\n )\n}\n","import {type PaneRouterContextValue} from '../../components/paneRouter/types'\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'\nexport const INCOMING_REFERENCES_INSPECTOR_NAME = 'sanity/structure/incoming-references'\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 // oxlint-disable-next-line react/react-compiler\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 {useContext} from 'react'\nimport {DocumentPaneInfoContext} from 'sanity/_singletons'\n\nimport {type DocumentPaneInfoContextValue} from './DocumentPaneContext'\n\n/** @internal */\nexport function useDocumentPaneInfo(): DocumentPaneInfoContextValue {\n const documentPaneInfo = useContext(DocumentPaneInfoContext)\n\n if (!documentPaneInfo) {\n throw new Error('DocumentPane: missing info context value')\n }\n\n return documentPaneInfo\n}\n","import {useToast} from '@sanity/ui'\nimport {memo, useEffect, useMemo, useRef} from 'react'\nimport {\n isDocumentLimitError,\n Translate,\n useDocumentLimitsUpsellContext,\n useDocumentOperationEvent,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {useDocumentPane} from './useDocumentPane'\nimport {useDocumentPaneInfo} from './useDocumentPaneInfo'\nimport {useDocumentTitle} from './useDocumentTitle'\n\nconst IGNORE_OPS = ['patch', 'commit']\n\nexport const DocumentOperationResults = memo(function DocumentOperationResults() {\n const {push: pushToast} = useToast()\n const {value: documentPaneValue} = useDocumentPane()\n const {documentId, documentType} = useDocumentPaneInfo()\n const documentTitleInfo = useDocumentTitle()\n const titleError = documentTitleInfo.error\n const event = useDocumentOperationEvent(documentId, documentType)\n const prevEvent = useRef(event)\n const paneRouter = usePaneRouter()\n const {t} = useTranslation(structureLocaleNamespace)\n const {handleOpenDialog} = useDocumentLimitsUpsellContext()\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 event &&\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 if (isDocumentLimitError(event.error)) {\n handleOpenDialog('document_action')\n return\n }\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={\n // When we publish a version and a draft exists, the document title will be the draft\n // title. So in this case we will just say \"Version was published\" and not the document title\n // So we use this special operation key which doesn't use the documentTitle\n event.op === 'publish' && event.idPair.versionId ? 'publishVersion' : event.op\n }\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 // oxlint-disable-next-line consistent-return\n return () => clearTimeout(cleanupId)\n }, [event, paneRouter, pushToast, t, documentTitle, handleOpenDialog])\n\n return null\n})\n","import {type SchemaType} from '@sanity/types'\n\nexport const isLiveEditEnabled = (schemaType: Pick<SchemaType, 'liveEdit'>) =>\n schemaType.liveEdit === true\n","import {type SchemaType} from '@sanity/types'\nimport {type EditStateFor, type Workspace} from 'sanity'\n\nimport {isLiveEditEnabled} from './components/paneItem/helpers'\n\nexport interface Context {\n editState: Pick<EditStateFor, 'ready' | 'draft' | 'published' | 'version'> | null\n workspace: {\n document: {\n drafts: Pick<Workspace['document']['drafts'], 'enabled'>\n }\n }\n schemaType: Pick<SchemaType, 'liveEdit'>\n}\n\n/**\n * Determine whether a document has an obsolete draft. This occurs if a document has a draft while\n * the draft model is inactive, or if a live-edit document has a draft.\n */\nexport function hasObsoleteDraft({editState, workspace, schemaType}: Context):\n | {\n result: true\n reason: 'LIVE_EDIT_ACTIVE' | 'DRAFT_MODEL_INACTIVE'\n }\n | {result: false}\n | {result: undefined} {\n if (!editState?.ready) {\n return {\n result: undefined,\n }\n }\n\n const draftExists = editState.draft !== null\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = workspace\n\n if (!draftExists) {\n return {\n result: false,\n }\n }\n\n if (!isDraftModelEnabled) {\n return {\n result: true,\n reason: 'DRAFT_MODEL_INACTIVE',\n }\n }\n\n if (isLiveEditEnabled(schemaType)) {\n return {\n result: true,\n reason: 'LIVE_EDIT_ACTIVE',\n }\n }\n\n return {\n result: false,\n }\n}\n","import {type EditStateFor, isNewDocument, type isPerspectiveWriteable} from 'sanity'\n\n/**\n * Determine whether the user must choose a new perspective in order to create a document.\n *\n * @returns A boolean reflecting whether the user must choose a new perspective, and `undefined` while indeterminate.\n * @internal\n */\nexport function mustChooseNewDocumentDestination({\n isSelectedPerspectiveWriteable,\n editState,\n}: {\n isSelectedPerspectiveWriteable: ReturnType<typeof isPerspectiveWriteable>\n editState: Pick<EditStateFor, 'ready' | 'draft' | 'published' | 'version'> | null\n}): boolean | undefined {\n return isNewDocument(editState) && !isSelectedPerspectiveWriteable.result\n}\n","import {Box} from '@sanity/ui'\nimport {Suspense, useCallback} from 'react'\nimport {Resizable} from 'sanity'\n\nimport {usePane} from '../../../components/pane/usePane'\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 <Suspense fallback={null}>\n <Component onClose={handleClose} documentId={documentId} documentType={documentType} />\n </Suspense>\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","import {useCallback, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {map} from 'rxjs/operators'\nimport {type KeyValueStoreValue, useKeyValueStore} from 'sanity'\n\nconst STRUCTURE_TOOL_NAMESPACE = 'studio.structure-tool'\n\n/**\n * @internal\n */\nexport function useStructureToolSetting<ValueType>(\n namespace: string,\n key: string | null,\n defaultValue?: ValueType,\n): [ValueType | undefined, (_value: ValueType | null) => Promise<void>] {\n const keyValueStore = useKeyValueStore()\n\n const keyValueStoreKey = [STRUCTURE_TOOL_NAMESPACE, namespace, key].filter(Boolean).join('.')\n\n const value$ = useMemo(() => {\n return keyValueStore.getKey(keyValueStoreKey).pipe(\n // The backend persists a cleared entry as `''`, so treat it like `null`.\n map((value) => (value === null || value === '' ? defaultValue : value)),\n )\n }, [defaultValue, keyValueStore, keyValueStoreKey])\n\n const value = useObservable(value$, defaultValue) as ValueType\n const set = useCallback(\n async (newValue: ValueType | null) => {\n if (newValue !== value) {\n // A `null` value clears the stored entry: `getKey` coerces the empty\n // value back to `null`, so reads fall through to `defaultValue`.\n await keyValueStore.setKey(keyValueStoreKey, newValue as KeyValueStoreValue)\n }\n },\n [keyValueStore, keyValueStoreKey, value],\n )\n\n return useMemo(() => [value, set], [set, value])\n}\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\nfunction 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.target)\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/Search'\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} from '../../../../ui-components/dialog/Dialog'\nimport {Tab} from '../../../../ui-components/tab/Tab'\nimport {DocTitle} from '../../../components/DocTitle'\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(async () => {\n await onViewModeChange(VIEW_MODE_PARSED.id)\n }, [onViewModeChange])\n\n const setRawViewMode = useCallback(async () => {\n await 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 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/button/Button'\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 {Text} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getVersionInlineBadge,\n isCardinalityOneRelease,\n ReleaseTitle,\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({\n releaseId,\n}: {releaseId?: string} = {}): 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 // Use the explicit releaseId prop (for archived scheduled drafts) or\n // fall back to the historyVersion param (for archived releases)\n const effectiveReleaseId = releaseId ?? params?.historyVersion\n const handleGoBack = () => {\n setParams({\n ...params,\n rev: params?.historyEvent || undefined,\n since: undefined,\n historyVersion: undefined,\n scheduledDraft: undefined,\n })\n }\n\n const release = useMemo(() => {\n return archivedReleases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === effectiveReleaseId,\n )\n }, [archivedReleases, effectiveReleaseId])\n\n const description = useMemo(() => {\n if (release?.state === 'published') {\n return 'banners.published-release.description'\n }\n\n if (release && isCardinalityOneRelease(release)) {\n return 'banners.archived-scheduled-draft.description'\n }\n\n return 'banners.archived-release.description'\n }, [release])\n\n return (\n <Banner\n tone=\"caution\"\n content={\n <Text size={1}>\n <ReleaseTitle\n title={release?.metadata.title}\n fallback={tCore('release.placeholder-untitled-release')}\n >\n {({displayTitle}) => (\n <Translate\n t={t}\n i18nKey={description}\n values={{\n title: displayTitle,\n }}\n components={{\n VersionBadge: ({children}) => {\n const BadgeWithTone = getVersionInlineBadge(release)\n return <BadgeWithTone>{children}</BadgeWithTone>\n },\n }}\n />\n )}\n </ReleaseTitle>\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} from '@sanity/icons/ComposeSparkles'\nimport {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {LaunchIcon} from '@sanity/icons/Launch'\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 {Button} from '../../../../../ui-components/button/Button'\nimport {Popover} from '../../../../../ui-components/popover/Popover'\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'\n\nconst CanvasPopoverContent = ({\n onClose,\n isLockedByCanvas,\n}: {\n onClose: () => void\n isLockedByCanvas: boolean\n}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const ref = useRef<HTMLDivElement | null>(null)\n useClickOutsideEvent(onClose, () => [ref.current])\n\n const popoverHeading = isLockedByCanvas\n ? t('canvas.banner.popover-heading')\n : t('canvas.banner.editable.popover-heading')\n\n const popoverDescription = isLockedByCanvas\n ? t('canvas.banner.popover-description')\n : t('canvas.banner.editable.popover-description')\n\n return (\n <Card radius={3} overflow={'hidden'} 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}>{popoverHeading}</Heading>\n </Box>\n <Box paddingTop={4}>\n <Text size={1}>{popoverDescription}</Text>\n </Box>\n </Flex>\n <Flex 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 {isLockedByCanvas} = useCanvasCompanionDoc(documentId)\n\n const variantText = useMemo(() => {\n if (!isLockedByCanvas) {\n return t('canvas.banner.editable.linked-text')\n }\n\n if (documentVariantType === 'published') {\n return t('canvas.banner.linked-text.published')\n }\n\n if (documentVariantType === 'draft') {\n return t('canvas.banner.linked-text.draft')\n }\n\n return t('canvas.banner.linked-text.version')\n }, [documentVariantType, isLockedByCanvas, 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} isLockedByCanvas={isLockedByCanvas} />}\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 {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {type ObjectSchemaType} from '@sanity/types'\nimport {Flex, Text} from '@sanity/ui'\nimport {type ComponentType, useCallback} from 'react'\nimport {\n getVersionInlineBadge,\n isPerspectiveWriteable,\n isReleaseDocument,\n type PerspectiveNotWriteableReason,\n ReleasesNav,\n type ReleasesNavMenuItemPropsGetter,\n ReleaseTitle,\n type TargetPerspective,\n Translate,\n useTranslation,\n useWorkspace,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\ninterface Props {\n schemaType: ObjectSchemaType\n selectedPerspective: TargetPerspective\n reason: PerspectiveNotWriteableReason\n}\n\n/**\n * This banner is displayed when a user attempts to create a new document in a perspective that's\n * not writeable. For example:\n *\n * - The published perspective (unless the schema type supports live-editing).\n * - Any release that's locked.\n */\nexport const ChooseNewDocumentDestinationBanner: ComponentType<Props> = ({\n schemaType,\n selectedPerspective,\n reason,\n}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n const {\n document: {\n drafts: {enabled: isDraftModelEnabled},\n },\n } = useWorkspace()\n\n const menuItemProps = useCallback<ReleasesNavMenuItemPropsGetter>(\n ({perspective}) => ({\n disabled: !isPerspectiveWriteable({\n selectedPerspective: perspective,\n isDraftModelEnabled,\n schemaType,\n }).result,\n }),\n [isDraftModelEnabled, schemaType],\n )\n\n const releaseDoc = isReleaseDocument(selectedPerspective) ? selectedPerspective : undefined\n const releaseTitle = releaseDoc\n ? releaseDoc.metadata.title || tCore('release.placeholder-untitled-release')\n : undefined\n\n return (\n <Banner\n tone=\"caution\"\n icon={WarningOutlineIcon}\n content={\n <Flex align=\"center\" gap={2}>\n <Text size={1}>\n {reason === 'PUBLISHED_NOT_WRITEABLE' &&\n t('banners.choose-new-document-destination.cannot-create-published-document')}\n {reason === 'DRAFTS_NOT_WRITEABLE' &&\n t('banners.choose-new-document-destination.cannot-create-draft-document')}\n {reason === 'RELEASE_NOT_ACTIVE' && releaseDoc && releaseTitle && (\n <Translate\n t={t}\n i18nKey=\"banners.choose-new-document-destination.release-inactive\"\n values={{\n title: releaseTitle,\n }}\n components={{\n VersionBadge: ({children}) => {\n const BadgeWithTone = getVersionInlineBadge(releaseDoc)\n return (\n <ReleaseTitle\n title={releaseDoc.metadata.title}\n fallback={tCore('release.placeholder-untitled-release')}\n >\n {() => <BadgeWithTone>{children}</BadgeWithTone>}\n </ReleaseTitle>\n )\n },\n }}\n />\n )}\n <> {t('banners.choose-new-document-destination.choose-destination')}</>\n </Text>\n <ReleasesNav menuItemProps={menuItemProps} />\n </Flex>\n }\n />\n )\n}\n","import {DocumentRemoveIcon} from '@sanity/icons/DocumentRemove'\nimport {ReadOnlyIcon} from '@sanity/icons/ReadOnly'\nimport {Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n isDraftPerspective,\n isPublishedPerspective,\n isReleaseDocument,\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 isReleaseDocument(selectedPerspective) &&\n selectedPerspective.state === 'archived'\n ) {\n return <ArchivedReleaseBanner release={selectedPerspective} />\n }\n if (isDeleted && !isDeleting) return <DeletedDocumentBanner />\n}\n\nfunction DeletedDocumentBanner() {\n const {documentId, documentType} = useDocumentPane()\n // No `getTargetScopeId(useTargetDocumentState())` here: restoring a deleted document deliberately operates on\n // the draft/published pair, so no version scope applies.\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={{\n title: release.metadata?.title || t('release.placeholder-untitled-release'),\n }}\n />\n </Text>\n }\n data-testid=\"deleted-release-banner\"\n icon={DocumentRemoveIcon}\n />\n )\n}\n","import {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {Text} from '@sanity/ui'\nimport {isDeprecatedSchemaType, Translate, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPaneInfo} from '../../useDocumentPaneInfo'\nimport {Banner} from './Banner'\n\nexport function DeprecatedDocumentTypeBanner() {\n const {schemaType} = useDocumentPaneInfo()\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 {Text, useToast} from '@sanity/ui'\nimport {useCallback, useEffect, useState} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n isAgentBundleName,\n getVersionInlineBadge,\n LATEST,\n ReleaseTitle,\n type SystemBundle,\n type TargetPerspective,\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 isScheduledRelease,\n}: {\n documentId: string\n currentRelease: Exclude<TargetPerspective, SystemBundle>\n isScheduledRelease?: boolean\n}) {\n const tone = getReleaseTone(currentRelease ?? LATEST)\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n const {createVersion} = useVersionOperations()\n\n const isAnonymousBundle = typeof currentRelease === 'string'\n const releaseTitle = isAnonymousBundle\n ? currentRelease\n : currentRelease?.metadata?.title || tCore('release.placeholder-untitled-release')\n const [versionCreateState, setVersionCreateState] = useState<VersionCreateState | undefined>()\n const toast = useToast()\n const handleAddToRelease = useCallback(async () => {\n if (isAnonymousBundle || currentRelease._id) {\n setVersionCreateState({status: 'creating', lastUpdate: new Date()})\n\n const bundleId = isAnonymousBundle\n ? currentRelease\n : getReleaseIdFromReleaseDocumentId(currentRelease._id)\n\n try {\n await createVersion(bundleId, documentId)\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, isAnonymousBundle, documentId, t, toast])\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: releaseTitle,\n }}\n components={{\n VersionBadge: ({children}) => {\n const BadgeWithTone = getVersionInlineBadge(currentRelease)\n if (isAnonymousBundle) {\n return <BadgeWithTone>{children}</BadgeWithTone>\n }\n return (\n <ReleaseTitle\n title={currentRelease.metadata?.title}\n fallback={tCore('release.placeholder-untitled-release')}\n >\n {() => <BadgeWithTone>{children}</BadgeWithTone>}\n </ReleaseTitle>\n )\n },\n }}\n />\n </Text>\n }\n // Adding to a scheduled release is not allowed\n action={\n isScheduledRelease\n ? undefined\n : {\n text: isAgentBundleName(currentRelease)\n ? t('banners.release.action.add-to-bundle')\n : 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 {type SanityDocumentLike} from '@sanity/types'\nimport {getTargetDocument, type SystemVariant, type VersionInfoDocumentStub} from 'sanity'\n\nexport type VariantCreateBaseDocument = {\n _id: string\n _rev: string | undefined\n}\n\n/**\n * Resolves which existing document to copy when creating a variant-scoped version.\n *\n * Matches version stubs whose `_system.variant._ref` equals the selected variant id.\n *\n * 1. Drafts variant sibling, then published variant sibling.\n * 2. The provided fallback (typically the document currently shown in the pane).\n *\n * @internal\n */\nexport function findVariantCreateBaseDocument({\n variant,\n documentVersions,\n fallback,\n}: {\n /** Variant definition being created. */\n variant: SystemVariant\n /** All version stubs for the document group from `useDocumentVersions`. */\n documentVersions: VersionInfoDocumentStub[]\n /** Last-resort base document, usually the pane's current `value`. */\n fallback: Pick<SanityDocumentLike, '_id'> & {_rev?: string}\n}): VariantCreateBaseDocument {\n const preferredVariantDocument =\n getTargetDocument({bundle: 'drafts', variant: variant._id, documentVersions}) ||\n getTargetDocument({bundle: 'published', variant: variant._id, documentVersions})\n\n if (preferredVariantDocument) {\n return {_id: preferredVariantDocument._id, _rev: preferredVariantDocument._rev}\n }\n\n return {_id: fallback._id, _rev: fallback._rev}\n}\n","import {Text, useToast} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {\n getVariantTitle,\n isDraftPerspective,\n isPublishedPerspective,\n isReleaseDocument,\n Translate,\n useConditionalToast,\n useDocumentVersions,\n useGetDefaultPerspective,\n usePerspective,\n useTranslation,\n useVariantDocumentOperations,\n} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {Banner} from './Banner'\nimport {findVariantCreateBaseDocument} from './findVariantCreateBaseDocument'\n\n// Once the create action resolves, there's a short delay before the new variant-scoped version\n// propagates and this banner unmounts. Surface a toast if that window exceeds this threshold.\nconst TOAST_DELAY = 1000\n\ntype VariantDocumentCreateStatus = 'idle' | 'in-progress' | 'success' | 'failed'\n\nexport function DocumentNotInVariantBanner() {\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n const {value, documentId} = useDocumentPane()\n const {selectedPerspective, selectedVariant, selectedReleaseId} = usePerspective()\n const {versions} = useDocumentVersions({documentId})\n\n const {createVariantDocument} = useVariantDocumentOperations()\n const [status, setStatus] = useState<VariantDocumentCreateStatus>('idle')\n const toast = useToast()\n const defaultPerspective = useGetDefaultPerspective()\n\n const variantTitle = selectedVariant ? getVariantTitle(selectedVariant) : ''\n const perspectiveTitle = useMemo(() => {\n if (isReleaseDocument(selectedPerspective)) {\n return selectedPerspective.metadata?.title || tCore('release.placeholder-untitled-release')\n }\n\n if (isDraftPerspective(selectedPerspective)) {\n return tCore('release.chip.global.drafts')\n }\n\n if (isPublishedPerspective(selectedPerspective)) {\n return tCore('release.chip.published')\n }\n\n // Covers release ids (string) and other non-system bundle perspectives.\n return String(selectedPerspective)\n }, [selectedPerspective, tCore])\n\n const handleAddToVariant = useCallback(async () => {\n if (!selectedVariant) {\n return\n }\n\n setStatus('in-progress')\n try {\n const baseDocument = findVariantCreateBaseDocument({\n variant: selectedVariant,\n documentVersions: versions,\n fallback: {_id: value._id, _rev: value._rev},\n })\n\n await createVariantDocument({\n baseId: baseDocument._id,\n ifBaseRevisionId: baseDocument._rev,\n documentGroupId: documentId,\n variant: selectedVariant,\n selectedPerspective,\n })\n setStatus('success')\n } catch (err) {\n toast.push({\n status: 'error',\n closable: true,\n title: t('banners.variant.error.title'),\n description: t('banners.variant.error.description', {\n message: err instanceof Error ? err.message : String(err),\n }),\n })\n setStatus('failed')\n }\n }, [\n createVariantDocument,\n documentId,\n value,\n selectedVariant,\n selectedPerspective,\n t,\n toast,\n versions,\n ])\n\n useConditionalToast({\n status: 'info',\n id: 'add-document-to-variant',\n enabled: status === 'success',\n delay: TOAST_DELAY,\n closable: true,\n title: t('banners.variant.waiting.title'),\n description: t('banners.variant.waiting.description'),\n })\n\n // TODO: Use machine.\n const isActionAllowed = selectedPerspective === defaultPerspective || selectedReleaseId\n return (\n <Banner\n tone=\"suggest\"\n content={\n <Text size={1}>\n <Translate\n i18nKey=\"banners.variant.not-in-variant\"\n t={t}\n values={{\n variantTitle,\n perspectiveTitle,\n }}\n components={{\n VariantBadge: ({children}) => <strong>{children}</strong>,\n PerspectiveTitle: ({children}) => <strong>{children}</strong>,\n }}\n />\n </Text>\n }\n action={\n isActionAllowed\n ? {\n text: t('banners.variant.action.add-to-variant'),\n tone: 'suggest',\n disabled: status === 'in-progress' || status === 'success',\n onClick: handleAddToVariant,\n mode: 'default',\n }\n : undefined\n }\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/dialog/Dialog'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {AskToEditRequestSent} from './__telemetry__/RequestPermissionDialog.telemetry'\nimport {type AccessRequest} from './useRoleRequestsStatus'\n\nconst MAX_NOTE_LENGTH = 150\n\nconst DialogBody = styled(Box)`\n box-sizing: border-box;\n`\n\nconst 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} from 'date-fns/addWeeks'\nimport {isAfter} from 'date-fns/isAfter'\nimport {isBefore} from 'date-fns/isBefore'\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/ReadOnly'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Text} from '@sanity/ui'\nimport {useMemo, useState} from 'react'\nimport {Translate, useCurrentUser, useListFormat, useTranslation, useWorkspace} from 'sanity'\n\nimport {AskToEditDialogOpened} from '../../../../components/requestPermissionDialog/__telemetry__/RequestPermissionDialog.telemetry'\nimport {RequestPermissionDialog} from '../../../../components/requestPermissionDialog/RequestPermissionDialog'\nimport {useRoleRequestsStatus} from '../../../../components/requestPermissionDialog/useRoleRequestsStatus'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPane} from '../../useDocumentPane'\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 const workspace = useWorkspace()\n const {documentId, schemaType} = useDocumentPane()\n\n const askToEditEnabled = workspace.document.askToEdit.enabled({\n documentId,\n documentType: schemaType.name,\n })\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 const showAskToEditAction =\n askToEditEnabled &&\n isOnlyViewer &&\n roleRequestStatus &&\n !requestStatusError &&\n !requestStatusLoading\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 showAskToEditAction\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 {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/ErrorOutline'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Flex, Text} from '@sanity/ui'\nimport {type ComponentType, useCallback, useEffect, useState} from 'react'\nimport {\n getDraftId,\n getPublishedId,\n type ObjectSchemaType,\n Translate,\n useDocumentOperation,\n useTranslation,\n} from 'sanity'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {useDiffViewRouter} from '../../../../diffView/hooks/useDiffViewRouter'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {ResolvedLiveEdit} from './__telemetry__/DraftLiveEditBanner.telemetry'\nimport {Banner} from './Banner'\n\ninterface ObsoleteDraftBannerProps {\n displayed: Partial<SanityDocument> | null\n documentId: string\n schemaType: ObjectSchemaType\n i18nKey: string\n /**\n * Whether the user is blocked from editing the document while an obsolete draft exists.\n */\n isEditBlocking?: boolean\n}\n\nexport const ObsoleteDraftBanner: ComponentType<ObsoleteDraftBannerProps> = ({\n displayed,\n documentId,\n schemaType,\n i18nKey,\n isEditBlocking,\n}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const [isPublishing, setPublishing] = useState(false)\n const [isDiscarding, setDiscarding] = useState(false)\n const telemetry = useTelemetry()\n\n // No `getTargetScopeId(useTargetDocumentState())` here: resolving an obsolete draft deliberately operates on\n // the draft/published pair, so no version scope applies.\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 const diffViewRouter = useDiffViewRouter()\n\n const compareDraft = useCallback(() => {\n if (typeof displayed?._id === 'undefined') {\n return\n }\n\n diffViewRouter.navigateDiffView({\n mode: 'version',\n previousDocument: {\n type: schemaType.name,\n id: getPublishedId(displayed?._id),\n },\n nextDocument: {\n type: schemaType.name,\n id: getDraftId(displayed?._id),\n },\n })\n }, [diffViewRouter, displayed?._id, schemaType.name])\n\n return (\n <Banner\n content={\n <Flex align=\"center\" justify=\"space-between\" gap={2}>\n <Text size={1} weight=\"medium\">\n <Translate t={t} i18nKey={i18nKey} values={{schemaType: schemaType.title}} />\n </Text>\n <Button\n text={t('banners.obsolete-draft.actions.compare-draft.text')}\n mode=\"ghost\"\n onClick={compareDraft}\n />\n <Button\n onClick={handlePublish}\n text={t('banners.obsolete-draft.actions.publish-draft.text')}\n tooltipProps={\n isEditBlocking\n ? {\n content: t('banners.live-edit-draft-banner.publish.tooltip'),\n }\n : {}\n }\n loading={isPublishing}\n tone=\"positive\"\n />\n <Button\n onClick={handleDiscard}\n text={t('banners.obsolete-draft.actions.discard-draft.text')}\n tooltipProps={\n isEditBlocking\n ? {\n content: t('banners.live-edit-draft-banner.discard.tooltip'),\n }\n : {}\n }\n loading={isDiscarding}\n tone=\"caution\"\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 isCardinalityOneRelease,\n isVersionId,\n ReleaseTitle,\n Translate,\n useActiveReleases,\n useDocumentVersions,\n useOnlyHasVersions,\n useSetPerspective,\n useTranslation,\n VersionInlineBadge,\n} from 'sanity'\n\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\nfunction OpenReleaseToEditBannerInner({documentId}: {documentId: string}) {\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 documentVersionReleases = useMemo(\n () =>\n activeReleases.filter((version) => {\n const hasDocumentVersion = documentVersions.find((release) => {\n const r = getVersionFromId(release) ?? ''\n return getReleaseIdFromReleaseDocumentId(version._id) === r\n })\n return hasDocumentVersion && !isCardinalityOneRelease(version)\n }),\n [activeReleases, documentVersions],\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 if (documentVersionReleases.length === 0) {\n return null\n }\n\n const firstRelease = documentVersionReleases[0]\n const fallback = tCore('release.placeholder-untitled-release')\n\n return (\n <Banner\n tone={tone}\n data-testid=\"open-release-to-edit-banner\"\n content={\n <Text size={1}>\n <Flex direction={'row'} gap={1} wrap=\"wrap\">\n <ReleaseTitle title={firstRelease.metadata.title} fallback={fallback}>\n {({displayTitle}) =>\n documentVersionReleases.length > 1 ? (\n <Translate\n t={t}\n i18nKey=\"banners.release.navigate-to-edit-description-multiple\"\n components={{\n VersionBadge: () => <VersionInlineBadge>{displayTitle}</VersionInlineBadge>,\n }}\n values={{count: documentVersionReleases.length - 1}}\n />\n ) : (\n <Translate\n t={t}\n i18nKey=\"banners.release.navigate-to-edit-description-single\"\n components={{\n VersionBadge: () => <VersionInlineBadge>{displayTitle}</VersionInlineBadge>,\n }}\n />\n )\n }\n </ReleaseTitle>\n </Flex>\n </Text>\n }\n action={\n documentVersionReleases.length > 0\n ? {\n text: t('banners.release.action.open-to-edit'),\n tone: tone,\n onClick: handleGoToEdit,\n mode: 'default',\n }\n : undefined\n }\n />\n )\n}\n","import {PauseIcon} from '@sanity/icons/Pause'\nimport {Text} from '@sanity/ui'\nimport {Translate, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\nexport function PausedScheduledDraftBanner(): React.JSX.Element {\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <Banner\n tone=\"caution\"\n icon={PauseIcon}\n content={\n <Text size={1}>\n <Translate t={t} i18nKey=\"banners.paused-scheduled-draft.text\" />\n </Text>\n }\n />\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {SyncIcon} from '@sanity/icons/Sync'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\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 isSystemBundle,\n useDocumentPreviewStore,\n usePerspective,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\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 {selectedPerspectiveName} = 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 = (params?.parentRefPath && pathFromString(params.parentRefPath)) || null\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: isSystemBundle(selectedPerspectiveName) ? undefined : selectedPerspectiveName,\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 }, [selectedPerspectiveName, 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 {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\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 {type SanityDocument} from '@sanity/client'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Text} from '@sanity/ui'\nimport {getPublishedId, Translate, useScheduledDraftDocument, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\ninterface ScheduledDraftOverrideBannerProps {\n releaseId: string\n draftDocument: Partial<SanityDocument> | null\n}\n\nexport function ScheduledDraftOverrideBanner({\n releaseId,\n draftDocument,\n}: ScheduledDraftOverrideBannerProps): React.JSX.Element | null {\n const {t} = useTranslation(structureLocaleNamespace)\n const {firstDocument: scheduledDraftDocument} = useScheduledDraftDocument(releaseId)\n\n const draftPublishedId = draftDocument?._id ? getPublishedId(draftDocument._id) : null\n const scheduledPublishedId = scheduledDraftDocument?._id\n ? getPublishedId(scheduledDraftDocument._id)\n : null\n\n const draftRev = draftDocument?._rev\n const scheduledBaseRev = scheduledDraftDocument?._system?.base?.rev\n\n const publishedDocumentsMatch = draftPublishedId === scheduledPublishedId\n const baseRevisionsDiffer = !draftRev || !scheduledBaseRev || draftRev !== scheduledBaseRev\n\n if (!publishedDocumentsMatch || !baseRevisionsDiffer) {\n return null\n }\n\n return (\n <Banner\n tone=\"caution\"\n icon={WarningOutlineIcon}\n content={\n <Text size={1}>\n <Translate t={t} i18nKey=\"banners.scheduled-draft-override-banner.text\" />\n </Text>\n }\n />\n )\n}\n","import {LockIcon} from '@sanity/icons/Lock'\nimport {Text} from '@sanity/ui'\nimport {\n getReleaseTone,\n LATEST,\n type ReleaseDocument,\n Translate,\n useFormatRelativeLocalePublishDate,\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 const formatPublishDate = useFormatRelativeLocalePublishDate()\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: formatPublishDate(currentRelease),\n }}\n />\n </Text>\n }\n />\n )\n}\n","import {UnpublishIcon} from '@sanity/icons/Unpublish'\nimport {Stack, Text} from '@sanity/ui'\nimport {\n getVersionInlineBadge,\n isGoingToUnpublish,\n isReleaseDocument,\n ReleaseTitle,\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, editState} = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n const isCurrentVersionGoingToUnpublish =\n isGoingToUnpublish(value) || (editState?.version && isGoingToUnpublish(editState?.version))\n\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n\n if (isReleaseDocument(selectedPerspective) && isCurrentVersionGoingToUnpublish) {\n const releaseTitle =\n selectedPerspective.metadata?.title || tCore('release.placeholder-untitled-release')\n\n return (\n <Banner\n tone=\"critical\"\n content={\n <Stack space={2}>\n <Text size={1}>\n <Translate\n t={t}\n i18nKey=\"banners.unpublished-release-banner.text\"\n values={{\n title: releaseTitle,\n }}\n components={{\n VersionBadge: ({children}) => {\n const BadgeWithTone = getVersionInlineBadge(selectedPerspective)\n return (\n <ReleaseTitle\n title={selectedPerspective.metadata?.title}\n fallback={tCore('release.placeholder-untitled-release')}\n >\n {() => <BadgeWithTone>{children}</BadgeWithTone>}\n </ReleaseTitle>\n )\n },\n }}\n />\n </Text>\n <Text size={1}>\n <Translate t={t} i18nKey=\"banners.unpublished-release-banner.text-with-published\" />\n </Text>\n </Stack>\n }\n icon={UnpublishIcon}\n />\n )\n }\n return null\n}\n","import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {Text} from '@sanity/ui'\nimport {Translate, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {Banner} from './Banner'\n\n/**\n * Shown when the variant requested via the router sticky param matches no `system.variant`\n * definition. An explicit error surface: an invalid variant selection must never silently\n * behave like \"no variant selected\".\n */\nexport function VariantDefinitionNotFoundBanner({\n requestedVariantName,\n}: {\n requestedVariantName: string\n}) {\n const {t} = useTranslation(structureLocaleNamespace)\n\n return (\n <Banner\n tone=\"caution\"\n icon={WarningOutlineIcon}\n content={\n <Text size={1}>\n <Translate\n i18nKey=\"banners.variant.definition-not-found\"\n t={t}\n values={{name: requestedVariantName}}\n components={{\n VariantName: ({children}) => <strong>{children}</strong>,\n }}\n />\n </Text>\n }\n />\n )\n}\n","import {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\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/tooltip/Tooltip'\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\nconst 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","import {Box, Flex, focusFirstDescendant, Spinner, Text} from '@sanity/ui'\nimport {\n type FormEvent,\n forwardRef,\n useCallback,\n useEffect,\n useEffectEvent,\n useMemo,\n useState,\n} from 'react'\nimport {tap} from 'rxjs/operators'\nimport {\n createPatchChannel,\n Delay,\n type DocumentMutationEvent,\n type DocumentRebaseEvent,\n FormBuilder,\n FormContainer,\n type FormDocumentValue,\n FormRow,\n fromMutationPatches,\n getTargetScopeId,\n type PatchMsg,\n PresenceOverlay,\n useConditionalToast,\n useDocumentPresence,\n useDocumentStore,\n usePerspective,\n useTranslation,\n} from 'sanity'\n\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<HTMLFormElement, 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 inspectOpen,\n compareValue,\n hasUpstreamVersion,\n focusPath,\n syncState,\n targetDocumentState,\n } = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n const documentStore = useDocumentStore()\n // The scope of the document targeted by the selected perspective (undefined while the target is\n // resolving or when the draft/published pair applies).\n const scopeId = getTargetScopeId(targetDocumentState)\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 // Staged \"changes aren't syncing\" toast. Three non-synced states:\n // - pending: unsynced + disconnected, warning (editing still open)\n // - stalled: unsynced + disconnected for longer, editing locked\n // - recovering: connected but a commit failed and is being retried, e.g.\n // flushing the backlog after a reconnect (still locked,\n // but reassure rather than alarm)\n // One toast id so the states replace each other rather than stack, and\n // it auto-dismisses when the document syncs again.\n const syncToastParams = useMemo(() => {\n const copy = {\n pending: {\n status: 'warning' as const,\n title: t('document-view.form-view.sync-pending.title'),\n description: t('document-view.form-view.sync-pending.description'),\n },\n stalled: {\n status: 'error' as const,\n title: t('document-view.form-view.sync-stalled.title'),\n description: t('document-view.form-view.sync-stalled.description'),\n },\n recovering: {\n status: 'warning' as const,\n title: t('document-view.form-view.sync-recovering.title'),\n description: t('document-view.form-view.sync-recovering.description'),\n },\n }\n // No copy when synced — the toast is disabled, so title/description are\n // never read (useConditionalToast only pushes while `enabled`).\n const active = syncState === 'synced' ? undefined : copy[syncState]\n return {\n id: 'document-sync-state',\n enabled: syncState !== 'synced',\n closable: true,\n ...active,\n }\n }, [syncState, t])\n\n useConditionalToast(syncToastParams)\n\n useEffect(() => {\n const sub = documentStore.pair\n .documentEvents(documentId, documentType, scopeId)\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, scopeId])\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 | HTMLFormElement>(null)\n const [hasFocusedAnyPath, setHasFocusedAnyPath] = useState(false)\n\n useEffect(() => {\n // Only auto-focus if no path has been focused yet.\n //\n // This is to avoid stealing focus from intent links, and to prevent\n // auto-focusing the first descendant after blurring a path that was focused\n // for any reason (e.g. by this auto-focus mechanism itself, or by\n // navigating to a deep-link).\n if (!hasFocusedAnyPath && ready && !formState?.focusPath.length && formRef) {\n focusFirstDescendant(formRef)\n }\n }, [hasFocusedAnyPath, formRef, formState?.focusPath.length, ready])\n\n useEffect(() => {\n if (focusPath.length !== 0) {\n // oxlint-disable-next-line react/react-compiler\n setHasFocusedAnyPath(true)\n }\n }, [focusPath])\n\n const setRef = useCallback(\n (node: HTMLFormElement | 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 <FormContainer hidden={hidden}>\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 <FormRow>\n <FormHeader\n documentId={documentId}\n schemaType={formState.schemaType}\n title={title}\n />\n </FormRow>\n <FormBuilder\n __internal_fieldActions={fieldActions}\n __internal_inspectOpen={inspectOpen}\n __internal_patchChannel={patchChannel}\n changed={formState.changed}\n collapsedFieldSets={collapsedFieldSets}\n collapsedPaths={collapsedPaths}\n compareValue={compareValue ?? undefined}\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 perspective={selectedPerspective}\n hasUpstreamVersion={hasUpstreamVersion}\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 </FormContainer>\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/tab/Tab'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {useDocumentPaneInfo} from '../../useDocumentPaneInfo'\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} = useDocumentPane()\n const {paneKey, views} = useDocumentPaneInfo()\n\n const tabPanelId = `${paneKey}tabpanel`\n\n return (\n <TabList space={1}>\n {views.map((view, index) => (\n <DocumentHeaderTab\n key={view.id}\n icon={view.icon}\n id={`${paneKey}tab-${view.id}`}\n isActive={activeViewId === 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 {useContext} from 'react'\nimport {ResolvedPanesContext} from 'sanity/_singletons'\n\nimport {type Panes} from './useResolvedPanes'\n\nconst DEFAULT_VALUE = {\n paneDataItems: [],\n routerPanes: [],\n resolvedPanes: [],\n maximizedPane: null,\n setMaximizedPane: () => {\n // noop\n },\n}\nexport function useResolvedPanesList(): Panes {\n const context = useContext(ResolvedPanesContext)\n\n // This allows components to be used outside of ResolvedPanesProvider\n // Such as Presensation which doesn't need to be concerned about the structure of the panes\n // As it always travels down the nearest pane to the document.\n return context ?? DEFAULT_VALUE\n}\n","import {defineEvent} from '@sanity/telemetry'\n\n/**\n * When a document pane is maximized via the focus pane button\n */\nexport const DocumentPaneMaximized = defineEvent({\n name: 'Document Pane Maximized',\n version: 1,\n description: 'User maximized a document pane via the focus pane button',\n})\n\n/**\n * When a maximized document pane is collapsed via the focus pane button\n */\nexport const DocumentPaneCollapsed = defineEvent({\n name: 'Document Pane Collapsed',\n version: 1,\n description: 'User collapsed a maximized document pane via the focus pane button',\n})\n\ninterface DocumentPaneNavigatedInfo {\n /** How the user navigated to the document pane */\n path: 'breadcrumb'\n}\n\n/**\n * When the user navigates to a different document pane\n */\nexport const DocumentPaneNavigated = defineEvent<DocumentPaneNavigatedInfo>({\n name: 'Document Pane Navigated',\n version: 1,\n description: 'User navigated to a different document pane via the breadcrumbs in the header',\n})\n","import {useTelemetry} from '@sanity/telemetry/react'\nimport {useCallback, useMemo} from 'react'\nimport {useDocumentPreviewValues, usePerspective, useTranslation} from 'sanity'\nimport {useRouter, useRouterState} from 'sanity/router'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {LOADING_PANE} from '../../../../constants'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {type Panes} from '../../../../structureResolvers/useResolvedPanes'\nimport {type RouterPanes} from '../../../../types'\nimport {DocumentPaneNavigated} from './__telemetry__/focus.telemetry'\n\nexport function DocumentHeaderBreadcrumbItem({\n paneData,\n index,\n}: {\n paneData: Panes['paneDataItems'][number]\n index: number\n}) {\n const {pane} = paneData\n const router = useRouter()\n const {t} = useTranslation(structureLocaleNamespace)\n const routerState = useRouterState()\n const telemetry = useTelemetry()\n const routerPanes = useMemo(() => (routerState?.panes || []) as RouterPanes, [routerState?.panes])\n\n const {perspectiveStack} = usePerspective()\n // In case if it's a pane with a title, use the title\n const staticTitle = pane !== LOADING_PANE && 'title' in pane ? pane.title : null\n\n // In case if it's a document pane, we need to fetch the document preview title\n const documentId = pane !== LOADING_PANE && pane.type === 'document' ? pane.options.id : null\n const documentType = pane !== LOADING_PANE && pane.type === 'document' ? pane.options.type : null\n const {value: previewValue, isLoading} = useDocumentPreviewValues({\n documentId: documentId ?? '',\n documentType: documentType ?? '',\n perspectiveStack: perspectiveStack,\n })\n\n // Use preview title for documents, static title for other panes\n const displayTitle = useMemo(() => {\n if (documentId && !isLoading) {\n return previewValue?.title || t('panes.document-header-title.untitled.text')\n }\n\n return staticTitle\n }, [documentId, previewValue, staticTitle, t, isLoading])\n\n const handleClick = useCallback(() => {\n telemetry.log(DocumentPaneNavigated, {path: 'breadcrumb'})\n router.navigate({panes: routerPanes.slice(0, paneData.groupIndex)})\n }, [telemetry, router, routerPanes, paneData.groupIndex])\n\n if (!displayTitle && !isLoading) return null\n\n return (\n <Button\n mode=\"bleed\"\n text={displayTitle || t('panes.document-header-title.untitled.text')}\n tooltipProps={{content: displayTitle || t('panes.document-header-title.untitled.text')}}\n onClick={handleClick}\n paddingLeft={index === 0 ? 0 : 1}\n />\n )\n}\n","import {ArrowRightIcon} from '@sanity/icons/ArrowRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {Fragment} from 'react'\n\nimport {LOADING_PANE} from '../../../../constants'\nimport {type Panes} from '../../../../structureResolvers/useResolvedPanes'\nimport {DocumentHeaderBreadcrumbItem} from './DocumentHeaderBreadcrumbItem'\n\nexport function DocumentHeaderBreadcrumb({\n paneDataItems,\n currentPaneIndex,\n}: {\n paneDataItems: Panes['paneDataItems']\n currentPaneIndex: number\n}): React.JSX.Element {\n return (\n <Flex direction=\"row\" align=\"center\" data-testid=\"document-header-breadcrumb\">\n {paneDataItems.map((paneData, idx) => {\n if (idx > currentPaneIndex) return null\n const isDocumentPane = paneData.pane !== LOADING_PANE && paneData.pane.type === 'document'\n return (\n <Fragment key={`breadcrumb-item-${paneData.key}-${idx}`}>\n <DocumentHeaderBreadcrumbItem paneData={paneData} index={idx} />\n\n {idx < currentPaneIndex &&\n (isDocumentPane ? (\n <Box padding={1}>\n <ArrowRightIcon />\n </Box>\n ) : (\n <Text>/</Text>\n ))}\n </Fragment>\n )\n })}\n </Flex>\n )\n}\n","import {useMemo} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useResolvedPanesList} from '../../../../structureResolvers/useResolvedPanesList'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {useDocumentTitle} from '../../useDocumentTitle'\nimport {DocumentHeaderBreadcrumb} from './DocumentHeaderBreadcrumb'\n\nexport function DocumentHeaderTitle(): React.JSX.Element {\n const {connectionState, schemaType, title, value: documentValue, index} = useDocumentPane()\n const {paneDataItems} = useResolvedPanesList()\n const {title: documentTitle, error} = useDocumentTitle()\n const subscribed = Boolean(documentValue)\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const hasMaximizedPane = useMemo(\n () => paneDataItems.some((paneData) => paneData.maximized),\n [paneDataItems],\n )\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})}</>\n }\n\n return (\n <>\n {hasMaximizedPane ? (\n <DocumentHeaderBreadcrumb paneDataItems={paneDataItems} currentPaneIndex={index} />\n ) : (\n documentTitle || (\n <span style={{color: 'var(--card-muted-fg-color)'}}>\n {t('panes.document-header-title.untitled.text')}\n </span>\n )\n )}\n </>\n )\n}\n","import {StarIcon} from '@sanity/icons/Star'\nimport {StarFilledIcon} from '@sanity/icons/StarFilled'\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/ArrowLeft'\nimport {memo, useMemo} from 'react'\nimport {CapabilityGate, useActiveWorkspace, useTranslation} from 'sanity'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {PaneHeader} from '../../../../components/pane/PaneHeader'\nimport {usePane} from '../../../../components/pane/usePane'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\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\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={displayed?._id ?? documentId}\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 getReleaseIdFromReleaseDocumentId,\n getVersionFromId,\n isCardinalityOneRelease,\n isDraftId,\n isGoingToUnpublish,\n isNewDocument,\n isPausedCardinalityOneRelease,\n isPerspectiveWriteable,\n isReleaseDocument,\n isReleaseScheduledOrScheduling,\n isSystemBundle,\n LegacyLayerProvider,\n type ReleaseDocument,\n ScrollContainer,\n useArchivedReleases,\n useFilteredReleases,\n usePausedScheduledDraft,\n usePerspective,\n useWorkspace,\n VirtualizerScrollInstanceProvider,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {PaneContent} from '../../../components/pane/PaneContent'\nimport {usePane} from '../../../components/pane/usePane'\nimport {usePaneLayout} from '../../../components/pane/usePaneLayout'\nimport {usePaneRouter} from '../../../components/paneRouter/usePaneRouter'\nimport {hasObsoleteDraft} from '../../../hasObsoleteDraft'\nimport {mustChooseNewDocumentDestination} from '../../../mustChooseNewDocumentDestination'\nimport {useStructureTool} from '../../../useStructureTool'\nimport {DocumentInspectorPanel} from '../documentInspector/DocumentInspectorPanel'\nimport {InspectDialog} from '../inspectDialog/InspectDialog'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {ArchivedReleaseDocumentBanner} from './banners/ArchivedReleaseDocumentBanner'\nimport {CanvasLinkedBanner} from './banners/CanvasLinkedBanner'\nimport {ChooseNewDocumentDestinationBanner} from './banners/ChooseNewDocumentDestinationBanner'\nimport {DeletedDocumentBanners} from './banners/DeletedDocumentBanners'\nimport {DeprecatedDocumentTypeBanner} from './banners/DeprecatedDocumentTypeBanner'\nimport {DocumentNotInReleaseBanner} from './banners/DocumentNotInReleaseBanner'\nimport {DocumentNotInVariantBanner} from './banners/DocumentNotInVariantBanner'\nimport {InsufficientPermissionBanner} from './banners/InsufficientPermissionBanner'\nimport {ObsoleteDraftBanner} from './banners/ObsoleteDraftBanner'\nimport {OpenReleaseToEditBanner} from './banners/OpenReleaseToEditBanner'\nimport {PausedScheduledDraftBanner} from './banners/PausedScheduledDraftBanner'\nimport {ReferenceChangedBanner} from './banners/ReferenceChangedBanner'\nimport {RevisionNotFoundBanner} from './banners/RevisionNotFoundBanner'\nimport {ScheduledDraftOverrideBanner} from './banners/ScheduledDraftOverrideBanner'\nimport {ScheduledReleaseBanner} from './banners/ScheduledReleaseBanner'\nimport {UnpublishedDocumentBanner} from './banners/UnpublishedDocumentBanner'\nimport {VariantDefinitionNotFoundBanner} from './banners/VariantDefinitionNotFoundBanner'\nimport {FormView} from './documentViews/FormView'\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 targetDocumentState,\n } = useDocumentPane()\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<HTMLFormElement | null>(null)\n const workspace = useWorkspace()\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 prevDocumentIdRef = useRef<string | undefined>(undefined)\n\n // Scroll to top when `documentId` changes (but not on initial render)\n useEffect(() => {\n if (!documentScrollElement?.scrollTo) return\n\n // Skip scroll on initial render\n if (prevDocumentIdRef.current === undefined) {\n prevDocumentIdRef.current = documentId\n return\n }\n\n // Only scroll if documentId actually changed\n if (prevDocumentIdRef.current !== documentId) {\n documentScrollElement.scrollTo(0, 0)\n prevDocumentIdRef.current = documentId\n }\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 ? (\n <LegacyLayerProvider zOffset=\"inspectorDialog\">\n <InspectDialog value={displayed || value} />\n </LegacyLayerProvider>\n ) : null\n }, [isInspectOpen, displayed, value])\n\n const showInspector = Boolean(!collapsed && inspector)\n const {selectedReleaseId, selectedPerspectiveName, selectedPerspective} = usePerspective()\n\n const hasDocumentInRelease =\n selectedPerspectiveName &&\n targetDocumentState.status === 'ready' &&\n Boolean(targetDocumentState.targetDocument)\n\n const filteredReleases = useFilteredReleases({\n historyVersion: params?.historyVersion,\n displayed,\n documentId,\n })\n\n const {isPaused: isPausedDraft} = usePausedScheduledDraft()\n\n const {data: archivedReleases} = useArchivedReleases()\n\n // When viewing an archived scheduled draft, the release is no longer among the\n // active releases, so `selectedPerspective` falls back to a plain release-id\n // string. Resolve the selected release from the archived releases and inspect\n // its state directly: a scheduled draft is a cardinality-one release. This lets\n // us show the archived release banner instead of the \"add to release\" banner.\n const archivedScheduledDraftRelease = useMemo(\n () =>\n archivedReleases.find(\n (release) =>\n getReleaseIdFromReleaseDocumentId(release._id) === selectedPerspectiveName &&\n isCardinalityOneRelease(release),\n ),\n [archivedReleases, selectedPerspectiveName],\n )\n const banners = useMemo(() => {\n const archivedReleaseId =\n params?.historyVersion ??\n (archivedScheduledDraftRelease\n ? getReleaseIdFromReleaseDocumentId(archivedScheduledDraftRelease._id)\n : undefined)\n if (archivedReleaseId) {\n return <ArchivedReleaseDocumentBanner releaseId={archivedReleaseId} />\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 const isSelectedPerspectiveWriteable = isPerspectiveWriteable({\n selectedPerspective,\n isDraftModelEnabled: workspace.document.drafts.enabled,\n schemaType,\n })\n\n if (\n mustChooseNewDocumentDestination({\n isSelectedPerspectiveWriteable,\n editState,\n })\n ) {\n return (\n !isSelectedPerspectiveWriteable.result && (\n <ChooseNewDocumentDestinationBanner\n schemaType={schemaType}\n selectedPerspective={selectedPerspective}\n reason={isSelectedPerspectiveWriteable.reason}\n />\n )\n )\n }\n\n if (isPausedDraft && displayed?._id) {\n return <PausedScheduledDraftBanner />\n }\n\n if (documentInScheduledRelease) {\n return <ScheduledReleaseBanner currentRelease={selectedPerspective as ReleaseDocument} />\n }\n\n const allFilteredReleases = [\n ...filteredReleases.currentReleases,\n ...filteredReleases.notCurrentReleases,\n ]\n // if the scheduled draft is paused then it will be available in notCurrentReleases\n // otherwise a locked-in scheduled draft will be available in currentReleases\n // so must look across both to find the scheduled draft release\n const scheduledCardinalityOneRelease = allFilteredReleases.find(\n (release) =>\n isCardinalityOneRelease(release) &&\n (isReleaseScheduledOrScheduling(release) || isPausedCardinalityOneRelease(release)),\n )\n\n const isPinnedDraftOrPublish = isSystemBundle(selectedPerspective)\n\n if (targetDocumentState.status === 'variant-missing') {\n return <DocumentNotInVariantBanner />\n }\n\n if (targetDocumentState.status === 'variant-definition-document-not-found') {\n return (\n <VariantDefinitionNotFoundBanner\n requestedVariantName={targetDocumentState.requestedVariantName}\n />\n )\n }\n\n const isCurrentVersionGoingToUnpublish =\n editState?.version && isGoingToUnpublish(editState?.version)\n\n if (\n !isSystemBundle(selectedPerspective) &&\n displayed?._id &&\n selectedPerspectiveName &&\n !hasDocumentInRelease &&\n ready &&\n !isPinnedDraftOrPublish &&\n isNewDocument(editState) === false &&\n !isCurrentVersionGoingToUnpublish\n ) {\n return (\n <DocumentNotInReleaseBanner\n documentId={value._id}\n currentRelease={selectedPerspective}\n isScheduledRelease={isScheduledRelease}\n />\n )\n }\n\n const displayedHasObsoleteDraft = hasObsoleteDraft({\n editState,\n workspace,\n schemaType,\n })\n\n if (activeView.type === 'form' && !selectedReleaseId && displayedHasObsoleteDraft.result) {\n if (displayedHasObsoleteDraft.reason === 'DRAFT_MODEL_INACTIVE') {\n return (\n <ObsoleteDraftBanner\n displayed={displayed}\n documentId={documentId}\n schemaType={schemaType}\n i18nKey=\"banners.obsolete-draft.draft-model-inactive.text\"\n />\n )\n }\n\n if (displayedHasObsoleteDraft.reason === 'LIVE_EDIT_ACTIVE') {\n return (\n <ObsoleteDraftBanner\n displayed={displayed}\n documentId={documentId}\n schemaType={schemaType}\n i18nKey=\"banners.live-edit-draft-banner.text\"\n isEditBlocking\n />\n )\n }\n }\n\n if (activeView.type !== 'form' || isPermissionsLoading) return null\n const displayedIsDraft = displayed?._id && isDraftId(displayed._id)\n\n return (\n <>\n {selectedPerspective === 'drafts' && scheduledCardinalityOneRelease && displayedIsDraft && (\n <ScheduledDraftOverrideBanner\n releaseId={scheduledCardinalityOneRelease._id}\n draftDocument={displayed}\n />\n )}\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 archivedScheduledDraftRelease,\n selectedPerspective,\n displayed,\n selectedReleaseId,\n selectedPerspectiveName,\n editState,\n hasDocumentInRelease,\n ready,\n activeView.type,\n isPermissionsLoading,\n permissions?.granted,\n requiredPermission,\n documentId,\n value._id,\n schemaType,\n filteredReleases,\n workspace,\n isPausedDraft,\n targetDocumentState,\n ])\n const portalElements = useMemo(\n () => ({documentScrollElement: documentScrollElement}),\n [documentScrollElement],\n )\n const showFormView = features.resizablePanes || !showInspector\n return (\n <PaneContent>\n <Flex height=\"fill\">\n {showFormView && (\n <Flex height=\"fill\" direction=\"column\" flex={2}>\n <LegacyLayerProvider zOffset=\"paneHeader\">\n {banners}\n <DocumentPanelSubHeader />\n </LegacyLayerProvider>\n <DocumentBox flex={2}>\n <PortalProvider element={portalElement} __unstable_elements={portalElements}>\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","/**\n * Remove the spaces and lower case the string\n *\n * @param str - string to remove the spaces and lower case\n * @returns str with no spaces and lower case\n */\nexport function toLowerCaseNoSpaces(str: string | undefined): string {\n if (!str) return ''\n return str.toLocaleLowerCase().replaceAll(' ', '')\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {Box, Label, MenuDivider, Text} from '@sanity/ui'\nimport {type MouseEvent, useCallback} from 'react'\nimport {TooltipOfDisabled, useGetI18nText, useI18nText} from 'sanity'\nimport {useIntentLink} from 'sanity/router'\n\nimport {MenuGroup} from '../../../ui-components/menuGroup/MenuGroup'\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {type PopoverProps} from '../../../ui-components/popover/Popover'\nimport {type Intent} from '../../structureBuilder/Intent'\nimport {toLowerCaseNoSpaces} from '../../util/toLowerCaseNoSpaces'\nimport {type _PaneMenuItem, type _PaneMenuNode} from './types'\n\nconst MENU_GROUP_POPOVER_PROPS: PopoverProps = {\n constrainSize: true,\n placement: 'left-start',\n portal: true,\n}\n\nexport function PaneMenuButtonItem(props: {\n disabled?: boolean\n isAfterGroup: boolean\n node: _PaneMenuNode\n}) {\n const {disabled, isAfterGroup, node} = props\n const getI18nText = useGetI18nText('i18n' in node ? node : undefined)\n\n if (node.type === 'divider') {\n return <MenuDivider />\n }\n\n const {title} = getI18nText(node)\n\n if (node.type === 'group') {\n if (node.children.length === 0) {\n return null\n }\n\n if (node.expanded) {\n return (\n <>\n {isAfterGroup && <MenuDivider />}\n {title && (\n <Box padding={3} paddingBottom={2}>\n <Label size={1}>{title}</Label>\n </Box>\n )}\n {node.children.map((child, childIndex) => (\n <PaneMenuButtonItem\n key={child.key}\n disabled={disabled || Boolean(node.disabled)}\n isAfterGroup={node.children[childIndex - 1]?.type === 'group'}\n node={child}\n />\n ))}\n </>\n )\n }\n\n return (\n <>\n {isAfterGroup && <MenuDivider />}\n <MenuGroup\n disabled={disabled}\n icon={node.icon}\n popover={MENU_GROUP_POPOVER_PROPS}\n text={title}\n >\n {node.children.map((child, childIndex) => (\n <PaneMenuButtonItem\n key={child.key}\n disabled={disabled || Boolean(node.disabled)}\n isAfterGroup={node.children[childIndex - 1]?.type === 'group'}\n node={child}\n />\n ))}\n </MenuGroup>\n </>\n )\n }\n\n return (\n <>\n {isAfterGroup && <MenuDivider />}\n <PaneContextMenuItemResolver disabled={disabled} node={node} />\n </>\n )\n}\n\nfunction PaneContextMenuItemResolver(props: {disabled?: boolean; node: _PaneMenuItem}) {\n const {node} = props\n\n if (node.intent) {\n return <PaneContextIntentMenuItem {...props} intent={node.intent} />\n }\n\n return <PaneContextMenuItem {...props} />\n}\n\nfunction PaneContextMenuItem(props: {disabled?: boolean; node: _PaneMenuItem}) {\n const {disabled, node} = props\n const tooltipContent = typeof node.disabled === 'object' && (\n <Text size={1}>{node.disabled.reason}</Text>\n )\n const {title} = useI18nText(node)\n\n const showSelectionIndicator = node.selected && !node.hideSelectionIndicator\n\n return (\n <TooltipOfDisabled content={tooltipContent} placement=\"left\">\n <MenuItem\n disabled={disabled || Boolean(node.disabled)}\n hotkeys={node.hotkey?.split('+')}\n icon={node.icon}\n iconRight={node.iconRight || (showSelectionIndicator && CheckmarkIcon)}\n onClick={node.onAction}\n pressed={showSelectionIndicator}\n text={title}\n tone={node.tone}\n data-testid={`action-${toLowerCaseNoSpaces(node.title)}`}\n />\n </TooltipOfDisabled>\n )\n}\n\nfunction PaneContextIntentMenuItem(props: {\n disabled?: boolean\n intent: Intent\n node: _PaneMenuItem\n}) {\n const {disabled, intent, node} = props\n const tooltipContent = typeof node.disabled === 'object' && (\n <Text size={1}>{node.disabled.reason}</Text>\n )\n const intentLink = useIntentLink({intent: intent.type, params: intent.params})\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n intentLink.onClick(event)\n node.onAction()\n },\n [intentLink, node],\n )\n\n const {title} = useI18nText(node)\n\n const showSelectionIndicator = node.selected && !node.hideSelectionIndicator\n\n return (\n <TooltipOfDisabled content={tooltipContent} placement=\"left\">\n <MenuItem\n as=\"a\"\n disabled={disabled || Boolean(node.disabled)}\n hotkeys={node.hotkey?.split('+')}\n href={intentLink.href}\n icon={node.icon}\n iconRight={showSelectionIndicator ? CheckmarkIcon : undefined}\n onClick={handleClick}\n pressed={showSelectionIndicator}\n text={title}\n tone={node.tone}\n />\n </TooltipOfDisabled>\n )\n}\n","import {Menu, MenuDivider} from '@sanity/ui'\nimport {type ReactNode, useId} from 'react'\nimport {ContextMenuButton} from 'sanity'\n\nimport {MenuButton} from '../../../ui-components/menuButton/MenuButton'\nimport {type PopoverProps} from '../../../ui-components/popover/Popover'\nimport {PaneMenuButtonItem} from './PaneMenuButtonItem'\nimport {type _PaneMenuItem, type _PaneMenuNode} from './types'\n\ninterface PaneContextMenuButtonProps {\n nodes: _PaneMenuNode[]\n actionsNodes?: ReactNode\n}\n\nconst CONTEXT_MENU_POPOVER_PROPS: PopoverProps = {\n constrainSize: true,\n placement: 'bottom',\n portal: true,\n}\n\nfunction nodesHasTone(nodes: _PaneMenuNode[], tone: NonNullable<_PaneMenuItem['tone']>): boolean {\n return nodes.some((node) => {\n return (\n (node.type === 'item' && node.tone === tone) ||\n (node.type === 'group' && nodesHasTone(node.children, tone))\n )\n })\n}\n\n/**\n *\n * @hidden\n * @beta This API will change. DO NOT USE IN PRODUCTION.\n */\nexport function PaneContextMenuButton(props: PaneContextMenuButtonProps) {\n const {nodes, actionsNodes} = props\n const id = useId()\n\n const hasCritical = nodesHasTone(nodes, 'critical')\n const hasCaution = nodesHasTone(nodes, 'caution')\n\n return (\n <MenuButton\n button={\n <ContextMenuButton\n tone={hasCritical ? 'critical' : hasCaution ? 'caution' : undefined}\n data-testid=\"pane-context-menu-button\"\n />\n }\n id={id}\n menu={\n <Menu>\n {actionsNodes && (\n <>\n {actionsNodes}\n <MenuDivider />\n </>\n )}\n {nodes.map((node, nodeIndex) => {\n const isAfterGroup = nodes[nodeIndex - 1]?.type === 'group'\n return <PaneMenuButtonItem key={node.key} isAfterGroup={isAfterGroup} node={node} />\n })}\n </Menu>\n }\n popover={CONTEXT_MENU_POPOVER_PROPS}\n />\n )\n}\n","import {UnknownIcon} from '@sanity/icons/Unknown'\nimport {Menu} from '@sanity/ui'\nimport {type MouseEvent, useCallback, useId} from 'react'\nimport {StatusButton, useI18nText, useTranslation} from 'sanity'\nimport {useIntentLink} from 'sanity/router'\n\nimport {Button} from '../../../ui-components/button/Button'\nimport {MenuButton} from '../../../ui-components/menuButton/MenuButton'\nimport {type Intent} from '../../structureBuilder/Intent'\nimport {PaneMenuButtonItem} from './PaneMenuButtonItem'\nimport {type _PaneMenuGroup, type _PaneMenuItem} from './types'\n\nfunction getDisabledReason(node: _PaneMenuItem) {\n if (!node.disabled) {\n return {disabledReason: undefined, ariaLabel: undefined, isDisabled: false}\n }\n\n /**\n * This component supports receiving a `reason: string | react.ReactNode`.\n * We are casting it as string, to avoid the ts error, as content will be rendered into the tooltip which only accepts string, but it won't crash if it's a ReactNode.\n * For the aria label, we want to check if it's actually a string, to avoid generating an aria-label with the value `[object Object]`.\n */\n const disabledReason =\n typeof node.disabled === 'object' ? (node.disabled.reason as string) : undefined\n const ariaLabel =\n typeof node.disabled === 'object' && typeof node.disabled?.reason === 'string'\n ? node.disabled.reason\n : 'This is disabled'\n\n return {disabledReason, ariaLabel, isDisabled: Boolean(node.disabled)}\n}\nexport interface PaneHeaderActionButtonProps {\n node: _PaneMenuItem | _PaneMenuGroup\n}\n\nexport function PaneHeaderActionButton(props: PaneHeaderActionButtonProps) {\n const {node} = props\n\n if (node.type === 'item') {\n return <PaneHeaderMenuItemActionButton node={node} />\n }\n\n if (node.type === 'group') {\n return <PaneHeaderMenuGroupActionButton node={node} />\n }\n\n console.warn('unknown menu node (expected `type: \"item\" | \"group\"`):', node)\n\n return null\n}\n\nexport interface PaneHeaderMenuItemActionButtonProps {\n node: _PaneMenuItem\n}\n\nfunction PaneHeaderMenuItemActionButton(props: PaneHeaderMenuItemActionButtonProps) {\n const {node} = props\n const {title} = useI18nText(node)\n const {t} = useTranslation()\n\n if (node.intent) {\n return <PaneHeaderActionIntentButton {...props} intent={node.intent} />\n }\n\n const {disabledReason, ariaLabel, isDisabled} = getDisabledReason(node)\n\n return (\n <StatusButton\n disabled={isDisabled}\n icon={node.icon}\n onClick={node.onAction}\n selected={node.selected}\n tone={node.tone}\n aria-label={ariaLabel || title || t('status-button.aria-label')}\n tooltipProps={{\n hotkeys: !isDisabled && node.hotkey ? node.hotkey.split('+') : undefined,\n content: isDisabled ? disabledReason : title,\n }}\n />\n )\n}\n\nfunction PaneHeaderActionIntentButton(props: {intent: Intent; node: _PaneMenuItem}) {\n const {intent, node} = props\n const intentLink = useIntentLink({intent: intent.type, params: intent.params})\n const {t} = useTranslation()\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n intentLink.onClick(event)\n node.onAction()\n },\n [intentLink, node],\n )\n\n const {disabledReason, ariaLabel, isDisabled} = getDisabledReason(node)\n\n return (\n <StatusButton\n forwardedAs=\"a\"\n disabled={isDisabled}\n href={intentLink.href}\n icon={node.icon}\n onClick={handleClick}\n selected={node.selected}\n tone={node.tone}\n aria-label={ariaLabel || node.title || t('status-button.aria-label')}\n tooltipProps={{\n hotkeys: !isDisabled && node.hotkey ? node.hotkey.split('+') : undefined,\n content: isDisabled ? disabledReason : node.title,\n placement: 'bottom',\n portal: true,\n }}\n />\n )\n}\n\nexport interface PaneHeaderMenuGroupActionButtonProps {\n node: _PaneMenuGroup\n}\n\nfunction PaneHeaderMenuGroupActionButton(props: PaneHeaderMenuGroupActionButtonProps) {\n const {node} = props\n const {title} = useI18nText(node)\n\n return (\n <MenuButton\n button={\n <Button\n disabled={!!node.disabled}\n icon={node.icon ?? UnknownIcon}\n label={title}\n mode=\"bleed\"\n tooltipProps={{content: node.title, portal: true}}\n />\n }\n id={useId()}\n menu={\n <Menu>\n {node.children.map((child, idx) => {\n return (\n <PaneMenuButtonItem\n key={child.key}\n disabled={Boolean(node.disabled)}\n isAfterGroup={node.children[idx - 1]?.type === 'group'}\n node={child}\n />\n )\n })}\n </Menu>\n }\n />\n )\n}\n","import {memo, useContext} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDescription,\n type DocumentActionGroup,\n} from 'sanity'\nimport {DocumentActionsStateContext} from 'sanity/_singletons'\n\nexport interface ResolvedAction extends DocumentActionDescription {\n action?: DocumentActionComponent['action']\n}\n\n/** @internal */\nexport interface RenderActionCollectionProps {\n children: (props: {states: ResolvedAction[]}) => React.ReactNode\n group?: DocumentActionGroup\n}\n\n/** @internal */\nexport const RenderActionCollectionState = memo((props: RenderActionCollectionProps) => {\n const {children, group} = props\n const states = useContext(DocumentActionsStateContext)\n\n if (states === null) {\n throw new Error('DocumentActionsStateContext is not set. This should not happen.')\n }\n\n const filteredStates = group\n ? states.filter((state) => {\n const hookGroup = state.group || ['default']\n return hookGroup.includes(group)\n })\n : states\n\n return children({states: filteredStates})\n})\nRenderActionCollectionState.displayName = 'Memo(RenderActionCollectionState)'\n","import {RevertIcon} from '@sanity/icons/Revert'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionDialogProps,\n getPairTarget,\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// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useHistoryRestoreAction: DocumentActionComponent = ({id, type, revision}) => {\n const {revisionNotFound, targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, the action is disabled\n // below instead of silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const {restore} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\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 setConfirmDialogOpen(false)\n }, [restore, revision])\n\n const handleCancel = useCallback(() => {\n setConfirmDialogOpen(false)\n }, [])\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: handleCancel,\n onConfirm: handleConfirm,\n message: t('action.restore.confirm.message'),\n }\n }\n\n return null\n }, [handleConfirm, handleCancel, isConfirmDialogOpen, 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 || !isTargetReady,\n }\n }, [dialog, handle, isRevisionInitial, isRevisionLatest, isTargetReady, revisionNotFound, t])\n}\n\nuseHistoryRestoreAction.action = 'restore'\nuseHistoryRestoreAction.displayName = 'HistoryRestoreAction'\n","import negate from 'lodash-es/negate.js'\n\nimport {type _PaneMenuGroup, type _PaneMenuItem, type _PaneMenuNode} from './components/pane/types'\nimport {type DocumentFieldMenuActionNode, type PaneMenuItem, type PaneMenuItemGroup} from './types'\n\nexport function isMenuNodeButton(node: _PaneMenuNode): node is _PaneMenuItem | _PaneMenuGroup {\n return (node.type === 'item' || node.type === 'group') && node.renderAsButton\n}\n\nexport const isNotMenuNodeButton = negate(isMenuNodeButton)\n\nexport function resolveMenuNodes(params: {\n actionHandler: (item: PaneMenuItem) => void\n fieldActions?: DocumentFieldMenuActionNode[]\n menuItems: PaneMenuItem[]\n menuItemGroups: PaneMenuItemGroup[]\n}): _PaneMenuNode[] {\n const {fieldActions = [], menuItems, menuItemGroups} = params\n\n const nodes: _PaneMenuNode[] = []\n\n let keyOffset = 0\n\n for (let i = 0; i < fieldActions.length; i += 1) {\n const a = fieldActions[i]\n\n nodes.push(mapFieldActionToPaneMenuNode(a, `${i}-${a.type}`))\n }\n\n keyOffset += nodes.length\n\n const groups: _PaneMenuGroup[] = []\n\n for (const itemGroup of menuItemGroups) {\n const group = groups.find((g) => g.key === itemGroup.id)\n\n if (!group) {\n groups.push({\n type: 'group',\n key: itemGroup.id,\n\n children: [],\n expanded: true,\n renderAsButton: false,\n title: itemGroup.title,\n i18n: itemGroup.i18n,\n })\n }\n }\n\n const ungroupedItems: _PaneMenuItem[] = []\n\n for (let i = 0; i < menuItems.length; i += 1) {\n const item = menuItems[i]\n\n let group = item.group && groups.find((g) => g.key === item.group)\n const disabled = typeof item.disabled === 'string' ? {reason: item.disabled} : item.disabled\n\n if (item.group && !group) {\n group = {\n type: 'group',\n key: item.group,\n disabled,\n expanded: true,\n icon: item.icon,\n title: item.group,\n children: [],\n renderAsButton: false,\n }\n groups.push(group)\n }\n\n if (group) {\n group.children.push({\n type: 'item',\n key: `${keyOffset + i}-item`,\n\n hideSelectionIndicator: item.params?.hideSelectionIndicator === true,\n hotkey: item.shortcut,\n icon: item.icon,\n intent: item.intent,\n disabled,\n onAction: () => params.actionHandler(item),\n renderAsButton: item.showAsAction ?? false,\n selected: item.selected,\n title: item.title,\n i18n: item.i18n,\n tone: item.tone,\n })\n } else {\n ungroupedItems.push({\n type: 'item',\n key: `${keyOffset + i}-item`,\n\n hideSelectionIndicator: item.params?.hideSelectionIndicator === true,\n hotkey: item.shortcut,\n icon: item.icon,\n intent: item.intent,\n disabled,\n onAction: () => params.actionHandler(item),\n renderAsButton: item.showAsAction ?? false,\n selected: item.selected,\n title: item.title,\n i18n: item.i18n,\n tone: item.tone,\n })\n }\n }\n\n return [...ungroupedItems, ...groups, ...nodes]\n}\n\nfunction mapFieldActionToPaneMenuNode(a: DocumentFieldMenuActionNode, key: string): _PaneMenuNode {\n if (a.type === 'divider') {\n return {\n type: 'divider',\n key,\n }\n }\n\n if (a.type === 'group') {\n return {\n type: 'group',\n key,\n\n children: a.children.map((child, childIdx) =>\n mapFieldActionToPaneMenuNode(child, `${key}-${childIdx}-${child.type}`),\n ),\n disabled: a.disabled,\n expanded: a.expanded ?? true,\n icon: a.icon,\n title: a.title,\n i18n: a.i18n,\n renderAsButton: a.renderAsButton ?? false,\n }\n }\n\n return {\n type: 'item',\n key,\n intent: a.intent,\n disabled: a.disabled,\n icon: a.icon,\n iconRight: a.iconRight,\n onAction: a.onAction,\n renderAsButton: a.renderAsButton ?? false,\n selected: a.selected,\n title: a.title,\n i18n: a.i18n,\n tone: a.tone,\n }\n}\n","import {type Placement} from '@sanity/ui'\n\nimport {type DialogProps} from '../../../../../ui-components/dialog/Dialog'\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 {type DocumentActionConfirmDialogProps, useTranslation} from 'sanity'\n\nimport {ConfirmPopover} from '../../../../../ui-components/confirmPopover/ConfirmPopover'\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 const {t} = useTranslation(structureLocaleNamespace)\n\n const {\n cancelButtonIcon,\n cancelButtonText,\n confirmButtonIcon,\n confirmButtonText,\n message,\n onCancel,\n onConfirm,\n tone,\n } = dialog\n\n return (\n <ConfirmPopover\n cancelButtonIcon={cancelButtonIcon}\n cancelButtonText={cancelButtonText || t('confirm-dialog.cancel-button.fallback-text')}\n confirmButtonIcon={confirmButtonIcon}\n confirmButtonText={confirmButtonText || t('confirm-dialog.confirm-button.fallback-text')}\n message={message}\n onCancel={onCancel}\n onConfirm={onConfirm}\n open\n referenceElement={referenceElement}\n tone={tone}\n placement=\"top\"\n fallbackPlacements={POPOVER_FALLBACK_PLACEMENTS}\n />\n )\n}\n","import {\n Box,\n Dialog, // oxlint-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 onClose={dialog.onClose}\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, // oxlint-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/dialog/Dialog'\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 console.warn(`Unsupported modal type ${unknownModal.type}`)\n\n return (\n <Dialog\n id={modalId}\n onClose={unknownModal.onClose}\n onClickOutside={unknownModal.onClose}\n width={1}\n >\n {unknownModal.content || (\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} from '../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../ui-components/menuItem/MenuItem'\nimport {type PopoverProps} from '../../../../ui-components/popover/Popover'\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 // oxlint-disable-next-line no-array-index-key\n key={idx}\n actionState={actionState}\n disabled={disabled}\n index={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 {defineEvent} from '@sanity/telemetry'\n\n/**\n * @internal\n */\nexport const DocumentURLCopied = defineEvent({\n name: 'Document URL Copied',\n version: 1,\n description: 'User copied document URL to clipboard',\n})\n\n/**\n * @internal\n */\nexport const DocumentIDCopied = defineEvent({\n name: 'Document ID Copied',\n version: 1,\n description: 'User copied document ID to clipboard',\n})\n\n/**\n * @internal\n */\nexport const InlineChangesSwitchedOn = defineEvent({\n name: 'Inline Changes Switched On',\n version: 1,\n description: 'User switched on display of inline changes',\n})\n\n/**\n * @internal\n */\nexport const InlineChangesSwitchedOff = defineEvent({\n name: 'Inline Changes Switched Off',\n version: 1,\n description: 'User switched off display of inline changes',\n})\n","import {LinkIcon} from '@sanity/icons/Link'\nimport {ShareIcon} from '@sanity/icons/Share'\nimport {TargetIcon} from '@sanity/icons/Target'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Menu, useToast} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {\n getDraftId,\n getVersionId,\n isNewDocument,\n isVersionId,\n useDocumentVersions,\n usePerspective,\n useStudioUrl,\n useTargetDocumentState,\n useTranslation,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../../../ui-components/menuItem/MenuItem'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {DocumentIDCopied, DocumentURLCopied} from '../../__telemetry__/documentPanes.telemetry'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {useDocumentPaneInfo} from '../../useDocumentPaneInfo'\n\n/**\n * Renders a dropdown button in the document panel header with two actions:\n * - Copy link to document (perspective-aware URL)\n * - Copy document ID (prefixed for versions/drafts, plain for published and live edit types)\n *\n * @internal\n */\nexport function CopyDocumentActions() {\n const {documentId, documentType, schemaType} = useDocumentPaneInfo()\n const {editState} = useDocumentPane()\n const targetDocumentState = useTargetDocumentState(documentId)\n const {data: existingDocumentIds, loading: documentVersionsLoading} = useDocumentVersions({\n documentId,\n })\n const {selectedReleaseId, selectedPerspectiveName} = usePerspective()\n const {params} = usePaneRouter()\n const {resolveIntentLink} = useRouter()\n const {buildIntentUrl} = useStudioUrl()\n const {t} = useTranslation(structureLocaleNamespace)\n const telemetry = useTelemetry()\n const {push: pushToast} = useToast()\n\n const scheduledDraft = params?.scheduledDraft\n\n const contextAwareDocumentId = useMemo(() => {\n const versionReleaseId = scheduledDraft || selectedReleaseId\n if (versionReleaseId) {\n return getVersionId(documentId, versionReleaseId)\n }\n\n if (selectedPerspectiveName === 'published' || schemaType?.liveEdit) {\n return documentId\n }\n\n return getDraftId(documentId)\n }, [documentId, scheduledDraft, schemaType?.liveEdit, selectedPerspectiveName, selectedReleaseId])\n\n const selectedVariantMissing =\n targetDocumentState.status === 'variant-missing' ||\n targetDocumentState.status === 'variant-definition-document-not-found'\n\n const existenceCheckReady = Boolean(editState?.ready) && !documentVersionsLoading\n\n const copiedVersionMissing =\n existenceCheckReady &&\n isVersionId(contextAwareDocumentId) &&\n !isNewDocument(editState) &&\n !existingDocumentIds.includes(contextAwareDocumentId)\n\n const documentExists = !selectedVariantMissing && !copiedVersionMissing\n\n const handleCopyLink = useCallback(async () => {\n telemetry.log(DocumentURLCopied)\n\n const searchParams: [string, string][] =\n selectedReleaseId && !scheduledDraft ? [['perspective', selectedReleaseId]] : []\n\n const intentParams = {\n id: documentId,\n type: documentType,\n ...(scheduledDraft && {scheduledDraft}),\n }\n\n const intentLink = resolveIntentLink('edit', intentParams, searchParams)\n const copyUrl = buildIntentUrl(intentLink)\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 }, [\n buildIntentUrl,\n documentId,\n documentType,\n pushToast,\n resolveIntentLink,\n scheduledDraft,\n selectedReleaseId,\n t,\n telemetry,\n ])\n\n const handleCopyId = useCallback(async () => {\n telemetry.log(DocumentIDCopied)\n await navigator.clipboard.writeText(contextAwareDocumentId)\n pushToast({\n id: 'copy-document-id',\n status: 'info',\n title: t('panes.document-operation-results.operation-success_copy-id'),\n })\n }, [contextAwareDocumentId, pushToast, t, telemetry])\n\n if (!documentExists) {\n return null\n }\n\n return (\n <MenuButton\n id=\"copy-document-actions\"\n button={\n <Button\n icon={ShareIcon}\n mode=\"bleed\"\n tooltipProps={{content: t('action.copy-document-url.label')}}\n data-testid=\"copy-document-actions-button\"\n />\n }\n menu={\n <Menu>\n <MenuItem\n icon={LinkIcon}\n onClick={handleCopyLink}\n text={t('action.copy-link-to-document.label')}\n data-testid=\"copy-link-to-document\"\n />\n <MenuItem\n icon={TargetIcon}\n onClick={handleCopyId}\n text={t('action.copy-document-id.label')}\n data-testid=\"copy-document-id\"\n />\n </Menu>\n }\n popover={{portal: true, placement: 'bottom-end'}}\n />\n )\n}\n","import {defineEvent} from '@sanity/telemetry'\n\nexport const DocumentGroupInventoryHintPressed = defineEvent({\n version: 1,\n name: 'Document Group Inventory Hint Pressed',\n description: 'User opened the document group inventory by pressing the onboarding hint.',\n})\n","import {combineLatest, from, map, type Observable, tap} from 'rxjs'\n\nexport interface Storage {\n readCount: () => Promise<number>\n writeCount: (value: number) => Promise<void>\n readHasDisplayed: () => Promise<boolean>\n writeHasDisplayed: (value: boolean) => Promise<void>\n}\n\nexport type HintStatus = 'inactive' | 'active'\n\nconst STORAGE_NAMESPACE = ['studio', 'document-group-inventory', 'hint']\nconst COUNT_KEY = ['session-count']\nconst DISPLAYED_KEY = ['has-displayed']\n\n/**\n * The number of sessions the hint is visible for.\n */\nconst SESSION_LIMIT = 3\n\n/**\n * Special count value that indicates the hint has been intentionally\n * suppressed.\n */\nconst SUPPRESSED_COUNT = -1\n\nexport const browserStorageAdapter: Storage = {\n readCount: async () => {\n const item = localStorage.getItem(storageKey(COUNT_KEY))\n\n if (item === null) {\n return 0\n }\n\n let parsedItem\n\n try {\n parsedItem = JSON.parse(item)\n } catch {\n console.warn('Failed to parse:', item)\n return 0\n }\n\n if (typeof parsedItem === 'number') {\n return parsedItem\n }\n\n return 0\n },\n writeCount: async (value) => {\n localStorage.setItem(storageKey(COUNT_KEY), JSON.stringify(value))\n },\n readHasDisplayed: async () => {\n const item = sessionStorage.getItem(storageKey(DISPLAYED_KEY))\n\n if (item === null) {\n return false\n }\n\n let parsedItem\n\n try {\n parsedItem = JSON.parse(item)\n } catch {\n console.warn('Failed to parse:', item)\n return false\n }\n\n if (typeof parsedItem !== 'boolean') {\n return false\n }\n\n return parsedItem\n },\n writeHasDisplayed: async (value) => {\n sessionStorage.setItem(storageKey(DISPLAYED_KEY), JSON.stringify(value))\n },\n}\n\nexport function hintStatus({\n readCount,\n writeCount,\n readHasDisplayed,\n writeHasDisplayed,\n}: Storage): Observable<HintStatus> {\n return from(combineLatest([readCount(), readHasDisplayed()])).pipe(\n map(\n ([count, hasDisplayed]) =>\n [count, sessionCountToStatus(count), hasDisplayed] satisfies [number, HintStatus, boolean],\n ),\n tap(async ([value, status, hasDisplayed]) => {\n if (status === 'active' && !hasDisplayed) {\n await Promise.all([writeCount(value + 1), writeHasDisplayed(true)])\n }\n }),\n map(([, status]) => status),\n )\n}\n\nexport function suppressHint({writeCount}: Storage): Promise<void> {\n return writeCount(SUPPRESSED_COUNT)\n}\n\nfunction storageKey(path: string[]): string {\n return STORAGE_NAMESPACE.concat(path).join('.')\n}\n\nexport function sessionCountToStatus(sessionCount: number): HintStatus {\n if (sessionCount === SUPPRESSED_COUNT) {\n return 'inactive'\n }\n\n if (sessionCount > SESSION_LIMIT) {\n return 'inactive'\n }\n\n return 'active'\n}\n","import {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Flex, Text} from '@sanity/ui'\nimport {useMemo, type ComponentType} from 'react'\nimport {useObservable} from 'react-rx'\nimport {useTranslation} from 'sanity'\nimport {styled, css} from 'styled-components'\n\nimport {structureLocaleNamespace} from '../../../../../i18n'\nimport {useDocumentPane} from '../../../useDocumentPane'\nimport {DocumentGroupInventoryHintPressed} from '../__telemetry__/documentGroupInventoryHint.telemetry'\nimport {browserStorageAdapter, hintStatus, suppressHint} from './hintStatus'\n\nexport const DocumentGroupInventoryHint: ComponentType = () => {\n const {t} = useTranslation(structureLocaleNamespace)\n const {setIsDocumentGroupInventoryActive} = useDocumentPane()\n const telemetry = useTelemetry()\n const status = useObservable(useMemo(() => hintStatus(browserStorageAdapter), []))\n\n if (status === 'inactive') {\n return null\n }\n\n return (\n <TextButton\n onClick={async () => {\n telemetry.log(DocumentGroupInventoryHintPressed)\n setIsDocumentGroupInventoryActive(true)\n await suppressHint(browserStorageAdapter)\n }}\n >\n <Text size={1} weight=\"medium\">\n <Flex gap={2} align=\"center\" flex=\"none\" justify=\"flex-end\">\n <InfoOutlineIcon /> {t('document-group-inventory.onboarding-hint')}\n </Flex>\n </Text>\n </TextButton>\n )\n}\n\nconst TextButton = styled.button(({theme}) => {\n return css`\n display: inline-block;\n vertical-align: middle;\n appearance: none;\n border: 0;\n margin: 0;\n padding: 0;\n outline: none;\n all: unset;\n flex: none;\n white-space: nowrap;\n color: var(--card-badge-suggest-fg-color);\n cursor: pointer;\n\n * {\n color: inherit;\n }\n\n svg[data-sanity-icon] {\n color: currentColor;\n }\n `\n})\n","import {Card, Flex, Text, type BadgeTone} from '@sanity/ui'\nimport {\n forwardRef,\n type ForwardRefExoticComponent,\n memo,\n type RefAttributes,\n type SVGProps,\n} from 'react'\nimport {\n getReleaseTone,\n getVariantTitle,\n isDraftPerspective,\n isPublishedPerspective,\n isReleaseDocument,\n ReleaseTitle,\n usePerspective,\n useTranslation,\n type SystemVariant,\n type TargetPerspective,\n ReleaseAvatarIcon,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {useDocumentPane} from '../../useDocumentPane'\n\n/**\n * TODO: Replace by the RhombusIcon from @sanity/icons once available.\n */\nconst RhombusIcon: ForwardRefExoticComponent<\n Omit<SVGProps<SVGSVGElement>, 'ref'> & RefAttributes<SVGSVGElement>\n> = forwardRef(function RhombusIcon(props, ref) {\n return (\n <svg\n data-sanity-icon=\"rhombus\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n ref={ref}\n >\n <path\n d=\"M10.5 3.78L17.22 10.5L10.5 17.22L3.78 10.5L10.5 3.78Z\"\n stroke=\"currentColor\"\n strokeWidth={1.2}\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n})\n\nconst TargetBadge = styled(Card)`\n display: inline-flex;\n align-items: center;\n flex: none;\n`\nconst BadgeContainer = styled(Flex)`\n user-select: none;\n flex: none;\n`\n\nfunction getPerspectiveBadgeTone(selectedPerspective: TargetPerspective): BadgeTone {\n if (isDraftPerspective(selectedPerspective)) {\n return 'caution'\n }\n\n return getReleaseTone(selectedPerspective)\n}\n\nconst PerspectiveBadgeLabel = memo(function PerspectiveBadgeLabel({\n selectedPerspective,\n}: {\n selectedPerspective: TargetPerspective\n}) {\n const {t} = useTranslation()\n\n if (isPublishedPerspective(selectedPerspective) || isDraftPerspective(selectedPerspective)) {\n return (\n <BadgeContainer padding={2}>\n <Text size={1} weight=\"medium\">\n {isPublishedPerspective(selectedPerspective)\n ? t('release.chip.published')\n : t('release.chip.global.drafts')}\n </Text>\n </BadgeContainer>\n )\n }\n\n if (isReleaseDocument(selectedPerspective)) {\n return (\n <BadgeContainer gap={2} paddingY={1} paddingRight={2} align=\"center\">\n <ReleaseAvatarIcon release={selectedPerspective} />\n\n <ReleaseTitle\n title={selectedPerspective.metadata?.title}\n fallback={t('release.placeholder-untitled-release')}\n enableTooltip={false}\n textProps={{size: 1, weight: 'medium'}}\n />\n </BadgeContainer>\n )\n }\n\n return (\n <BadgeContainer padding={2}>\n <Text size={1} textOverflow=\"ellipsis\" weight=\"medium\">\n {t('version.agent-bundle.proposed-changes')}\n </Text>\n </BadgeContainer>\n )\n})\n\nconst VariantBadgeLabel = memo(function VariantBadgeLabel({variant}: {variant: SystemVariant}) {\n return (\n <BadgeContainer padding={2}>\n <Flex align=\"center\" gap={2}>\n <Text size={0}>\n <RhombusIcon />\n </Text>\n <Text size={1} weight=\"medium\">\n {getVariantTitle(variant)}\n </Text>\n </Flex>\n </BadgeContainer>\n )\n})\n\nexport const DocumentTargetBadges = memo(function DocumentTargetBadges() {\n const {targetDocumentState} = useDocumentPane()\n const {selectedPerspective} = usePerspective()\n\n const isInCurrentTarget =\n targetDocumentState.status === 'ready' && Boolean(targetDocumentState.targetDocument)\n\n if (!isInCurrentTarget) {\n return null\n }\n\n const selectedVariant =\n targetDocumentState.status === 'ready' ? targetDocumentState.variant : undefined\n\n return (\n <Flex align=\"center\" flex=\"none\" gap={2} paddingRight={1}>\n <TargetBadge\n tone={getPerspectiveBadgeTone(selectedPerspective)}\n border\n radius={4}\n data-ui=\"DocumentTargetPerspectiveBadge\"\n >\n <PerspectiveBadgeLabel selectedPerspective={selectedPerspective} />\n </TargetBadge>\n {selectedVariant ? (\n <TargetBadge tone=\"suggest\" border radius={4} data-ui=\"DocumentTargetVariantBadge\">\n <VariantBadgeLabel variant={selectedVariant} />\n </TargetBadge>\n ) : null}\n </Flex>\n )\n})\n","import {useEffect, useState} from 'react'\n\n/**\n * This hook is used to determine if the gradient should be shown on the chip scroll container.\n * It uses an IntersectionObserver to observe the last child of the container and sets the showGradient state based on the intersection.\n * @param containerRef - The ref to the container that contains all the chips\n * @returns showGradient - A boolean that determines if the gradient should be shown\n * @internal\n */\nexport function useChipScrollPosition(containerRef: React.RefObject<HTMLDivElement | null>) {\n const [showGradient, setShowGradient] = useState(false)\n\n useEffect(() => {\n const checkOverflow = () => {\n // container is the parent that contains all the chips\n const container = containerRef.current\n if (!container) return\n const {scrollWidth, clientWidth} = container\n const needsScrolling = scrollWidth > clientWidth\n\n if (!needsScrolling) {\n setShowGradient(false)\n return\n }\n\n // Check if scrolled to the end\n // becausee it doesn't need to show the gradient then\n const {scrollLeft} = container\n const isAtEnd = scrollLeft + clientWidth >= scrollWidth\n setShowGradient(!isAtEnd)\n }\n\n function setupObservers() {\n checkOverflow()\n // container is the parent that contains all the chips\n const container = containerRef.current\n if (!container) return {intersectionObserver: null, mutationObserver: null}\n\n const intersectionObserver = new IntersectionObserver((entries) => {\n const entry = entries[0]\n\n if (entry) {\n setShowGradient(!entry.isIntersecting)\n }\n })\n\n const updateLastChipObserver = () => {\n // Disconnect previous observation\n intersectionObserver.disconnect()\n\n // Get the new last child\n const lastChip = container.children[container.children.length - 1]\n intersectionObserver.observe(lastChip)\n }\n\n // Set up initial observation\n updateLastChipObserver()\n\n // Set up mutation observer to watch for changes to children\n // this is needed because sometimes the list of releases takes some time to be rendered\n // otherwise it could accidentally set the last child as the \"drafts\" / \"published\" chip\n const mutationObserver = new MutationObserver(() => {\n updateLastChipObserver()\n checkOverflow()\n })\n\n mutationObserver.observe(container, {\n childList: true,\n subtree: false,\n })\n\n return {intersectionObserver, mutationObserver}\n }\n\n const {intersectionObserver, mutationObserver} = setupObservers()\n\n return () => {\n intersectionObserver?.disconnect()\n mutationObserver?.disconnect()\n }\n }, [containerRef])\n\n return showGradient\n}\n","import {useCallback, useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n isCardinalityOneRelease,\n isReleaseDocument,\n type TargetPerspective,\n useGetDefaultPerspective,\n useSetPerspective,\n useSingleDocRelease,\n} from 'sanity'\n\nimport {usePaneRouter} from '../components/paneRouter/usePaneRouter'\n\ninterface PerspectiveNavigator {\n /**\n * Navigate to the provided perspective.\n */\n navigate: (perspective: TargetPerspective) => void\n}\n\n/**\n * Navigate between perspectives.\n * Must be used within a pane context.\n *\n * @internal\n */\nexport function usePerspectiveNavigator(): PerspectiveNavigator {\n const setPerspective = useSetPerspective()\n const {params, setParams} = usePaneRouter()\n const defaultPerspective = useGetDefaultPerspective()\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n\n const navigate = useCallback(\n (perspective: TargetPerspective) => {\n if (isReleaseDocument(perspective) && isCardinalityOneRelease(perspective)) {\n onSetScheduledDraftPerspective(getReleaseIdFromReleaseDocumentId(perspective._id))\n return\n }\n\n if (perspective === 'published' && params?.historyVersion) {\n setParams({\n ...params,\n rev: params?.historyEvent || undefined,\n since: undefined,\n historyVersion: undefined,\n })\n }\n\n const newPerspective = isReleaseDocument(perspective)\n ? getReleaseIdFromReleaseDocumentId(perspective._id)\n : perspective === defaultPerspective\n ? ''\n : perspective\n\n if (params?.scheduledDraft) {\n setParams(\n {...params, scheduledDraft: undefined},\n // If we have a scheduled draft perspective, then we need to remove that one and set the new perspective.\n // We cannot do it in two passes, for example first set the paneParam and the use the `setPerspective`\n // because we will have a race condition in where the last state wins, but the last state won't have the previous change.\n // So we change the params and perspective in the same call.\n {perspective: newPerspective},\n )\n\n return\n }\n\n setPerspective(newPerspective)\n },\n [setPerspective, setParams, params, defaultPerspective, onSetScheduledDraftPerspective],\n )\n\n return useMemo(() => ({navigate}), [navigate])\n}\n","import {type BadgeTone} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {\n getReleaseIdFromReleaseDocumentId,\n getVariantTitle,\n getVersionFromId,\n isDraftId,\n isGoingToUnpublish,\n isPublishedId,\n isPublishedPerspective,\n isVersionId,\n type TargetPerspective,\n useAgentVersionDisplay,\n useDocumentVersions,\n useFilteredReleases,\n usePerspective,\n useSchema,\n useSetPerspective,\n useSingleDocRelease,\n useWorkspace,\n useAllVariants,\n type VersionInfoDocumentStub,\n useSetVariant,\n getTargetDocument,\n} from 'sanity'\n\nimport {isLiveEditEnabled} from '../components/paneItem/helpers'\nimport {usePaneRouter} from '../components/paneRouter/usePaneRouter'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\nimport {useDocumentPaneInfo} from '../panes/document/useDocumentPaneInfo'\nimport {usePerspectiveNavigator} from './usePerspectiveNavigator'\n\ninterface DocumentPerspectiveList {\n /** Releases relevant to the displayed document, grouped by relevance. */\n filteredReleases: ReturnType<typeof useFilteredReleases>\n /**\n * Returns display overrides for a version document ID if it's the current\n * user's agent bundle, or `null` for all other versions.\n */\n getVersionDisplay: (version: VersionInfoDocumentStub) => {\n displayName: string\n tone: BadgeTone\n } | null\n /** Returns the chip selection/disabled state for a given release id. */\n getReleaseChipState: (releaseId: string) => {selected: boolean; disabled?: boolean}\n /** Navigates to the draft perspective after copying a version to drafts. */\n handleCopyToDraftsNavigate: () => void\n /** Navigates to the given perspective. */\n handlePerspectiveChange: (perspective: TargetPerspective) => void\n isDraftDisabled: boolean\n isDraftModelEnabled: boolean | undefined\n isDraftSelected: boolean\n isLiveEdit: boolean\n isPublishedChipDisabled: boolean\n isPublishSelected: boolean\n /** Versions that don't belong to a release (excluding drafts and published). */\n nonReleaseVersions: VersionInfoDocumentStub[]\n /** Versions that belong to a variant. */\n variantVersions: VersionInfoDocumentStub[]\n /** Handles the selection of a variant. */\n handleVariantSelectionChange: (version: VersionInfoDocumentStub) => void\n /** Display props for the currently selected variant in the active bundle, if any. */\n selectedVariantDisplay: {displayName: string; tone: BadgeTone} | null\n}\n\n/**\n * Derives the state needed to render the list of perspectives (published,\n * draft, releases and other versions) for the document in the current pane:\n * chip selection/disabled states and navigation handlers.\n *\n * Must be used within a document pane, as it relies on `useDocumentPane` and\n * `usePaneRouter`.\n *\n * @internal\n */\nexport function useDocumentPerspectiveList(): DocumentPerspectiveList {\n const {selectedReleaseId, selectedPerspectiveName, selectedVariant, bundle} = usePerspective()\n const setPerspective = useSetPerspective()\n const {params} = usePaneRouter()\n const schema = useSchema()\n const {editState, displayed} = useDocumentPane()\n const {documentType, documentId} = useDocumentPaneInfo()\n const isCreatingDocument = displayed && !displayed._createdAt\n const filteredReleases = useFilteredReleases({\n historyVersion: params?.historyVersion,\n displayed,\n documentId,\n })\n const {byId: variants} = useAllVariants()\n\n const {versions: documentVersions, data: documentVersionsIds} = useDocumentVersions({documentId})\n\n const onlyHasVersions =\n documentVersionsIds.length > 0 &&\n !documentVersionsIds.some((versionId) => !isVersionId(versionId))\n\n const workspace = useWorkspace()\n const {onSetScheduledDraftPerspective} = useSingleDocRelease()\n\n const handleCopyToDraftsNavigate = useCallback(() => {\n // after copying to draft, we want to navigate to the draft version\n if (params?.scheduledDraft) {\n // if currently viewing a scheduled draft, remove the scheduled draft perspective\n // the global perspective is already set to drafts\n onSetScheduledDraftPerspective('')\n } else {\n // otherwise, only need to set the global perspective to drafts\n setPerspective('drafts')\n }\n }, [params, setPerspective, onSetScheduledDraftPerspective])\n\n const {navigate: handlePerspectiveChange} = usePerspectiveNavigator()\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 (releaseId: string): {selected: boolean; disabled?: boolean} => {\n if (!params?.historyVersion) {\n const isCurrentVersionGoingToUnpublish =\n editState?.version &&\n isGoingToUnpublish(editState?.version) &&\n releaseId === getVersionFromId(editState?.version?._id)\n\n return {\n selected: Boolean(\n releaseId === getVersionFromId(displayed?._id || '') ||\n isCurrentVersionGoingToUnpublish,\n ),\n }\n }\n\n const isReleaseHistoryMatch = releaseId === params.historyVersion\n\n return {selected: isReleaseHistoryMatch, disabled: isReleaseHistoryMatch}\n },\n [params, editState?.version, displayed?._id],\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 const isDraftModelEnabled = workspace.document.drafts?.enabled\n\n const {filteredVersionIds, getVersionDisplay: getAgentVersionDisplay} = useAgentVersionDisplay(\n documentVersionsIds,\n selectedPerspectiveName,\n )\n const filteredVersions = useMemo(\n () => documentVersions.filter((version) => filteredVersionIds.includes(version._id)),\n [documentVersions, filteredVersionIds],\n )\n const getVersionDisplay = useCallback(\n (version: VersionInfoDocumentStub) => {\n const isVariantVersion = Boolean(version._system.variant)\n if (!isVariantVersion) {\n return getAgentVersionDisplay(version._id)\n }\n const variantId = version._system.variant?._ref\n const variant = variantId ? variants.get(variantId) : undefined\n const variantTitle = variant ? getVariantTitle(variant) : (variantId ?? '')\n return {\n displayName: `${variantTitle} [${version._system.bundleId || 'published'}]`,\n tone: version._system.bundleId ? ('caution' as const) : ('positive' as const),\n }\n },\n [getAgentVersionDisplay, variants],\n )\n\n const nonReleaseVersions = useMemo(\n () =>\n filteredVersions.filter((version) => {\n if (isPublishedId(version._id) || isDraftId(version._id)) {\n return false\n }\n const hasRelease = Boolean(version._system.release)\n const hasVariant = Boolean(version._system.variant)\n return !hasRelease && !hasVariant\n }),\n [filteredVersions],\n )\n\n const variantVersions = useMemo(\n () => filteredVersions.filter((version) => Boolean(version._system.variant)),\n [filteredVersions],\n )\n const setVariant = useSetVariant()\n const handleVariantSelectionChange = useCallback(\n (version: VersionInfoDocumentStub) => {\n const variantId = version._system.variant?._ref\n const variant = variantId ? variants.get(variantId) : undefined\n // Published version documents omit `bundleId`, so treat a missing bundle as published.\n // Passing the perspective alongside the variant updates both sticky params atomically.\n const versionBundle = version._system.bundleId\n const perspective = !versionBundle ? 'published' : versionBundle\n setVariant({variantId: variant?._id, perspective})\n },\n [setVariant, variants],\n )\n\n // Temporarily display the selected variant in the header; this will be replaced by the inventory.\n const selectedVariantDisplay = useMemo(() => {\n if (!selectedVariant) {\n return null\n }\n\n const targetVariantDocument = getTargetDocument({\n bundle,\n variant: selectedVariant._id,\n documentVersions,\n })\n\n if (targetVariantDocument) {\n return getVersionDisplay(targetVariantDocument)\n }\n return null\n }, [selectedVariant, bundle, documentVersions, getVersionDisplay])\n\n return {\n filteredReleases,\n getVersionDisplay,\n getReleaseChipState,\n handleCopyToDraftsNavigate,\n handlePerspectiveChange,\n isDraftDisabled,\n isDraftModelEnabled,\n isDraftSelected,\n isLiveEdit,\n isPublishedChipDisabled,\n isPublishSelected,\n nonReleaseVersions,\n variantVersions,\n handleVariantSelectionChange,\n selectedVariantDisplay,\n }\n}\n","import {type ReleaseDocument} from '@sanity/client'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {ChevronUpIcon} from '@sanity/icons/ChevronUp'\nimport {Container, Flex, useClickOutsideEvent} from '@sanity/ui'\nimport {useMemo, useRef, useState} from 'react'\nimport {\n type VersionInfoDocumentStub,\n Chip,\n getPublishedId,\n getVersionFromId,\n type AgentVersionDisplay,\n useTranslation,\n VersionChip,\n} from 'sanity'\n\nimport {Popover} from '../../../../../ui-components/popover/Popover'\nimport {Tooltip} from '../../../../../ui-components/tooltip/Tooltip'\n\nexport function NonReleaseVersionsSelect(props: {\n nonReleaseVersions: VersionInfoDocumentStub[]\n selectedPerspective?: string\n onSelectBundle: (version: VersionInfoDocumentStub) => void\n onCopyToDraftsNavigate: () => void\n releases: ReleaseDocument[]\n releasesLoading: boolean\n documentType: string\n getVersionDisplay: (version: VersionInfoDocumentStub) => AgentVersionDisplay | null\n mode: 'versions' | 'variants'\n}) {\n const {\n nonReleaseVersions,\n selectedPerspective,\n onSelectBundle,\n onCopyToDraftsNavigate,\n documentType,\n getVersionDisplay,\n releasesLoading,\n releases,\n mode,\n } = props\n const {t} = useTranslation()\n const [nonReleaseDropdownOpen, setNonReleaseDropdownOpen] = useState(false)\n const [popoverReferenceElement, setPopoverReferenceElement] = useState<HTMLElement | null>(null)\n\n const [selectedNonReleaseVersion, otherNonReleaseVersions] = useMemo(() => {\n return extract(nonReleaseVersions, (v) => getVersionFromId(v._id) === selectedPerspective)\n }, [selectedPerspective, nonReleaseVersions])\n\n const popoverRef = useRef(null)\n\n useClickOutsideEvent(\n (event) => {\n if (event.target && 'matches' in event.target && typeof event.target.matches === 'function') {\n // note: this is an (ugly) workaround for useClickOutside not working through portals (as its based on elements.contains())\n // do not close dropdown if click happens in a portal\n // note: this *can* cause false positives if the user clicks outside any other portal\n // element on the page and expects the dropdown to close\n const isPortal = (event.target as {matches: HTMLElement['matches']}).matches(\n '[data-portal] *',\n )\n if (!isPortal) {\n setNonReleaseDropdownOpen(false)\n }\n } else {\n setNonReleaseDropdownOpen(false)\n }\n },\n () => [popoverRef.current],\n )\n\n if (nonReleaseVersions.length === 0) {\n return null\n }\n\n return (\n <>\n {selectedNonReleaseVersion &&\n (() => {\n const bundleId = getVersionFromId(selectedNonReleaseVersion._id)!\n const versionDisplay = getVersionDisplay(selectedNonReleaseVersion)\n return (\n <VersionChip\n key={selectedNonReleaseVersion._id}\n selected\n text={versionDisplay?.displayName ?? bundleId}\n tone={versionDisplay?.tone ?? 'default'}\n onClick={() => onSelectBundle(selectedNonReleaseVersion)}\n onCopyToDraftsNavigate={onCopyToDraftsNavigate}\n contextValues={{\n documentId: getPublishedId(selectedNonReleaseVersion._id),\n releases,\n releasesLoading: releasesLoading,\n documentType: documentType,\n bundleId: bundleId,\n isVersion: true,\n }}\n />\n )\n })()}\n {otherNonReleaseVersions.length > 0 ? (\n <Tooltip\n content={t(`release.chip.tooltip.other-${mode}`, {\n count: otherNonReleaseVersions.length,\n })}\n fallbackPlacements={[]}\n portal\n placement={nonReleaseDropdownOpen ? 'top' : 'bottom'}\n >\n <Chip\n mode=\"bleed\"\n fontSize={1}\n muted\n selected={nonReleaseDropdownOpen}\n iconRight={nonReleaseDropdownOpen ? ChevronUpIcon : ChevronDownIcon}\n ref={setPopoverReferenceElement}\n onClick={() => setNonReleaseDropdownOpen((v) => !v)}\n text={t(`release.chip.button.other-${mode}`, {count: otherNonReleaseVersions.length})}\n />\n </Tooltip>\n ) : null}\n\n <Popover\n animate={false}\n open={nonReleaseDropdownOpen}\n portal\n arrow\n ref={popoverRef}\n placement=\"bottom\"\n referenceElement={popoverReferenceElement}\n zOffset={10}\n content={\n <Container width={1}>\n <Flex padding={3} gap={2} wrap=\"wrap\">\n {otherNonReleaseVersions.map((nonReleaseVersion) => {\n const scopeId = nonReleaseVersion._system.scopeId!\n const selected = selectedPerspective === scopeId\n\n const versionDisplay = getVersionDisplay(nonReleaseVersion)\n return (\n <VersionChip\n key={nonReleaseVersion._id}\n selected={selected}\n text={versionDisplay?.displayName ?? scopeId}\n disabled={false}\n contextMenuPortal={false}\n tone={versionDisplay?.tone ?? 'default'}\n onClick={() => onSelectBundle(nonReleaseVersion)}\n onCopyToDraftsNavigate={onCopyToDraftsNavigate}\n contextValues={{\n documentId: getPublishedId(nonReleaseVersion._id),\n releases,\n releasesLoading: releasesLoading,\n documentType: documentType,\n bundleId: scopeId,\n isVersion: true,\n }}\n />\n )\n })}\n </Flex>\n </Container>\n }\n />\n </>\n )\n}\n\nfunction extract<T>(xs: T[], predicate: (x: T) => boolean): [T | undefined, T[]] {\n const i = xs.findIndex(predicate)\n const match = i === -1 ? undefined : xs[i]\n const rest = i === -1 ? xs : xs.slice(0, i).concat(xs.slice(i + 1))\n\n return [match, rest]\n}\n","import {Stack, Text} from '@sanity/ui'\nimport {memo} from 'react'\nimport {\n Chip,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n isGoingToUnpublish,\n isReleaseScheduledOrScheduling,\n type ReleaseDocument,\n ReleaseTitle,\n type SanityDocumentLike,\n Translate,\n useActiveReleases,\n useDateTimeFormat,\n type UseDateTimeFormatOptions,\n useFormatRelativeLocalePublishDate,\n usePerspective,\n useTranslation,\n VersionChip,\n} from 'sanity'\n\nimport {useDocumentPerspectiveList} from '../../../../../hooks/useDocumentPerspectiveList'\nimport {useDocumentPane} from '../../../useDocumentPane'\nimport {useDocumentPaneInfo} from '../../../useDocumentPaneInfo'\nimport {NonReleaseVersionsSelect} from '../NonReleaseVersionsSelect'\n\nconst TooltipContent = ({release}: {release: ReleaseDocument}) => {\n const {t} = useTranslation()\n const formatPublishDate = useFormatRelativeLocalePublishDate()\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: formatPublishDate(release),\n }}\n />\n ) : (\n <Translate\n t={t}\n i18nKey=\"release.chip.tooltip.scheduled-for-date\"\n values={{\n date: formatPublishDate(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 {selectedPerspectiveName} = usePerspective()\n const {t} = useTranslation()\n const dateTimeFormat = useDateTimeFormat(DATE_TIME_FORMAT)\n const {loading} = useActiveReleases()\n const {editState, displayed} = useDocumentPane()\n const {documentType} = useDocumentPaneInfo()\n\n const {\n filteredReleases,\n getVersionDisplay,\n getReleaseChipState,\n handleCopyToDraftsNavigate,\n handlePerspectiveChange,\n handleVariantSelectionChange,\n isDraftDisabled,\n variantVersions,\n isDraftModelEnabled,\n isDraftSelected,\n isLiveEdit,\n isPublishedChipDisabled,\n isPublishSelected,\n nonReleaseVersions,\n selectedVariantDisplay,\n } = useDocumentPerspectiveList()\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 onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n contextValues={{\n documentId: editState?.published?._id || editState?.id || '',\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n documentType,\n bundleId: 'published',\n isVersion: false,\n disabled: !editState?.published,\n }}\n />\n {isDraftModelEnabled && (\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 onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n contextValues={{\n documentId: editState?.draft?._id || editState?.published?._id || editState?.id || '',\n documentType: documentType,\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n bundleId: 'draft',\n isVersion: false,\n }}\n />\n )}\n {filteredReleases.inCreation && (\n <ReleaseTitle\n title={filteredReleases.inCreation.metadata.title}\n fallback={t('release.placeholder-untitled-release')}\n enableTooltip={false}\n >\n {({displayTitle, fullTitle, isTruncated}) => (\n <VersionChip\n tooltipContent={\n isTruncated ? (\n <Stack space={2} style={{maxWidth: '300px'}}>\n <Text size={1} weight=\"medium\">\n {fullTitle}\n </Text>\n <TooltipContent release={filteredReleases.inCreation!} />\n </Stack>\n ) : (\n <TooltipContent release={filteredReleases.inCreation!} />\n )\n }\n selected\n onClick={() => {}}\n locked={false}\n tone={getReleaseTone(filteredReleases.inCreation!)}\n text={displayTitle}\n onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n contextValues={{\n documentId: displayed?._id || '',\n documentType,\n disabled: true,\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n bundleId: getReleaseIdFromReleaseDocumentId(filteredReleases.inCreation!._id),\n isVersion: true,\n release: filteredReleases.inCreation!,\n }}\n />\n )}\n </ReleaseTitle>\n )}\n\n {displayed &&\n filteredReleases.currentReleases?.map((release) => (\n <ReleaseTitle\n key={release._id}\n title={release.metadata.title}\n fallback={t('release.placeholder-untitled-release')}\n enableTooltip={false}\n >\n {({displayTitle, fullTitle, isTruncated}) => (\n <VersionChip\n tooltipContent={\n isTruncated ? (\n <Stack space={2} style={{maxWidth: '300px'}}>\n <Text size={1} weight=\"medium\">\n {fullTitle}\n </Text>\n <TooltipContent release={release} />\n </Stack>\n ) : (\n <TooltipContent release={release} />\n )\n }\n {...getReleaseChipState(getReleaseIdFromReleaseDocumentId(release._id))}\n onClick={() => handlePerspectiveChange(release)}\n text={displayTitle}\n tone={getReleaseTone(release)}\n locked={isReleaseScheduledOrScheduling(release)}\n onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n contextValues={{\n documentId: displayed?._id || '',\n documentType,\n releases: filteredReleases.notCurrentReleases,\n releasesLoading: loading,\n bundleId: getReleaseIdFromReleaseDocumentId(release._id),\n isVersion: true,\n release,\n isGoingToUnpublish: editState?.version\n ? isGoingToUnpublish(editState?.version as SanityDocumentLike)\n : false,\n }}\n />\n )}\n </ReleaseTitle>\n ))}\n <NonReleaseVersionsSelect\n nonReleaseVersions={nonReleaseVersions}\n selectedPerspective={selectedPerspectiveName}\n onSelectBundle={(version) => {\n const scopeId = version._system.scopeId!\n handlePerspectiveChange(scopeId)\n }}\n onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n releases={filteredReleases.notCurrentReleases}\n releasesLoading={loading}\n documentType={documentType}\n getVersionDisplay={getVersionDisplay}\n mode=\"versions\"\n />\n {selectedVariantDisplay ? (\n <Chip\n selected\n tone={selectedVariantDisplay.tone}\n mode=\"bleed\"\n text={selectedVariantDisplay.displayName}\n />\n ) : null}\n {variantVersions.length > 0 ? (\n <NonReleaseVersionsSelect\n nonReleaseVersions={variantVersions}\n selectedPerspective={selectedPerspectiveName}\n onSelectBundle={handleVariantSelectionChange}\n onCopyToDraftsNavigate={handleCopyToDraftsNavigate}\n releases={filteredReleases.notCurrentReleases}\n releasesLoading={loading}\n documentType={documentType}\n getVersionDisplay={getVersionDisplay}\n mode=\"variants\"\n />\n ) : null}\n </>\n )\n})\n","import {ArrowLeftIcon} from '@sanity/icons/ArrowLeft'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {CollapseIcon} from '@sanity/icons/Collapse'\nimport {ExpandIcon} from '@sanity/icons/Expand'\nimport {SplitVerticalIcon} from '@sanity/icons/SplitVertical'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {Box, Card, Flex} from '@sanity/ui'\nimport {getTheme_v2, rgba} from '@sanity/ui/theme'\nimport {\n type ForwardedRef,\n forwardRef,\n memo,\n useCallback,\n useDeferredValue,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n FieldPresenceInner,\n type DocumentActionDescription,\n useDocumentPresence,\n useFieldActions,\n useTranslation,\n useZIndex,\n useWorkspace,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {PaneContextMenuButton} from '../../../../components/pane/PaneContextMenuButton'\nimport {PaneHeader} from '../../../../components/pane/PaneHeader'\nimport {PaneHeaderActionButton} from '../../../../components/pane/PaneHeaderActionButton'\nimport {type _PaneMenuNode} from '../../../../components/pane/types'\nimport {usePane} from '../../../../components/pane/usePane'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {\n RenderActionCollectionState,\n type ResolvedAction,\n} from '../../../../components/RenderActionCollectionState'\nimport {useHistoryRestoreAction} from '../../../../documentActions/HistoryRestoreAction'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {isMenuNodeButton, isNotMenuNodeButton, resolveMenuNodes} from '../../../../menuNodes'\nimport {useResolvedPanesList} from '../../../../structureResolvers/useResolvedPanesList'\nimport {type PaneMenuItem} from '../../../../types'\nimport {useStructureTool} from '../../../../useStructureTool'\nimport {ActionDialogWrapper, ActionMenuListItem} from '../../statusBar/ActionMenuButton'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {DocumentPaneCollapsed, DocumentPaneMaximized} from './__telemetry__/focus.telemetry'\nimport {CopyDocumentActions} from './CopyDocumentActions'\nimport {DocumentGroupInventoryHint} from './documentGroupInventoryHint/DocumentGroupInventoryHint'\nimport {DocumentHeaderTitle} from './DocumentHeaderTitle'\nimport {DocumentTargetBadges} from './DocumentTargetBadges'\nimport {useChipScrollPosition} from './hook/useChipScrollPosition'\nimport {DocumentPerspectiveList} from './perspective/DocumentPerspectiveList'\n\nexport interface DocumentPanelHeaderProps {\n menuItems: PaneMenuItem[]\n}\n\nconst HorizontalScroller = styled(Card)<{$showGradient: boolean}>((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 ${\n props.$showGradient &&\n css`\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 150px;\n background: linear-gradient(to right, ${rgba(theme.color.bg, 0)}, var(--card-bg-color));\n transition: 'opacity 300ms ease-out';\n pointer-events: none;\n }\n `\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 editState,\n onMenuAction,\n onPaneClose,\n onPaneSplit,\n onSetMaximizedPane,\n menuItemGroups,\n schemaType,\n connectionState,\n views,\n unstable_languageFilter,\n documentId,\n } = useDocumentPane()\n const {features} = useStructureTool()\n const {beta} = useWorkspace()\n const {index, BackLink, hasGroupSiblings} = usePaneRouter()\n const {maximizedPane} = useResolvedPanesList()\n const {actions: fieldActions} = useFieldActions()\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n const showGradient = useChipScrollPosition(scrollContainerRef)\n const telemetry = useTelemetry()\n const zIndex = useZIndex()\n const paneHeaderZIndex = Array.isArray(zIndex.paneHeader)\n ? zIndex.paneHeader[1]\n : zIndex.paneHeader\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 hasDocumentGroupInventory = beta?.documentGroupInventory?.enabled === true\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 const presence = useDocumentPresence(documentId)\n const documentLevelPresence = useMemo(\n () => presence.filter((p) => p.path.length === 0),\n [presence],\n )\n\n const isMaximizedPane = useMemo(() => {\n return (\n maximizedPane?.pane &&\n typeof maximizedPane.pane === 'object' &&\n maximizedPane.pane.type === 'document' &&\n maximizedPane.pane.options.id === documentId\n )\n }, [maximizedPane, documentId])\n\n const handleFocusPane = useCallback(() => {\n onSetMaximizedPane?.()\n\n if (isMaximizedPane) {\n telemetry.log(DocumentPaneCollapsed)\n } else {\n telemetry.log(DocumentPaneMaximized)\n }\n }, [onSetMaximizedPane, isMaximizedPane, telemetry])\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\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\n hidden={collapsed}\n style={{lineHeight: 0, position: 'relative', zIndex: paneHeaderZIndex}}\n borderBottom\n >\n <Flex gap={3} paddingY={3} justify=\"space-between\" align=\"center\">\n {!hasDocumentGroupInventory && (\n <HorizontalScroller $showGradient={showGradient}>\n <Flex\n flex={1}\n gap={1}\n overflow=\"auto\"\n paddingX={3}\n data-testid=\"document-perspective-list\"\n ref={scrollContainerRef}\n >\n <DocumentPerspectiveList />\n </Flex>\n </HorizontalScroller>\n )}\n {hasDocumentGroupInventory && (\n <HorizontalScroller $showGradient={false}>\n <Flex\n flex={1}\n gap={2}\n align=\"center\"\n overflow=\"auto\"\n paddingX={3}\n data-testid=\"document-target-badges\"\n style={{minWidth: 0}}\n >\n <Box flex=\"none\">\n <DocumentTargetBadges />\n </Box>\n <Box flex=\"none\">\n <DocumentGroupInventoryHint />\n </Box>\n </Flex>\n </HorizontalScroller>\n )}\n\n <Box flex=\"none\" paddingRight={3}>\n <Flex align=\"center\" gap={1}>\n {documentLevelPresence.length > 0 && (\n <Box data-testid=\"document-level-presence\" marginRight={2}>\n <FieldPresenceInner presence={documentLevelPresence} stack />\n </Box>\n )}\n {unstable_languageFilter.length > 0 && (\n <>\n {unstable_languageFilter.map((LanguageFilterComponent, idx) => {\n return (\n <LanguageFilterComponent\n key={`language-filter-${idx}`}\n schemaType={schemaType}\n />\n )\n })}\n </>\n )}\n\n <CopyDocumentActions />\n {menuButtonNodes.map((item) => (\n <PaneHeaderActionButton key={item.key} node={item} />\n ))}\n {editState && (\n <RenderActionCollectionState group=\"paneActions\">\n {({states}) => (\n <DocumentPanelHeaderActionDialogDeferred\n contextMenuNodes={contextMenuNodes}\n setReferenceElement={setReferenceElement}\n referenceElement={referenceElement}\n states={states}\n />\n )}\n </RenderActionCollectionState>\n )}\n\n {showSplitPaneButton && (\n <Button\n key=\"split-pane-button\"\n aria-label={t('buttons.split-pane-button.aria-label')}\n icon={SplitVerticalIcon}\n mode=\"bleed\"\n onClick={onPaneSplit}\n tooltipProps={{content: t('buttons.split-pane-button.tooltip')}}\n />\n )}\n\n {onSetMaximizedPane && (\n <Button\n key=\"focus-pane-button\"\n aria-label={\n isMaximizedPane\n ? t('buttons.focus-pane-button.aria-label.collapse')\n : t('buttons.focus-pane-button.aria-label.focus')\n }\n icon={isMaximizedPane ? CollapseIcon : ExpandIcon}\n mode=\"bleed\"\n onClick={handleFocusPane}\n tooltipProps={{\n content: isMaximizedPane\n ? t('buttons.focus-pane-button.tooltip.collapse')\n : t('buttons.focus-pane-button.tooltip.focus'),\n }}\n data-testid={\n isMaximizedPane ? 'focus-pane-button-collapse' : 'focus-pane-button-focus'\n }\n />\n )}\n\n {showSplitPaneCloseButton && (\n <Button\n key=\"close-view-button\"\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onPaneClose}\n tooltipProps={{content: t('buttons.split-pane-close-button.title')}}\n />\n )}\n\n {showPaneGroupCloseButton && (\n <Button\n key=\"close-view-button\"\n icon={CloseIcon}\n mode=\"bleed\"\n tooltipProps={{content: t('buttons.split-pane-close-group-button.title')}}\n as={BackLink}\n />\n )}\n </Flex>\n </Box>\n </Flex>\n </Card>\n )}\n </TooltipDelayGroupProvider>\n )\n }),\n)\n\nconst DocumentPanelHeaderActionDialogDeferred = memo(\n function DocumentPanelHeaderActionDialogDeferred(props: {\n states: ResolvedAction[]\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 // 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 states={states.filter((state) =>\n state.action ? state.action !== useHistoryRestoreAction.action : true,\n )}\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 key=\"context-menu\"\n nodes={contextMenuNodes}\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 {isHotkey} from 'is-hotkey-esm'\nimport {type ElementType, type HTMLProps, memo, type Ref, useCallback, useState} from 'react'\nimport {type DocumentActionDescription, LegacyLayerProvider} from 'sanity'\n\nimport {RenderActionCollectionState} from '../../../components/RenderActionCollectionState'\nimport {ActionStateDialog} from '../statusBar/ActionStateDialog'\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 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 [activeIndex, setActiveIndex] = useState(-1)\n\n const onActionStart = useCallback((idx: number) => {\n setActiveIndex(idx)\n }, [])\n\n return (\n <RenderActionCollectionState>\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 </RenderActionCollectionState>\n )\n },\n)\n\nDocumentActionShortcuts.displayName = 'Memo(DocumentActionShortcuts)'\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {type ComponentType} from 'react'\n\nexport const HiddenCheckmarkIcon: ComponentType = () => (\n <CheckmarkIcon style={{visibility: 'hidden'}} />\n)\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {EarthAmericasIcon} from '@sanity/icons/EarthAmericas'\nimport {JsonIcon} from '@sanity/icons/Json'\nimport {TransferIcon} from '@sanity/icons/Transfer'\nimport {\n type DocumentIdStack,\n type DocumentInspector,\n type DocumentInspectorMenuItem,\n type TFunction,\n} from 'sanity'\n\nimport {type PaneMenuItem, type StructureToolFeatures} from '../../types'\nimport {HiddenCheckmarkIcon} from './components/HiddenCheckmarkIcon'\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 displayInlineChanges: boolean\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\nfunction getInlineChangesItem({displayInlineChanges, t}: GetMenuItemsParams): PaneMenuItem {\n return {\n action: 'toggleInlineChanges',\n group: 'inspectors',\n title: t('toggle-inline-changes.menu-item.title'),\n // The simplest way to render no icon, while preserving an icon-sized space, is to render a\n // hidden icon.\n icon: displayInlineChanges ? CheckmarkIcon : HiddenCheckmarkIcon,\n }\n}\n\nfunction 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 getInlineChangesItem(params),\n ].filter(Boolean) as PaneMenuItem[]\n\n return [\n ...inspectorItems,\n\n // TODO: convert to inspector or document view?\n getInspectItem(params),\n\n ...items,\n ]\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const changeConnectorRoot = style({\n selectors: {\n '&&': {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n minWidth: 0,\n },\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 /* oxlint-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 /* oxlint-enable i18next/no-literal-string */\n )}\n </Stack>\n </ErrorPane>\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 {Button, type ButtonProps} from '../../../ui-components/button/Button'\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 {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 {Badge, type BadgeTone, Inline} from '@sanity/ui'\nimport {memo, useCallback, useDeferredValue} from 'react'\nimport {type DocumentBadgeDescription} from 'sanity'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {RenderBadgeCollectionState} from '../../../components/RenderBadgeCollectionState'\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 key={`${badge.label}-${index}`}\n content={badge.title}\n disabled={!badge.title}\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 {Flex, LayerProvider, Stack, Text} from '@sanity/ui'\nimport {memo, useCallback, useMemo, useState} from 'react'\nimport {\n DEFAULT_STUDIO_CLIENT_OPTIONS,\n DocumentGroupInventory,\n DocumentGroupInventoryAction,\n type DocumentGroupInventoryProps,\n Hotkeys,\n isGoingToUnpublish,\n isSanityDefinedAction,\n useClient,\n useDocumentStore,\n usePausedScheduledDraft,\n usePerspective,\n useSource,\n} from 'sanity'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {ReferencePreviewLink} from '../../../components/confirmDeleteDialog/ReferencePreviewLink'\nimport {referringDocuments} from '../../../components/confirmDeleteDialog/useReferringDocuments'\nimport {VersionsPreviewList} from '../../../components/confirmDeleteDialog/VersionsPreviewList'\nimport {DocTitle} from '../../../components/DocTitle'\nimport {usePaneRouter} from '../../../components/paneRouter/usePaneRouter'\nimport {\n RenderActionCollectionState,\n type ResolvedAction,\n} from '../../../components/RenderActionCollectionState'\nimport {DOCUMENT_PANEL_PORTAL_ELEMENT} from '../../../constants'\nimport {useHistoryRestoreAction} from '../../../documentActions/HistoryRestoreAction'\nimport {useDocumentPerspectiveList} from '../../../hooks/useDocumentPerspectiveList'\nimport {toLowerCaseNoSpaces} from '../../../util/toLowerCaseNoSpaces'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {ActionMenuButton} from './ActionMenuButton'\nimport {ActionStateDialog} from './ActionStateDialog'\n\nconst documentGroupInventoryComponents: DocumentGroupInventoryProps['components'] = {\n DocTitle,\n ReferencePreviewLink,\n VersionsPreviewList,\n}\n\ninterface DocumentStatusBarActionsInnerProps {\n disabled: boolean\n states: ResolvedAction[]\n}\n\nconst DocumentStatusBarActionsInner = memo(function DocumentStatusBarActionsInner(\n props: DocumentStatusBarActionsInnerProps,\n) {\n const {disabled, states} = props\n const {__internal_tasks, beta} = useSource()\n\n const {\n displayed,\n editState,\n isDocumentGroupInventoryActive,\n setIsDocumentGroupInventoryActive,\n documentId,\n documentType,\n } = useDocumentPane()\n const {params} = usePaneRouter()\n\n const showingRevision = Boolean(params?.rev)\n\n const perspectiveList = useDocumentPerspectiveList()\n const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const documentStore = useDocumentStore()\n const referringDocuments$ = useMemo(\n () => referringDocuments({documentId, versionedClient: client, documentStore}),\n [documentId, client, documentStore],\n )\n\n const requestDocumentGroupInventoryClose = useCallback(\n () => setIsDocumentGroupInventoryActive(false),\n [setIsDocumentGroupInventoryActive],\n )\n\n const {selectedReleaseId} = usePerspective()\n const [firstActionState, ...menuActionStates] = states\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const {isPaused} = usePausedScheduledDraft()\n const hasDocumentGroupInventory = beta?.documentGroupInventory?.enabled === true\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\n const shouldShowScheduleAsFirstActionButton = firstActionState?.action === 'schedule' && isPaused\n\n const showFirstActionButton = showingRevision\n ? Boolean(firstActionState)\n : selectedReleaseId\n ? // For paused drafts, only allow 'schedule' action as primary\n // Otherwise, only show custom (non-Sanity-defined) actions as primary\n firstActionState &&\n (shouldShowScheduleAsFirstActionButton || !isSanityDefinedAction(firstActionState))\n : firstActionState && (!editState?.liveEdit || editState?.version)\n\n const sideMenuItems = useMemo(() => {\n return showFirstActionButton\n ? menuActionStates\n : [firstActionState, ...menuActionStates].filter(Boolean)\n }, [showFirstActionButton, firstActionState, menuActionStates])\n\n // When a document is designated to be unpublished in a release, the published\n // document is displayed instead.\n //\n // The document group inventory must always reflect the intended document id,\n // even if the document pane decided to display a different document for some\n // reason.\n //\n // In the future, this would be more robust if `DocumentPaneProvider`\n // exposed both the displayed document and the original source document.\n const targetDocumentId =\n editState?.version && isGoingToUnpublish(editState?.version)\n ? editState.version._id\n : displayed?._id\n\n return (\n <Flex align=\"center\" gap={3}>\n {__internal_tasks && __internal_tasks.footerAction}\n {hasDocumentGroupInventory && typeof targetDocumentId !== 'undefined' && (\n <DocumentGroupInventoryAction\n documentId={targetDocumentId}\n portalElementName={DOCUMENT_PANEL_PORTAL_ELEMENT}\n isDocumentGroupInventoryActive={isDocumentGroupInventoryActive}\n setIsDocumentGroupInventoryActive={setIsDocumentGroupInventoryActive}\n >\n <DocumentGroupInventory\n documentId={targetDocumentId}\n documentType={documentType}\n portalElementName={DOCUMENT_PANEL_PORTAL_ELEMENT}\n perspectiveList={perspectiveList}\n referringDocuments$={referringDocuments$}\n requestClose={requestDocumentGroupInventoryClose}\n components={documentGroupInventoryComponents}\n />\n </DocumentGroupInventoryAction>\n )}\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 onClick={firstActionState.onHandle}\n ref={setButtonElement}\n text={firstActionState.label}\n tone={firstActionState.tone || 'primary'}\n />\n </Stack>\n </Tooltip>\n </LayerProvider>\n )}\n {sideMenuItems.length > 0 && (\n <ActionMenuButton actionStates={sideMenuItems} disabled={disabled} />\n )}\n {showFirstActionButton && firstActionState && firstActionState.dialog && (\n <ActionStateDialog dialog={firstActionState.dialog} referenceElement={buttonElement} />\n )}\n </Flex>\n )\n})\n\nexport const DocumentStatusBarActions = memo(function DocumentStatusBarActions() {\n return (\n <RenderActionCollectionState group=\"default\">\n {({states}) => <RenderDocumentStatusBarActions states={states} />}\n </RenderActionCollectionState>\n )\n})\n\nfunction RenderDocumentStatusBarActions(props: {states: ResolvedAction[]}) {\n const {connectionState, documentId} = 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 states = props.states.filter((state) =>\n state.action ? state.action !== useHistoryRestoreAction.action : true,\n )\n\n if (states.length === 0) return null\n\n return (\n <DocumentStatusBarActionsInner\n // Use document ID as key to make sure that the actions state is reset when the document changes\n key={documentId}\n disabled={connectionState !== 'connected'}\n states={states}\n />\n )\n}\n\nexport const HistoryStatusBarActions = memo(function HistoryStatusBarActions() {\n return (\n <RenderActionCollectionState group=\"default\">\n {({states}) => <RenderHistoryStatusBarActions states={states} />}\n </RenderActionCollectionState>\n )\n})\n\nfunction RenderHistoryStatusBarActions({states}: {states: ResolvedAction[]}) {\n const {connectionState, editState, revisionId: revision} = useDocumentPane()\n\n const disabled = (editState?.draft || editState?.published || {})._rev === revision\n\n return (\n <DocumentStatusBarActionsInner\n disabled={connectionState !== 'connected' || Boolean(disabled)}\n // If multiple `restore` actions are defined, ensure only the final one is used.\n states={states\n .filter((state) => (state.action ? state.action === useHistoryRestoreAction.action : false))\n .slice(-1)}\n />\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 'motion/react'\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 // oxlint-disable-next-line no-restricted-imports\n Button,\n Flex,\n Skeleton,\n Text,\n} from '@sanity/ui'\nimport {AnimatePresence, motion} from 'motion/react'\nimport {useEffect, useLayoutEffect, useState} from 'react'\nimport {\n AvatarSkeleton,\n getTargetScopeId,\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/timelineI18n'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {useDocumentPaneInfo} from '../useDocumentPaneInfo'\nimport {DocumentStatusPulse} from './DocumentStatusPulse/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\nfunction getDocumentStatusKey(timelineKey: string): string {\n // the status line should show a different label than timeline changes view\n if (timelineKey === 'timeline.operation.published') {\n return 'document-status.last-published'\n }\n return timelineKey\n}\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 function getStatus() {\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 const status = getStatus()\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={getDocumentStatusKey(\n TIMELINE_ITEM_I18N_KEY_MAPPING[event.documentVariantType][event.type],\n )}\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={getDocumentStatusKey(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 {value, targetDocumentState} = useDocumentPane()\n const {documentId, documentType} = useDocumentPaneInfo()\n const [status, setStatus] = useState<'saved' | 'syncing' | null>(null)\n const source = useSource()\n const eventsEnabled = source.beta?.eventsAPI?.documents\n\n // The scope of the document targeted by the selected perspective (undefined while the target is\n // resolving or when the draft/published pair applies).\n const scopeId = getTargetScopeId(targetDocumentState)\n const syncState = useSyncState(documentId, documentType, scopeId)\n\n const lastUpdated = value?._updatedAt\n\n // oxlint-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 // oxlint-disable-next-line react/react-compiler\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 // oxlint-disable-next-line react/react-compiler\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/Restore'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {format} from 'date-fns/format'\nimport {useContext} from 'react'\nimport {Translate, useTranslation} from 'sanity'\nimport {EventsContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {useDocumentPane} from '../useDocumentPane'\n\nconst 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 // Using the context instead of `useEvents` because the context could not exist if the document pane is not using the events store and is instead\n // using the legacy timeline store.\n const events = useContext(EventsContext)\n const revision = events?.revision\n const revisionEvent = events?.events.find((ev) => ev.id === revision?.revisionId)\n\n const {t} = useTranslation()\n const date = revisionEvent?.timestamp || 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'\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) return undefined\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === element)\n if (entry) {\n onResize(entry)\n }\n })\n\n observer.observe(element)\n\n return () => observer.disconnect()\n }, [element, onResize])\n}\n","import {Card, Flex} from '@sanity/ui'\nimport {motion} from 'motion/react'\nimport {type Ref, useCallback, useMemo, useState} from 'react'\nimport {isPublishedPerspective, isReleaseDocument, usePerspective} from 'sanity'\n\nimport {usePaneRouter} from '../../../components/paneRouter/usePaneRouter'\nimport {SpacerButton} from '../../../components/spacerButton/SpacerButton'\nimport {EMPTY_PARAMS} from '../constants'\nimport {useDocumentPane} from '../useDocumentPane'\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}\n\nconst CONTAINER_BREAKPOINT = 480 // px\n\nconst AnimatedCard = motion.create(Card)\n\nexport function DocumentStatusBar(props: DocumentStatusBarProps) {\n const {actionsBoxRef} = props\n const {editState, revisionNotFound, targetDocumentState} = useDocumentPane()\n const {params = EMPTY_PARAMS} = usePaneRouter()\n const {selectedPerspective, selectedVariantName} = usePerspective()\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\n // Hide the footer (status + actions) when a variant is requested but its target document has\n // not resolved to an editable version (missing, invalid selection, or mid-transition).\n // Mirrors the not-in-variant banner and read-only form state.\n if (selectedVariantName && targetDocumentState.status !== 'ready') {\n return false\n }\n\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, selectedPerspective, selectedVariantName, targetDocumentState])\n\n let actions: React.JSX.Element | null = null\n 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 {DialogProvider, type DialogProviderProps, PortalProvider} from '@sanity/ui'\nimport {type Dispatch, type SetStateAction, useMemo} from 'react'\nimport {useZIndex} from 'sanity'\n\nimport {TooltipDelayGroupProvider} from '../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {PaneFooter} from '../../../components/pane/PaneFooter'\nimport {DOCUMENT_PANEL_PORTAL_ELEMENT} from '../../../constants'\nimport {DocumentStatusBar} from '../statusBar/DocumentStatusBar'\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 portalElements = useMemo(\n () => ({[DOCUMENT_PANEL_PORTAL_ELEMENT]: documentPanelPortalElement}),\n [documentPanelPortalElement],\n )\n\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 actionsBoxRef={setActionsBoxElement} />\n </TooltipDelayGroupProvider>\n </PaneFooter>\n </DialogProvider>\n </PortalProvider>\n )\n}\n","import {DialogProvider, type DialogProviderProps, Flex, useElementRect} from '@sanity/ui'\nimport {clsx} from 'clsx'\nimport {isHotkey} from 'is-hotkey-esm'\nimport {type ComponentProps, useCallback, useMemo, useState} from 'react'\nimport {\n ChangeConnectorRoot,\n type DocumentFieldActionNode,\n type DocumentInspectorMenuItem,\n FieldActionsProvider,\n FieldActionsResolver,\n GetFormValueProvider,\n type Path,\n useDocumentIdStack,\n useGlobalCopyPasteElementHandler,\n useTranslation,\n useZIndex,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {Pane} from '../../../components/pane/Pane'\nimport {usePaneLayout} from '../../../components/pane/usePaneLayout'\nimport {usePaneRouter} from '../../../components/paneRouter/usePaneRouter'\nimport {DocumentActionsProvider} from '../../../DocumentActionsProvider'\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/DocumentPanel'\nimport {DocumentPanelHeader} from '../documentPanel/header/DocumentPanelHeader'\nimport {DocumentActionShortcuts} from '../keyboardShortcuts/DocumentActionShortcuts'\nimport {getMenuItems} from '../menuItems'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {changeConnectorRoot} from './DocumentLayout.css'\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\nfunction StyledChangeConnectorRoot(props: ComponentProps<typeof ChangeConnectorRoot>) {\n const {className, ...restProps} = props\n\n return <ChangeConnectorRoot {...restProps} className={clsx(changeConnectorRoot, className)} />\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 {stickyParams} = useRouter()\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 displayInlineChanges: stickyParams.displayInlineChanges === 'true',\n }),\n [\n currentInspector,\n documentIdStack,\n features,\n hasValue,\n inspectorMenuItems,\n inspectors,\n previewUrl,\n t,\n stickyParams.displayInlineChanges,\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 <DocumentActionsProvider>\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 </DocumentActionsProvider>\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 {type SanityDocument, type ObjectSchemaType} from '@sanity/types'\nimport {useEffect} from 'react'\nimport {useTranslation, useValuePreview} from 'sanity'\n\nimport {LOADING_PANE} from '../../constants'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {type Panes} from '../../structureResolvers/useResolvedPanes'\nimport {type DocumentPaneNode} from '../../types'\nimport {useStructureTool} from '../../useStructureTool'\n\ninterface StructureTitleProps {\n resolvedPanes: Panes['resolvedPanes']\n}\n\nexport const DocumentTitle = ({\n isDeleted,\n displayed,\n ready,\n schemaType,\n}: {\n isDeleted: boolean\n displayed: Partial<SanityDocument>\n ready: boolean\n schemaType: ObjectSchemaType | undefined\n}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const isNewDocument = !displayed?._createdAt\n const {value, isLoading: previewValueIsLoading} = useValuePreview({\n enabled: !!displayed,\n schemaType,\n value: displayed,\n })\n\n // if the document is deleted, we don't want to show the title\n const documentTitle = isDeleted\n ? ''\n : isNewDocument\n ? t('browser-document-title.new-document', {\n schemaType: schemaType?.title || schemaType?.name,\n })\n : value?.title || t('browser-document-title.untitled-document')\n\n const newTitle = useConstructDocumentTitle(documentTitle)\n useEffect(() => {\n if (!ready || previewValueIsLoading) return\n // Set the title as the document title\n document.title = newTitle\n }, [documentTitle, ready, newTitle, previewValueIsLoading])\n\n return null\n}\n\nconst PassthroughTitle = (props: {title?: string}) => {\n const {title} = props\n const newTitle = useConstructDocumentTitle(title)\n useEffect(() => {\n // Set the title as the document title\n document.title = newTitle\n }, [newTitle, title])\n return null\n}\n\nexport const StructureTitle = (props: StructureTitleProps) => {\n const {resolvedPanes} = props\n\n if (!resolvedPanes?.length) return null\n\n const lastPane = resolvedPanes[resolvedPanes.length - 1]\n\n // If the last pane is loading, display the structure tool title only\n if (isLoadingPane(lastPane)) {\n return <PassthroughTitle />\n }\n\n // If the last pane is a document\n if (isDocumentPane(lastPane)) {\n // Passthrough the document pane's title, which may be defined in structure builder\n if (lastPane?.title) {\n return <PassthroughTitle title={lastPane.title} />\n }\n // Otherwise, display a `document.title` containing the resolved Sanity document title, which will be imported from the document pane\n return null\n }\n\n // Otherwise, display the last pane's title (if present)\n return <PassthroughTitle title={lastPane?.title} />\n}\n\n/**\n * Construct a pipe delimited title containing `activeTitle` (if applicable) and the base structure title.\n *\n * @param activeTitle - Title of the first segment\n *\n * @returns A pipe delimited title in the format `${activeTitle} | %BASE_STRUCTURE_TITLE%`\n * or simply `%BASE_STRUCTURE_TITLE` if `activeTitle` is undefined.\n */\nfunction useConstructDocumentTitle(activeTitle?: string) {\n const structureToolBaseTitle = useStructureTool().structureContext.title\n return [activeTitle, structureToolBaseTitle].filter((title) => title).join(' | ')\n}\n\n// Type guards\nfunction isDocumentPane(pane: Panes['resolvedPanes'][number]): pane is DocumentPaneNode {\n return pane !== LOADING_PANE && pane.type === 'document'\n}\n\nfunction isLoadingPane(pane: Panes['resolvedPanes'][number]): pane is typeof LOADING_PANE {\n return pane === LOADING_PANE\n}\n","import {useContext} from 'react'\nimport {EventsContext} from 'sanity/_singletons'\n\n/**\n * This fallback is only necessary until we remove the DocumentPaneWithLegacyTimelineStore option.\n * Because if users use that option, the EventsContext will not be available.\n * Once we remove the DocumentPaneWithLegacyTimelineStore option, we can remove this fallback.\n */\nconst EventsContextFallback = {\n revision: null,\n}\n/**\n * Returns the last revision of a deleted document.\n * It will only work in case the document is deleted or was published to avoid over-fetching the document history endpoint\n */\nexport const useDeletedDocumentLastRevision = () => {\n const {revision} = useContext(EventsContext) || EventsContextFallback\n\n return {\n lastRevisionDocument: revision?.document || null,\n loading: revision?.loading || false,\n }\n}\n","import {defineEvent} from '@sanity/telemetry'\n\n/**\n * Time from a document pane mounting to its form becoming ready to edit.\n *\n * This measures the **user-perceived cold-open latency**: from when the\n * pane component first renders (approximately equal to the route change\n * that opened the document) to the moment the form is interactive. This\n * is a strict superset of `Document Pair Load Time Measured`, which\n * measures only the data-layer portion (pair subscription → first\n * snapshot).\n *\n * Additional latency captured by this event but *not* by\n * `Document Pair Load Time Measured`:\n * - form state setup (`useDocumentForm`)\n * - template permissions resolution\n * - timeline readiness (when viewing a revision via `params.rev`)\n * - route → pane mount overhead\n *\n * Timing origin (T0) is the first render of `DocumentPaneProvider`\n * (captured synchronously via a lazily-initialised ref). Timing end\n * (T1) is the first tick where the provider's `ready` flag becomes\n * `true`, as exposed on `DocumentPaneContext`.\n *\n * Sampled at 30 seconds to match `Document Pair Load Time Measured`.\n */\nexport interface DocumentInitialLoadMeasuredData {\n /** ms from pane mount → ready=true */\n durationMs: number\n /** resolved document type name (may be 'unknown' if schema was not resolved) */\n documentTypeName: string\n /** true when the pane is editing a brand-new, never-written document */\n isNewDocument: boolean\n /** true when the pane was opened with a `rev` route param (viewing history) */\n hasRevisionParam: boolean\n}\n\nexport const DocumentInitialLoadMeasured = defineEvent<DocumentInitialLoadMeasuredData>({\n name: 'Document Initial Load Measured',\n version: 1,\n description:\n 'Time from a document pane mounting to its form becoming ready to edit. ' +\n 'Includes data load, schema resolution, template permissions, and ' +\n '(if applicable) timeline readiness. Superset of Document Pair Load ' +\n 'Time Measured.',\n maxSampleRate: 30_000,\n})\n","import {useTelemetry} from '@sanity/telemetry/react'\nimport {useEffect, useRef} from 'react'\nimport {type EditStateFor} from 'sanity'\n\nimport {DocumentInitialLoadMeasured} from './__telemetry__/documentInitialLoad.telemetry'\n\ninterface UseDocumentInitialLoadTelemetryOptions {\n /** pane's `ready` flag — `true` when the form is ready to edit */\n ready: boolean\n /** resolved schema type (name is logged; may be undefined before schema resolves) */\n schemaTypeName: string | undefined\n /** current edit state (used to derive `isNewDocument`) */\n editState: Pick<EditStateFor, 'ready' | 'draft' | 'published' | 'version'> | null | undefined\n /** true when the pane is opened with a `rev` param (viewing history) */\n hasRevisionParam: boolean\n}\n\n/**\n * Fires a one-shot `Document Initial Load Measured` telemetry event the\n * first time the pane's `ready` flag becomes `true`. Captures the\n * user-perceived cold-open latency from pane mount to editable form.\n *\n * Extracted from `DocumentPaneProvider` to keep the provider lean and to\n * give the timing logic a focused test target.\n */\nexport function useDocumentInitialLoadTelemetry({\n ready,\n schemaTypeName,\n editState,\n hasRevisionParam,\n}: UseDocumentInitialLoadTelemetryOptions): void {\n const telemetry = useTelemetry()\n\n // T0 is captured on mount in an effect (rather than in a render-time ref\n // init) to satisfy React Compiler, which treats `performance.now()` as\n // impure and disallows it during render. The mount effect runs right\n // after the first render commit, within one frame of pane mount, which\n // is close enough to \"route change\" for our purposes.\n const t0Ref = useRef<number | null>(null)\n useEffect(() => {\n t0Ref.current = performance.now()\n }, [])\n\n const firedRef = useRef(false)\n\n useEffect(() => {\n if (firedRef.current) return\n if (!ready) return\n // If T0 hasn't been captured yet (should not happen in practice —\n // the mount effect runs before this one — skip this cycle and wait).\n if (t0Ref.current === null) return\n firedRef.current = true\n const isNewDoc =\n editState?.ready === true &&\n editState.draft === null &&\n editState.published === null &&\n editState.version === null\n telemetry.log(DocumentInitialLoadMeasured, {\n durationMs: performance.now() - t0Ref.current,\n documentTypeName: schemaTypeName ?? 'unknown',\n isNewDocument: isNewDoc,\n hasRevisionParam,\n })\n }, [ready, telemetry, schemaTypeName, editState, hasRevisionParam])\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 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} from '../../components/paneRouter/types'\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\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 {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {type DocumentInspector, useSource} from 'sanity'\n\nimport {type PaneRouterContextValue} from '../../components/paneRouter/types'\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({...params, inspect: undefined})\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","import {useTelemetry} from '@sanity/telemetry/react'\nimport {\n type ObjectSchemaType,\n type Path,\n type SanityDocument,\n type SanityDocumentLike,\n} from '@sanity/types'\nimport {fromString as pathFromString, resolveKeyedPath} from '@sanity/util/paths'\nimport {\n type ComponentProps,\n type ComponentType,\n useCallback,\n useEffect,\n useEffectEvent,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n DivergencesProvider,\n type DocumentActionsContext,\n type DocumentActionsVersionType,\n type DocumentFieldAction,\n type EditStateFor,\n EMPTY_ARRAY,\n getPublishedId,\n getReleaseIdFromReleaseDocumentId,\n isCardinalityOneRelease,\n isGoingToUnpublish,\n isPausedCardinalityOneRelease,\n isPerspectiveWriteable,\n isVersionId,\n ParseErrorsProvider,\n type PartialContext,\n pathToString,\n type ReleaseDocument,\n selectUpstreamVersion,\n useActiveReleases,\n useCopyPaste,\n useDocumentDivergences,\n useDocumentForm,\n useDocumentIdStack,\n usePerspective,\n useSchema,\n useSource,\n useTargetDocumentState,\n useUnique,\n useWorkspace,\n} from 'sanity'\nimport {DocumentPaneContext, DocumentPaneInfoContext} from 'sanity/_singletons'\nimport {useRouter} from 'sanity/router'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\nimport {DocumentTitle} from '../../components/structureTool/StructureTitle'\nimport {useDiffViewRouter} from '../../diffView/hooks/useDiffViewRouter'\nimport {useDeletedDocumentLastRevision} from '../../hooks/useDeletedDocumentLastRevision'\nimport {type PaneMenuItem} from '../../types'\nimport {\n InlineChangesSwitchedOff,\n InlineChangesSwitchedOn,\n} from './__telemetry__/documentPanes.telemetry'\nimport {DEFAULT_MENU_ITEM_GROUPS, EMPTY_PARAMS, INSPECT_ACTION_PREFIX} from './constants'\nimport {\n type DocumentPaneContextValue,\n type DocumentPaneInfoContextValue,\n} from './DocumentPaneContext'\nimport {\n type DocumentPaneProviderProps as DocumentPaneProviderWrapperProps,\n type HistoryStoreProps,\n} from './types'\nimport {useDocumentInitialLoadTelemetry} from './useDocumentInitialLoadTelemetry'\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 */\nexport function DocumentPaneProvider(props: DocumentPaneProviderProps) {\n const {\n children,\n index,\n pane,\n paneKey,\n onFocusPath,\n onSetMaximizedPane,\n maximized = false,\n forcedVersion,\n historyStore,\n } = 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 drafts: {enabled: draftsEnabled},\n },\n } = useSource()\n const telemetry = useTelemetry()\n const router = useRouter()\n const paneRouter = usePaneRouter()\n const setPaneParams = paneRouter.setParams\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 perspective = usePerspective()\n\n const workspace = useWorkspace()\n const advancedVersionControlEnabled = workspace.advancedVersionControl.enabled\n const isDraftModelEnabled = workspace.document.drafts.enabled\n\n const enhancedObjectDialogEnabled = true\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\n return {\n selectedPerspectiveName: perspective.selectedPerspectiveName,\n selectedReleaseId: perspective.selectedReleaseId,\n }\n }, [forcedVersion, perspective.selectedPerspectiveName, perspective.selectedReleaseId])\n\n const {data: releases = EMPTY_ARRAY} = useActiveReleases()\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 const [isDocumentGroupInventoryActive, setIsDocumentGroupInventoryActive] = useState(false)\n const {lastRevisionDocument} = useDeletedDocumentLastRevision()\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 (upstreamEditState: EditStateFor) => {\n const upstream = selectUpstreamVersion(upstreamEditState)\n if (changesOpen) {\n return sinceDocument || upstream\n }\n return upstream || null\n },\n [changesOpen, sinceDocument],\n )\n\n const schemaType = schema.get(documentType) as ObjectSchemaType | undefined\n\n // Resolution state of the document targeted by the selected perspective and variant — the\n // single source for in-pane consumers (read-only derivation, banners, footer, actions).\n const targetDocumentState = useTargetDocumentState(documentId)\n\n // When a variant is requested, the form is editable only once the variant target has resolved:\n // `variant-missing` shows the not-in-variant banner offering to create it,\n // `variant-definition-document-not-found` is an invalid selection, and `resolving` covers\n // target transitions while the pane is mounted (initial mounts are gated in DocumentPane).\n const isVariantTargetReadOnly =\n Boolean(perspective.selectedVariantName) && targetDocumentState.status !== 'ready'\n\n const getIsReadOnly = useCallback(\n (editState: EditStateFor): boolean => {\n const isDeleted = getIsDeleted(editState)\n const seeingHistoryDocument = Boolean(params.rev)\n\n // Check if current perspective is a paused scheduled draft\n const currentRelease = releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === selectedReleaseId,\n )\n const isPaused = isPausedCardinalityOneRelease(currentRelease)\n\n return (\n seeingHistoryDocument ||\n isDeleting ||\n isDeleted ||\n isVariantTargetReadOnly ||\n (!isPaused &&\n !isPerspectiveWriteable({\n selectedPerspective: perspective.selectedPerspective,\n isDraftModelEnabled,\n schemaType,\n }).result)\n )\n },\n [\n getIsDeleted,\n isDeleting,\n isDraftModelEnabled,\n params.rev,\n perspective.selectedPerspective,\n isVariantTargetReadOnly,\n schemaType,\n releases,\n selectedReleaseId,\n ],\n )\n\n const getDisplayed = useCallback(\n (value: SanityDocumentLike) => {\n if (onOlderRevision) {\n return revisionDocument || {_id: value._id, _type: value._type}\n }\n\n // If the document is deleted (no draft, published, or version), return the last revision\n const isDeleted = !value._createdAt && !value._updatedAt\n if (isDeleted && lastNonDeletedRevId) {\n // Return the fetched last revision document if available\n if (lastRevisionDocument) {\n return lastRevisionDocument\n }\n }\n\n return value\n },\n [onOlderRevision, revisionDocument, lastNonDeletedRevId, lastRevisionDocument],\n )\n\n const {\n editState,\n upstreamEditState,\n hasUpstreamVersion,\n connectionState,\n syncState,\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 changesOpen,\n documentType,\n documentId,\n initialValue: initialValue,\n comparisonValue: getComparisonValue,\n releaseId: selectedPerspectiveName,\n selectedPerspectiveName,\n initialFocusPath: params.path ? pathFromString(params.path) : EMPTY_ARRAY,\n readOnly: getIsReadOnly,\n onFocusPath,\n getFormDocumentValue: getDisplayed,\n displayInlineChanges: router.stickyParams.displayInlineChanges === 'true',\n isOlderRevision: onOlderRevision,\n })\n\n const actionsVersionType = useMemo(\n () =>\n getDocumentVersionType(\n params,\n selectedReleaseId,\n value,\n selectedPerspectiveName,\n draftsEnabled,\n releases,\n ),\n [params, selectedReleaseId, value, selectedPerspectiveName, draftsEnabled, releases],\n )\n\n const documentActionsContext: PartialContext<DocumentActionsContext> = useMemo(\n () => ({\n schemaType: documentType,\n documentId,\n versionType: actionsVersionType,\n releaseId: selectedReleaseId,\n }),\n [documentType, documentId, actionsVersionType, selectedReleaseId],\n )\n\n // Resolve document actions\n const actions = useMemo(\n () => documentActions(documentActionsContext),\n [documentActions, documentActionsContext],\n )\n\n const handlePathOpen = useCallback(\n (path: Path) => {\n onPathOpen(path)\n\n if (enhancedObjectDialogEnabled) {\n const nextPath = pathToString(path)\n if (params.path !== nextPath) {\n setPaneParams({...params, path: nextPath})\n }\n }\n },\n [onPathOpen, params, setPaneParams, enhancedObjectDialogEnabled],\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 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 // Fires a one-shot `Document Initial Load Measured` telemetry event the\n // first time the pane becomes ready to edit. See the hook for details.\n useDocumentInitialLoadTelemetry({\n ready,\n schemaTypeName: schemaType?.name,\n editState,\n hasRevisionParam: Boolean(params.rev),\n })\n\n const displayed: Partial<SanityDocument> | undefined = useMemo(\n () => getDisplayed(value),\n [getDisplayed, value],\n )\n\n const {previousId} = useDocumentIdStack({\n strict: true,\n displayed,\n documentId,\n editState,\n })\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 toggleInlineChanges = useCallback(() => {\n const nextState = router.stickyParams.displayInlineChanges !== 'true'\n telemetry.log(nextState ? InlineChangesSwitchedOn : InlineChangesSwitchedOff)\n\n router.navigate({\n stickyParams: {\n displayInlineChanges: String(nextState),\n },\n })\n }, [router, telemetry])\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 === '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 if (item.action === 'toggleInlineChanges') {\n toggleInlineChanges()\n return true\n }\n\n return false\n },\n [\n previewUrl,\n previousId,\n documentType,\n handleHistoryOpen,\n handleInspectorAction,\n diffViewRouter,\n value._id,\n toggleInlineChanges,\n ],\n )\n\n useEffect(() => {\n setDocumentMeta({documentId, documentType, schemaType: schemaType!, onChange})\n }, [documentId, documentType, schemaType, onChange, setDocumentMeta])\n\n const compareValue = useMemo(\n () => getComparisonValue(upstreamEditState),\n [upstreamEditState, getComparisonValue],\n )\n\n const isDeleted = useMemo(() => getIsDeleted(editState), [editState, getIsDeleted])\n const revisionNotFound = onOlderRevision && !revisionDocument && ready\n\n const currentDisplayed = useMemo(() => {\n if (editState.version && isGoingToUnpublish(editState.version)) {\n return editState.published\n }\n return displayed\n }, [editState.version, editState.published, displayed])\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 syncState,\n displayed: currentDisplayed,\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: handlePathOpen,\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 onSetMaximizedPane,\n maximized,\n openInspector,\n openPath,\n index,\n inspectOpen,\n validation,\n menuItemGroups: menuItemGroups || [],\n paneKey,\n previewUrl,\n ready,\n schemaType: schemaType!,\n hasUpstreamVersion,\n isPermissionsLoading,\n isInitialValueLoading,\n permissions,\n setTimelineRange,\n setIsDeleting,\n targetDocumentState,\n isDeleting,\n isDocumentGroupInventoryActive,\n setIsDocumentGroupInventoryActive,\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 lastRevisionDocument,\n }) satisfies DocumentPaneContextValue,\n [\n actions,\n activeViewId,\n badges,\n changesOpen,\n closeInspector,\n collapsedFieldSets,\n collapsedPaths,\n compareValue,\n connectionState,\n syncState,\n currentDisplayed,\n documentId,\n documentIdRaw,\n documentType,\n editState,\n fieldActions,\n focusPath,\n currentInspector,\n inspectors,\n onBlur,\n onChange,\n onFocus,\n handlePathOpen,\n handleHistoryClose,\n handleHistoryOpen,\n handleLegacyInspectClose,\n handleMenuAction,\n handlePaneClose,\n handlePaneSplit,\n onSetActiveFieldGroup,\n onSetCollapsedPath,\n onSetCollapsedFieldSet,\n onSetMaximizedPane,\n maximized,\n openInspector,\n openPath,\n index,\n inspectOpen,\n validation,\n menuItemGroups,\n paneKey,\n previewUrl,\n ready,\n schemaType,\n hasUpstreamVersion,\n isPermissionsLoading,\n isInitialValueLoading,\n permissions,\n setTimelineRange,\n targetDocumentState,\n isDeleting,\n isDocumentGroupInventoryActive,\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 lastRevisionDocument,\n ],\n )\n\n const documentPaneInfo: DocumentPaneInfoContextValue = useMemo(\n () => ({\n actions,\n badges,\n documentId,\n documentIdRaw,\n documentType,\n fieldActions,\n index,\n menuItemGroups: menuItemGroups || [],\n maximized,\n onPaneClose: handlePaneClose,\n onPaneSplit: handlePaneSplit,\n onSetMaximizedPane,\n paneKey,\n schemaType: schemaType!,\n title,\n views,\n unstable_languageFilter: languageFilter,\n }),\n [\n actions,\n badges,\n documentId,\n documentIdRaw,\n documentType,\n fieldActions,\n index,\n menuItemGroups,\n maximized,\n handlePaneClose,\n handlePaneSplit,\n onSetMaximizedPane,\n paneKey,\n schemaType,\n title,\n views,\n languageFilter,\n ],\n )\n\n const pathRef = useRef<string | undefined>(undefined)\n const paramPath = params.path\n\n const syncPathFromUrl = useEffectEvent((urlPath: string) => {\n const {path: _path, ...restParams} = params\n\n // Only trigger a programmatic focus when the URL path changed AND the\n // form's openPath doesn't already reflect it. When handlePathOpen updates\n // both the form state and the URL, the form is already in sync — calling\n // onProgrammaticFocus again would re-set focusPath/openPath and cause\n // cascading state updates that flicker nested dialogs.\n const currentOpenPathString = pathToString(openPath)\n if (urlPath !== pathRef.current && urlPath !== currentOpenPathString) {\n const pathFromUrl = resolveKeyedPath(formStateRef.current?.value, pathFromString(urlPath))\n onProgrammaticFocus(pathFromUrl)\n }\n\n if (!enhancedObjectDialogEnabled) {\n paneRouter.setParams(restParams)\n }\n })\n\n useEffect(() => {\n if (ready && paramPath) {\n syncPathFromUrl(paramPath)\n }\n pathRef.current = paramPath\n\n return undefined\n }, [paramPath, ready])\n\n // Disable when `formState` or `schemaType` is transiently absent\n // (e.g. a `hidden` callback returns true, or the schema is still loading).\n const isDivergencesEnabled = advancedVersionControlEnabled && Boolean(formState && schemaType)\n\n const divergencesProps: ComponentProps<typeof DivergencesProvider> =\n isDivergencesEnabled && formState && schemaType\n ? {enabled: true, upstreamEditState, editState, subjectId: value._id, schemaType, formState}\n : {enabled: false}\n\n return (\n <DocumentPaneInfoContext.Provider value={documentPaneInfo}>\n <DocumentPaneContext.Provider value={documentPane}>\n <DivergencesProvider {...divergencesProps}>\n <DivergenceAutofocus onProgrammaticFocus={onProgrammaticFocus} />\n <DocumentTitle\n isDeleted={isDeleted}\n displayed={displayed}\n ready={ready}\n schemaType={schemaType}\n />\n <ParseErrorsProvider>{children}</ParseErrorsProvider>\n </DivergencesProvider>\n </DocumentPaneContext.Provider>\n </DocumentPaneInfoContext.Provider>\n )\n}\n\nfunction getDocumentVersionType(\n params: Record<string, string | undefined> | undefined,\n selectedReleaseId: string | undefined,\n value: SanityDocumentLike,\n selectedPerspectiveName: string | undefined,\n draftsEnabled: boolean,\n releases: ReleaseDocument[],\n) {\n let version: DocumentActionsVersionType\n switch (true) {\n case Boolean(params?.rev):\n version = 'revision'\n break\n case selectedReleaseId && isVersionId(value._id): {\n // Check if this is a scheduled draft (cardinality one release)\n const releaseDocument = releases.find(\n (r) => getReleaseIdFromReleaseDocumentId(r._id) === selectedReleaseId,\n )\n\n if (releaseDocument && isCardinalityOneRelease(releaseDocument)) {\n version = 'scheduled-draft'\n } else {\n version = 'version'\n }\n break\n }\n case selectedPerspectiveName === 'published':\n version = 'published'\n break\n case draftsEnabled:\n version = 'draft'\n break\n default:\n version = 'published'\n }\n\n return version\n}\n\nconst DivergenceAutofocus: ComponentType<\n Pick<ReturnType<typeof useDocumentForm>, 'onProgrammaticFocus'>\n> = ({onProgrammaticFocus}) => {\n const divergenceNavigator = useDocumentDivergences()\n const focusedDivergence = divergenceNavigator.enabled\n ? divergenceNavigator.state.focusedDivergence\n : undefined\n\n const focusDivergentPath = useEffectEvent(() => {\n if (\n divergenceNavigator.enabled &&\n typeof divergenceNavigator.state.focusedDivergence !== 'undefined'\n ) {\n onProgrammaticFocus(pathFromString(divergenceNavigator.state.focusedDivergence))\n }\n })\n\n useEffect(() => {\n focusDivergentPath()\n }, [focusedDivergence])\n\n return null\n}\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 PerspectiveProvider,\n useArchivedReleases,\n getTargetDocument,\n useEventsStore,\n usePerspective,\n useSchema,\n useTargetDocumentState,\n useDocumentVersions,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\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 schemaType = schema.get(options.type) as ObjectSchemaType | undefined\n const liveEdit = Boolean(schemaType?.liveEdit)\n\n const {selectedPerspectiveName, selectedPerspective, selectedVariantName} = usePerspective()\n const {data: archivedReleases} = useArchivedReleases()\n const {versions} = useDocumentVersions({documentId: getPublishedId(options.id)})\n const targetDocumentState = useTargetDocumentState(getPublishedId(options.id))\n const draftVersion = getTargetDocument({\n bundle: 'draft',\n variant: selectedVariantName,\n documentVersions: versions,\n })\n\n const showingPublishedOnDraft = liveEdit && selectedPerspective === 'drafts' && !draftVersion\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 // Variant targets: events must be fetched for the variant document itself. Its id cannot be\n // derived from the perspective name — the bundle segment is an opaque scope hash — so it\n // comes from the resolved target stub. (In `variant-missing`/`resolving` states the pane\n // shows the base document, so the perspective-derived ids below correctly apply.)\n if (\n targetDocumentState.status === 'ready' &&\n targetDocumentState.variant !== undefined &&\n targetDocumentState.targetDocument\n ) {\n return targetDocumentState.targetDocument._id\n }\n if (typeof selectedPerspectiveName === 'undefined') {\n return getDraftId(options.id)\n }\n if (selectedPerspectiveName === 'published') {\n return getPublishedId(options.id)\n }\n if (selectedPerspectiveName.length !== 0) {\n return getVersionId(options.id, selectedPerspectiveName)\n }\n return options.id\n }, [\n archivedReleases,\n historyVersion,\n selectedPerspectiveName,\n options.id,\n showingPublishedOnDraft,\n targetDocumentState,\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: eventsStore.lastNonDeletedRevId,\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/paneRouter/usePaneRouter'\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 {type ReactNode} from 'react'\nimport {PerspectiveProvider, usePerspective} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\n\n/**\n * @internal\n * Exposes cardinality one releases as selectedPerspective through PerspectiveContext\n */\nexport function DocumentPerspectiveProvider({children}: {children: ReactNode}) {\n const paneRouter = usePaneRouter()\n const {excludedPerspectives} = usePerspective()\n const router = useRouter()\n const selectedVariantName =\n typeof router.stickyParams.variant === 'string' ? router.stickyParams.variant : undefined\n\n const {scheduledDraft} = paneRouter.params as {scheduledDraft?: string}\n if (scheduledDraft) {\n return (\n <PerspectiveProvider\n selectedPerspectiveName={scheduledDraft}\n selectedVariantName={selectedVariantName}\n excludedPerspectives={excludedPerspectives}\n >\n {children}\n </PerspectiveProvider>\n )\n }\n return children\n}\n","import {memo, useCallback} from 'react'\nimport {SingleDocReleaseProvider, useSource} from 'sanity'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\nimport {DocumentEventsPane} from './DocumentEventsPane'\nimport {DocumentPaneWithLegacyTimelineStore} from './DocumentPaneLegacyTimeline'\nimport {DocumentPerspectiveProvider} from './DocumentPerspectiveProvider'\nimport {type DocumentPaneProviderProps} from './types'\n\n/**\n * @internal\n */\nexport const DocumentPaneProviderWrapper = memo((props: DocumentPaneProviderProps) => {\n const source = useSource()\n const {setParams, params} = usePaneRouter()\n const handleSetScheduledDraftPerspective = useCallback(\n (releaseId: string) => {\n setParams(\n {...params, scheduledDraft: releaseId},\n // We need to reset the perspective sticky param when we set the scheduled draft local perspective.\n // this is because the user may be clicking this from another perspective, for example they could be seeing a `release` perspective and then click to see this scheduled draft perspective.\n // the perspective sticky param was set to the release perspective, so we need to remove it.\n // We are changing both the params and the perspective sticky param to ensure that the scheduled draft perspective is set correctly.\n {perspective: ''},\n )\n },\n [params, setParams],\n )\n\n return (\n <DocumentPerspectiveProvider>\n <SingleDocReleaseProvider onSetScheduledDraftPerspective={handleSetScheduledDraftPerspective}>\n {source.beta?.eventsAPI?.documents ? (\n <DocumentEventsPane {...props} />\n ) : (\n <DocumentPaneWithLegacyTimelineStore {...props} />\n )}\n </SingleDocReleaseProvider>\n </DocumentPerspectiveProvider>\n )\n})\nDocumentPaneProviderWrapper.displayName = 'Memo(DocumentPaneProviderWrapper)'\n","import {useEffect, useEffectEvent, useRef} from 'react'\nimport {usePerspective} from 'sanity'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\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 getPublishedId,\n ReferenceInputOptionsProvider,\n SourceProvider,\n Translate,\n useDocumentType,\n usePerspective,\n useSource,\n useTargetDocumentState,\n useTemplatePermissions,\n useTemplates,\n useTranslation,\n} from 'sanity'\n\nimport {usePaneRouter} from '../../components/paneRouter/usePaneRouter'\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/CommentsWrapper'\nimport {useDocumentLayoutComponent} from './document-layout/useDocumentLayoutComponent'\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, selectedVariantName} = usePerspective()\n const paneRouter = usePaneRouter()\n const options = usePaneOptions(pane.options, paneRouter.params)\n const {documentType, isLoaded: isDocumentLoaded} = useDocumentType(options.id, options.type)\n // Resolution state of the document targeted by the selected perspective and variant. This\n // subscription lives here — outside the keyed provider wrapper below — so it survives wrapper\n // remounts and warm remounts resolve synchronously from the shared caches.\n const targetDocumentState = useTargetDocumentState(getPublishedId(options.id))\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 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 // When a variant is requested, block mounting the editing subtree until the target document\n // has resolved: listeners and patches must never be wired against the base draft/published\n // pair while the actual target (an opaque, server-generated version id) is still unknown.\n if (selectedVariantName && targetDocumentState.status === 'resolving') {\n return (\n <LoadingPane\n flex={2.5}\n minWidth={320}\n paneKey={paneKey}\n title={t('panes.document-pane.variant-target.loading')}\n />\n )\n }\n\n // Remount the editing subtree whenever the resolved variant target changes (variant switched,\n // variant document created/discarded while open), so transitions pass back through the gate\n // above instead of a mounted tree silently falling back to the base pair. Also prevents form\n // state from being reused across variants. Inert when no variant is requested.\n const variantTargetKey = selectedVariantName\n ? `-${selectedVariantName}-${\n targetDocumentState.status === 'ready'\n ? (targetDocumentState.targetDocument?._id ?? 'none')\n : targetDocumentState.status\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 || ''}${variantTargetKey}`}\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 <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 {/* oxlint-disable-next-line react/react-compiler -- this is intentional and how the middleware components has to work */}\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","import {nanoid} from 'nanoid'\n\n// `WeakMap`s require the first type param to extend `object`\nconst randomIdCache = new WeakMap<object, string>()\n\n/**\n * given an object, this function randomly generates an ID and returns it. this\n * result is then saved in a WeakMap so subsequent requests for the same object\n * will receive the same ID\n */\nexport function assignId(obj: object): string {\n const cachedValue = randomIdCache.get(obj)\n if (cachedValue) return cachedValue\n\n const id = nanoid()\n randomIdCache.set(obj, id)\n return id\n}\n","import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {type SanityDocument} from '@sanity/types'\nimport {type GeneralPreviewLayoutKey, SanityDefaultPreview, Translate, useTranslation} from 'sanity'\n\nimport {structureLocaleNamespace} from '../i18n'\n\nexport interface MissingSchemaTypeProps {\n layout?: GeneralPreviewLayoutKey\n value: SanityDocument\n}\n\nexport function MissingSchemaType(props: MissingSchemaTypeProps) {\n const {t} = useTranslation(structureLocaleNamespace)\n const {layout, value} = props\n\n return (\n <SanityDefaultPreview\n title={\n <em>\n <Translate\n t={t}\n i18nKey=\"pane-item.missing-schema-type.title\"\n components={{Code: 'code'}}\n values={{documentType: value._type}}\n />\n </em>\n }\n subtitle={\n <Translate\n t={t}\n i18nKey=\"pane-item.missing-schema-type.subtitle\"\n components={{Code: 'code'}}\n values={{documentId: value._id}}\n />\n }\n media={() => <WarningOutlineIcon />}\n layout={layout}\n />\n )\n}\n","import {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {DocumentIcon} from '@sanity/icons/Document'\nimport {FolderIcon} from '@sanity/icons/Folder'\nimport {\n isSanityDocument,\n type PreviewValue,\n type SanityDocument,\n type SchemaType,\n type SortOrdering,\n} from '@sanity/types'\nimport {Box, type CardProps, Text} from '@sanity/ui'\nimport {\n type ComponentType,\n type MouseEvent,\n startTransition,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n type FIXME,\n type GeneralPreviewLayoutKey,\n getPublishedId,\n PreviewCard,\n SanityDefaultPreview,\n useDocumentPresence,\n useDocumentPreviewStore,\n useEditState,\n useSchema,\n} from 'sanity'\n\nimport {MissingSchemaType} from '../MissingSchemaType'\nimport {usePaneRouter} from '../paneRouter/usePaneRouter'\nimport {PaneItemPreview} from './PaneItemPreview'\n\ninterface PaneItemProps {\n id: string\n layout?: GeneralPreviewLayoutKey\n icon?: ComponentType<any> | false\n pressed?: boolean\n selected?: boolean\n sortOrder?: Pick<SortOrdering, 'by'>\n title?: string\n value?: PreviewValue | SanityDocument\n schemaType?: SchemaType\n margin?: CardProps['margin']\n marginBottom?: CardProps['marginBottom']\n marginTop?: CardProps['marginTop']\n}\n\n/**\n * Return `false` if we explicitly disable the icon.\n * Otherwise return the passed icon or the schema type icon as a backup.\n */\nfunction getIconWithFallback(\n icon: ComponentType<any> | false | undefined,\n schemaType: SchemaType | undefined,\n defaultIcon: ComponentType<any>,\n): ComponentType<any> | false {\n if (icon === false) {\n return false\n }\n\n return icon || (schemaType && schemaType.icon) || defaultIcon || false\n}\n\nexport function PaneItem(props: PaneItemProps) {\n const {\n icon,\n id,\n layout = 'default',\n pressed,\n schemaType,\n selected,\n sortOrder,\n title,\n value,\n margin,\n marginBottom,\n marginTop,\n } = props\n const schema = useSchema()\n const documentPreviewStore = useDocumentPreviewStore()\n const {ChildLink} = usePaneRouter()\n const documentPresence = useDocumentPresence(id)\n const hasSchemaType = Boolean(schemaType && schemaType.name && schema.get(schemaType.name))\n const [clicked, setClicked] = useState<boolean>(false)\n\n const preview = useMemo(() => {\n if (value && isSanityDocument(value)) {\n if (!schemaType || !hasSchemaType) {\n return <MissingSchemaType value={value} />\n }\n\n return (\n <PaneItemPreview\n documentPreviewStore={documentPreviewStore}\n icon={getIconWithFallback(icon, schemaType, DocumentIcon)}\n layout={layout}\n schemaType={schemaType}\n sortOrder={sortOrder}\n value={value}\n presence={documentPresence}\n />\n )\n }\n\n // Always render non-document values as compact previews\n return (\n <SanityDefaultPreview\n status={\n <Box style={{opacity: 0.5}}>\n <Text muted size={1}>\n <ChevronRightIcon />\n </Text>\n </Box>\n }\n icon={getIconWithFallback(icon, schemaType, FolderIcon)}\n layout=\"compact\"\n title={title}\n />\n )\n }, [\n documentPreviewStore,\n hasSchemaType,\n icon,\n layout,\n schemaType,\n sortOrder,\n title,\n value,\n documentPresence,\n ])\n\n const handleClick = useCallback((e: MouseEvent<HTMLElement>) => {\n if (e.metaKey) {\n setClicked(false)\n return\n }\n\n setClicked(true)\n }, [])\n\n // Reset `clicked` state when `selected` prop changes\n // oxlint-disable-next-line react/react-compiler\n useEffect(() => setClicked(false), [selected])\n\n // Preloads the edit state on hover, using concurrent rendering with `startTransition` so preloads can be interrupted and not block rendering\n const [preloading, setPreload] = useState(false)\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const handleMouseEnter = useCallback(() => {\n timeoutRef.current = setTimeout(() => startTransition(() => setPreload(true)), 400)\n }, [])\n const handleMouseLeave = useCallback(() => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n startTransition(() => setPreload(false))\n }, [])\n\n return (\n <PreviewCard\n data-testid={`pane-item-${title}`}\n __unstable_focusRing\n as={ChildLink as FIXME}\n childId={id}\n data-as=\"a\"\n margin={margin}\n marginBottom={marginBottom}\n marginTop={marginTop}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n pressed={pressed}\n radius={2}\n selected={selected || clicked}\n sizing=\"border\"\n tabIndex={-1}\n tone=\"inherit\"\n >\n {preview}\n {preloading && schemaType?.name && value && isSanityDocument(value) && (\n <PreloadDocumentPane documentId={id} documentType={schemaType.name} />\n )}\n </PreviewCard>\n )\n}\n\nfunction PreloadDocumentPane(props: {documentId: string; documentType: string}) {\n const {documentId, documentType} = props\n // Preload the edit state for the document, and keep it alive until mouse leave.\n // No `getTargetScopeId(useTargetDocumentState())` here: this is a best-effort preload of the draft/published\n // pair, so no version scope applies.\n useEditState(getPublishedId(documentId), documentType)\n\n return null\n}\nPreloadDocumentPane.displayName = 'PreloadDocumentPane'\n","import {type ComponentProps, type ForwardedRef, forwardRef, type ReactNode, useMemo} from 'react'\nimport {IntentLink} from 'sanity/router'\n\nimport {Button, type ButtonProps} from '../../ui-components/button/Button'\nimport {type PaneMenuItem} from '../types'\n\ntype RouterIntent = NonNullable<PaneMenuItem['intent']>\n\nexport const IntentButton = forwardRef(function IntentButton(\n props: {\n intent: RouterIntent\n } & ButtonProps &\n Omit<ComponentProps<typeof Button>, 'as' | 'href' | 'type'>,\n ref: ForwardedRef<HTMLAnchorElement>,\n) {\n const {intent, ...restProps} = props\n\n const Link = useMemo(\n () =>\n forwardRef(function Link(\n linkProps: {children: ReactNode},\n linkRef: ForwardedRef<HTMLAnchorElement>,\n ) {\n return (\n <IntentLink\n {...linkProps}\n intent={intent.type}\n params={intent.params}\n ref={linkRef}\n searchParams={intent.searchParams}\n />\n )\n }),\n [intent],\n )\n\n return props.disabled ? (\n <Button {...restProps} as=\"a\" role=\"link\" aria-disabled=\"true\" />\n ) : (\n <Button {...restProps} as={Link} data-as=\"a\" ref={ref as ForwardedRef<HTMLButtonElement>} />\n )\n})\n","import {type ComponentProps, type ReactNode} from 'react'\nimport {InsufficientPermissionsMessage, useCurrentUser, useTranslation} from 'sanity'\n\nimport {Tooltip} from '../../../ui-components/tooltip/Tooltip'\nimport {structureLocaleNamespace} from '../../i18n'\n\ninterface InsufficientPermissionsMessageTooltipProps {\n reveal: boolean\n /**\n * delegates to `InsufficientPermissionsMessage`'s `context` prop\n * @see InsufficientPermissionsMessage\n */\n context: ComponentProps<typeof InsufficientPermissionsMessage>['context']\n loading: boolean\n children: ReactNode\n}\n\nexport function InsufficientPermissionsMessageTooltip({\n reveal,\n context,\n loading,\n children,\n}: InsufficientPermissionsMessageTooltipProps) {\n const currentUser = useCurrentUser()\n const {t} = useTranslation(structureLocaleNamespace)\n\n if (!reveal) {\n return <>{children}</>\n }\n\n return (\n <Tooltip\n content={\n loading ? (\n t('insufficient-permissions-message-tooltip.loading-text')\n ) : (\n <InsufficientPermissionsMessage context={context} currentUser={currentUser} />\n )\n }\n portal\n >\n {/* this wrapping div is to allow mouse events */}\n {/* while the child element is disabled */}\n <div>{children}</div>\n </Tooltip>\n )\n}\n","import {AddIcon} from '@sanity/icons/Add'\nimport {Menu} from '@sanity/ui'\nimport {type ComponentProps, type ForwardedRef, forwardRef, useMemo} from 'react'\nimport {\n type InitialValueTemplateItem,\n type ReleaseId,\n type Template,\n type TemplatePermissionsResult,\n useGetI18nText,\n usePerspective,\n useTemplatePermissions,\n useTemplates,\n useTranslation,\n} from 'sanity'\nimport {IntentLink} from 'sanity/router'\n\nimport {Button} from '../../../ui-components/button/Button'\nimport {MenuButton} from '../../../ui-components/menuButton/MenuButton'\nimport {MenuItem} from '../../../ui-components/menuItem/MenuItem'\nimport {type PopoverProps} from '../../../ui-components/popover/Popover'\nimport {structureLocaleNamespace} from '../../i18n'\nimport {IntentButton} from '../IntentButton'\nimport {InsufficientPermissionsMessageTooltip} from './InsufficientPermissionsMessageTooltip'\n\nexport type PaneHeaderIntentProps = ComponentProps<typeof IntentButton>['intent']\n\nconst POPOVER_PROPS: PopoverProps = {\n constrainSize: true,\n placement: 'bottom',\n portal: true,\n}\n\nconst getIntent = (\n templates: Template[],\n item: InitialValueTemplateItem,\n version?: ReleaseId,\n): PaneHeaderIntentProps | null => {\n const typeName = templates.find((t) => t.id === item.templateId)?.schemaType\n if (!typeName) return null\n\n const baseParams = {\n template: item.templateId,\n type: typeName,\n version,\n id: item.initialDocumentId,\n }\n\n return {\n type: 'create',\n params: item.parameters ? [baseParams, item.parameters] : baseParams,\n searchParams: version ? [['perspective', version]] : undefined,\n }\n}\n\ninterface PaneHeaderCreateButtonProps {\n templateItems: InitialValueTemplateItem[]\n}\n\nexport function PaneHeaderCreateButton({templateItems}: PaneHeaderCreateButtonProps) {\n const templates = useTemplates()\n const {selectedReleaseId} = usePerspective()\n\n const {t} = useTranslation(structureLocaleNamespace)\n const getI18nText = useGetI18nText([...templateItems, ...templates])\n\n const [templatePermissions, isTemplatePermissionsLoading] = useTemplatePermissions({\n templateItems,\n })\n\n const nothingGranted = useMemo(() => {\n return (\n !isTemplatePermissionsLoading &&\n templatePermissions?.length !== 0 &&\n templatePermissions?.every((permission) => !permission.granted)\n )\n }, [isTemplatePermissionsLoading, templatePermissions])\n\n const permissionsById = useMemo(() => {\n if (!templatePermissions) return {}\n return templatePermissions.reduce<Record<string, TemplatePermissionsResult | undefined>>(\n (acc, permission) => {\n acc[permission.id] = permission\n return acc\n },\n {},\n )\n }, [templatePermissions])\n\n if (templateItems.length === 0) return null\n\n if (nothingGranted) {\n return (\n <InsufficientPermissionsMessageTooltip\n context=\"create-document-type\"\n reveal\n loading={isTemplatePermissionsLoading}\n >\n <Button\n aria-label={t('pane-header.disabled-created-button.aria-label')}\n icon={AddIcon}\n data-testid=\"action-intent-button\"\n disabled\n mode=\"bleed\"\n // This button handles the tooltip in a special way, won't reuse the forced tooltip.\n tooltipProps={null}\n />\n </InsufficientPermissionsMessageTooltip>\n )\n }\n\n if (templateItems.length === 1) {\n const firstItem = templateItems[0]\n const permissions = permissionsById[firstItem.id]\n const disabled = !permissions?.granted\n const intent = getIntent(templates, firstItem, selectedReleaseId)\n if (!intent) return null\n\n return (\n <InsufficientPermissionsMessageTooltip\n reveal={disabled}\n loading={isTemplatePermissionsLoading}\n context=\"create-document-type\"\n >\n <IntentButton\n aria-label={getI18nText(firstItem).title}\n icon={AddIcon}\n intent={intent}\n mode=\"bleed\"\n disabled={disabled}\n data-testid=\"action-intent-button\"\n tooltipProps={{content: t('pane-header.create-new-button.tooltip')}}\n />\n </InsufficientPermissionsMessageTooltip>\n )\n }\n\n return (\n <MenuButton\n button={\n <Button\n icon={AddIcon}\n mode=\"bleed\"\n data-testid=\"multi-action-intent-button\"\n tooltipProps={{content: t('pane-header.create-new-button.tooltip')}}\n />\n }\n id=\"create-menu\"\n menu={\n <Menu>\n {templateItems.map((item, itemIndex) => {\n const permissions = permissionsById[item.id]\n const disabled = !permissions?.granted\n const intent = getIntent(templates, item, selectedReleaseId)\n const template = templates.find((i) => i.id === item.templateId)\n if (!template || !intent) return null\n\n const Link = forwardRef((linkProps, linkRef: ForwardedRef<never>) =>\n disabled ? (\n <button type=\"button\" disabled {...linkProps} ref={linkRef} />\n ) : (\n <IntentLink\n {...linkProps}\n intent={intent.type}\n params={intent.params}\n searchParams={intent.searchParams}\n ref={linkRef}\n />\n ),\n )\n\n Link.displayName = 'Link'\n\n const {title} = getI18nText({\n ...item,\n // replace the title with the template title\n title: item.title || getI18nText(template).title,\n })\n\n return (\n <InsufficientPermissionsMessageTooltip\n key={item.id}\n context=\"create-document-type\"\n reveal={disabled}\n loading={isTemplatePermissionsLoading}\n >\n <MenuItem\n as={Link}\n data-as={disabled ? 'button' : 'a'}\n icon={item.icon}\n text={title}\n aria-label={\n disabled ? t('pane-header.disabled-created-button.aria-label') : title\n }\n disabled={disabled}\n data-testid={`action-intent-button-${itemIndex}`}\n />\n </InsufficientPermissionsMessageTooltip>\n )\n })}\n </Menu>\n }\n popover={POPOVER_PROPS}\n />\n )\n}\n","import {Flex} from '@sanity/ui'\nimport uniqBy from 'lodash-es/uniqBy.js'\nimport {memo, useCallback, useMemo} from 'react'\nimport {EMPTY_ARRAY, EMPTY_OBJECT, type InitialValueTemplateItem, useTemplates} from 'sanity'\n\nimport {isMenuNodeButton, isNotMenuNodeButton, resolveMenuNodes} from '../../menuNodes'\nimport {\n type PaneMenuItem,\n type PaneMenuItemGroup,\n type StructureToolPaneActionHandler,\n} from '../../types'\nimport {PaneContextMenuButton} from '../pane/PaneContextMenuButton'\nimport {PaneHeaderActionButton} from '../pane/PaneHeaderActionButton'\nimport {PaneHeaderCreateButton} from './PaneHeaderCreateButton'\n\nfunction isNonNullable<T>(value: T): value is NonNullable<T> {\n return value !== null && value !== undefined\n}\n\n/**\n * hashes an object to a string where the order of the keys don't matter\n */\nconst hashObject = (value: unknown) => {\n const sortObject = (v: unknown): unknown => {\n if (typeof v !== 'object' || !v) return v\n if (Array.isArray(v)) return v.map(sortObject)\n return Object.entries(v).sort(([keyA], [keyB]) => keyA.localeCompare(keyB, 'en'))\n }\n\n const normalize = (v: unknown) => JSON.parse(JSON.stringify(v))\n\n return JSON.stringify(sortObject(normalize(value)))\n}\n\ninterface PaneHeaderActionsProps {\n initialValueTemplateItems?: InitialValueTemplateItem[]\n menuItems?: PaneMenuItem[]\n menuItemGroups?: PaneMenuItemGroup[]\n actionHandlers?: Record<string, StructureToolPaneActionHandler>\n}\n\nexport const PaneHeaderActions = memo(function PaneHeaderActions(props: PaneHeaderActionsProps) {\n const {\n initialValueTemplateItems: initialValueTemplateItemsFromStructure = EMPTY_ARRAY,\n menuItems = EMPTY_ARRAY,\n menuItemGroups = EMPTY_ARRAY,\n actionHandlers = EMPTY_OBJECT as Record<string, StructureToolPaneActionHandler>,\n } = props\n\n const templates = useTemplates()\n\n const handleAction = useCallback(\n (item: PaneMenuItem) => {\n // If menu item has an id, update toggle state first\n if (item.id) {\n const toggleHandler = actionHandlers.setMenuItemState\n if (toggleHandler) {\n toggleHandler({_menuItemId: item.id, ...(item.params as Record<string, unknown>)})\n }\n // If no action, or action is 'setMenuItemState' (already handled above), we're done\n if (!item.action || item.action === 'setMenuItemState') {\n return !!toggleHandler\n }\n }\n\n if (typeof item.action === 'string' && !(item.action in actionHandlers)) {\n console.warn('No handler for action:', item.action)\n return false\n }\n\n const handler =\n typeof item.action === 'function'\n ? item.action\n : typeof item.action === 'string'\n ? actionHandlers[item.action]\n : null\n\n if (handler) {\n // Include the menu item's id and selected state in the params passed to the handler\n // Note: isSelected reflects the state AFTER the toggle (since toggle handler runs first)\n const paramsWithId = item.id\n ? {\n ...(item.params as Record<string, unknown>),\n _menuItemId: item.id,\n isSelected: !item.selected,\n }\n : {...(item.params as Record<string, unknown>), isSelected: !item.selected}\n handler(paramsWithId)\n return true\n }\n\n return false\n },\n [actionHandlers],\n )\n\n const menuNodes = useMemo(\n () =>\n resolveMenuNodes({\n actionHandler: handleAction,\n menuItemGroups,\n menuItems: menuItems\n // remove items with `create` intents because those will get combined\n // into one action button (see `initialValueTemplateItemFromMenuItems`)\n .filter((item) => item.intent?.type !== 'create'),\n }),\n [handleAction, menuItemGroups, menuItems],\n )\n\n const actionNodes = useMemo(() => menuNodes.filter(isMenuNodeButton), [menuNodes])\n const contextMenuNodes = useMemo(() => menuNodes.filter(isNotMenuNodeButton), [menuNodes])\n\n // Empty groups still resolve to nodes, so guard against a button that opens\n // to nothing.\n const hasContextMenuContent = useMemo(\n () =>\n contextMenuNodes.some(\n (node) => node.type === 'item' || (node.type === 'group' && node.children.length > 0),\n ),\n [contextMenuNodes],\n )\n\n const initialValueTemplateItemFromMenuItems = useMemo(() => {\n return menuItems\n .map((item, menuItemIndex) => {\n if (item.intent?.type !== 'create') return null\n\n const {params} = item.intent\n if (!params) return null\n\n const intentParams = Array.isArray(params) ? params[0] : params\n const templateParams = Array.isArray(params) ? params[1] : undefined\n\n // fallback to the schema type name as the template ID.\n // by default, the initial template values are populated from every\n // document type in the schema\n const templateId = intentParams.template || intentParams.type\n if (!templateId) return null\n\n const template = templates.find((t) => t.id === templateId)\n // the template doesn't exist then the action might be disabled\n if (!template) return null\n\n const initialDocumentId = intentParams.id\n\n return {\n item,\n template,\n templateParams,\n menuItemIndex,\n initialDocumentId,\n }\n })\n .filter(isNonNullable)\n .map(({initialDocumentId, item, template, menuItemIndex, templateParams}) => {\n const initialValueTemplateItem: InitialValueTemplateItem = {\n id: `menuItem${menuItemIndex}`,\n initialDocumentId,\n templateId: template.id,\n type: 'initialValueTemplateItem',\n title: item.title || template.title,\n i18n: item.i18n || template.i18n,\n icon: item.icon as InitialValueTemplateItem['icon'],\n description: template.description,\n parameters: templateParams,\n schemaType: template.schemaType,\n }\n\n return initialValueTemplateItem\n })\n }, [menuItems, templates])\n\n const combinedInitialValueTemplates = useMemo(() => {\n // this de-dupes create actions\n return uniqBy(\n [...initialValueTemplateItemFromMenuItems, ...initialValueTemplateItemsFromStructure],\n (item) => hashObject([item.initialDocumentId, item.templateId, item.parameters]),\n )\n }, [initialValueTemplateItemFromMenuItems, initialValueTemplateItemsFromStructure])\n\n return (\n <Flex gap={1}>\n <PaneHeaderCreateButton templateItems={combinedInitialValueTemplates} />\n\n {actionNodes.map((node) => (\n <PaneHeaderActionButton key={node.key} node={node} />\n ))}\n\n {hasContextMenuContent && <PaneContextMenuButton nodes={contextMenuNodes} />}\n </Flex>\n )\n})\n","import {type ComponentType, type ForwardedRef, forwardRef, useContext, useMemo} from 'react'\nimport {PaneRouterContext} from 'sanity/_singletons'\nimport {StateLink} from 'sanity/router'\n\nimport {type BackLinkProps} from './types'\n\n/**\n * @internal\n */\nexport const BackLink = forwardRef(function BackLink(\n props: BackLinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n) {\n const {routerPanesState, groupIndex} = useContext(PaneRouterContext)\n const panes = useMemo(() => routerPanesState.slice(0, groupIndex), [groupIndex, routerPanesState])\n const state = useMemo(() => ({panes}), [panes])\n\n return <StateLink {...props} ref={ref} state={state} />\n}) as ComponentType<BackLinkProps>\n","import {defineEvent} from '@sanity/telemetry'\n\ninterface DocumentPublishedInfo {\n /**\n * The document was created and published straight away\n */\n publishedImmediately: boolean\n\n /**\n * The document had a previously published version when it was published\n */\n previouslyPublished: boolean\n}\n\ninterface PublishButtonDisabledInfo {\n /**\n * Associated with a remote event\n * Specifically with the condition editState?.transactionSyncLock?.enabled for publishing a document\n * Which can be triggered by a remote event\n */\n isRemoteEvent: boolean\n}\n\ninterface StageInfo {\n stage: 'started' | 'completed' | 'failed'\n}\n\nexport const DocumentPublished = defineEvent<DocumentPublishedInfo>({\n name: 'Document Published',\n version: 1,\n description: 'User clicked the \"Publish\" button in the document pane',\n})\n\ninterface DocumentIdInfo {\n documentId: string\n}\n\nexport const PublishButtonClicked = defineEvent<DocumentIdInfo & StageInfo>({\n name: 'Publish Button Clicked',\n version: 1,\n description: 'Logs when a publish operation is started, completed, or failed',\n})\n\nexport const PublishButtonDisabledStart = defineEvent<DocumentIdInfo & PublishButtonDisabledInfo>({\n name: 'Publish Button Becomes Disabled - Started',\n version: 1,\n description: 'Logs when the publish button becomes disabled',\n})\n\nexport const PublishButtonDisabledComplete = defineEvent<\n DocumentIdInfo & PublishButtonDisabledInfo\n>({\n name: 'Publish Button Becomes Disabled - Completed',\n version: 1,\n description: 'Logs when the publish button becomes enabled again',\n})\n\ninterface DocumentDeletedInfo {\n /**\n * Combines internal and cross-dataset references, and counts strong and weak\n * references together; the API does not expose a strong/weak breakdown.\n */\n referenceCount: number\n internalReferenceCount: number\n crossDatasetReferenceCount: number\n}\n\ninterface DeleteStageInfo {\n /**\n * `confirmed` fires on user intent regardless of outcome; a `failed` stage\n * typically means incoming strong references blocked the deletion.\n */\n stage: 'confirmed' | 'deleted' | 'failed'\n}\n\nexport const DocumentDeleted = defineEvent<DocumentIdInfo & DocumentDeletedInfo & DeleteStageInfo>({\n name: 'Document Deleted',\n version: 1,\n description:\n 'Logs when a document delete is confirmed, completed, or failed, including how many documents referred to it',\n})\n","import {TrashIcon} from '@sanity/icons/Trash'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {useCallback, useMemo, useState} from 'react'\nimport {catchError, filter, firstValueFrom, map, of, timeout} from 'rxjs'\nimport {\n type DocumentActionComponent,\n getPairTarget,\n getTargetScopeId,\n InsufficientPermissionsMessage,\n isAgentBundleName,\n isReleaseScheduledOrScheduling,\n useCurrentUser,\n useDocumentOperation,\n useDocumentPairPermissions,\n useDocumentStore,\n useDocumentVersionTypeSortedList,\n useTranslation,\n} from 'sanity'\n\nimport {ConfirmDeleteDialog} from '../components/confirmDeleteDialog'\nimport {type DeleteReferenceCounts} from '../components/confirmDeleteDialog/ConfirmDeleteDialog'\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\nimport {DocumentDeleted} from './__telemetry__/documentActions.telemetry'\n\nconst DISABLED_REASON_TITLE_KEY = {\n NOTHING_TO_DELETE: 'action.delete.disabled.nothing-to-delete',\n NOT_READY: 'action.delete.disabled.not-ready',\n TARGET_NOT_FOUND: 'action.delete.disabled.target-not-found',\n}\n\n// operationEvents switchMaps per document, so a superseding operation drops the\n// delete before it emits an outcome. The telemetry wait is bounded so its\n// subscription is released when no outcome ever arrives.\nconst DELETE_OUTCOME_TIMEOUT = 30000\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useDeleteAction: DocumentActionComponent = ({id, type, draft}) => {\n const {targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, the action is disabled\n // below instead of silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const scopeId = getTargetScopeId(targetDocumentState)\n const isAgentBundle = isAgentBundleName(scopeId)\n const {delete: deleteOp} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\n const [isDeleting, setIsDeleting] = useState(false)\n const [isConfirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const documentStore = useDocumentStore()\n const telemetry = useTelemetry()\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const {sortedDocumentList} = useDocumentVersionTypeSortedList({documentId: id})\n const hasScheduledRelease = sortedDocumentList.some(isReleaseScheduledOrScheduling)\n\n const handleCancel = useCallback(() => {\n setConfirmDialogOpen(false)\n }, [])\n\n const handleConfirm = useCallback(\n (versions: string[], referenceCounts: DeleteReferenceCounts) => {\n const {\n totalReferenceCount: referenceCount,\n internalReferenceCount,\n crossDatasetReferenceCount,\n } = referenceCounts\n const referenceInfo = {\n documentId: id,\n referenceCount,\n internalReferenceCount,\n crossDatasetReferenceCount,\n }\n\n setConfirmDialogOpen(false)\n setIsDeleting(true)\n\n telemetry.log(DocumentDeleted, {...referenceInfo, stage: 'confirmed'})\n\n // Log the result without gating UI state on it. Subscribe before executing\n // so we don't miss the outcome.\n void firstValueFrom(\n documentStore.pair.operationEvents(id, type).pipe(\n filter((event) => event.op === 'delete'),\n map((event) => event.type),\n timeout({first: DELETE_OUTCOME_TIMEOUT}),\n catchError(() => of('dropped' as const)),\n ),\n ).then((outcome) => {\n if (outcome !== 'dropped') {\n telemetry.log(DocumentDeleted, {\n ...referenceInfo,\n stage: outcome === 'success' ? 'deleted' : 'failed',\n })\n }\n })\n\n deleteOp.execute(versions)\n setIsDeleting(false)\n },\n [deleteOp, documentStore.pair, id, telemetry, type],\n )\n\n const handle = useCallback(() => {\n setConfirmDialogOpen(true)\n }, [])\n\n const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n id,\n type,\n version: scopeId,\n permission: 'delete',\n })\n\n const currentUser = useCurrentUser()\n\n return useMemo(() => {\n if (isAgentBundle) return null\n\n if (!isPermissionsLoading && !permissions?.granted) {\n return {\n tone: 'critical',\n icon: TrashIcon,\n disabled: true,\n label: t('action.delete.label'),\n title: (\n <InsufficientPermissionsMessage context=\"delete-document\" currentUser={currentUser} />\n ),\n }\n }\n\n const getTitle = () => {\n if (hasScheduledRelease) {\n return t('action.delete.disabled.scheduled-release')\n }\n if (deleteOp.disabled) {\n return t(DISABLED_REASON_TITLE_KEY[deleteOp.disabled])\n }\n return ''\n }\n\n return {\n tone: 'critical',\n icon: TrashIcon,\n disabled:\n isDeleting ||\n hasScheduledRelease ||\n Boolean(deleteOp.disabled) ||\n isPermissionsLoading ||\n !isTargetReady,\n title: getTitle(),\n label: isDeleting ? t('action.delete.running.label') : t('action.delete.label'),\n shortcut: 'Ctrl+Alt+D',\n onHandle: handle,\n dialog: isConfirmDialogOpen && {\n type: 'custom',\n component: (\n <ConfirmDeleteDialog\n action=\"delete\"\n id={draft?._id || id}\n type={type}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n />\n ),\n },\n }\n }, [\n currentUser,\n deleteOp.disabled,\n draft?._id,\n handle,\n handleCancel,\n handleConfirm,\n hasScheduledRelease,\n isAgentBundle,\n isTargetReady,\n id,\n isConfirmDialogOpen,\n isDeleting,\n isPermissionsLoading,\n permissions?.granted,\n t,\n type,\n ])\n}\n\nuseDeleteAction.action = 'delete'\nuseDeleteAction.displayName = 'DeleteAction'\n","import {Text} from '@sanity/ui'\nimport {useId} from 'react'\nimport {useTranslation} from 'sanity'\n\nimport {Dialog} from '../../../ui-components/dialog/Dialog'\nimport {structureLocaleNamespace} from '../../i18n'\n\ninterface ConfirmDiscardDialogProps {\n onCancel: () => void\n onConfirm: () => void\n publishedExists: boolean\n}\n\n/**\n * A confirmation dialog used to confirm discarding changes.\n * @internal\n */\nexport function ConfirmDiscardDialog({\n publishedExists,\n onCancel,\n onConfirm,\n}: ConfirmDiscardDialogProps) {\n const {t} = useTranslation(structureLocaleNamespace)\n const dialogId = `deletion-confirmation-${useId()}`\n\n return (\n <Dialog\n width={1}\n id={dialogId}\n header={t('action.discard-changes.confirm-dialog.header.text')}\n footer={{\n confirmButton: {\n text: t('action.discard-changes.label'),\n onClick: onConfirm,\n },\n }}\n onClose={onCancel}\n onClickOutside={onCancel}\n >\n <Text size={1}>\n {publishedExists\n ? t('action.discard-changes.confirm-dialog.confirm-discard-changes')\n : t('action.discard-changes.confirm-dialog.confirm-discard-changes-draft')}\n </Text>\n </Dialog>\n )\n}\n","import {ResetIcon} from '@sanity/icons/Reset'\nimport {useCallback, useMemo, useState} from 'react'\nimport {\n type DocumentActionComponent,\n getPairTarget,\n getTargetScopeId,\n InsufficientPermissionsMessage,\n isPublishedId,\n useCurrentUser,\n useDocumentOperation,\n useDocumentPairPermissions,\n useTranslation,\n} from 'sanity'\n\nimport {ConfirmDiscardDialog} from '../components/confirmDiscardDialog/ConfirmDiscardDialog'\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\n\nconst DISABLED_REASON_KEY = {\n NO_CHANGES: 'action.discard-changes.disabled.no-change',\n NOT_PUBLISHED: 'action.discard-changes.disabled.not-published',\n NOT_READY: 'action.discard-changes.disabled.not-ready',\n TARGET_NOT_FOUND: 'action.discard-changes.disabled.target-not-found',\n} as const\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useDiscardChangesAction: DocumentActionComponent = ({\n id,\n type,\n published,\n liveEdit,\n version,\n draft,\n}) => {\n const {displayed, targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, the action is disabled\n // below instead of silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const scopeId = getTargetScopeId(targetDocumentState)\n const isVariantTarget = isTargetReady && targetDocumentState.variant !== undefined\n // The discard confirmation copy depends on whether a published counterpart exists (\"revert to\n // published\" vs \"delete document\"). For variant targets that counterpart is the\n // variant-of-published sibling, not the base published document.\n const publishedCounterpartExists = isVariantTarget\n ? targetDocumentState.publishedSibling !== undefined\n : Boolean(published)\n const {discardChanges} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\n const [isConfirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n id,\n type,\n version: scopeId,\n permission: 'discardDraft',\n })\n const currentUser = useCurrentUser()\n\n const {t} = useTranslation(structureLocaleNamespace)\n const isPublished = displayed?._id && isPublishedId(displayed?._id)\n\n const handleConfirm = useCallback(() => {\n discardChanges.execute()\n setConfirmDialogOpen(false)\n }, [discardChanges])\n\n const handleCancel = useCallback(() => {\n setConfirmDialogOpen(false)\n }, [])\n\n const handle = useCallback(() => {\n setConfirmDialogOpen(true)\n }, [])\n\n return useMemo(() => {\n // This document has neither a draft nor a version so there isn't anything to discard\n if (!version && !draft) {\n return null\n }\n // isPublished = we are currently editing the published version and never want to show \"Discard drafts\" in this case\n if (isPublished) {\n return null\n }\n\n if (!isPermissionsLoading && !permissions?.granted) {\n return {\n tone: 'critical',\n icon: ResetIcon,\n disabled: true,\n label: t('action.discard-changes.label'),\n title: (\n <InsufficientPermissionsMessage context=\"discard-changes\" currentUser={currentUser} />\n ),\n }\n }\n\n return {\n tone: 'critical',\n icon: ResetIcon,\n disabled: Boolean(discardChanges.disabled) || isPermissionsLoading || !isTargetReady,\n title: t((discardChanges.disabled && DISABLED_REASON_KEY[discardChanges.disabled]) || ''),\n label: t('action.discard-changes.label'),\n onHandle: handle,\n dialog: isConfirmDialogOpen && {\n type: 'custom',\n component: (\n <ConfirmDiscardDialog\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n publishedExists={publishedCounterpartExists}\n />\n ),\n },\n }\n }, [\n currentUser,\n handleConfirm,\n handleCancel,\n isConfirmDialogOpen,\n discardChanges.disabled,\n publishedCounterpartExists,\n version,\n draft,\n handle,\n isPermissionsLoading,\n isPublished,\n isTargetReady,\n permissions?.granted,\n t,\n ])\n}\n\nuseDiscardChangesAction.action = 'discardChanges'\nuseDiscardChangesAction.displayName = 'DiscardChangesAction'\n","import {CopyIcon} from '@sanity/icons/Copy'\nimport {uuid} from '@sanity/uuid'\nimport {useCallback, useMemo, useState} from 'react'\nimport {filter, firstValueFrom} from 'rxjs'\nimport {\n type DuplicateDocumentActionComponent,\n getPairTarget,\n getTargetScopeId,\n InsufficientPermissionsMessage,\n useCurrentUser,\n useDocumentOperation,\n useDocumentPairPermissions,\n useDocumentStore,\n useTranslation,\n} from 'sanity'\nimport {useRouter} from 'sanity/router'\n\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\n\nconst DISABLED_REASON_KEY = {\n NOTHING_TO_DUPLICATE: 'action.duplicate.disabled.nothing-to-duplicate',\n NOT_READY: 'action.duplicate.disabled.not-ready',\n TARGET_NOT_FOUND: 'action.duplicate.disabled.target-not-found',\n}\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useDuplicateAction: DuplicateDocumentActionComponent = ({id, type, mapDocument}) => {\n const documentStore = useDocumentStore()\n const {targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, the action is disabled\n // below instead of silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const scopeId = getTargetScopeId(targetDocumentState)\n\n const {duplicate} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\n const {navigateIntent} = useRouter()\n const [isDuplicating, setDuplicating] = useState(false)\n\n const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n id,\n type,\n version: scopeId,\n permission: 'duplicate',\n })\n\n const {t} = useTranslation(structureLocaleNamespace)\n\n const currentUser = useCurrentUser()\n\n const handle = useCallback(async () => {\n const dupeId = uuid()\n\n setDuplicating(true)\n\n // set up the listener before executing\n const duplicateSuccess = firstValueFrom(\n documentStore.pair\n .operationEvents(id, type)\n .pipe(filter((e) => e.op === 'duplicate' && e.type === 'success')),\n )\n duplicate.execute(dupeId, {mapDocument})\n\n // only navigate to the duplicated document when the operation is successful\n await duplicateSuccess\n navigateIntent('edit', {id: dupeId, type})\n\n setDuplicating(false)\n }, [documentStore.pair, duplicate, id, mapDocument, navigateIntent, type])\n\n return useMemo(() => {\n if (!isPermissionsLoading && !permissions?.granted) {\n return {\n icon: CopyIcon,\n disabled: true,\n label: t('action.duplicate.label'),\n title: (\n <InsufficientPermissionsMessage context=\"duplicate-document\" currentUser={currentUser} />\n ),\n }\n }\n\n return {\n icon: CopyIcon,\n disabled:\n isDuplicating || Boolean(duplicate.disabled) || isPermissionsLoading || !isTargetReady,\n label: isDuplicating ? t('action.duplicate.running.label') : t('action.duplicate.label'),\n title: duplicate.disabled ? t(DISABLED_REASON_KEY[duplicate.disabled]) : '',\n onHandle: handle,\n }\n }, [\n currentUser,\n duplicate.disabled,\n handle,\n isDuplicating,\n isPermissionsLoading,\n isTargetReady,\n permissions?.granted,\n t,\n ])\n}\n\nuseDuplicateAction.action = 'duplicate'\nuseDuplicateAction.displayName = 'DuplicateAction'\n","import {PublishIcon} from '@sanity/icons/Publish'\nimport {useTelemetry} from '@sanity/telemetry/react'\nimport {isValidationErrorMarker} from '@sanity/types'\nimport {Text, useToast} from '@sanity/ui'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\nimport {\n type DocumentActionComponent,\n getPairTarget,\n getTargetScopeId,\n InsufficientPermissionsMessage,\n isPublishedPerspective,\n type TFunction,\n useCurrentUser,\n useDocumentOperation,\n useDocumentPairPermissions,\n useEditState,\n usePerspective,\n useRelativeTime,\n useSyncState,\n useTranslation,\n useValidationStatus,\n} from 'sanity'\n\nimport {structureLocaleNamespace, type StructureLocaleResourceKeys} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\nimport {\n DocumentPublished,\n PublishButtonDisabledComplete,\n PublishButtonDisabledStart,\n PublishButtonClicked,\n} from './__telemetry__/documentActions.telemetry'\n\nconst DISABLED_REASON_TITLE_KEY: Record<string, StructureLocaleResourceKeys> = {\n LIVE_EDIT_ENABLED: 'action.publish.live-edit.publish-disabled',\n ALREADY_PUBLISHED: 'action.publish.already-published.no-time-ago.tooltip',\n NO_CHANGES: 'action.publish.no-changes.tooltip',\n NOT_READY: 'action.publish.disabled.not-ready',\n NOT_PUBLISHABLE: 'action.publish.disabled.not-publishable',\n TARGET_NOT_FOUND: 'action.publish.disabled.target-not-found',\n} as const\n\nconst PUBLISHED_STATE = {status: 'published'} as const\n\nfunction getDisabledReason(\n reason: keyof typeof DISABLED_REASON_TITLE_KEY,\n publishedAt: string | undefined,\n t: TFunction,\n) {\n if (reason === 'ALREADY_PUBLISHED' && publishedAt) {\n return <AlreadyPublished publishedAt={publishedAt} />\n }\n return t(DISABLED_REASON_TITLE_KEY[reason])\n}\n\nfunction AlreadyPublished({publishedAt}: {publishedAt: string}) {\n const {t} = useTranslation(structureLocaleNamespace)\n const timeSincePublished = useRelativeTime(publishedAt, {useTemporalPhrase: true})\n return <Text>{t('action.publish.already-published.tooltip', {timeSincePublished})}</Text>\n}\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const usePublishAction: DocumentActionComponent = (props) => {\n const {id, type, liveEdit, draft, published, release, version} = props\n const {selectedPerspective, selectedVariantName} = usePerspective()\n const [publishState, setPublishState] = useState<\n {status: 'publishing'; publishRevision: string | undefined} | {status: 'published'} | null\n >(null)\n\n const {changesOpen, documentId, documentType, value, targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective (undefined when the target is\n // still resolving or the draft/published pair applies). While resolving, the action is disabled\n // below instead of silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const scopeId = getTargetScopeId(targetDocumentState)\n const isVariantTarget = isTargetReady && targetDocumentState.variant !== undefined\n // For variant targets, publish state (already-published timestamps, publish-completion revision\n // tracking) lives on the variant-of-published sibling — the base `published` document says\n // nothing about whether the *variant* is published.\n const publishedInfo = isVariantTarget ? targetDocumentState.publishedSibling : published\n // Variant publish locks need the sibling revision (not in any pair snapshot). Base draft\n // publish omits this and keeps using `snapshots.published._rev` inside the operation.\n const publishedRevisionId = isVariantTarget\n ? targetDocumentState.publishedSibling?._rev\n : undefined\n\n const {publish} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\n const validationStatus = useValidationStatus(value._id, type, !release)\n const syncState = useSyncState(id, type, scopeId)\n const editState = useEditState(documentId, documentType, 'default', scopeId)\n const {t} = useTranslation(structureLocaleNamespace)\n\n const revision = (editState?.version || editState?.draft || editState?.published || {})._rev\n const toast = useToast()\n\n const hasValidationErrors = validationStatus.validation.some(isValidationErrorMarker)\n // we use this to \"schedule\" publish after pending tasks (e.g. validation and sync) has completed\n const [publishScheduled, setPublishScheduled] = useState<boolean>(false)\n const isSyncing = syncState.isSyncing\n const isValidating = validationStatus.isValidating\n const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n id,\n type,\n version: scopeId,\n permission: 'publish',\n })\n\n const currentUser = useCurrentUser()\n\n const title = publish.disabled\n ? getDisabledReason(publish.disabled, publishedInfo?._updatedAt, t) || ''\n : hasValidationErrors\n ? t('action.publish.validation-issues.tooltip')\n : ''\n\n const currentPublishRevision = publishedInfo?._rev\n\n const telemetry = useTelemetry()\n\n const doPublish = useCallback(() => {\n publish.execute(isVariantTarget ? {publishedRevisionId} : undefined)\n telemetry.log(PublishButtonClicked, {documentId: id, stage: 'started'})\n setPublishState({status: 'publishing', publishRevision: currentPublishRevision})\n }, [publish, isVariantTarget, publishedRevisionId, currentPublishRevision, telemetry, id])\n\n useEffect(() => {\n // make sure the validation status is about the current revision and not an earlier one\n const validationComplete =\n !validationStatus.isValidating && validationStatus.revision === revision\n\n if (!publishScheduled || isSyncing || !validationComplete) {\n return\n }\n\n if (!hasValidationErrors) {\n // oxlint-disable-next-line react/react-compiler\n doPublish()\n } else {\n // User tried to publish before validation was complete\n toast.push({\n title: t('action.publish.validation-issues-toast.title'),\n description: t('action.publish.validation-issues-toast.description'),\n status: 'error',\n })\n }\n setPublishScheduled(false)\n }, [\n isSyncing,\n doPublish,\n hasValidationErrors,\n publishScheduled,\n validationStatus.revision,\n revision,\n isValidating,\n validationStatus.isValidating,\n toast,\n t,\n ])\n\n useEffect(() => {\n const didPublish =\n // All we need to check here is for the revision of the current published document\n // to be different from what it was at the time of publish\n // a successful publish will always lead to a new published revision\n publishState?.status === 'publishing' &&\n currentPublishRevision !== publishState.publishRevision\n\n if (didPublish) {\n telemetry.log(PublishButtonClicked, {documentId: id, stage: 'completed'})\n }\n\n const nextState = didPublish ? PUBLISHED_STATE : null\n const delay = didPublish ? 200 : 4000\n const timer = setTimeout(() => {\n if (\n publishState?.status === 'publishing' &&\n currentPublishRevision === publishState.publishRevision\n ) {\n telemetry.log(PublishButtonClicked, {documentId: id, stage: 'failed'})\n }\n setPublishState(nextState)\n }, delay)\n return () => clearTimeout(timer)\n }, [changesOpen, publishState, currentPublishRevision, telemetry, id])\n\n const isWaitingToPublish = Boolean(\n (draft || version) &&\n (publishScheduled || editState?.transactionSyncLock?.enabled || isPermissionsLoading),\n )\n\n useEffect(() => {\n if (!isWaitingToPublish) return undefined\n telemetry.log(PublishButtonDisabledStart, {\n documentId: id,\n isRemoteEvent: editState?.transactionSyncLock?.enabled,\n })\n return () => {\n telemetry.log(PublishButtonDisabledComplete, {\n documentId: id,\n isRemoteEvent: editState?.transactionSyncLock?.enabled,\n })\n }\n }, [isWaitingToPublish, telemetry, id, editState?.transactionSyncLock?.enabled])\n\n const handle = useCallback(() => {\n telemetry.log(DocumentPublished, {\n publishedImmediately: !draft?._createdAt,\n previouslyPublished: Boolean(publishedInfo),\n })\n if (\n syncState.isSyncing ||\n validationStatus.isValidating ||\n validationStatus.revision !== revision\n ) {\n setPublishScheduled(true)\n } else {\n doPublish()\n }\n }, [\n telemetry,\n draft?._createdAt,\n publishedInfo,\n syncState.isSyncing,\n validationStatus.isValidating,\n validationStatus.revision,\n revision,\n doPublish,\n ])\n\n return useMemo(() => {\n if (isPublishedPerspective(selectedPerspective)) {\n // never show publish action on a published document\n return null\n }\n\n if (release && version) {\n // release versions are not publishable by this action, they should be published as part of a release\n return null\n }\n\n if (liveEdit && !version) {\n // disable publish if liveEdit is true and we're not on a version\n // e.g. if liveEdit is true and we have a version, we want to allow publish\n // note that liveEdit is \"forced\" on version documents as a hack of sorts\n return null\n }\n\n /**\n * When draft is null, if not a published or version document\n * then it means the draft is yet to be saved - in this case don't disabled\n * the publish button due to ALREADY_PUBLISHED reason\n *\n * Skipped when a variant is selected: the base published document says nothing about the\n * variant's publish state (the store-level disabled reasons and target guards apply instead).\n */\n if (published && !draft && !version && !selectedVariantName) {\n return {\n tone: 'default',\n icon: PublishIcon,\n label: t('action.publish.label'),\n title: getDisabledReason('ALREADY_PUBLISHED', published?._updatedAt, t),\n disabled: true,\n }\n }\n\n if (!isPermissionsLoading && !permissions?.granted) {\n return {\n tone: 'default',\n icon: PublishIcon,\n label: t('action.publish.label'),\n title: (\n <InsufficientPermissionsMessage context=\"publish-document\" currentUser={currentUser} />\n ),\n disabled: true,\n }\n }\n\n const disabled = Boolean(\n publishScheduled ||\n editState?.transactionSyncLock?.enabled ||\n publishState?.status === 'publishing' ||\n publishState?.status === 'published' ||\n hasValidationErrors ||\n publish.disabled ||\n !isTargetReady,\n )\n\n return {\n disabled: disabled || isPermissionsLoading,\n tone: 'default',\n label:\n publishState?.status === 'published'\n ? t('action.publish.published.label')\n : publishScheduled\n ? t('action.publish.validation-in-progress.label')\n : publishState?.status === 'publishing'\n ? t('action.publish.running.label')\n : t('action.publish.draft.label'),\n // @todo: Implement loading state, to show a `<Button loading />` state\n // loading: publishScheduled || publishState === 'publishing',\n icon: PublishIcon,\n title: publishScheduled\n ? t('action.publish.waiting')\n : publishState?.status === 'published' || publishState?.status === 'publishing'\n ? null\n : title,\n shortcut: disabled || publishScheduled ? null : 'Ctrl+Alt+P',\n onHandle: handle,\n }\n }, [\n selectedPerspective,\n selectedVariantName,\n release,\n liveEdit,\n version,\n draft,\n published,\n isPermissionsLoading,\n permissions?.granted,\n publishScheduled,\n editState?.transactionSyncLock?.enabled,\n publishState,\n hasValidationErrors,\n publish.disabled,\n isTargetReady,\n t,\n title,\n handle,\n currentUser,\n ])\n}\n\nusePublishAction.action = 'publish'\nusePublishAction.displayName = 'PublishAction'\n","import {UnpublishIcon} from '@sanity/icons/Unpublish'\nimport {useCallback, useMemo, useState} from 'react'\nimport {\n type DocumentActionComponent,\n type DocumentActionModalDialogProps,\n getPairTarget,\n getTargetScopeId,\n InsufficientPermissionsMessage,\n useCurrentUser,\n useDocumentOperation,\n useDocumentPairPermissions,\n usePerspective,\n useTranslation,\n} from 'sanity'\n\nimport {ConfirmDeleteDialog} from '../components/confirmDeleteDialog'\nimport {structureLocaleNamespace} from '../i18n'\nimport {useDocumentPane} from '../panes/document/useDocumentPane'\n\nconst DISABLED_REASON_KEY = {\n NOT_PUBLISHED: 'action.unpublish.disabled.not-published',\n NOT_READY: 'action.unpublish.disabled.not-ready',\n LIVE_EDIT_ENABLED: 'action.unpublish.disabled.live-edit-enabled',\n TARGET_NOT_FOUND: 'action.unpublish.disabled.target-not-found',\n}\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentActionComponent`\n/** @internal */\nexport const useUnpublishAction: DocumentActionComponent = ({\n id,\n type,\n draft,\n liveEditSchemaType,\n release,\n}) => {\n const {targetDocumentState} = useDocumentPane()\n // The scope of the document targeted by the selected perspective, so that published variant\n // documents can be unpublished (undefined when the target is still resolving or the\n // draft/published pair applies). While resolving, the action is disabled below instead of\n // silently operating on the base pair.\n const isTargetReady = targetDocumentState.status === 'ready'\n const scopeId = getTargetScopeId(targetDocumentState)\n const isVariantTarget = isTargetReady && targetDocumentState.variant !== undefined\n // A variant is unpublishable only when its variant-of-published sibling exists — the base\n // `published` document says nothing about the variant's publish state.\n const isVariantUnpublishable = isVariantTarget\n ? targetDocumentState.publishedSibling !== undefined\n : true\n const {unpublish} = useDocumentOperation(id, type, getPairTarget(targetDocumentState))\n const [isConfirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const [permissions, isPermissionsLoading] = useDocumentPairPermissions({\n id,\n type,\n version: scopeId,\n permission: 'unpublish',\n })\n const currentUser = useCurrentUser()\n const {t} = useTranslation(structureLocaleNamespace)\n const {selectedPerspective} = usePerspective()\n\n const isDraft = selectedPerspective === 'drafts'\n\n const handleCancel = useCallback(() => {\n setConfirmDialogOpen(false)\n }, [])\n\n const handleConfirm = useCallback(() => {\n setConfirmDialogOpen(false)\n unpublish.execute()\n }, [unpublish])\n\n const dialog: DocumentActionModalDialogProps | null = useMemo(() => {\n if (isConfirmDialogOpen) {\n return {\n type: 'dialog',\n onClose: handleCancel,\n content: (\n <ConfirmDeleteDialog\n id={draft?._id || id}\n type={type}\n action=\"unpublish\"\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n />\n ),\n }\n }\n\n return null\n }, [draft, id, handleCancel, handleConfirm, isConfirmDialogOpen, type])\n\n return useMemo(() => {\n if (release || isDraft) {\n // Version documents cannot be unpublished by this action, they should be unpublished as part of a release\n // Draft documents can't either\n return null\n }\n // `liveEdit` is forced to true whenever a version is checked out, which includes variant\n // targets — for those, only the schema-level live edit setting should hide the action\n // (the variant-of-published document is unpublishable).\n if (liveEditSchemaType) {\n return null\n }\n\n if (!isPermissionsLoading && !permissions?.granted) {\n return {\n tone: 'critical',\n icon: UnpublishIcon,\n label: 'Unpublish',\n title: (\n <InsufficientPermissionsMessage context=\"unpublish-document\" currentUser={currentUser} />\n ),\n disabled: true,\n }\n }\n\n if (!isVariantUnpublishable) {\n return {\n tone: 'critical',\n icon: UnpublishIcon,\n disabled: true,\n label: t('action.unpublish.label'),\n title: t(DISABLED_REASON_KEY.NOT_PUBLISHED),\n }\n }\n\n return {\n tone: 'critical',\n icon: UnpublishIcon,\n disabled: Boolean(unpublish.disabled) || isPermissionsLoading || !isTargetReady,\n label: t('action.unpublish.label'),\n title: unpublish.disabled ? t(DISABLED_REASON_KEY[unpublish.disabled]) : '',\n onHandle: () => setConfirmDialogOpen(true),\n dialog,\n }\n }, [\n release,\n isDraft,\n liveEditSchemaType,\n isPermissionsLoading,\n isTargetReady,\n isVariantUnpublishable,\n permissions?.granted,\n unpublish.disabled,\n t,\n dialog,\n currentUser,\n ])\n}\n\nuseUnpublishAction.action = 'unpublish'\nuseUnpublishAction.displayName = 'UnpublishAction'\n","import {type DocumentBadgeComponent} from 'sanity'\n\n// React Compiler needs functions that are hooks to have the `use` prefix, pascal case are treated as a component, these are hooks even though they're confusingly named `DocumentBadgeComponent`\n/** @internal */\nexport const useLiveEditBadge: DocumentBadgeComponent = (props) => {\n const {liveEditSchemaType, version} = props\n\n if (liveEditSchemaType && !version) {\n return {\n label: 'Live',\n color: 'danger',\n }\n }\n\n return null\n}\nuseLiveEditBadge.displayName = 'LiveEditBadge'\n","import {uuid} from '@sanity/uuid'\n\nimport {EMPTY_PARAMS, type LOADING_PANE} from './constants'\nimport {type PaneNode, type RouterPanes} from './types'\n\nconst state: {\n activePanes: Array<PaneNode | typeof LOADING_PANE>\n} = {activePanes: []}\n\nexport function setActivePanes(panes: Array<PaneNode | typeof LOADING_PANE>): void {\n state.activePanes = panes\n}\n\n/**\n * This function looks at the _active panes_ to resolve an intent. this type of\n * intent resolution is faster and does not cause the panes to reset\n *\n * @internal\n */\nexport function getIntentState(\n intent: string,\n params: Record<string, string>,\n routerState: {panes?: RouterPanes} | undefined,\n payload: unknown,\n): {panes: RouterPanes} | {intent: string; params: Record<string, string>; payload: unknown} {\n const panes = routerState?.panes || []\n const activePanes = state.activePanes || []\n const editDocumentId = params.id || uuid()\n\n // Loop through open panes and see if any of them can handle the intent\n for (let i = activePanes.length - 1; i >= 0; i--) {\n const pane = activePanes[i]\n\n if (typeof pane !== 'object') continue\n\n // NOTE: if you update this logic, please also update the similar handler in\n // `resolveIntent.ts`\n if (\n pane.canHandleIntent?.(intent, params, {\n pane,\n index: i,\n }) ||\n // see `resolveIntent.ts` for more info\n (pane.type === 'documentList' &&\n pane.schemaTypeName === params.type &&\n pane.options.filter === '_type == $type')\n ) {\n const paneParams = getPaneParams(intent, params)\n\n return {\n panes: panes\n .slice(0, i)\n .concat([[{id: editDocumentId, params: paneParams, payload}]]) as RouterPanes,\n }\n }\n }\n\n return {intent: intent, params, payload}\n}\n\nfunction getPaneParams(intent: string, params: Record<string, string>): Record<string, string> {\n switch (intent) {\n case 'create':\n return {template: params.template, version: params.version}\n case 'edit': {\n // Forward every param except those that identify the document (`id`/`type`) or\n // are create-only (`template`). This mirrors the cold-path resolver\n // (`resolveIntent`), which rest-spreads `otherParams`. Keeping the two in sync\n // structurally is important: a hardcoded allow-list silently drops any newly\n // added edit-intent param (this is exactly how `path` was being lost).\n const {id: _id, type: _type, template: _template, ...rest} = params\n return rest\n }\n default:\n return EMPTY_PARAMS\n }\n}\n","import {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {Flex, Stack} from '@sanity/ui'\nimport {TextWithTone, useTranslation} from 'sanity'\n\nexport function TimelineError({versionError}: {versionError?: boolean}) {\n const {t} = useTranslation('studio')\n\n return (\n <Flex align=\"flex-start\" gap={3} padding={4}>\n <TextWithTone tone=\"critical\">\n <ErrorOutlineIcon />\n </TextWithTone>\n <Stack space={4}>\n <TextWithTone size={1} tone=\"critical\" weight=\"medium\">\n {versionError\n ? t('timeline.error.load-document-changes-version-title')\n : t('timeline.error.load-document-changes-title')}\n </TextWithTone>\n <TextWithTone size={1} tone=\"critical\">\n {versionError\n ? t('timeline.error.load-document-changes-version-description')\n : t('timeline.error.load-document-changes-description')}\n </TextWithTone>\n </Stack>\n </Flex>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {type MouseEvent, useCallback} from 'react'\nimport {useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {structureLocaleNamespace} from '../../../i18n'\nimport {TIMELINE_LIST_WRAPPER_ID} from './timeline'\n\n/**\n * This is a hack to force the scrollbar to not appear when the list is expanding,\n * if we don't do this the scrollbar will appear for a brief moment when the list is expanding and then disappear\n * when the list is fully expanded.\n */\nfunction hideScrollbarOnExpand(isExpanded: boolean) {\n // Do nothing if the list is already expanded\n if (isExpanded) return\n\n const listWrapper = document.getElementById(TIMELINE_LIST_WRAPPER_ID)\n\n if (listWrapper) {\n const firstChildren = listWrapper.children[0] as HTMLElement\n const hasScrollbar = firstChildren.scrollHeight > firstChildren.clientHeight\n if (!hasScrollbar) {\n //\n const currentStyle = getComputedStyle(firstChildren).overflowY\n // Add overflow hidden to the listWrapper to avoid the scrollbar to appear when expanding\n firstChildren.style.overflowY = 'hidden'\n setTimeout(() => {\n // Reset the overflow style after the list is expanded\n firstChildren.style.overflowY = currentStyle\n }, 0)\n }\n }\n}\n\nconst FlipIcon = styled(ChevronLeftIcon)`\n transition: transform 200ms;\n &[data-expanded='true'] {\n transform: rotate(-90deg);\n }\n`\n\nexport function ExpandableTimelineItemButton({\n isExpanded,\n onExpand,\n}: {\n isExpanded: boolean\n onExpand: () => void\n}) {\n const {t} = useTranslation(structureLocaleNamespace)\n\n const handleExpandClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n hideScrollbarOnExpand(isExpanded)\n onExpand()\n },\n [onExpand, isExpanded],\n )\n\n return (\n <Button\n mode=\"bleed\"\n icon={<FlipIcon data-expanded={isExpanded} />}\n tooltipProps={{\n content: isExpanded\n ? t('timeline-item.menu.action-collapse')\n : t('timeline-item.menu.action-expand'),\n }}\n onClick={handleExpandClick}\n />\n )\n}\n","import {Box, Flex, Stack} from '@sanity/ui'\nimport {css, styled} from 'styled-components'\n\nexport const StackWrapper = styled(Stack)`\n max-width: 200px;\n`\n\nexport const ListWrapper = styled(Flex)<{$maxHeight: string}>`\n max-height: ${(props) => props.$maxHeight};\n min-width: 244px;\n`\n\nexport const Root = styled(Box)<{$visible?: boolean}>(({$visible}) => {\n return css`\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n\n ${\n $visible &&\n css`\n opacity: 1;\n pointer-events: auto;\n `\n }\n `\n})\n","import {type IconComponent} from '@sanity/icons'\nimport {AddIcon} from '@sanity/icons/Add'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {EditIcon} from '@sanity/icons/Edit'\nimport {PublishIcon} from '@sanity/icons/Publish'\nimport {TrashIcon} from '@sanity/icons/Trash'\nimport {UnpublishIcon} from '@sanity/icons/Unpublish'\n\nexport const TIMELINE_ICON_COMPONENTS: {[key: string]: IconComponent | undefined} = {\n create: AddIcon,\n delete: TrashIcon,\n discardDraft: CloseIcon,\n initial: AddIcon,\n editDraft: EditIcon,\n editLive: EditIcon,\n publish: PublishIcon,\n unpublish: UnpublishIcon,\n}\n","import {type IconComponent} from '@sanity/icons'\nimport {type ChunkType} from 'sanity'\n\nimport {TIMELINE_ICON_COMPONENTS} from './constants'\n\nexport function getTimelineEventIconComponent(type: ChunkType): IconComponent | undefined {\n return TIMELINE_ICON_COMPONENTS[type]\n}\n","import {type AvatarSize, AvatarStack} from '@sanity/ui'\nimport {UserAvatar} from 'sanity'\n\ninterface UserAvatarStackProps {\n maxLength?: number\n userIds: string[]\n size?: AvatarSize\n withTooltip?: boolean\n}\n\nexport function UserAvatarStack({\n maxLength,\n userIds,\n size,\n withTooltip = true,\n}: UserAvatarStackProps) {\n return (\n <AvatarStack maxLength={maxLength} size={size}>\n {userIds.map((userId) => (\n <UserAvatar key={userId} user={userId} withTooltip={withTooltip} />\n ))}\n </AvatarStack>\n )\n}\n","import {Box, Card, Flex, Skeleton, Stack, Text} from '@sanity/ui'\nimport {getTheme_v2, type ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {type MouseEvent, useCallback, useMemo} from 'react'\nimport {\n AvatarSkeleton,\n type ChunkType,\n type RelativeTimeOptions,\n useDateTimeFormat,\n UserAvatar,\n useRelativeTime,\n useTranslation,\n useUser,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport {Tooltip} from '../../../../ui-components/tooltip/Tooltip'\nimport {getTimelineEventIconComponent} from './helpers'\nimport {TIMELINE_ITEM_I18N_KEY_MAPPING} from './timelineI18n'\nimport {UserAvatarStack} from './userAvatarStack'\nimport {type ChunksWithCollapsedDrafts} from './utils'\n\nconst IconBox = styled(Flex)<{$color: ThemeColorAvatarColorKey}>((props) => {\n const theme = getTheme_v2(props.theme)\n const color = props.$color\n\n return css`\n --card-icon-color: ${theme.color.avatar[color].fg};\n background-color: ${theme.color.avatar[color].bg};\n box-shadow: 0 0 0 1px var(--card-bg-color);\n\n position: absolute;\n width: ${theme.avatar.sizes[0].size}px;\n height: ${theme.avatar.sizes[0].size}px;\n right: -3px;\n bottom: -3px;\n border-radius: 50%;\n `\n})\n\nconst TIMELINE_ITEM_EVENT_TONE: Record<ChunkType | 'withinSelection', ThemeColorAvatarColorKey> = {\n initial: 'blue',\n create: 'blue',\n publish: 'green',\n editLive: 'green',\n editDraft: 'yellow',\n unpublish: 'orange',\n discardDraft: 'orange',\n delete: 'red',\n withinSelection: 'magenta',\n}\n\nexport interface TimelineItemProps {\n chunk: ChunksWithCollapsedDrafts\n isSelected: boolean\n onSelect: (chunk: ChunksWithCollapsedDrafts) => void\n collaborators?: Set<string>\n optionsMenu?: React.ReactNode\n}\n\nconst RELATIVE_TIME_OPTIONS: RelativeTimeOptions = {\n minimal: true,\n useTemporalPhrase: true,\n}\n\nconst NameSkeleton = styled(Skeleton)((props) => {\n const theme = getTheme_v2(props.theme)\n return css`\n width: 6ch;\n height: ${theme.font.text.sizes[0].lineHeight}px;\n `\n})\n\nconst UserLine = ({userId}: {userId: string}) => {\n const [user, loading] = useUser(userId)\n\n return (\n <Flex key={userId} align=\"center\" gap={2} padding={1}>\n <Box>{loading || !user ? <AvatarSkeleton animated /> : <UserAvatar user={user} />}</Box>\n <Box>\n {loading || !user?.displayName ? (\n <Text size={1}>\n <NameSkeleton animated />\n </Text>\n ) : (\n <Text muted size={1}>\n {user.displayName}\n </Text>\n )}\n </Box>\n </Flex>\n )\n}\nconst TooltipContent = ({collaborators}: {collaborators: string[]}) => {\n const {t} = useTranslation('studio')\n return (\n <Stack paddingBottom={1}>\n <Box padding={1} paddingBottom={2}>\n <Text size={1} weight=\"medium\">\n {t('timeline.changes.title')}\n </Text>\n </Box>\n {collaborators.map((userId) => (\n <UserLine key={userId} userId={userId} />\n ))}\n </Stack>\n )\n}\nexport function TimelineItem({\n chunk,\n isSelected,\n onSelect,\n collaborators,\n optionsMenu,\n}: TimelineItemProps) {\n const {t} = useTranslation('studio')\n const {type, endTimestamp: timestamp} = chunk\n const IconComponent = getTimelineEventIconComponent(type)\n const authorUserIds = Array.from(chunk.authors)\n const collaboratorsUsersIds = collaborators ? Array.from(collaborators) : []\n const isSelectable = type !== 'delete'\n const dateFormat = useDateTimeFormat({dateStyle: 'medium', timeStyle: 'short'})\n const date = new Date(timestamp)\n\n const updatedTimeAgo = useRelativeTime(date || '', RELATIVE_TIME_OPTIONS)\n\n const formattedTimestamp = useMemo(() => {\n const parsedDate = new Date(timestamp)\n const formattedDate = dateFormat.format(parsedDate)\n\n return formattedDate\n }, [timestamp, dateFormat])\n\n const handleClick = useCallback(\n (evt: MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault()\n evt.stopPropagation()\n\n if (isSelectable) {\n onSelect(chunk)\n }\n },\n [onSelect, chunk, isSelectable],\n )\n\n return (\n <Flex align=\"center\" gap={1}>\n <Card\n as=\"button\"\n onClick={handleClick}\n padding={2}\n pressed={isSelected}\n radius={2}\n data-ui=\"timelineItem\"\n data-testid=\"timeline-item-button\"\n data-chunk-id={chunk.id}\n >\n <Flex align=\"center\" gap={3}>\n <div style={{position: 'relative'}}>\n <UserAvatarStack maxLength={3} userIds={authorUserIds} size={2} />\n <IconBox align=\"center\" justify=\"center\" $color={TIMELINE_ITEM_EVENT_TONE[type]}>\n {/* oxlint-disable-next-line react/react-compiler -- this is intentional and how the middleware components has to work */}\n <Text size={0}>{IconComponent && <IconComponent />}</Text>\n </IconBox>\n </div>\n <Stack space={2}>\n <Text size={1} weight=\"medium\">\n {t(TIMELINE_ITEM_I18N_KEY_MAPPING[type]) || <code>{type}</code>}\n </Text>\n\n <Text as=\"time\" size={1} muted dateTime={timestamp} title={formattedTimestamp}>\n {updatedTimeAgo}\n </Text>\n </Stack>\n\n {collaboratorsUsersIds.length > 0 && (\n <Flex flex={1} justify=\"flex-end\" align=\"center\">\n <Tooltip\n placement=\"top\"\n content={<TooltipContent collaborators={collaboratorsUsersIds} />}\n portal\n >\n <Box paddingLeft={2} paddingY={2}>\n <UserAvatarStack\n maxLength={3}\n userIds={collaboratorsUsersIds}\n size={0}\n withTooltip={false}\n />\n </Box>\n </Tooltip>\n </Flex>\n )}\n </Flex>\n </Card>\n {optionsMenu}\n </Flex>\n )\n}\n","import {type Chunk, type ChunkType} from 'sanity'\n\nexport type NonPublishChunk = Omit<Chunk, 'type'> & {\n type: Exclude<ChunkType, 'publish'>\n parentId?: string\n}\n\nexport type PublishChunk = Omit<Chunk, 'type'> & {\n type: 'publish'\n children: string[]\n collaborators: Set<string>\n}\n\nexport const isNonPublishChunk = (chunk: Chunk): chunk is NonPublishChunk =>\n chunk.type !== 'publish'\n\nexport const isPublishChunk = (chunk: Chunk): chunk is PublishChunk => chunk.type === 'publish'\n\n/**\n * searches for the previous publish action in the list of chunks\n * e.g. chunks = [publish, edit, publish, edit, edit] it needs to return the second publish action\n * e.g. chunks = [publish, edit, delete, edit, edit] it returns undefined\n */\n\nfunction getPreviousPublishAction(chunks: Chunk[]) {\n let previousPublish: PublishChunk | null = null\n // We need to iterate from the end to the start of the list\n for (let index = chunks.length - 1; index >= 0; index--) {\n const chunk = chunks[index]\n if (isPublishChunk(chunk)) {\n previousPublish = chunk\n break\n }\n if (chunk.type === 'editDraft') {\n continue\n } else break\n }\n\n return previousPublish\n}\nexport type ChunksWithCollapsedDrafts = NonPublishChunk | PublishChunk\n\n/**\n * Takes an array of chunks and adds them metadata necessary for the timeline view.\n * for draft chunks, it will add the parentId of the published chunk if this draft action is now published\n * for published, it will add the children array and the collaborators array\n */\nexport function addChunksMetadata(chunks: Chunk[]): ChunksWithCollapsedDrafts[] {\n const result: ChunksWithCollapsedDrafts[] = []\n\n for (const chunk of chunks) {\n if (isPublishChunk(chunk)) {\n result.push({\n ...chunk,\n type: 'publish',\n children: [],\n collaborators: new Set(), // Initialize the collaborators array\n })\n continue\n }\n if (isNonPublishChunk(chunk)) {\n const previousPublish = getPreviousPublishAction(result)\n if (chunk.type === 'editDraft' && previousPublish?.type === 'publish') {\n Array.from(chunk.authors).forEach((id) => {\n previousPublish.collaborators.add(id)\n })\n previousPublish.children.push(chunk.id)\n result.push({\n ...chunk,\n parentId: previousPublish.id,\n })\n continue\n }\n }\n if (isNonPublishChunk(chunk)) {\n result.push(chunk)\n }\n }\n\n return result\n}\n","import {Box, Text} from '@sanity/ui'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\nimport {\n type Chunk,\n CommandList,\n type CommandListRenderItemCallback,\n LoadingBlock,\n useTranslation,\n} from 'sanity'\n\nimport {ExpandableTimelineItemButton} from './expandableTimelineItemButton'\nimport {ListWrapper, Root, StackWrapper} from './timeline.styled'\nimport {TimelineItem} from './timelineItem'\nimport {\n addChunksMetadata,\n type ChunksWithCollapsedDrafts,\n isNonPublishChunk,\n isPublishChunk,\n} from './utils'\n\ninterface TimelineProps {\n chunks: Chunk[]\n hasMoreChunks: boolean | null\n lastChunk?: Chunk | null\n onLoadMore: () => void\n onSelect: (chunk: Chunk) => void\n /**\n * The list needs a predefined max height for the scroller to work.\n */\n listMaxHeight?: string\n}\n\nexport const TIMELINE_LIST_WRAPPER_ID = 'timeline-list-wrapper'\n\nexport const Timeline = ({\n chunks,\n hasMoreChunks,\n lastChunk: selectedChunk,\n onLoadMore,\n onSelect,\n listMaxHeight = 'calc(100vh - 280px)',\n}: TimelineProps) => {\n const [mounted, setMounted] = useState(false)\n const {t} = useTranslation('studio')\n const selectedChunkId = selectedChunk?.id\n const chunksWithMetadata = useMemo(() => addChunksMetadata(chunks), [chunks])\n\n const [expandedParents, setExpandedParents] = useState<Set<string>>(() => {\n if (selectedChunkId) {\n // If the selected chunk is a draft, we need to expand its parent\n const selected = chunksWithMetadata.find((chunk) => chunk.id === selectedChunkId)\n if (selected && isNonPublishChunk(selected) && selected.parentId) {\n return new Set([selected.parentId])\n }\n }\n return new Set()\n })\n\n useEffect(() => {\n // This effect ensures that when we reload the timeline with a selected draft, we expand its parent.\n if (selectedChunkId) {\n const selected = chunksWithMetadata.find((chunk) => chunk.id === selectedChunkId)\n if (selected && isNonPublishChunk(selected) && selected.parentId) {\n const parentId = selected.parentId\n // oxlint-disable-next-line react/react-compiler\n setExpandedParents((prev) => {\n if (prev.has(parentId)) return prev\n const next = new Set(prev)\n next.add(parentId)\n return next\n })\n }\n }\n }, [chunksWithMetadata, selectedChunkId])\n\n const filteredChunks = useMemo(() => {\n return chunksWithMetadata.filter((chunk) => {\n if (isPublishChunk(chunk) || !chunk.parentId) return true\n // If the chunk has a parent id keep it hidden until the parent is expanded.\n return expandedParents.has(chunk.parentId)\n })\n }, [chunksWithMetadata, expandedParents])\n\n useEffect(() => {\n // This effect ensures that we load more chunks if the list is not long enough.\n // This could happen if a parent chunk has multiple drafts, so you could end with a list of 50 transactions but only\n // 1 parent chunk, the publish, which squashed all the changes.\n // In that case, users will see the loading block at the bottom, but nothing will really be happening. Because they haven't reach the end of the list.\n if (filteredChunks.length < 16 && hasMoreChunks) {\n onLoadMore()\n }\n }, [filteredChunks, hasMoreChunks, onLoadMore])\n\n const handleExpandParent = useCallback(\n (parentId: string) => () =>\n setExpandedParents((prev) => {\n const next = new Set(prev)\n\n if (prev.has(parentId)) next.delete(parentId)\n else next.add(parentId)\n\n return next\n }),\n [],\n )\n\n const selectedIndex = useMemo(\n () =>\n selectedChunkId ? filteredChunks.findIndex((chunk) => chunk.id === selectedChunkId) : -1,\n [selectedChunkId, filteredChunks],\n )\n const handleSelectChunk = useCallback(\n (chunk: ChunksWithCollapsedDrafts) => {\n const timelineChunk = chunks.find((c) => c.id === chunk.id)\n if (timelineChunk) onSelect(timelineChunk)\n else {\n console.error('TimelineItem: chunk not found')\n onSelect(chunk)\n }\n },\n [chunks, onSelect],\n )\n\n const renderItem = useCallback<CommandListRenderItemCallback<(typeof filteredChunks)[number]>>(\n (chunk, {activeIndex}) => {\n const isFirst = activeIndex === 0\n\n return (\n <Box\n paddingBottom={1}\n paddingTop={isFirst ? 1 : 0}\n paddingRight={1}\n paddingLeft={isNonPublishChunk(chunk) && chunk.parentId ? 4 : 1}\n >\n <TimelineItem\n chunk={chunk}\n isSelected={selectedChunkId === chunk.id}\n onSelect={handleSelectChunk}\n collaborators={isPublishChunk(chunk) ? chunk.collaborators : undefined}\n optionsMenu={\n isPublishChunk(chunk) && chunk.children.length > 0 ? (\n <ExpandableTimelineItemButton\n isExpanded={expandedParents.has(chunk.id)}\n onExpand={handleExpandParent(chunk.id)}\n />\n ) : null\n }\n />\n {activeIndex === filteredChunks.length - 1 && hasMoreChunks && <LoadingBlock />}\n </Box>\n )\n },\n [\n expandedParents,\n filteredChunks.length,\n handleExpandParent,\n handleSelectChunk,\n hasMoreChunks,\n selectedChunkId,\n ],\n )\n\n // oxlint-disable-next-line react/react-compiler\n useEffect(() => setMounted(true), [])\n\n return (\n <Root\n /**\n * We delay initial rendering if `selectedIndex` is present.\n * This is a _temporary_ workaround to allow the virtual <CommandList>\n * to scroll to a specific index prior to being displayed.\n *\n * Without this, there'll be a noticeable 'flash' where the virtual list\n * will render with its child items at the top and then scroll into position.\n */\n $visible={!selectedIndex || mounted}\n data-ui=\"timeline\"\n >\n {filteredChunks.length === 0 && (\n <StackWrapper padding={3} space={3}>\n <Text size={1} weight=\"medium\">\n {t('timeline.error.no-document-history-title')}\n </Text>\n <Text muted size={1}>\n {t('timeline.error.no-document-history-description')}\n </Text>\n </StackWrapper>\n )}\n\n {filteredChunks.length > 0 && (\n <ListWrapper direction=\"column\" $maxHeight={listMaxHeight} id={TIMELINE_LIST_WRAPPER_ID}>\n <CommandList\n activeItemDataAttr=\"data-hovered\"\n ariaLabel={t('timeline.list.aria-label')}\n autoFocus=\"list\"\n initialIndex={selectedIndex}\n initialScrollAlign=\"center\"\n itemHeight={57}\n items={filteredChunks}\n onEndReached={onLoadMore}\n onEndReachedIndexOffset={20}\n overscan={5}\n renderItem={renderItem}\n wrapAround={false}\n />\n </ListWrapper>\n )}\n </Root>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {\n Flex,\n type Placement,\n PortalProvider,\n useClickOutsideEvent,\n useGlobalKeyDown,\n useToast,\n} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {type Chunk, useTimelineSelector, useTranslation} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../ui-components/button/Button'\nimport {Popover} from '../../../../ui-components/popover/Popover'\nimport {useDocumentPane} from '../useDocumentPane'\nimport {Timeline} from './timeline'\nimport {TimelineError} from './TimelineError'\nimport {TIMELINE_ITEM_I18N_KEY_MAPPING} from './timelineI18n'\n\ninterface TimelineMenuProps {\n chunk: Chunk | null\n mode: 'rev' | 'since'\n placement?: Placement\n}\n\nconst Root = styled(Popover)`\n overflow: hidden;\n overflow: clip;\n`\n\nexport const TIMELINE_MENU_PORTAL = 'timeline-menu'\n\nexport function TimelineMenu({chunk, mode, placement}: TimelineMenuProps) {\n const {setTimelineRange, timelineError, ready, timelineStore} = useDocumentPane()\n const [open, setOpen] = useState(false)\n const [button, setButton] = useState<HTMLButtonElement | null>(null)\n const [popoverRef, setPopoverRef] = useState<HTMLElement | null>(null)\n\n const toast = useToast()\n\n const chunks = useTimelineSelector(timelineStore, (state) => state.chunks)\n const loading = useTimelineSelector(timelineStore, (state) => state.isLoading)\n const hasMoreChunks = useTimelineSelector(timelineStore, (state) => state.hasMoreChunks)\n const realRevChunk = useTimelineSelector(timelineStore, (state) => state.realRevChunk)\n const sinceTime = useTimelineSelector(timelineStore, (state) => state.sinceTime)\n\n const {t} = useTranslation('studio')\n\n const handleOpen = useCallback(() => {\n setOpen(true)\n }, [])\n\n const handleClose = useCallback(() => {\n setOpen(false)\n }, [])\n\n const handleGlobalKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (open && (event.key === 'Escape' || event.key === 'Tab')) {\n handleClose()\n button?.focus()\n }\n },\n [button, handleClose, open],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(open && handleClose, () => [button, popoverRef])\n\n const selectRev = useCallback(\n (revChunk: Chunk) => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n const [sinceId, revId] = timelineStore?.findRangeForRev(revChunk) || [null, null]\n setTimelineRange(sinceId, revId)\n }\n try {\n run()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [setTimelineRange, t, timelineStore, toast],\n )\n\n const selectSince = useCallback(\n (sinceChunk: Chunk) => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n const [sinceId, revId] = timelineStore?.findRangeForSince(sinceChunk) || [null, null]\n setTimelineRange(sinceId, revId)\n }\n try {\n run()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [setTimelineRange, t, timelineStore, toast],\n )\n\n const handleLoadMore = useCallback(() => {\n if (!loading) {\n timelineStore?.loadMore()\n }\n }, [loading, timelineStore])\n\n const content = useMemo(() => {\n if (timelineError) return <TimelineError />\n\n if (mode === 'rev') {\n return (\n <Timeline\n chunks={chunks}\n hasMoreChunks={hasMoreChunks}\n lastChunk={realRevChunk}\n onLoadMore={handleLoadMore}\n onSelect={selectRev}\n />\n )\n }\n\n const filteredChunks = realRevChunk\n ? chunks.filter((c) => c.index < realRevChunk.index)\n : chunks\n return (\n <Timeline\n chunks={filteredChunks}\n hasMoreChunks={hasMoreChunks}\n lastChunk={sinceTime}\n onLoadMore={handleLoadMore}\n onSelect={selectSince}\n />\n )\n }, [\n chunks,\n handleLoadMore,\n hasMoreChunks,\n mode,\n realRevChunk,\n selectRev,\n selectSince,\n sinceTime,\n timelineError,\n ])\n\n const formatParams = {\n timestamp: {dateStyle: 'medium', timeStyle: 'short'},\n }\n\n const revLabel = chunk\n ? t(TIMELINE_ITEM_I18N_KEY_MAPPING[chunk.type], {\n context: 'timestamp',\n timestamp: new Date(chunk?.endTimestamp),\n formatParams,\n })\n : t('timeline.latest-revision')\n\n const sinceLabel = chunk\n ? t('timeline.since', {\n timestamp: new Date(chunk?.endTimestamp),\n formatParams,\n })\n : t('timeline.since-version-missing')\n\n const buttonLabel = mode === 'rev' ? revLabel : sinceLabel\n const portalElements = useMemo(() => ({[TIMELINE_MENU_PORTAL]: popoverRef}), [popoverRef])\n\n return (\n <PortalProvider __unstable_elements={portalElements}>\n <Root\n data-testid=\"timeline-menu\"\n constrainSize\n content={open && content}\n data-ui=\"versionMenu\"\n open={open}\n placement={placement}\n matchReferenceWidth\n portal\n ref={setPopoverRef}\n >\n <Flex>\n <Button\n data-testid={open ? 'timeline-menu-close-button' : 'timeline-menu-open-button'}\n disabled={!ready}\n mode=\"ghost\"\n onClick={open ? handleClose : handleOpen}\n ref={setButton}\n selected={open}\n width=\"fill\"\n tooltipProps={null}\n justify={'space-between'}\n style={{\n maxWidth: '100%',\n }}\n iconRight={ChevronDownIcon}\n text={ready ? buttonLabel : t('timeline.loading-history')}\n />\n </Flex>\n </Root>\n </PortalProvider>\n )\n}\n","import {type ObjectDiff} from '@sanity/diff'\nimport {BoundaryElementProvider, Box, Card, Flex, Text} from '@sanity/ui'\nimport {useMemo, useState} from 'react'\nimport {\n ChangeFieldWrapper,\n ChangeList,\n type DocumentChangeContextInstance,\n LoadingBlock,\n NoChanges,\n type ObjectSchemaType,\n ScrollContainer,\n usePerspective,\n useTimelineSelector,\n useTranslation,\n} from 'sanity'\nimport {DocumentChangeContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {TimelineError} from '../../timeline/TimelineError'\nimport {TimelineMenu} from '../../timeline/timelineMenu'\nimport {useDocumentPane} from '../../useDocumentPane'\n\nconst Scroller = styled(ScrollContainer)`\n height: 100%;\n overflow: auto;\n position: relative;\n scroll-behavior: smooth;\n`\n\nconst Grid = styled(Box)`\n &:not([hidden]) {\n display: grid;\n }\n grid-template-columns: 48px 1fr;\n align-items: center;\n gap: 0.25em;\n`\n\nexport function ChangesInspector({showChanges}: {showChanges: boolean}): React.JSX.Element {\n const {documentId, schemaType, timelineError, timelineStore, value} = useDocumentPane()\n const {selectedReleaseId} = usePerspective()\n\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n\n const rev = useTimelineSelector(timelineStore, (state) => state.revTime)\n const diff = useTimelineSelector(timelineStore, (state) => state.diff)\n const onOlderRevision = useTimelineSelector(timelineStore, (state) => state.onOlderRevision)\n const selectionState = useTimelineSelector(timelineStore, (state) => state.selectionState)\n const sinceTime = useTimelineSelector(timelineStore, (state) => state.sinceTime)\n const loading = selectionState === 'loading'\n const isComparingCurrent = !onOlderRevision\n\n // Note that we are using the studio core namespace here, as changes theoretically should\n // be part of Sanity core (needs to be moved from structure at some point)\n const {t: structureT} = useTranslation(structureLocaleNamespace)\n\n const documentContext: DocumentChangeContextInstance = useMemo(\n () => ({\n documentId,\n schemaType,\n FieldWrapper: (props) => <ChangeFieldWrapper {...props} hasRevertHover={false} />,\n rootDiff: diff,\n isComparingCurrent,\n value,\n showFromValue: true,\n }),\n [documentId, diff, isComparingCurrent, schemaType, value],\n )\n\n if (selectedReleaseId) {\n return (\n <Flex data-testid=\"review-changes-pane\" direction=\"column\" height=\"fill\">\n <Card flex={1} padding={2} paddingTop={0}>\n <TimelineError versionError />\n </Card>\n </Flex>\n )\n }\n\n return (\n <Flex data-testid=\"review-changes-pane\" direction=\"column\" height=\"fill\" overflow=\"hidden\">\n <Box padding={3}>\n <Grid paddingX={2} paddingBottom={2}>\n <Text size={1} muted>\n {structureT('changes.from.label')}\n </Text>\n\n <TimelineMenu mode=\"since\" chunk={sinceTime} placement=\"bottom-start\" />\n <Text size={1} muted>\n {structureT('changes.to.label')}\n </Text>\n <TimelineMenu chunk={rev} mode=\"rev\" placement=\"bottom-end\" />\n </Grid>\n </Box>\n\n <Card flex={1} paddingX={2} paddingY={2}>\n <BoundaryElementProvider element={scrollRef}>\n <Scroller data-ui=\"Scroller\" ref={setScrollRef}>\n <Box flex={1} paddingX={3} height=\"fill\">\n {showChanges && (\n <Content\n diff={diff}\n documentContext={documentContext}\n error={timelineError}\n loading={loading}\n schemaType={schemaType}\n />\n )}\n </Box>\n </Scroller>\n </BoundaryElementProvider>\n </Card>\n </Flex>\n )\n}\n\nfunction Content({\n error,\n diff,\n documentContext,\n loading,\n schemaType,\n}: {\n error?: Error | null\n diff: ObjectDiff<any> | null\n documentContext: DocumentChangeContextInstance\n loading: boolean\n schemaType: ObjectSchemaType\n}) {\n if (error) {\n return <NoChanges />\n }\n\n if (loading) {\n return <LoadingBlock showText />\n }\n\n if (!diff) {\n return <NoChanges />\n }\n\n return (\n <DocumentChangeContext.Provider value={documentContext}>\n <ChangeList diff={diff} schemaType={schemaType} />\n </DocumentChangeContext.Provider>\n )\n}\n","import {Card, Flex} from '@sanity/ui'\nimport {type MouseEvent, useCallback} from 'react'\nimport {\n type DocumentGroupEvent,\n Event,\n isDeleteDocumentGroupEvent,\n isDeleteDocumentVersionEvent,\n isScheduleDocumentVersionEvent,\n isUnpublishDocumentEvent,\n isUnscheduleDocumentVersionEvent,\n useTranslation,\n} from 'sanity'\n\nimport {Tooltip} from '../../../../../ui-components/tooltip/Tooltip'\n\nexport interface TimelineItemProps {\n event: DocumentGroupEvent\n isSelected: boolean\n onSelect: (chunk: DocumentGroupEvent) => void\n optionsMenu?: React.ReactNode\n}\n\nconst getIsSelectable = (event: DocumentGroupEvent) => {\n return (\n !isDeleteDocumentVersionEvent(event) &&\n !isDeleteDocumentGroupEvent(event) &&\n !isUnpublishDocumentEvent(event) &&\n !isScheduleDocumentVersionEvent(event) &&\n !isUnscheduleDocumentVersionEvent(event)\n )\n}\n\nexport function EventTimelineItem({event, isSelected, onSelect, optionsMenu}: TimelineItemProps) {\n const {t} = useTranslation('studio')\n const isSelectable = getIsSelectable(event)\n const handleClick = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n evt.preventDefault()\n evt.stopPropagation()\n\n if (isSelectable) {\n onSelect(event)\n }\n },\n [onSelect, event, isSelectable],\n )\n return (\n <Flex gap={1}>\n <Tooltip content={isSelectable ? '' : t('changes.not-selectable')} disabled={isSelectable}>\n <Card\n as={isSelectable ? 'button' : 'div'}\n onClick={handleClick}\n padding={2}\n pressed={isSelected}\n radius={2}\n data-ui=\"timelineItem\"\n data-testid=\"timeline-item-button\"\n data-chunk-timestamp={event.timestamp}\n style={{\n cursor: isSelectable ? 'pointer' : 'default',\n width: '100%',\n }}\n >\n <Event event={event} showChangesBy=\"tooltip\" />\n </Card>\n </Tooltip>\n {optionsMenu}\n </Flex>\n )\n}\n","import {\n Flex,\n Menu,\n // oxlint-disable-next-line no-restricted-imports\n MenuItem,\n Text,\n usePortal,\n} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n ContextMenuButton,\n getReleaseIdFromReleaseDocumentId,\n getReleaseTone,\n getVersionFromId,\n isReleaseDocument,\n type PublishDocumentVersionEvent,\n RELEASES_INTENT,\n ReleaseTitle,\n Translate,\n useSetPerspective,\n useTranslation,\n useWorkspace,\n VersionInlineBadge,\n} from 'sanity'\nimport {IntentLink} from 'sanity/router'\n\nimport {MenuButton} from '../../../../../ui-components/menuButton/MenuButton'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {TIMELINE_MENU_PORTAL} from '../timelineMenu'\n\nexport function PublishedEventMenu({event}: {event: PublishDocumentVersionEvent}) {\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n const portalContext = usePortal()\n const {params, setParams} = usePaneRouter()\n const setPerspective = useSetPerspective()\n const {document} = useWorkspace()\n const {\n drafts: {enabled: isDraftModelEnabled},\n } = document\n\n const handleOpenReleaseDocument = useCallback(() => {\n setParams({\n ...params,\n rev: event.versionRevisionId || '@lastPublished',\n since: undefined,\n historyEvent: event.id,\n historyVersion: getVersionFromId(event.versionId),\n })\n }, [setParams, params, event])\n\n const handleOpenDraftDocument = useCallback(() => {\n setParams({\n ...params,\n rev: event.versionRevisionId,\n preserveRev: 'true',\n since: undefined,\n })\n setTimeout(() => {\n // A bug is generated when we change the perspective and the params at the same time\n // Resetting the params to the value it had before, because the paneRouter uses the previous value\n setPerspective(isDraftModelEnabled ? 'drafts' : 'published')\n }, 100)\n }, [setParams, params, event.versionRevisionId, setPerspective, isDraftModelEnabled])\n\n const releaseTitle = event.release?.metadata?.title\n const releaseFallback = tCore('release.placeholder-untitled-release')\n\n const VersionBadge = ({children}: {children: React.ReactNode}) => {\n return (\n <VersionInlineBadge\n $tone={\n event.release\n ? isReleaseDocument(event.release)\n ? getReleaseTone(event.release)\n : 'default'\n : undefined\n }\n >\n {children}\n </VersionInlineBadge>\n )\n }\n const isMenuDisabled = event.release && !isReleaseDocument(event.release)\n return (\n <MenuButton\n id={`timeline-item-menu-button-${event.versionId}`}\n button={\n <ContextMenuButton\n aria-label={t('timeline-item.menu-button.aria-label')}\n tooltipProps={{\n content: isMenuDisabled\n ? t('timeline-item.not-found-release.tooltip', {\n releaseId: event.release?._id\n ? getReleaseIdFromReleaseDocumentId(event.release._id)\n : undefined,\n })\n : t('timeline-item.menu-button.tooltip'),\n }}\n disabled={isMenuDisabled}\n />\n }\n menu={\n <Menu padding={1}>\n {event.release ? (\n <>\n <IntentLink\n intent={RELEASES_INTENT}\n params={{id: getReleaseIdFromReleaseDocumentId(event.release._id)}}\n style={{textDecoration: 'none'}}\n >\n <MenuItem padding={3}>\n <Flex align={'center'} justify=\"flex-start\">\n <Text size={1} style={{textDecoration: 'none'}}>\n <ReleaseTitle title={releaseTitle} fallback={releaseFallback}>\n {({displayTitle}) => (\n <Translate\n components={{\n VersionBadge: ({children}) => <VersionBadge>{children}</VersionBadge>,\n }}\n i18nKey=\"events.open.release\"\n values={{\n releaseTitle: displayTitle,\n }}\n t={t}\n />\n )}\n </ReleaseTitle>\n </Text>\n </Flex>\n </MenuItem>\n </IntentLink>\n <MenuItem onClick={handleOpenReleaseDocument}>\n <Flex align={'center'} justify=\"flex-start\">\n <Text size={1}>\n <ReleaseTitle title={releaseTitle} fallback={releaseFallback}>\n {({displayTitle}) => (\n <Translate\n components={{\n VersionBadge: ({children}) => <VersionBadge>{children}</VersionBadge>,\n }}\n i18nKey=\"events.inspect.release\"\n values={{\n releaseTitle: displayTitle,\n }}\n t={t}\n />\n )}\n </ReleaseTitle>\n </Text>\n </Flex>\n </MenuItem>\n </>\n ) : (\n <MenuItem onClick={handleOpenDraftDocument} disabled={!event.versionRevisionId}>\n <Flex align={'center'}>\n <Text size={1}>\n <Translate\n components={{\n VersionBadge: ({children}) => (\n <VersionInlineBadge $tone=\"caution\">{children}</VersionInlineBadge>\n ),\n }}\n i18nKey=\"events.open.draft\"\n t={t}\n />\n </Text>\n </Flex>\n </MenuItem>\n )}\n </Menu>\n }\n popover={{\n // when used inside the timeline menu we want to keep the element inside the popover, to avoid closing the popover when clicking expand.\n portal: portalContext.elements?.[TIMELINE_MENU_PORTAL] ? TIMELINE_MENU_PORTAL : true,\n placement: 'bottom',\n fallbackPlacements: ['bottom-end', 'bottom-start'],\n }}\n />\n )\n}\n","import {Box, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {motion, type Variants} from 'motion/react'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\nimport {\n CommandList,\n type CommandListRenderItemCallback,\n type DocumentGroupEvent,\n getDocumentVariantType,\n isCreateDocumentVersionEvent,\n isDeleteDocumentVersionEvent,\n isEditDocumentVersionEvent,\n isPublishDocumentVersionEvent,\n LoadingBlock,\n useTranslation,\n} from 'sanity'\n\nimport {ExpandableTimelineItemButton} from '../expandableTimelineItemButton'\nimport {ListWrapper, Root} from '../timeline.styled'\nimport {EventTimelineItem} from './EventTimelineItem'\nimport {PublishedEventMenu} from './PublishedEventMenu'\n\ninterface TimelineProps {\n events: DocumentGroupEvent[]\n hasMoreEvents: boolean | null\n selectedEventId?: string\n onLoadMore: () => void\n onSelect: (event: DocumentGroupEvent) => void\n fetchEventChildren: (event: DocumentGroupEvent) => Promise<void>\n /**\n * The list needs a predefined max height for the scroller to work.\n */\n listMaxHeight?: string\n}\n\nconst TimelineItemWrapper = motion.create(Box)\nconst CHILDREN_ITEMS_VARIANTS: Variants = {\n initial: {\n opacity: 0,\n },\n animate: {\n opacity: 1,\n },\n exit: {\n opacity: 0,\n },\n}\n\nconst ITEM_HEIGHT = 57\n\nconst TIMELINE_LIST_WRAPPER_ID = 'timeline-list-wrapper'\n\nexport const EventsTimeline = ({\n events: allEvents,\n hasMoreEvents,\n selectedEventId,\n onLoadMore,\n onSelect,\n listMaxHeight = 'calc(100vh - 280px)',\n fetchEventChildren,\n}: TimelineProps) => {\n const [mounted, setMounted] = useState(false)\n const {t} = useTranslation('studio')\n const [expandedParents, setExpandedParents] = useState<Set<string>>(() => {\n if (selectedEventId) {\n // Find that event and if it has a parent, expand the parent.\n const selectedEvent = allEvents.find((event) => event.id === selectedEventId)\n if (selectedEvent && 'parentId' in selectedEvent && selectedEvent.parentId) {\n return new Set([selectedEvent.parentId])\n }\n }\n return new Set()\n })\n const [expandingParents, setExpandingParents] = useState<Set<string>>(new Set())\n\n const events = useMemo(() => {\n return allEvents.filter((event) => {\n if (isCreateDocumentVersionEvent(event) && event.parentId) {\n // Check if it's the last event in the list, in that case, we want to show it\n const isLastEvent = allEvents[allEvents.length - 1].id === event.id\n if (isLastEvent) return true\n return expandedParents.has(event.parentId)\n }\n if (isEditDocumentVersionEvent(event) && event.parentId) {\n return expandedParents.has(event.parentId)\n }\n return true\n })\n }, [expandedParents, allEvents])\n\n const handleExpandParent = useCallback(\n (event: DocumentGroupEvent) => async () => {\n const parentId = event.id\n\n let isExpanding = false\n setExpandedParents((prev) => {\n const next = new Set(prev)\n\n if (prev.has(parentId)) next.delete(parentId)\n else {\n isExpanding = true\n next.add(parentId)\n }\n\n return next\n })\n if (isExpanding) {\n setExpandingParents((prev) => {\n const next = new Set(prev)\n next.add(parentId)\n return next\n })\n await fetchEventChildren(event)\n setExpandingParents((prev) => {\n const next = new Set(prev)\n next.delete(parentId)\n return next\n })\n }\n },\n [fetchEventChildren, setExpandingParents],\n )\n\n const handleSelectChunk = useCallback(\n (event: DocumentGroupEvent) => {\n onSelect(event)\n },\n [onSelect],\n )\n\n const renderOptionsMenu = useCallback(\n (event: DocumentGroupEvent) => {\n const documentVariantType = getDocumentVariantType(event.documentId)\n if (isPublishDocumentVersionEvent(event) && documentVariantType === 'published') {\n return <PublishedEventMenu event={event} />\n }\n if (\n (isPublishDocumentVersionEvent(event) &&\n documentVariantType === 'draft' &&\n event.creationEvent) ||\n (isDeleteDocumentVersionEvent(event) && event.creationEvent)\n ) {\n return (\n <ExpandableTimelineItemButton\n isExpanded={expandedParents.has(event.id)}\n onExpand={handleExpandParent(event)}\n />\n )\n }\n return null\n },\n [expandedParents, handleExpandParent],\n )\n\n const renderItem = useCallback<CommandListRenderItemCallback<DocumentGroupEvent[][number]>>(\n (event, {activeIndex}) => {\n /**\n * The create version event will be present while expanding (loading the edits), so we are attaching to it the loading block at the top.\n * - publishEvent (expanding?)\n * --- loadingBlock ~createEvent~\n * */\n const showExpandingLoader =\n isCreateDocumentVersionEvent(event) &&\n event.parentId &&\n expandingParents.has(event.parentId)\n\n const isLastEvent = activeIndex === events.length - 1\n if (showExpandingLoader) {\n return (\n <TimelineItemWrapper\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n transition={{duration: 0.2, delay: 0.2}}\n >\n {/* We need this item to match the same height as the rest of the list items, which is 57px */}\n <Flex align=\"center\" justify=\"center\" style={{height: ITEM_HEIGHT}}>\n <Spinner />\n </Flex>\n </TimelineItemWrapper>\n )\n }\n return (\n <TimelineItemWrapper\n key={event.timestamp}\n paddingBottom={1}\n paddingRight={1}\n animate=\"animate\"\n exit=\"exit\"\n initial=\"initial\"\n variants={'parentId' in event ? CHILDREN_ITEMS_VARIANTS : undefined}\n paddingLeft={\n (isEditDocumentVersionEvent(event) || isCreateDocumentVersionEvent(event)) &&\n event.parentId &&\n !isLastEvent\n ? 4\n : 1\n }\n >\n <EventTimelineItem\n event={event}\n isSelected={event.id === selectedEventId}\n onSelect={handleSelectChunk}\n optionsMenu={renderOptionsMenu(event)}\n />\n\n {isLastEvent && hasMoreEvents && <LoadingBlock />}\n </TimelineItemWrapper>\n )\n },\n [\n expandingParents,\n selectedEventId,\n handleSelectChunk,\n renderOptionsMenu,\n events.length,\n hasMoreEvents,\n ],\n )\n\n // oxlint-disable-next-line react/react-compiler\n useEffect(() => setMounted(true), [])\n const selectedIndex = events.findIndex((event) => event.id === selectedEventId)\n\n return (\n <Root\n /**\n * We delay initial rendering if `selectedIndex` is present.\n * This is a _temporary_ workaround to allow the virtual <CommandList>\n * to scroll to a specific index prior to being displayed.\n *\n * Without this, there'll be a noticeable 'flash' where the virtual list\n * will render with its child items at the top and then scroll into position.\n */\n $visible={!selectedIndex || mounted}\n data-ui=\"timeline\"\n >\n {events.length > 0 ? (\n <ListWrapper direction=\"column\" $maxHeight={listMaxHeight} id={TIMELINE_LIST_WRAPPER_ID}>\n <CommandList\n activeItemDataAttr=\"data-hovered\"\n ariaLabel={t('timeline.list.aria-label')}\n autoFocus=\"list\"\n initialIndex={selectedIndex}\n initialScrollAlign=\"center\"\n itemHeight={ITEM_HEIGHT}\n items={events}\n onEndReached={onLoadMore}\n onEndReachedIndexOffset={20}\n overscan={5}\n renderItem={renderItem}\n wrapAround={false}\n />\n </ListWrapper>\n ) : (\n <Stack padding={3} space={3}>\n <Text size={1} weight=\"medium\">\n {t('timeline.error.no-document-history-title')}\n </Text>\n <Text muted size={1}>\n {t('timeline.error.no-document-history-description')}\n </Text>\n </Stack>\n )}\n </Root>\n )\n}\n\nEventsTimeline.displayName = 'EventsTimeline'\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {\n Flex,\n type Placement,\n PortalProvider,\n useClickOutsideEvent,\n useGlobalKeyDown,\n useToast,\n} from '@sanity/ui'\nimport {useCallback, useMemo, useState} from 'react'\nimport {\n type DocumentGroupEvent,\n isDeleteDocumentGroupEvent,\n isDeleteDocumentVersionEvent,\n isScheduleDocumentVersionEvent,\n isUnpublishDocumentEvent,\n isUnscheduleDocumentVersionEvent,\n TIMELINE_ITEM_I18N_KEY_MAPPING,\n useEvents,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {Popover} from '../../../../../ui-components/popover/Popover'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {TimelineError} from '../TimelineError'\nimport {EventsTimeline} from './EventsTimeline'\n\ninterface TimelineMenuProps {\n event: DocumentGroupEvent | null\n events: DocumentGroupEvent[]\n mode: 'rev' | 'since'\n placement?: Placement\n}\n\nconst Root = styled(Popover)`\n overflow: hidden;\n overflow: clip;\n`\n\nconst TIMELINE_MENU_PORTAL = 'timeline-menu'\n\nconst formatParams = {\n timestamp: {dateStyle: 'medium', timeStyle: 'short'},\n}\n\nexport function EventsTimelineMenu({event, events, mode, placement}: TimelineMenuProps) {\n const {setTimelineRange} = useDocumentPane()\n const [open, setOpen] = useState(false)\n const [button, setButton] = useState<HTMLButtonElement | null>(null)\n const [popoverRef, setPopoverRef] = useState<HTMLElement | null>(null)\n const toast = useToast()\n const {\n nextCursor,\n loading,\n error: eventsError,\n findRangeForRevision,\n findRangeForSince,\n loadMoreEvents,\n expandEvent,\n } = useEvents()\n\n const {t} = useTranslation('studio')\n\n const handleOpen = useCallback(() => {\n setOpen(true)\n }, [])\n\n const handleClose = useCallback(() => {\n setOpen(false)\n }, [])\n\n const handleGlobalKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (open && (e.key === 'Escape' || e.key === 'Tab')) {\n handleClose()\n button?.focus()\n }\n },\n [button, handleClose, open],\n )\n\n useGlobalKeyDown(handleGlobalKeyDown)\n useClickOutsideEvent(open && handleClose, () => [button, popoverRef])\n\n const selectRev = useCallback(\n (revEvent: DocumentGroupEvent) => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n if (\n isDeleteDocumentVersionEvent(revEvent) ||\n isDeleteDocumentGroupEvent(revEvent) ||\n isUnpublishDocumentEvent(revEvent) ||\n isScheduleDocumentVersionEvent(revEvent) ||\n isUnscheduleDocumentVersionEvent(revEvent)\n ) {\n console.error('Event is not selectable')\n return\n }\n const [since, rev] = findRangeForRevision(revEvent?.id)\n setTimelineRange(since, rev)\n handleClose()\n }\n try {\n run()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [t, toast, setTimelineRange, findRangeForRevision, handleClose],\n )\n\n const selectSince = useCallback(\n (sinceEvent: DocumentGroupEvent) => {\n try {\n const [since, rev] = findRangeForSince(sinceEvent.id)\n setTimelineRange(since, rev)\n handleClose()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [findRangeForSince, setTimelineRange, toast, t, handleClose],\n )\n\n const handleLoadMore = useCallback(() => {\n if (!loading && nextCursor) {\n loadMoreEvents()\n }\n }, [loading, loadMoreEvents, nextCursor])\n\n const content = useMemo(() => {\n if (eventsError) return <TimelineError />\n\n return (\n <EventsTimeline\n events={events}\n fetchEventChildren={expandEvent}\n hasMoreEvents={Boolean(nextCursor)}\n selectedEventId={event?.id}\n onLoadMore={handleLoadMore}\n onSelect={mode === 'rev' ? selectRev : selectSince}\n />\n )\n }, [\n eventsError,\n mode,\n expandEvent,\n events,\n nextCursor,\n event?.id,\n handleLoadMore,\n selectSince,\n selectRev,\n ])\n\n const revLabel = event\n ? t(TIMELINE_ITEM_I18N_KEY_MAPPING[event.documentVariantType][event.type], {\n context: 'timestamp',\n timestamp: new Date(event.timestamp),\n formatParams,\n })\n : t('timeline.latest-revision')\n\n const sinceLabel = event\n ? t(TIMELINE_ITEM_I18N_KEY_MAPPING[event.documentVariantType][event.type], {\n context: 'timestamp',\n timestamp: new Date(event.timestamp),\n formatParams,\n })\n : events.length > 0\n ? t('timeline.since-version-missing')\n : t('timeline.no-previous-events')\n\n const buttonLabel = mode === 'rev' ? revLabel : sinceLabel\n const portalElements = useMemo(\n () => ({\n [TIMELINE_MENU_PORTAL]: popoverRef,\n }),\n [popoverRef],\n )\n\n return (\n <PortalProvider __unstable_elements={portalElements}>\n <Root\n data-testid=\"timeline-menu\"\n constrainSize\n content={open && content}\n data-ui=\"versionMenu\"\n open={open}\n placement={placement}\n matchReferenceWidth\n portal\n ref={setPopoverRef}\n >\n <Flex>\n <Button\n data-testid={open ? 'timeline-menu-close-button' : 'timeline-menu-open-button'}\n disabled={loading || !events.length}\n mode=\"ghost\"\n onClick={open ? handleClose : handleOpen}\n ref={setButton}\n selected={open}\n width=\"fill\"\n tooltipProps={null}\n justify={'space-between'}\n style={{\n maxWidth: '100%',\n }}\n iconRight={ChevronDownIcon}\n text={loading ? t('timeline.loading-history') : buttonLabel}\n />\n </Flex>\n </Root>\n </PortalProvider>\n )\n}\n","import {diffInput, wrap} from '@sanity/diff'\nimport {BoundaryElementProvider, Box, Card, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {motion} from 'motion/react'\nimport {type ReactElement, useMemo, useState} from 'react'\nimport {useObservable} from 'react-rx'\nimport {\n ChangeFieldWrapper,\n ChangeList,\n ChangesError,\n type DocumentChangeContextInstance,\n type DocumentGroupEvent,\n isReleaseDocument,\n LoadingBlock,\n NoChanges,\n type ObjectDiff,\n type ObjectSchemaType,\n ScrollContainer,\n Translate,\n useEditState,\n useEvents,\n usePerspective,\n useTranslation,\n} from 'sanity'\nimport {DocumentChangeContext} from 'sanity/_singletons'\nimport {styled} from 'styled-components'\n\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {EventsTimelineMenu} from '../../timeline/events/EventsTimelineMenu'\nimport {useDocumentPane} from '../../useDocumentPane'\n\nconst Scroller = styled(ScrollContainer)`\n height: 100%;\n overflow: auto;\n position: relative;\n scroll-behavior: smooth;\n`\n\nconst Grid = styled(Box)`\n &:not([hidden]) {\n display: grid;\n }\n grid-template-columns: 48px 1fr;\n align-items: center;\n gap: 0.25em;\n`\n\nconst SpinnerContainer = styled(Flex)`\n width: 100%;\n position: absolute;\n bottom: -4px;\n`\n\nconst DIFF_INITIAL_VALUE = {\n diff: null,\n loading: true,\n error: null,\n}\n\nconst CompareWithPublishedView = () => {\n const {documentId, documentType, schemaType, editState, displayed, targetDocumentState} =\n useDocumentPane()\n const {selectedPerspective, selectedPerspectiveName, selectedReleaseId} = usePerspective()\n const {t} = useTranslation(structureLocaleNamespace)\n\n // For variant targets, \"published\" means the variant-of-published sibling, not the base\n // published document. Its scope id checks out the sibling pair; the sibling document arrives\n // in the `version` slot of that edit state.\n const isVariantTarget =\n targetDocumentState.status === 'ready' && targetDocumentState.variant !== undefined\n const siblingScopeId = isVariantTarget\n ? targetDocumentState.publishedSibling?._system.scopeId\n : undefined\n const siblingEditState = useEditState(documentId, documentType, 'default', siblingScopeId)\n const publishedComparisonBase = isVariantTarget\n ? (siblingScopeId && siblingEditState.version) || null\n : editState?.published\n\n const rootDiff = useMemo(() => {\n const diff = diffInput(\n wrap(publishedComparisonBase ?? {}, {author: ''}),\n wrap(displayed ?? {}, {author: ''}),\n ) as ObjectDiff\n\n return diff\n }, [publishedComparisonBase, displayed])\n\n if (isVariantTarget && !publishedComparisonBase) {\n // The variant has never been published — there is nothing to compare against.\n return null\n }\n if (selectedReleaseId && !editState?.version) {\n return null\n }\n if (selectedPerspective === 'drafts' && !editState?.draft) {\n return null\n }\n if (selectedPerspectiveName === 'published' || !displayed?._rev) {\n return null\n }\n return (\n <Stack space={2} marginBottom={3}>\n <Card borderBottom paddingBottom={3}>\n <Stack space={3} paddingTop={1}>\n <Text size={1} weight=\"medium\">\n {t('events.compare-with-published.title')}\n </Text>\n <Text size={1} muted>\n <Translate\n i18nKey=\"events.compare-with-published.description\"\n t={t}\n values={{\n version: isReleaseDocument(selectedPerspective)\n ? selectedPerspective.metadata?.title\n : 'draft',\n }}\n />\n </Text>\n </Stack>\n </Card>\n <DocumentChangeContext.Provider\n value={{\n documentId,\n schemaType,\n rootDiff,\n isComparingCurrent: true,\n FieldWrapper: (props) => props.children,\n value: displayed,\n showFromValue: true,\n }}\n >\n <Box paddingY={1}>\n <ChangeList diff={rootDiff} schemaType={schemaType} />\n </Box>\n </DocumentChangeContext.Provider>\n </Stack>\n )\n}\nexport function EventsInspector({showChanges}: {showChanges: boolean}): ReactElement {\n const {documentId, schemaType, timelineError, value, formState} = useDocumentPane()\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n\n const {events, revision, sinceRevision, getChangesList} = useEvents()\n\n const isComparingCurrent = !revision?.revisionId\n const changesList$ = useMemo(() => getChangesList(), [getChangesList])\n const {\n diff,\n loading: diffLoading,\n error: diffError,\n } = useObservable(changesList$, DIFF_INITIAL_VALUE)\n\n const {t} = useTranslation('studio')\n\n const documentContext: DocumentChangeContextInstance = useMemo(() => {\n return {\n documentId,\n schemaType,\n FieldWrapper: (props) =>\n props.path.length > 0 ? <ChangeFieldWrapper {...props} /> : props.children,\n rootDiff: diff,\n isComparingCurrent: isComparingCurrent && !formState?.readOnly,\n value,\n showFromValue: true,\n }\n }, [diff, documentId, isComparingCurrent, formState?.readOnly, schemaType, value])\n\n const [sinceEvent, toEvent] = useMemo(() => {\n if (!events) return [null, null]\n return [\n events.find((e) => e.id === sinceRevision?.revisionId) || null,\n events.find((e) => e.id === revision?.revisionId) || events[0],\n ]\n }, [events, revision?.revisionId, sinceRevision?.revisionId])\n\n const sinceEvents = useMemo(() => {\n // The sinceEvents need to account the toEvent showing only events that are older than the toEvent\n if (!toEvent) return events.slice(1)\n return events.slice(events.indexOf(toEvent) + 1).map((event) => {\n // If the to event has a parent id, we need to remove the parent id from the since events or they won't be rendered, as they have no parent to expand.\n if (\n ('parentId' in toEvent && 'parentId' in event && event.parentId === toEvent.parentId) ||\n ('parentId' in event && toEvent.id === event.parentId)\n ) {\n return {...event, parentId: undefined}\n }\n return event\n })\n }, [events, toEvent])\n if (!events.length) {\n return (\n <Box paddingX={2}>\n <Stack padding={3} space={3}>\n <Text size={1} weight=\"medium\">\n {t('timeline.error.no-document-history-title')}\n </Text>\n <Text muted size={1}>\n {t('timeline.error.no-document-history-description')}\n </Text>\n </Stack>\n </Box>\n )\n }\n return (\n <Flex data-testid=\"review-changes-pane\" direction=\"column\" height=\"fill\" overflow=\"hidden\">\n <Box padding={3} style={{position: 'relative'}}>\n <Grid paddingX={2} paddingBottom={2}>\n <Text size={1} muted>\n {t('changes.inspector.from-label')}\n </Text>\n <EventsTimelineMenu\n event={sinceEvent || null}\n events={sinceEvents}\n mode=\"since\"\n placement=\"bottom-start\"\n />\n <Text size={1} muted>\n {t('changes.inspector.to-label')}\n </Text>\n <EventsTimelineMenu\n event={toEvent || null}\n events={events}\n mode=\"rev\"\n placement=\"bottom-end\"\n />\n </Grid>\n {diffLoading && (\n <motion.div\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n transition={{delay: 0.2, duration: 0.2}}\n >\n <SpinnerContainer justify=\"center\" align=\"center\" gap={2}>\n <Text muted size={0}>\n {t('changes.loading-changes')}\n </Text>\n <Spinner size={0} />\n </SpinnerContainer>\n </motion.div>\n )}\n </Box>\n\n <Card flex={1} paddingX={2} paddingY={2}>\n <BoundaryElementProvider element={scrollRef}>\n <Scroller data-ui=\"Scroller\" ref={setScrollRef}>\n <Box flex={1} paddingX={3} height=\"fill\">\n {showChanges && (\n <Content\n documentContext={documentContext}\n error={timelineError || diffError}\n loading={revision?.loading || sinceRevision?.loading || false}\n schemaType={schemaType}\n sameRevisionSelected={sinceEvent?.id === toEvent?.id}\n sinceEvent={sinceEvent}\n />\n )}\n </Box>\n </Scroller>\n </BoundaryElementProvider>\n </Card>\n </Flex>\n )\n}\n\nfunction Content({\n error,\n documentContext,\n loading,\n schemaType,\n sameRevisionSelected,\n sinceEvent,\n}: {\n error?: Error | null\n documentContext: DocumentChangeContextInstance\n loading: boolean\n schemaType: ObjectSchemaType\n sameRevisionSelected: boolean\n sinceEvent: DocumentGroupEvent | null\n}) {\n if (error) {\n return (\n <>\n <CompareWithPublishedView />\n {sinceEvent?.type !== 'historyCleared' && <ChangesError error={error} />}\n </>\n )\n }\n\n if (loading) {\n return <LoadingBlock showText />\n }\n if (sameRevisionSelected) {\n return <SameRevisionSelected />\n }\n\n if (!documentContext.rootDiff) {\n return (\n <motion.div\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n transition={{delay: 0.2, duration: 0.2}}\n >\n <NoChanges />\n </motion.div>\n )\n }\n\n return (\n <DocumentChangeContext.Provider value={documentContext}>\n <Box paddingY={1}>\n <ChangeList diff={documentContext.rootDiff} schemaType={schemaType} />\n </Box>\n </DocumentChangeContext.Provider>\n )\n}\n\nfunction SameRevisionSelected() {\n const {t} = useTranslation('')\n return (\n <motion.div\n animate={{opacity: 1}}\n initial={{opacity: 0}}\n transition={{delay: 0.2, duration: 0.2}}\n >\n <Stack space={3} paddingTop={2}>\n <Text size={1} weight=\"medium\" as=\"h3\">\n {t('changes.same-revision-selected-title')}\n </Text>\n <Text as=\"p\" size={1} muted>\n <Translate i18nKey=\"changes.same-revision-selected-description\" t={t} />\n </Text>\n </Stack>\n </motion.div>\n )\n}\n","import {BoundaryElementProvider, Card, Flex, useToast} from '@sanity/ui'\nimport {useCallback, useState} from 'react'\nimport {\n type DocumentGroupEvent,\n isDeleteDocumentGroupEvent,\n isDeleteDocumentVersionEvent,\n isScheduleDocumentVersionEvent,\n isUnpublishDocumentEvent,\n isUnscheduleDocumentVersionEvent,\n LoadingBlock,\n ScrollContainer,\n useEvents,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {EventsTimeline} from '../../timeline/events/EventsTimeline'\nimport {TimelineError} from '../../timeline/TimelineError'\nimport {useDocumentPane} from '../../useDocumentPane'\n\nconst Scroller = styled(ScrollContainer)`\n height: 100%;\n overflow: auto;\n position: relative;\n scroll-behavior: smooth;\n`\n\nexport function EventsSelector({showList}: {showList: boolean}) {\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n const [listHeight, setListHeight] = useState(0)\n const {setTimelineRange} = useDocumentPane()\n const getScrollerRef = useCallback(\n (el: HTMLDivElement | null) => {\n if (!listHeight && el) {\n /**\n * Hacky solution, the list height needs to be defined, it cannot be obtained from the parent using a `max-height: 100%`\n * Because the scroller won't work properly and it won't scroll to the selected element on mount.\n * To fix this, this component will set the list height to the height of the parent element - 1px, to avoid a double scroll line.\n */\n setListHeight(el.clientHeight ? el.clientHeight - 1 : 0)\n setScrollRef(el)\n }\n },\n [listHeight],\n )\n const {\n events,\n nextCursor,\n loading,\n error,\n revision,\n loadMoreEvents,\n findRangeForRevision,\n expandEvent,\n } = useEvents()\n\n const {t} = useTranslation('studio')\n const toast = useToast()\n\n const selectRev = useCallback(\n (event: DocumentGroupEvent) => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n if (\n isDeleteDocumentVersionEvent(event) ||\n isDeleteDocumentGroupEvent(event) ||\n isUnpublishDocumentEvent(event) ||\n isScheduleDocumentVersionEvent(event) ||\n isUnscheduleDocumentVersionEvent(event)\n ) {\n console.error('Event is not selectable')\n return\n }\n const [since, rev] = findRangeForRevision(event.id)\n setTimelineRange(since, rev)\n }\n try {\n run()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [t, toast, setTimelineRange, findRangeForRevision],\n )\n\n const initialLoad = loading && !events.length\n return (\n <Flex data-testid=\"review-changes-pane\" direction=\"column\" height=\"fill\">\n <Card flex={1} padding={2} paddingTop={0}>\n {error ? (\n <TimelineError />\n ) : (\n <BoundaryElementProvider element={scrollRef}>\n <Scroller data-ui=\"Scroller\" ref={getScrollerRef}>\n {listHeight &&\n // This forces the list to unmount and remount, which is needed to reset the scroll position\n showList &&\n !initialLoad ? (\n <EventsTimeline\n events={events}\n fetchEventChildren={expandEvent}\n hasMoreEvents={Boolean(nextCursor)}\n // If we have a revision, we select it, otherwise we select the first event\n selectedEventId={revision?.revisionId || events[0]?.id}\n onLoadMore={loadMoreEvents}\n onSelect={selectRev}\n listMaxHeight={`${listHeight}px`}\n />\n ) : null}\n {loading && <LoadingBlock />}\n </Scroller>\n </BoundaryElementProvider>\n )}\n </Card>\n </Flex>\n )\n}\n","import {BoundaryElementProvider, Card, Flex, useToast} from '@sanity/ui'\nimport {useCallback, useState} from 'react'\nimport {\n type Chunk,\n ScrollContainer,\n usePerspective,\n useTimelineSelector,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Timeline} from '../../timeline/timeline'\nimport {TimelineError} from '../../timeline/TimelineError'\nimport {useDocumentPane} from '../../useDocumentPane'\n\nconst Scroller = styled(ScrollContainer)`\n height: 100%;\n overflow: auto;\n position: relative;\n scroll-behavior: smooth;\n`\n\nexport function HistorySelector({showList}: {showList: boolean}) {\n const {timelineError, setTimelineRange, timelineStore} = useDocumentPane()\n const {selectedReleaseId} = usePerspective()\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n const [listHeight, setListHeight] = useState(0)\n\n const getScrollerRef = useCallback((el: HTMLDivElement | null) => {\n if (!el?.clientHeight) return\n /**\n * Hacky solution, the list height needs to be defined, it cannot be obtained from the parent using a `max-height: 100%`\n * Because the scroller won't work properly and it won't scroll to the selected element on mount.\n * To fix this, this component will set the list height to the height of the parent element - 1px, to avoid a double scroll line.\n */\n setListHeight(el.clientHeight - 1)\n setScrollRef(el)\n }, [])\n\n const chunks = useTimelineSelector(timelineStore, (state) => state.chunks)\n const realRevChunk = useTimelineSelector(timelineStore, (state) => state.realRevChunk)\n const hasMoreChunks = useTimelineSelector(timelineStore, (state) => state.hasMoreChunks)\n const loading = useTimelineSelector(timelineStore, (state) => state.isLoading)\n\n const {t} = useTranslation('studio')\n const toast = useToast()\n const selectRev = useCallback(\n (revChunk: Chunk) => {\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n const [sinceId, revId] = timelineStore?.findRangeForRev(revChunk) || [null, null]\n setTimelineRange(sinceId, revId)\n }\n try {\n run()\n } catch (err) {\n toast.push({\n closable: true,\n description: err.message,\n status: 'error',\n title: t('timeline.error.unable-to-load-revision'),\n })\n }\n },\n [setTimelineRange, t, timelineStore, toast],\n )\n\n const handleLoadMore = useCallback(() => {\n // If updated, be sure to update the TimeLineMenu component as well\n if (!loading) {\n timelineStore?.loadMore()\n }\n }, [loading, timelineStore])\n\n return (\n <Flex data-testid=\"review-changes-pane\" direction=\"column\" height=\"fill\">\n <Card flex={1} padding={2} paddingTop={0}>\n {timelineError || selectedReleaseId ? (\n <TimelineError versionError={Boolean(selectedReleaseId)} />\n ) : (\n <BoundaryElementProvider element={scrollRef}>\n <Scroller data-ui=\"Scroller\" ref={getScrollerRef}>\n {listHeight &&\n // This forces the list to unmount and remount, which is needed to reset the scroll position\n showList ? (\n <Timeline\n chunks={chunks}\n hasMoreChunks={hasMoreChunks}\n lastChunk={realRevChunk}\n onLoadMore={handleLoadMore}\n onSelect={selectRev}\n listMaxHeight={`${listHeight}px`}\n />\n ) : null}\n </Scroller>\n </BoundaryElementProvider>\n )}\n </Card>\n </Flex>\n )\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {Box, Card, Flex, TabList, TabPanel, Text} from '@sanity/ui'\nimport {useState} from 'react'\nimport {\n type DocumentInspectorProps,\n isReleaseDocument,\n type TargetPerspective,\n type TFunction,\n Translate,\n usePerspective,\n useSource,\n useTranslation,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {Tab} from '../../../../../ui-components/tab/Tab'\nimport {Tooltip} from '../../../../../ui-components/tooltip/Tooltip'\nimport {usePaneRouter} from '../../../../components/paneRouter/usePaneRouter'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {HISTORY_INSPECTOR_NAME} from '../../constants'\nimport {ChangesInspector} from './ChangesInspector'\nimport {EventsInspector} from './EventsInspector'\nimport {EventsSelector} from './EventsSelector'\nimport {HistorySelector} from './HistorySelector'\n\nconst FadeInFlex = styled(Flex)`\n opacity: 0;\n transition: opacity 200ms;\n &[data-ready] {\n opacity: 1;\n }\n`\nconst TABS = ['history', 'review'] as const\nconst isValidTab = (tab: string | undefined): tab is (typeof TABS)[number] =>\n // @ts-expect-error TS doesn't understand the type guard\n tab && TABS.includes(tab)\n\nexport function ChangesTabs(props: DocumentInspectorProps) {\n const {params, setParams} = usePaneRouter()\n const source = useSource()\n const [parentRef, setParentRef] = useState<HTMLDivElement | null>(null)\n const {t} = useTranslation(structureLocaleNamespace)\n const {t: tCore} = useTranslation()\n const isReady = params?.inspect === HISTORY_INSPECTOR_NAME\n const {selectedPerspective} = usePerspective()\n\n const paneRouterTab = isValidTab(params?.changesInspectorTab)\n ? params.changesInspectorTab\n : TABS[0]\n\n const setPaneRouterTab = (tab: (typeof TABS)[number]) =>\n setParams({\n ...params,\n changesInspectorTab: tab,\n // Reset the since when changing the tab, as it's not relevant for the history tab\n since: tab === 'history' ? undefined : params?.since,\n })\n\n return (\n <FadeInFlex\n direction=\"column\"\n padding={0}\n height=\"fill\"\n data-ready={isReady ? '' : undefined}\n ref={setParentRef}\n >\n <Card paddingBottom={1}>\n <Flex align=\"center\" padding={3} gap={2}>\n <TabList space={1} flex={1}>\n <Tab\n aria-controls=\"history-panel\"\n id=\"history-tab\"\n label={t('changes.tab.history')}\n onClick={() => setPaneRouterTab('history')}\n selected={paneRouterTab === 'history'}\n />\n <Tab\n aria-controls=\"review-changes-panel\"\n id=\"changes-tab\"\n label={t('changes.tab.review-changes')}\n onClick={() => setPaneRouterTab('review')}\n selected={paneRouterTab === 'review'}\n />\n </TabList>\n <Button\n aria-label={t('changes.action.close-label')}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={props.onClose}\n tooltipProps={{content: t('document-inspector.close-button.tooltip')}}\n />\n </Flex>\n </Card>\n <Card padding={2} marginBottom={3} marginX={3} tone=\"neutral\" border radius={3}>\n <Flex gap={2} align=\"flex-start\">\n <Tooltip\n portal\n placement=\"bottom-end\"\n boundaryElement={parentRef}\n content={\n <Box flex={1} padding={1}>\n <Text size={1}>\n <Translate t={t} i18nKey=\"changes.banner.tooltip\" />\n </Text>\n </Box>\n }\n >\n <Text size={0} muted>\n <InfoOutlineIcon fontSize={1} />\n </Text>\n </Tooltip>\n <Text size={0} muted>\n <Translate\n t={t}\n values={{\n perspective: perspectiveLabel(selectedPerspective, {t, tCore}),\n }}\n i18nKey=\"changes.banner.description\"\n />\n </Text>\n </Flex>\n </Card>\n\n <TabPanel\n aria-labelledby=\"history-tab\"\n height=\"fill\"\n hidden={paneRouterTab !== 'history'}\n id=\"history-panel\"\n >\n {source.beta?.eventsAPI?.documents ? (\n <EventsSelector showList={paneRouterTab === 'history'} />\n ) : (\n <HistorySelector showList={paneRouterTab === 'history'} />\n )}\n </TabPanel>\n\n <TabPanel\n aria-labelledby=\"review-tab\"\n hidden={paneRouterTab !== 'review'}\n id=\"review-panel\"\n height=\"fill\"\n >\n {source.beta?.eventsAPI?.documents ? (\n <>\n {paneRouterTab === 'review' ? (\n <EventsInspector showChanges={paneRouterTab === 'review'} />\n ) : null}\n </>\n ) : (\n <ChangesInspector showChanges={paneRouterTab === 'review'} />\n )}\n </TabPanel>\n </FadeInFlex>\n )\n}\n\nfunction perspectiveLabel(\n perspective: TargetPerspective,\n {t, tCore}: {t: TFunction; tCore: TFunction},\n): string {\n if (isReleaseDocument(perspective)) {\n return perspective.metadata.title || tCore('release.placeholder-untitled-release')\n }\n\n if (perspective === 'drafts') {\n return t('compare-versions.status.draft')\n }\n\n if (perspective === 'published') {\n return t('compare-versions.status.published')\n }\n\n return perspective\n}\n","import {RestoreIcon} from '@sanity/icons/Restore'\nimport {type DocumentInspector, useTranslation} from 'sanity'\n\nimport {useStructureTool} from '../../../../useStructureTool'\nimport {HISTORY_INSPECTOR_NAME} from '../../constants'\nimport {ChangesTabs} from './ChangesTabs'\n\nexport const changesInspector: DocumentInspector = {\n name: HISTORY_INSPECTOR_NAME,\n useMenuItem: () => {\n const {features} = useStructureTool()\n const {t} = useTranslation()\n\n return {\n hidden: !features.reviewChanges,\n icon: RestoreIcon,\n title: t('changes.title'),\n }\n },\n component: ChangesTabs,\n onClose: ({params}) => ({\n params: {\n ...params,\n since: undefined,\n rev: undefined,\n changesInspectorTab: undefined,\n historyVersion: undefined,\n },\n }),\n onOpen: ({params}) => ({params: {...params, since: '@lastPublished'}}),\n}\n","import {Box, Flex} from '@sanity/ui'\nimport {CrossDatasetReferencePreview, PreviewCard} from 'sanity'\n\nimport {type CrossDatasetIncomingReference} from '../types'\nimport {type CrossDatasetIncomingReferenceDocument} from './getCrossDatasetIncomingReferences'\n\nexport function CrossDatasetIncomingReferenceDocumentPreview({\n type,\n document,\n}: {\n document: CrossDatasetIncomingReferenceDocument\n type?: CrossDatasetIncomingReference\n}) {\n const studioUrl = type?.studioUrl?.({id: document.id, type: document.type})\n return (\n <Flex key={document.id} gap={1} align=\"center\">\n <Box flex={1}>\n <PreviewCard\n data-as={studioUrl ? 'a' : 'div'}\n flex={1}\n radius={2}\n paddingRight={studioUrl ? 3 : 0}\n tone=\"inherit\"\n __unstable_focusRing\n tabIndex={0}\n {...(studioUrl\n ? {href: studioUrl, target: '_blank', rel: 'noopener noreferrer', as: 'a'}\n : {})}\n >\n <CrossDatasetReferencePreview\n availability={document.availability}\n hasStudioUrl={Boolean(studioUrl)}\n showStudioUrlIcon={Boolean(studioUrl)}\n preview={document.preview}\n refType={\n type\n ? {\n type: type.type,\n title: document.preview.published?.title,\n icon: () => null,\n preview: type.preview,\n }\n : undefined\n }\n projectId={document.projectId}\n dataset={document.dataset}\n id={document.id}\n showTypeLabel={false}\n />\n </PreviewCard>\n </Box>\n </Flex>\n )\n}\n","import {DocumentIcon} from '@sanity/icons/Document'\nimport {type PreviewValue} from '@sanity/types'\nimport {catchError, map, type Observable, of, startWith, switchMap} from 'rxjs'\nimport {mergeMapArray} from 'rxjs-mergemap-array'\nimport {\n type DocumentAvailability,\n type DocumentPreviewStore,\n getPreviewPaths,\n getPublishedId,\n isNonNullable,\n prepareForPreview,\n type SanityClient,\n} from 'sanity'\n\nimport {fetchCrossDatasetReferences} from '../../confirmDeleteDialog/useReferringDocuments'\nimport {type CrossDatasetIncomingReference} from '../types'\n\nconst INITIAL_STATE = {\n documents: [],\n loading: true,\n}\n\ninterface InputIncomingReferencesOptions {\n documentId: string\n type: CrossDatasetIncomingReference\n client: SanityClient\n documentPreviewStore: DocumentPreviewStore\n}\ninterface InspectorIncomingReferencesOptions {\n documentId: string\n client: SanityClient\n documentPreviewStore: DocumentPreviewStore\n type?: undefined\n}\n\ninterface CompleteReferencesResponse {\n documentId: string\n projectId: string\n datasetName: string\n}\n\nexport interface CrossDatasetIncomingReferenceDocument {\n id: string\n type: string\n availability: DocumentAvailability | null\n preview: {\n published: PreviewValue | undefined\n }\n projectId: string\n dataset: string\n}\nexport function getCrossDatasetIncomingReferences({\n documentId,\n type,\n client,\n documentPreviewStore,\n}: InputIncomingReferencesOptions | InspectorIncomingReferencesOptions): Observable<{\n documents: CrossDatasetIncomingReferenceDocument[]\n loading: boolean\n}> {\n // Here we get all the references to this document from the any other dataset.\n // `fetchCrossDatasetReferences` is poll-driven (it re-emits on visibility\n // changes), so we run the per-emission pipeline inside a `switchMap` and catch\n // there. That way a transient failure of a single poll degrades to an empty\n // list without completing the outer observable, allowing a later poll tick to\n // recover. Consumers render this via `useObservable`, which rethrows stream\n // errors during render and would crash the document pane.\n return fetchCrossDatasetReferences(documentId, {versionedClient: client}).pipe(\n switchMap((referencesResult) =>\n of(referencesResult).pipe(\n map((res) => {\n if (!res) return []\n if (!type?.dataset) {\n // Return all the references that contain a datasetName and a documentId.\n return res.references.filter(\n (ref) => ref.documentId && ref.datasetName,\n ) as CompleteReferencesResponse[]\n }\n // Return all the references with document id and where the datasetName matches with the dataset provided.\n return res.references.filter(\n (ref) => ref.datasetName === type.dataset && ref.documentId,\n ) as CompleteReferencesResponse[]\n }),\n // Now that we have all the references from the dataset the user defined, we need to get the document type from the documentId\n mergeMapArray((document) =>\n documentPreviewStore\n .observeDocumentTypeFromId(getPublishedId(document.documentId), {\n dataset: document.datasetName,\n projectId: document.projectId,\n })\n .pipe(map((documentType) => ({...document, documentType}))),\n ),\n\n mergeMapArray((document) => {\n if (!document.documentType) return of(null)\n if (!type) {\n // If we don't have a type defined with the preview we can't derive how the document preview will look\n // So let's use the document Id as the title, dataset name as subtitle and a default icon.\n return of({\n type: document.documentType,\n id: document.documentId,\n preview: {\n published: {\n _id: document.documentId,\n title: `Document Id: ${document.documentId}`,\n subtitle: `Dataset: ${document.datasetName} - Project Id: ${document.projectId}`,\n media: <DocumentIcon />,\n } as PreviewValue,\n },\n availability: {available: true, reason: 'READABLE'} as const,\n projectId: document.projectId,\n dataset: document.datasetName,\n })\n }\n\n // We filter the documents so only the documents of the type the user defined are included\n if (document.documentType !== type.type) return of(null)\n const previewPaths = getPreviewPaths(type.preview) || []\n // Now we get the preview values for the document so we can display it in the preview\n return documentPreviewStore\n .observePaths({_id: getPublishedId(document.documentId)}, previewPaths, {\n dataset: document.datasetName,\n projectId: document.projectId,\n })\n .pipe(\n map((result) => {\n const previewValue = prepareForPreview(result, {\n type: type.type,\n title: type.title || '',\n icon: () => <DocumentIcon />,\n preview: type.preview,\n })\n return {\n type: document.documentType as string,\n id: document.documentId,\n preview: {\n published: {\n ...previewValue,\n media: previewValue.media ?? <DocumentIcon />,\n },\n },\n availability: {available: true, reason: 'READABLE'} as const,\n projectId: document.projectId,\n dataset: document.datasetName,\n }\n }),\n )\n }),\n map((documents) => ({documents: documents.filter(isNonNullable), loading: false})),\n // Cross-dataset queries are failure-prone (token / dataset permission\n // errors). Degrade this poll tick to an empty list instead of erroring;\n // catching inside the `switchMap` keeps the outer stream alive so a\n // later poll can recover.\n catchError((err) => {\n console.error(new Error('Failed to load cross-dataset incoming references', {cause: err}))\n return of({documents: [], loading: false})\n }),\n ),\n ),\n startWith(INITIAL_STATE),\n )\n}\n","import {\n catchError,\n distinctUntilChanged,\n filter,\n map,\n type Observable,\n of,\n startWith,\n switchMap,\n} from 'rxjs'\nimport {mergeMapArray} from 'rxjs-mergemap-array'\nimport {\n type DocumentPreviewStore,\n getPublishedId,\n type SanityClient,\n type SanityDocument,\n} from 'sanity'\n\nimport {type IncomingReferencesFilterResolver, type IncomingReferencesOptions} from './types'\n\nexport const INITIAL_STATE = {\n documents: [],\n loading: true,\n}\n\nasync function resolveRawFilterCallback(\n filterResolver: IncomingReferencesFilterResolver,\n {\n document,\n getClient,\n }: {document: SanityDocument; getClient: (options: {apiVersion: string}) => SanityClient},\n) {\n const resolvedFilter = await filterResolver({document, getClient})\n if (typeof resolvedFilter === 'string') {\n return {filter: resolvedFilter, filterParams: undefined}\n }\n return resolvedFilter\n}\n\ninterface InputIncomingReferencesOptions {\n documentId: string\n documentPreviewStore: DocumentPreviewStore\n getClient: (options: {apiVersion: string}) => SanityClient\n type?: string\n filter?: IncomingReferencesOptions['filter']\n filterParams?: IncomingReferencesOptions['filterParams']\n}\n\ninterface InspectorIncomingReferencesOptions {\n documentId: string\n documentPreviewStore: DocumentPreviewStore\n getClient: (options: {apiVersion: string}) => SanityClient\n type?: undefined\n filter?: undefined\n filterParams?: undefined\n}\n\nexport function getIncomingReferences({\n documentId,\n documentPreviewStore,\n type,\n filter: filterQueryRaw,\n filterParams: filterParamsRaw,\n getClient,\n}: InspectorIncomingReferencesOptions | InputIncomingReferencesOptions): Observable<{\n documents: SanityDocument[]\n loading: boolean\n}> {\n const publishedId = getPublishedId(documentId)\n const filterResolver: Observable<{\n filter: string | undefined\n filterParams?: Record<string, unknown> | undefined\n }> =\n typeof filterQueryRaw === 'function'\n ? documentPreviewStore.unstable_observeDocument(documentId).pipe(\n distinctUntilChanged((a, b) => a?._rev === b?._rev),\n switchMap((document) =>\n resolveRawFilterCallback(filterQueryRaw, {\n document: document as SanityDocument,\n getClient,\n }),\n ),\n map((resolvedFilter) => ({\n filter: resolvedFilter.filter,\n filterParams: resolvedFilter.filterParams || filterParamsRaw,\n })),\n )\n : of({filter: filterQueryRaw, filterParams: filterParamsRaw})\n\n return filterResolver.pipe(\n distinctUntilChanged(\n (a, b) =>\n a.filter === b.filter && JSON.stringify(a.filterParams) === JSON.stringify(b.filterParams),\n ),\n switchMap(({filter: filterQuery, filterParams}) => {\n return documentPreviewStore\n .unstable_observeDocumentIdSet(\n `references(\"${publishedId}\") ${type ? `&& _type == \"${type}\"` : ''} ${filterQuery ? `&& ${filterQuery}` : ''}`,\n filterParams,\n {insert: 'append'},\n )\n .pipe(\n map((state) => state.documentIds),\n mergeMapArray((id: string) => {\n return documentPreviewStore.unstable_observeDocument(id).pipe(\n filter(Boolean),\n map((doc) => doc),\n )\n }),\n // Remove duplicates due to different versions of the same document.\n map((documents) => {\n const seenPublishedId: string[] = []\n return documents.filter((doc) => {\n const pId = getPublishedId(doc._id)\n if (seenPublishedId.includes(pId)) return false\n seenPublishedId.push(pId)\n return true\n })\n }),\n\n map((documents) => ({documents, loading: false})),\n startWith(INITIAL_STATE),\n // Catch inside the `switchMap` so a failure of this inner stream\n // degrades to an empty list without completing the outer observable.\n // Consumers render this via `useObservable`, which rethrows stream\n // errors during render and would crash the document pane. Keeping the\n // outer stream alive means a later `filterResolver` emission can\n // re-subscribe and recover from a transient error.\n catchError((err) => {\n console.error(new Error('Failed to load incoming references', {cause: err}))\n return of({documents: [], loading: false})\n }),\n )\n }),\n )\n}\n","import {Box} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const INCOMING_REFERENCES_ITEM_HEIGHT = 51\nconst INCOMING_REFERENCES_MAX_VISIBLE_ITEMS = 10\n\nexport const IncomingReferencesListContainer = styled(Box)<{$itemCount: number}>`\n height: ${({$itemCount}) =>\n Math.min($itemCount, INCOMING_REFERENCES_MAX_VISIBLE_ITEMS) *\n INCOMING_REFERENCES_ITEM_HEIGHT}px;\n`\n","import {type Path, type SanityDocument, type SchemaType} from '@sanity/types'\nimport {type ReactNode, useCallback} from 'react'\nimport {\n getPublishedId,\n pathToString,\n PreviewCard,\n useDocumentPresence,\n useDocumentPreviewStore,\n} from 'sanity'\n\nimport {PaneItemPreview} from '../paneItem/PaneItemPreview'\nimport {usePaneRouter} from '../paneRouter/usePaneRouter'\n\ninterface IncomingReferencePreviewProps {\n type: SchemaType\n value: SanityDocument\n path: Path\n}\n\nexport function IncomingReferencePreview(props: IncomingReferencePreviewProps) {\n const {type, value, path} = props\n const publishedId = getPublishedId(value?._id)\n const documentPresence = useDocumentPresence(publishedId)\n const documentPreviewStore = useDocumentPreviewStore()\n const {ChildLink} = usePaneRouter()\n\n const Link = useCallback(\n function LinkComponent(linkProps: {children: ReactNode}) {\n return (\n <ChildLink\n childId={getPublishedId(value?._id)}\n childParameters={{type: type.name, path: pathToString(path)}}\n {...linkProps}\n />\n )\n },\n [ChildLink, type.name, value?._id, path],\n )\n\n return (\n <PreviewCard __unstable_focusRing as={Link} data-as=\"a\" radius={2}>\n <PaneItemPreview\n documentPreviewStore={documentPreviewStore}\n icon={type.icon || false}\n layout=\"default\"\n presence={documentPresence}\n schemaType={type}\n value={value}\n />\n </PreviewCard>\n )\n}\n","import {Box, Card, Flex, Text} from '@sanity/ui'\nimport {motion} from 'motion/react'\nimport {getReferencePaths, type SanityDocument, useSchema, useTranslation} from 'sanity'\n\nimport {IncomingReferencePreview} from '../../../../components/incomingReferencesDecoration/IncomingReferencePreview'\nimport {structureLocaleNamespace} from '../../../../i18n'\n\nconst FadeInFlex = motion.create(Flex)\n\nexport const IncomingReferenceDocument = (props: {\n document: SanityDocument\n referenceToId: string\n}) => {\n const {t} = useTranslation(structureLocaleNamespace)\n const {document, referenceToId} = props\n const referencePaths = getReferencePaths(document, referenceToId)\n const schema = useSchema()\n\n const schemaType = schema.get(document._type)\n if (!schemaType)\n return (\n <Card radius={2} tone=\"critical\">\n <Box paddingY={4} paddingX={3}>\n <Text size={1}>\n {t('incoming-references-pane.schema-type-not-found', {type: document._type})}\n </Text>\n </Box>\n </Card>\n )\n\n return (\n <Card radius={2} tone=\"default\">\n <FadeInFlex initial={{opacity: 0}} animate={{opacity: 1}} gap={1} align=\"center\">\n <Box flex={1}>\n <IncomingReferencePreview type={schemaType} value={document} path={referencePaths[0]} />\n </Box>\n </FadeInFlex>\n </Card>\n )\n}\n","import {type SanityDocument} from '@sanity/types'\nimport {Box, Card, Flex, Stack, Text} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {useObservable} from 'react-rx'\nimport {map} from 'rxjs'\nimport {\n CommandList,\n type CommandListRenderItemCallback,\n DEFAULT_STUDIO_CLIENT_OPTIONS,\n LoadingBlock,\n useClient,\n useDocumentPreviewStore,\n useSchema,\n useSource,\n useTranslation,\n} from 'sanity'\n\nimport {CrossDatasetIncomingReferenceDocumentPreview} from '../../../../components/incomingReferencesDecoration/CrossDatasetIncomingReference/CrossDatasetIncomingReferenceDocumentPreview'\nimport {\n type CrossDatasetIncomingReferenceDocument,\n getCrossDatasetIncomingReferences,\n} from '../../../../components/incomingReferencesDecoration/CrossDatasetIncomingReference/getCrossDatasetIncomingReferences'\nimport {getIncomingReferences} from '../../../../components/incomingReferencesDecoration/getIncomingReferences'\nimport {\n INCOMING_REFERENCES_ITEM_HEIGHT,\n IncomingReferencesListContainer,\n} from '../../../../components/incomingReferencesDecoration/shared'\nimport {structureLocaleNamespace} from '../../../../i18n'\nimport {useDocumentPaneInfo} from '../../useDocumentPaneInfo'\nimport {IncomingReferenceDocument} from './IncomingReferenceDocument'\n\ninterface TypeSectionProps<T> {\n type: string\n documents: T[]\n renderItem: CommandListRenderItemCallback<T>\n getItemKey: (index: number) => string\n emptyMessage: string\n}\n\nfunction TypeSection<T>({\n type,\n documents,\n renderItem,\n getItemKey,\n emptyMessage,\n}: TypeSectionProps<T>) {\n const schema = useSchema()\n const {t} = useTranslation(structureLocaleNamespace)\n const schemaType = schema.get(type)\n const title = schemaType?.title || type\n\n return (\n <Stack key={type} padding={2} space={1} marginBottom={2}>\n <Flex align=\"center\" justify=\"space-between\" paddingBottom={2} gap={2}>\n <Box padding={2}>\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n </Box>\n </Flex>\n {documents.length > 0 ? (\n <Card radius={2} padding={1} border tone=\"default\">\n <IncomingReferencesListContainer $itemCount={documents.length}>\n <CommandList\n activeItemDataAttr=\"data-hovered\"\n ariaLabel={t('incoming-references-input.list-label', {type: title})}\n canReceiveFocus\n fixedHeight\n getItemKey={getItemKey}\n itemHeight={INCOMING_REFERENCES_ITEM_HEIGHT}\n items={documents}\n onlyShowSelectionWhenActive\n overscan={5}\n renderItem={renderItem}\n wrapAround={false}\n />\n </IncomingReferencesListContainer>\n </Card>\n ) : (\n <Box padding={0}>\n <Card border radius={3} padding={1} tone=\"default\">\n <Box paddingY={3} paddingX={2}>\n <Text size={1} muted>\n {emptyMessage}\n </Text>\n </Box>\n </Card>\n </Box>\n )}\n </Stack>\n )\n}\n\nexport function IncomingReferencesList() {\n const {documentId} = useDocumentPaneInfo()\n const {t} = useTranslation(structureLocaleNamespace)\n const {getClient} = useSource()\n const documentPreviewStore = useDocumentPreviewStore()\n const client = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n\n const references$ = useMemo(\n () =>\n getIncomingReferences({\n documentId,\n documentPreviewStore,\n getClient,\n }).pipe(\n map(({documents, loading}) => {\n const documentsByType = documents.reduce(\n (acc, doc) => {\n const type = doc._type\n // If the type exists add the document to it.\n if (acc[type]) acc[type].push(doc)\n // else, create the type with the document.\n else acc[type] = [doc]\n return acc\n },\n {} as Record<string, SanityDocument[]>,\n )\n return {\n list: Object.entries(documentsByType).map(([type, docs]) => ({type, documents: docs})),\n loading,\n }\n }),\n ),\n [documentId, documentPreviewStore, getClient],\n )\n const references = useObservable(references$, null)\n\n const crossDatasetIncomingRefs$ = useMemo(\n () =>\n getCrossDatasetIncomingReferences({documentId, client, documentPreviewStore}).pipe(\n map(({documents, loading}) => {\n const documentsByType = documents.reduce(\n (acc, doc) => {\n const type = doc.type\n // If the type exists add the document to it.\n if (acc[type]) acc[type].push(doc)\n // else, create the type with the document.\n else acc[type] = [doc]\n return acc\n },\n {} as Record<string, CrossDatasetIncomingReferenceDocument[]>,\n )\n return {\n list: Object.entries(documentsByType).map(([type, docs]) => ({type, documents: docs})),\n loading,\n }\n }),\n ),\n [client, documentId, documentPreviewStore],\n )\n\n const crossDatasetRefs = useObservable(crossDatasetIncomingRefs$, null)\n\n const renderSameDatasetItem = useCallback<CommandListRenderItemCallback<SanityDocument>>(\n (document) => <IncomingReferenceDocument document={document} referenceToId={documentId} />,\n [documentId],\n )\n\n const renderCrossDatasetItem = useCallback<\n CommandListRenderItemCallback<CrossDatasetIncomingReferenceDocument>\n >((document) => <CrossDatasetIncomingReferenceDocumentPreview document={document} />, [])\n\n const emptyMessage = t('incoming-references-pane.no-references-found')\n\n const showEmptyState =\n !references?.loading &&\n references?.list.length === 0 &&\n !crossDatasetRefs?.loading &&\n crossDatasetRefs?.list.length === 0\n\n return (\n <>\n {showEmptyState && (\n <Card border radius={3} padding={1} tone=\"default\">\n <Box paddingY={3} paddingX={2}>\n <Text size={1} muted>\n {t('incoming-references-pane.no-references')}\n </Text>\n </Box>\n </Card>\n )}\n {references?.loading ? (\n <LoadingBlock showText title={t('incoming-references-input.types-loading')} />\n ) : (\n references?.list.map(({type, documents}) => (\n <TypeSection\n key={type}\n type={type}\n documents={documents}\n renderItem={renderSameDatasetItem}\n getItemKey={(index) => documents[index]._id}\n emptyMessage={emptyMessage}\n />\n ))\n )}\n {crossDatasetRefs?.loading ? (\n <LoadingBlock showText title={t('incoming-references-input.types-loading-cross-dataset')} />\n ) : (\n crossDatasetRefs?.list.map(({type, documents}) => (\n <TypeSection\n key={type}\n type={type}\n documents={documents}\n renderItem={renderCrossDatasetItem}\n getItemKey={(index) => documents[index].id}\n emptyMessage={emptyMessage}\n />\n ))\n )}\n </>\n )\n}\n","import {Card, Flex} from '@sanity/ui'\nimport {type DocumentInspectorComponent, type DocumentInspectorProps, useTranslation} from 'sanity'\n\nimport {DocumentInspectorHeader} from '../../documentInspector/DocumentInspectorHeader'\nimport {IncomingReferencesList} from './IncomingReferencesList'\n\nexport const IncomingReferencesInspector: DocumentInspectorComponent = (\n props: DocumentInspectorProps,\n) => {\n const {t} = useTranslation()\n\n return (\n <Flex direction=\"column\" height=\"fill\" overflow=\"hidden\">\n <DocumentInspectorHeader\n as=\"header\"\n closeButtonLabel={t('panel.close-button-aria-label')}\n flex=\"none\"\n onClose={props.onClose}\n title={t('incoming-references.title')}\n />\n <Card flex={1} overflow=\"auto\" padding={3}>\n <IncomingReferencesList />\n </Card>\n </Flex>\n )\n}\n","import {SyncIcon} from '@sanity/icons/Sync'\nimport {type DocumentInspector, useTranslation} from 'sanity'\n\nimport {INCOMING_REFERENCES_INSPECTOR_NAME} from '../../constants'\nimport {IncomingReferencesInspector} from './IncomingReferencesInspector'\n\nexport const incomingReferencesInspector: DocumentInspector = {\n name: INCOMING_REFERENCES_INSPECTOR_NAME,\n useMenuItem: () => {\n const {t} = useTranslation()\n\n return {\n icon: SyncIcon,\n title: t('incoming-references.title'),\n }\n },\n component: IncomingReferencesInspector,\n}\n","import {type Path, type SanityDocument, type SchemaType} from '@sanity/types'\nimport {isArray, isRecord} from 'sanity'\n\nexport function getPathTitles(options: {\n path: Path\n schemaType: SchemaType\n value: Partial<SanityDocument> | null\n}): Array<{name: string; title?: string}> {\n const {path, schemaType, value} = options\n const result: Array<{name: string; title?: string}> = []\n\n let s = schemaType\n let v: unknown = value\n\n for (const segment of path) {\n // field name\n if (typeof segment === 'string') {\n if (!isRecord(v) && v !== undefined) {\n throw new Error(`Parent value is not an object, cannot get path segment: .${segment}`)\n }\n\n if (s.jsonType !== 'object') {\n throw new Error(\n `Parent type is not an object schema type, cannot get path segment: .${segment}`,\n )\n }\n\n v = v?.[segment]\n\n const field = s.fields.find((f) => f.name === segment)\n\n if (!field) {\n result.push({name: segment})\n return result\n }\n\n s = field.type\n\n result.push(s)\n\n continue\n }\n\n // array item index\n if (typeof segment === 'number') {\n if (!isArray(v) && v !== undefined) {\n throw new Error(`Parent value is not an array, cannot get path segment: [${segment}]`)\n }\n\n if (s.jsonType !== 'array') {\n throw new Error(\n `Parent type is not an array schema type, cannot get path segment: [${segment}]`,\n )\n }\n\n v = v?.[segment]\n\n const itemType = s.of.find((ofType) => {\n if (typeof v === 'string') {\n return ofType.jsonType === 'string'\n }\n\n if (typeof v === 'number') {\n return ofType.jsonType === 'number'\n }\n\n if (typeof v === 'boolean') {\n return ofType.jsonType === 'boolean'\n }\n\n if (isRecord(v)) {\n return ofType.name === v?._type\n }\n\n return false\n })\n\n if (!itemType) {\n throw new Error(`Item type not found: [${segment}]`)\n }\n\n s = itemType\n\n result.push(s)\n\n continue\n }\n\n // array item key\n if (isRecord(segment) && segment._key) {\n // if the value is undefined, it likely means that is has been deleted, so return the result\n if (typeof v === 'undefined') {\n return result\n }\n\n if (!isArray(v)) {\n throw new Error(\n `Parent value is not an array, cannot get path segment: [_key == ${segment}]`,\n )\n }\n\n if (s.jsonType !== 'array') {\n throw new Error(\n `Parent type is not an array schema type, cannot get path segment: .${segment}`,\n )\n }\n\n const values = v ?? []\n\n v = values.find((i) => isRecord(i) && i._key === segment._key)\n\n // in situations where the segment key exists but it could not be found in the values array\n // means that the specific item has been deleted from the array\n // and therefore we not need to continue running the validation for it\n if (typeof v === 'undefined') {\n return result\n }\n\n if (!isRecord(v)) {\n throw new Error(`Array item not found: [_key == ${segment._key}]`)\n }\n\n // Try to find the type by _type property first\n let ofType = s.of.find((i) => isRecord(v) && i.name === v?._type)\n\n // If _type is not set (anonymous object), and there's only one object type, use it\n if (!ofType && !v?._type) {\n const objectTypes = s.of.filter((i) => i.jsonType === 'object')\n if (objectTypes.length === 1) {\n ofType = objectTypes[0]\n }\n }\n\n if (!ofType) {\n throw new Error(`Array item type not found: .${v?._type}`)\n }\n\n s = ofType\n\n result.push(s)\n\n continue\n }\n\n throw new Error(`Invalid path segment: ${JSON.stringify(segment)}`)\n }\n\n return result\n}\n","import {type IconComponent} from '@sanity/icons'\nimport {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {InfoOutlineIcon} from '@sanity/icons/InfoOutline'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {\n type ObjectSchemaType,\n type Path,\n type SanityDocument,\n type SchemaType,\n type ValidationMarker,\n} from '@sanity/types'\nimport {Box, Card, type CardTone, Flex, Stack, Text} from '@sanity/ui'\nimport {type ErrorInfo, Fragment, type MouseEvent, useCallback, useMemo, useState} from 'react'\nimport {\n type DocumentInspectorProps,\n isGoingToUnpublish,\n mergeParseErrors,\n useParseErrors,\n useTranslation,\n} from 'sanity'\n\nimport {ErrorBoundary} from '../../../../../ui-components/errorBoundary/ErrorBoundary'\nimport {DocumentInspectorHeader} from '../../documentInspector/DocumentInspectorHeader'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {getPathTitles} from './getPathTitles'\n\nconst MARKER_ICON: Record<'error' | 'warning' | 'info', IconComponent> = {\n error: ErrorOutlineIcon,\n warning: WarningOutlineIcon,\n info: InfoOutlineIcon,\n}\n\nconst MARKER_TONE: Record<'error' | 'warning' | 'info', CardTone> = {\n error: 'critical',\n warning: 'caution',\n info: 'primary',\n}\n\nexport function ValidationInspector(props: DocumentInspectorProps) {\n const {onClose} = props\n const {onFocus, onPathOpen, schemaType, validation, value, editState} = useDocumentPane()\n const parseErrors = useParseErrors()\n const mergedValidation = useMemo(\n () => mergeParseErrors(validation, parseErrors),\n [validation, parseErrors],\n )\n const {t} = useTranslation('validation')\n\n const handleOpen = useCallback(\n (path: Path) => {\n onPathOpen(path)\n onFocus(path)\n },\n [onFocus, onPathOpen],\n )\n\n const isVersionGoingToUnpublish =\n editState && editState.version && isGoingToUnpublish(editState.version)\n\n return (\n <Flex direction=\"column\" height=\"fill\" overflow=\"hidden\">\n <DocumentInspectorHeader\n as=\"header\"\n closeButtonLabel={t('panel.close-button-aria-label')}\n flex=\"none\"\n onClose={onClose}\n title={t('panel.title')}\n />\n\n <Card flex={1} overflow=\"auto\" padding={3}>\n {isVersionGoingToUnpublish ? (\n <Box padding={2}>\n <Text muted size={1}>\n {t('panel.unpublish-message')}\n </Text>\n </Box>\n ) : (\n <>\n {mergedValidation.length === 0 && (\n <Box padding={2}>\n <Text muted size={1}>\n {t('panel.no-errors-message')}\n </Text>\n </Box>\n )}\n {mergedValidation.length > 0 && (\n <Stack space={2}>\n {mergedValidation.map((marker, i) => (\n <ValidationCard\n // oxlint-disable-next-line no-array-index-key\n key={i}\n marker={marker}\n onOpen={handleOpen}\n schemaType={schemaType}\n value={value}\n />\n ))}\n </Stack>\n )}\n </>\n )}\n </Card>\n </Flex>\n )\n}\n\nfunction ValidationCard(props: {\n marker: ValidationMarker\n onOpen: (path: Path) => void\n schemaType: ObjectSchemaType\n value: Partial<SanityDocument> | null\n}) {\n const {marker, onOpen, schemaType, value} = props\n const handleClick = useCallback(\n (event: MouseEvent) => {\n // Allow text selection: if the user selected text, don't navigate\n const selection = window.getSelection()\n if (\n selection &&\n selection.toString().length > 0 &&\n // It's selecting inside the card, so don't navigate\n event.currentTarget.contains(selection.anchorNode)\n ) {\n return\n }\n onOpen(marker.path)\n },\n [marker, onOpen],\n )\n const [errorInfo, setErrorInfo] = useState<{error: Error; info: ErrorInfo} | null>(null)\n const Icon = MARKER_ICON[marker.level]\n\n return (\n <ErrorBoundary onCatch={setErrorInfo}>\n {errorInfo && (\n <Card padding={3} radius={2} tone=\"critical\">\n <Text size={1}>{errorInfo.error.message}</Text>\n </Card>\n )}\n\n {!errorInfo && (\n <Card\n __unstable_focusRing\n as=\"button\"\n onClick={handleClick}\n padding={3}\n radius={2}\n style={{userSelect: 'text'}}\n tone={MARKER_TONE[marker.level]}\n >\n <Flex align=\"flex-start\" gap={3}>\n <Box flex=\"none\">\n <Text size={1}>\n <Icon />\n </Text>\n </Box>\n\n <Stack flex={1} space={2}>\n <DocumentNodePathBreadcrumbs\n path={marker.path}\n schemaType={schemaType}\n value={value}\n />\n\n <Text muted size={1}>\n {marker.message}\n </Text>\n </Stack>\n </Flex>\n </Card>\n )}\n </ErrorBoundary>\n )\n}\n\nfunction DocumentNodePathBreadcrumbs(props: {\n path: Path\n schemaType: SchemaType\n value: Partial<SanityDocument> | null\n}) {\n const {path, schemaType, value} = props\n\n const pathTitles = useMemo(() => {\n try {\n return getPathTitles({path, schemaType, value})\n } catch (e) {\n console.error(e)\n }\n return null\n }, [path, schemaType, value])\n\n if (!pathTitles?.length) return null\n\n return (\n <Text size={1}>\n {pathTitles.map((t, i) => (\n // oxlint-disable-next-line no-array-index-key\n <Fragment key={i}>\n {i > 0 && <span style={{color: 'var(--card-muted-fg-color)', opacity: 0.5}}> / </span>}\n <span style={{fontWeight: 500}}>{t.title || t.name}</span>\n </Fragment>\n ))}\n </Text>\n )\n}\n","import {CheckmarkCircleIcon} from '@sanity/icons/CheckmarkCircle'\nimport {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'\nimport {WarningOutlineIcon} from '@sanity/icons/WarningOutline'\nimport {useMemo} from 'react'\nimport {\n type DocumentInspector,\n type DocumentInspectorMenuItem,\n type DocumentInspectorUseMenuItemProps,\n type FormNodeValidation,\n isGoingToUnpublish,\n isValidationError,\n isValidationWarning,\n mergeParseErrors,\n useParseErrors,\n useTranslation,\n} from 'sanity'\n\nimport {VALIDATION_INSPECTOR_NAME} from '../../constants'\nimport {useDocumentPane} from '../../useDocumentPane'\nimport {ValidationInspector} from './ValidationInspector'\n\nfunction useMenuItem(_props: DocumentInspectorUseMenuItemProps): DocumentInspectorMenuItem {\n const {t} = useTranslation('validation')\n // Read the same validation the inspector panel uses (from the document pane),\n // rather than fetching it directly from the live document. This keeps the\n // status-bar badge and the panel in sync — e.g. both are empty while viewing\n // a historical revision, where validation is suppressed. Reading it directly\n // here would leave a stale red badge that opens an empty panel.\n const {validation: validationMarkers, value} = useDocumentPane()\n const parseErrors = useParseErrors()\n\n const validation: FormNodeValidation[] = useMemo(() => {\n const merged = mergeParseErrors(validationMarkers, parseErrors)\n return merged.map((item) => ({\n level: item.level,\n message: item.message,\n path: item.path,\n }))\n }, [validationMarkers, parseErrors])\n\n const hasErrors = validation.some(isValidationError)\n const hasWarnings = validation.some(isValidationWarning)\n const isDocumentGoingToUnpublish = isGoingToUnpublish(value)\n\n const icon = useMemo(() => {\n if (hasErrors) return ErrorOutlineIcon\n if (hasWarnings) return WarningOutlineIcon\n return CheckmarkCircleIcon\n }, [hasErrors, hasWarnings])\n\n const tone = useMemo(() => {\n if (hasErrors) return 'critical'\n if (hasWarnings) return 'caution'\n return 'positive'\n }, [hasErrors, hasWarnings])\n\n return {\n hidden: validation.length === 0 || isDocumentGoingToUnpublish,\n icon,\n title: t('panel.title'),\n tone,\n showAsAction: true,\n }\n}\n\nexport const validationInspector: DocumentInspector = {\n name: VALIDATION_INSPECTOR_NAME,\n component: ValidationInspector,\n useMenuItem,\n}\n","import omit from 'lodash-es/omit.js'\nimport {decodeJsonParams, encodeJsonParams, route} from 'sanity/router'\n\nimport {type RouterPaneGroup, type RouterPanes, type RouterPaneSibling} from './types'\n\nconst EMPTY_PARAMS = {}\n\nfunction legacyEditParamsToState(params: string): Record<string, unknown> {\n try {\n return JSON.parse(decodeURIComponent(params))\n } catch {\n console.warn('Failed to parse JSON parameters')\n return {}\n }\n}\n\nfunction encodePanesSegment(panes: RouterPanes): string {\n return (panes || [])\n .map((group) => group.map(encodeChunks).join('|'))\n .map(encodeURIComponent)\n .join(';')\n}\n\nfunction legacyEditParamsToPath(params: Record<string, unknown>): string {\n return JSON.stringify(params)\n}\n\n// http://localhost:3333/intent/create/template=book-by-author;type=book/eyJhdXRob3JJZCI6Imdycm0ifQ==\n\n/**\n * @internal\n */\nexport function toState(pathSegment: string): RouterPaneGroup[] {\n return parsePanesSegment(decodeURIComponent(pathSegment))\n}\n\n/**\n * @internal\n */\nexport function toPath(panes: RouterPaneGroup[]): string {\n return encodePanesSegment(panes)\n}\n\nexport const router = route.create('/', [\n // \"Asynchronous intent resolving\" route\n route.intents('/intent'),\n\n // Legacy fallback route, will be redirected to new format\n route.create('/edit/:type/:editDocumentId', [\n route.create({\n path: '/:params',\n transform: {params: {toState: legacyEditParamsToState, toPath: legacyEditParamsToPath}},\n }),\n ]),\n\n // The regular path - when the intent can be resolved to a specific pane\n route.create({\n path: '/:panes',\n // Legacy URLs, used to handle redirects\n children: [route.create('/:action', route.create('/:legacyEditDocumentId'))],\n transform: {\n panes: {toState, toPath},\n },\n }),\n])\n\n// old: authors;knut,{\"template\":\"diaryEntry\"}\n// new: authors;knut,view=diff,eyJyZXYxIjoiYWJjMTIzIiwicmV2MiI6ImRlZjQ1NiJ9|latest-posts\n\nconst panePattern = /^([.a-z0-9_-]+),?({.*?})?(?:(;|$))/i\nconst isParam = (str: string) => /^[a-z0-9]+=[^=]+/i.test(str)\nconst isPayloadLike = (str: string) => /^[A-Za-z0-9\\-_]+(?:={0,2})$/.test(str)\nconst exclusiveParams = ['view', 'since', 'rev', 'inspect', 'comment']\n\ntype Truthy<T> = T extends false\n ? never\n : T extends ''\n ? never\n : T extends 0\n ? never\n : T extends 0n\n ? never\n : T extends null | undefined\n ? NonNullable<T>\n : T\nconst isTruthy = Boolean as (t: unknown) => boolean as <T>(t: T) => t is Truthy<T>\n\nfunction parseChunks(chunks: string[], initial: RouterPaneSibling): RouterPaneSibling {\n const sibling: RouterPaneSibling = {...initial, params: EMPTY_PARAMS, payload: undefined}\n return chunks.reduce((pane, chunk) => {\n if (isParam(chunk)) {\n const key = chunk.slice(0, chunk.indexOf('='))\n const value = chunk.slice(key.length + 1)\n pane.params = {...pane.params, [decodeURIComponent(key)]: decodeURIComponent(value)}\n } else if (isPayloadLike(chunk)) {\n pane.payload = tryParseBase64Payload(chunk)\n } else if (chunk) {\n console.warn('Unknown pane segment: %s - skipping', chunk)\n }\n\n return pane\n }, sibling)\n}\n\nfunction encodeChunks(pane: RouterPaneSibling, index: number, group: RouterPaneGroup): string {\n const {payload, params = {}, id} = pane\n const [firstSibling] = group\n const paneIsFirstSibling = pane === firstSibling\n const sameAsFirst = index !== 0 && id === firstSibling.id\n const encodedPayload =\n typeof payload === 'undefined' ? undefined : encodeJsonParams(payload as any)\n\n const encodedParams = Object.entries(params)\n .filter((entry): entry is [string, string] => {\n const [key, value] = entry\n if (!value) return false\n if (paneIsFirstSibling) return true\n\n // omit the value if it's the same as the value from the first sibling\n const valueFromFirstSibling = firstSibling.params?.[key]\n if (value === valueFromFirstSibling && !exclusiveParams.includes(key)) return false\n return true\n })\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\n return (\n [sameAsFirst ? '' : id]\n .concat([encodedParams.length > 0 && encodedParams, encodedPayload].filter(isTruthy).flat())\n .join(',') || ','\n )\n}\n\nfunction parsePanesSegment(str: string): RouterPanes {\n if (str.indexOf(',{') !== -1) {\n return parseOldPanesSegment(str)\n }\n\n return str\n .split(';')\n .map((group) => {\n const [firstSibling, ...restOfSiblings] = group.split('|').map((segment) => {\n const [id, ...chunks] = segment.split(',')\n return parseChunks(chunks, {id})\n })\n\n return [\n firstSibling,\n ...restOfSiblings.map((sibling) => ({\n ...firstSibling,\n ...sibling,\n id: sibling.id || firstSibling.id,\n params: {...omit(firstSibling.params, exclusiveParams), ...sibling.params},\n payload: sibling.payload || firstSibling.payload,\n })),\n ]\n })\n .filter((group) => group.length > 0)\n}\n\nfunction parseOldPanesSegment(str: string): RouterPanes {\n const chunks: RouterPaneGroup = []\n\n let buffer = str\n while (buffer.length) {\n const [match, id, payloadChunk] = buffer.match(panePattern) || []\n if (!match) {\n buffer = buffer.slice(1)\n continue\n }\n\n const payload = payloadChunk && tryParsePayload(payloadChunk)\n chunks.push({id, payload})\n\n buffer = buffer.slice(match.length)\n }\n\n return [chunks]\n}\n\nfunction tryParsePayload(json: string) {\n try {\n return JSON.parse(json)\n } catch (err) {\n console.warn(`Failed to parse parameters: ${err.message}`)\n return undefined\n }\n}\n\nfunction tryParseBase64Payload(data: string): unknown {\n try {\n return data ? decodeJsonParams(data) : undefined\n } catch (err) {\n console.warn(`Failed to parse parameters: ${err.message}`)\n return undefined\n }\n}\n","import {MasterDetailIcon} from '@sanity/icons/MasterDetail'\nimport {lazy} from 'react'\nimport {definePlugin, type DocumentActionComponent} from 'sanity'\n\nimport {useDeleteAction} from './documentActions/DeleteAction'\nimport {useDiscardChangesAction} from './documentActions/DiscardChangesAction'\nimport {useDuplicateAction} from './documentActions/DuplicateAction'\nimport {useHistoryRestoreAction} from './documentActions/HistoryRestoreAction'\nimport {usePublishAction} from './documentActions/PublishAction'\nimport {useUnpublishAction} from './documentActions/UnpublishAction'\nimport {useLiveEditBadge} from './documentBadges/LiveEditBadge'\nimport {getIntentState} from './getIntentState'\nimport {structureUsEnglishLocaleBundle} from './i18n'\nimport {changesInspector} from './panes/document/inspectors/changes'\nimport {incomingReferencesInspector} from './panes/document/inspectors/incomingReferences'\nimport {validationInspector} from './panes/document/inspectors/validation'\nimport {router} from './router'\nimport {type StructureToolOptions} from './types'\n\nconst documentActions = [\n usePublishAction,\n useUnpublishAction,\n useDiscardChangesAction,\n useDuplicateAction,\n useDeleteAction,\n useHistoryRestoreAction,\n]\n\nconst destructiveActionNames: DocumentActionComponent['action'][] = ['delete', 'discardChanges']\n\nconst documentBadges = [useLiveEditBadge]\n\nconst inspectors = [validationInspector, changesInspector, incomingReferencesInspector]\n\n/**\n * The structureTool is a studio plugin which adds the “structure tool” – a tool within\n * Sanity Studio in which content editors can drill down to specific documents to edit them.\n * You can configure your Studio's structure tool(s).\n *\n * @public\n * @param options - Options for the structure tool. See {@link StructureToolOptions}\n * @example Minimal example\n * ```ts\n * // sanity.config.ts\n * import { defineConfig } from 'sanity'\n * import { structureTool } from 'sanity/structure'\n *\n * export default defineConfig((\n * // ...\n * plugins: [\n * structureTool() // use defaults\n * ]\n * })\n * ```\n *\n * @example To customise your structure tool\n * ```ts\n * // sanity.config.ts\n * import { defineConfig } from 'sanity'\n * import { structureTool } from 'sanity/structure'\n * import { FaCar } from 'react-icons'\n\n * export default defineConfig((\n *\t // ...\n * plugins: [\n * structureTool({\n * name: 'cars',\n * title: 'Cars',\n * icon: FaCar,\n * structure: (S) => S.documentTypeList('car'),\n * defaultDocumentNode: (S) =>\n * S.document().views([\n * S.view.form(),\n * S.view.component(Preview).title('Preview')\n * ])\n * })\n * ]\n * })\n * ```\n * */\nexport const structureTool = definePlugin<StructureToolOptions | void>((options) => {\n const icon = options?.icon || MasterDetailIcon\n\n return {\n name: 'sanity/structure',\n document: {\n actions: (prevActions, context) => {\n const combinedActions = Array.from(new Set([...prevActions, ...documentActions]))\n\n // Separate destructive actions to place at end\n const destructiveActions = combinedActions.filter((action) =>\n destructiveActionNames.includes(action.action),\n )\n const otherActions = combinedActions.filter(\n (action) => !destructiveActionNames.includes(action.action),\n )\n\n if (context.versionType === 'published') {\n // Place the unpublish action as the primary action if the document is the published version.\n const sortedActions = [...otherActions].sort((a, b) => {\n if (a.action === 'unpublish') return -1\n if (b.action === 'unpublish') return 1\n return 0\n })\n return [...sortedActions, ...destructiveActions]\n }\n\n // NOTE: since it's possible to have several structure tools in one Studio,\n // we need to check whether the document actions already exist in the Studio config\n return [...otherActions, ...destructiveActions]\n },\n badges: (prevBadges) => {\n // NOTE: since it's possible to have several structure tools in one Studio,\n // we need to check whether the document badges already exist in the Studio config\n return Array.from(new Set([...prevBadges, ...documentBadges]))\n },\n inspectors: (prevInspectors) => {\n // NOTE: since it's possible to have several structure tools in one Studio,\n // we need to check whether the inspectors already exist in the Studio config\n return Array.from(new Set([...prevInspectors, ...inspectors]))\n },\n },\n\n tools: [\n {\n name: options?.name || 'structure',\n title: options?.title || 'Structure',\n icon,\n component: lazy(() => import('./components/structureTool')),\n canHandleIntent: (intent, params) => {\n if (intent === 'create') return canHandleCreateIntent(params)\n if (intent === 'edit') return canHandleEditIntent(params)\n return false\n },\n getIntentState,\n // Controlled by sanity/src/structure/components/structureTool/StructureTitle.tsx\n controlsDocumentTitle: true,\n options,\n router,\n __internalApplicationType: 'sanity/structure',\n },\n ],\n\n i18n: {\n bundles: [structureUsEnglishLocaleBundle],\n },\n }\n})\n\nfunction canHandleCreateIntent(params: Record<string, unknown>) {\n // We can't handle create intents without a `type` parameter\n if (!('type' in params)) {\n return false\n }\n\n const handle: Record<string, boolean> = {}\n // We can handle any create intent as long as it has a `type` parameter\n // but we are best at `structure` mode\n if ('mode' in params) handle.mode = params.mode === 'structure'\n // we also know how to deal with templates, where other tools might not\n if ('template' in params) handle.template = true\n\n return Object.keys(handle).length ? handle : true\n}\n\nfunction canHandleEditIntent(params: Record<string, unknown>) {\n // We can't handle edit intents without an `id` parameter\n if (!('id' in params)) {\n return false\n }\n\n // We can handle any edit intent with a document ID, but we're best at `structure` mode\n // This ensures that other tools that can handle modes such as `presentation` or `batch`\n // can take precedence over the structure tool\n return 'mode' in params ? {mode: params.mode === 'structure'} : true\n}\n"],"mappings":"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"}