sanity 6.8.0-next.2 → 6.8.0-next.21

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 (141) hide show
  1. package/lib/{AddonDatasetProvider-DKjnqxwO.js → AddonDatasetProvider-Cp0gK33v.js} +2 -2
  2. package/lib/{AddonDatasetProvider-DKjnqxwO.js.map → AddonDatasetProvider-Cp0gK33v.js.map} +1 -1
  3. package/lib/{CalendarFilter-B5Bb9eze.js → CalendarFilter-Cgz5picy.js} +3 -3
  4. package/lib/{CalendarFilter-B5Bb9eze.js.map → CalendarFilter-Cgz5picy.js.map} +1 -1
  5. package/lib/{CommandList-Q4ua5avE.js → CommandList-BeDeX_Tr.js} +23 -6
  6. package/lib/CommandList-BeDeX_Tr.js.map +1 -0
  7. package/lib/{CommentsDocumentLayout-Brt2OR56.js → CommentsDocumentLayout-BJMRXrxl.js} +2 -2
  8. package/lib/{CommentsDocumentLayout-Brt2OR56.js.map → CommentsDocumentLayout-BJMRXrxl.js.map} +1 -1
  9. package/lib/{CommentsField-Cmmta6uT.js → CommentsField-DV6bhirZ.js} +3 -3
  10. package/lib/{CommentsField-Cmmta6uT.js.map → CommentsField-DV6bhirZ.js.map} +1 -1
  11. package/lib/{CommentsInput-C7Kq5XMu.js → CommentsInput-DQ4WCdZJ.js} +5 -5
  12. package/lib/{CommentsInput-C7Kq5XMu.js.map → CommentsInput-DQ4WCdZJ.js.map} +1 -1
  13. package/lib/{CommentsInspector-H5CpN_XH.js → CommentsInspector-PkVZw8uv.js} +5 -5
  14. package/lib/{CommentsInspector-H5CpN_XH.js.map → CommentsInspector-PkVZw8uv.js.map} +1 -1
  15. package/lib/{CommentsListItem-x7FKz_CM.js → CommentsListItem-BjWNEXPU.js} +3 -3
  16. package/lib/{CommentsListItem-x7FKz_CM.js.map → CommentsListItem-BjWNEXPU.js.map} +1 -1
  17. package/lib/{CommentsSelectedPathProvider-Bt8q7wL8.js → CommentsSelectedPathProvider-x5f1q0eW.js} +3 -3
  18. package/lib/{CommentsSelectedPathProvider-Bt8q7wL8.js.map → CommentsSelectedPathProvider-x5f1q0eW.js.map} +1 -1
  19. package/lib/{CommentsStudioLayout-BTJ8Jz1o.js → CommentsStudioLayout-CxZq2lGu.js} +4 -4
  20. package/lib/{CommentsStudioLayout-BTJ8Jz1o.js.map → CommentsStudioLayout-CxZq2lGu.js.map} +1 -1
  21. package/lib/{PaneContainer-D8iNUpZk.js → PaneContainer-B_cWaSSe.js} +8 -8
  22. package/lib/{PaneContainer-D8iNUpZk.js.map → PaneContainer-B_cWaSSe.js.map} +1 -1
  23. package/lib/{PresentationToolGrantsCheck-CxqDuu8I.js → PresentationToolGrantsCheck-CITNu5DG.js} +14 -6
  24. package/lib/PresentationToolGrantsCheck-CITNu5DG.js.map +1 -0
  25. package/lib/{ReleasesMetadataProvider-CZ8jrkBT.js → ReleasesMetadataProvider-CpYsTC5J.js} +2 -2
  26. package/lib/{ReleasesMetadataProvider-CZ8jrkBT.js.map → ReleasesMetadataProvider-CpYsTC5J.js.map} +1 -1
  27. package/lib/{ReleasesNav-BmGRLcrk.js → ReleasesNav-BuqDytPb.js} +59 -19
  28. package/lib/ReleasesNav-BuqDytPb.js.map +1 -0
  29. package/lib/{ReleasesStudioLayout-6V5oDb3h.js → ReleasesStudioLayout-mJZnbUum.js} +8 -8
  30. package/lib/{ReleasesStudioLayout-6V5oDb3h.js.map → ReleasesStudioLayout-mJZnbUum.js.map} +1 -1
  31. package/lib/{ReleasesTool-CMABMGcE.js → ReleasesTool-BFOV2VEc.js} +14 -14
  32. package/lib/{ReleasesTool-CMABMGcE.js.map → ReleasesTool-BFOV2VEc.js.map} +1 -1
  33. package/lib/{SchedulePublishingStudioLayout-BJDA4FBy.js → SchedulePublishingStudioLayout-D2ptE43I.js} +3 -3
  34. package/lib/{SchedulePublishingStudioLayout-BJDA4FBy.js.map → SchedulePublishingStudioLayout-D2ptE43I.js.map} +1 -1
  35. package/lib/{SchedulePublishingUpsellProvider-DfmpnFZz.js → SchedulePublishingUpsellProvider-DvCfqtdZ.js} +2 -2
  36. package/lib/{SchedulePublishingUpsellProvider-DfmpnFZz.js.map → SchedulePublishingUpsellProvider-DvCfqtdZ.js.map} +1 -1
  37. package/lib/{ScheduledPublishingEnabledProvider-C2jEx3t4.js → ScheduledPublishingEnabledProvider-B5yA7hHi.js} +3 -3
  38. package/lib/{ScheduledPublishingEnabledProvider-C2jEx3t4.js.map → ScheduledPublishingEnabledProvider-B5yA7hHi.js.map} +1 -1
  39. package/lib/{SearchProvider-Dk7IfeRS.js → SearchProvider-Cpl3WUyR.js} +25 -25
  40. package/lib/SearchProvider-Cpl3WUyR.js.map +1 -0
  41. package/lib/{SingleDocReleaseLayout-DW02L2zA.js → SingleDocReleaseLayout-CfPCP1Ur.js} +2 -2
  42. package/lib/{SingleDocReleaseLayout-DW02L2zA.js.map → SingleDocReleaseLayout-CfPCP1Ur.js.map} +1 -1
  43. package/lib/{SingleDocReleaseUpsellProvider-9OXN223n.js → SingleDocReleaseUpsellProvider-4ib7kMdI.js} +4 -4
  44. package/lib/{SingleDocReleaseUpsellProvider-9OXN223n.js.map → SingleDocReleaseUpsellProvider-4ib7kMdI.js.map} +1 -1
  45. package/lib/{TasksStudioActiveToolLayout-grF1qQvq.js → TasksStudioActiveToolLayout-lrH8y1Kh.js} +11 -11
  46. package/lib/{TasksStudioActiveToolLayout-grF1qQvq.js.map → TasksStudioActiveToolLayout-lrH8y1Kh.js.map} +1 -1
  47. package/lib/{TasksStudioLayout-Dq72bdM2.js → TasksStudioLayout-CITzoP_1.js} +5 -5
  48. package/lib/{TasksStudioLayout-Dq72bdM2.js.map → TasksStudioLayout-CITzoP_1.js.map} +1 -1
  49. package/lib/{Tool-DNTYDreC.js → Tool-DxqXi1AF.js} +12 -12
  50. package/lib/{Tool-DNTYDreC.js.map → Tool-DxqXi1AF.js.map} +1 -1
  51. package/lib/{UnpublishVersionDialog-B0kX1dt6.js → UnpublishVersionDialog-VZflky9U.js} +4 -4
  52. package/lib/{UnpublishVersionDialog-B0kX1dt6.js.map → UnpublishVersionDialog-VZflky9U.js.map} +1 -1
  53. package/lib/{UpsellDialog-B3IbZqLA.js → UpsellDialog-BmQSjdJg.js} +2 -2
  54. package/lib/{UpsellDialog-B3IbZqLA.js.map → UpsellDialog-BmQSjdJg.js.map} +1 -1
  55. package/lib/{VariantsStudioNavbar-N-cvStJh.js → VariantsStudioNavbar-HsA97lVy.js} +7 -27
  56. package/lib/VariantsStudioNavbar-HsA97lVy.js.map +1 -0
  57. package/lib/{VariantsTool-Bj3RjgBN.js → VariantsTool-rOcVMkln.js} +7 -7
  58. package/lib/{VariantsTool-Bj3RjgBN.js.map → VariantsTool-rOcVMkln.js.map} +1 -1
  59. package/lib/{WorkspaceLoader-BZD0-fj6.js → WorkspaceLoader-kepBjrsn.js} +25 -25
  60. package/lib/{WorkspaceLoader-BZD0-fj6.js.map → WorkspaceLoader-kepBjrsn.js.map} +1 -1
  61. package/lib/_createContext.js +1 -1
  62. package/lib/_singletons.d.ts +1 -1
  63. package/lib/{buildTextSelectionFromFragment-BXiSMql4.js → buildTextSelectionFromFragment-Dj_WBTDa.js} +3 -3
  64. package/lib/{buildTextSelectionFromFragment-BXiSMql4.js.map → buildTextSelectionFromFragment-Dj_WBTDa.js.map} +1 -1
  65. package/lib/{datastores-CFWEadl-.js → datastores-CrRYBoDP.js} +12 -2
  66. package/lib/datastores-CrRYBoDP.js.map +1 -0
  67. package/lib/desk.d.ts +1 -1
  68. package/lib/desk.js +2 -2
  69. package/lib/{index-Dhee2Ms1.d.ts → index-Bic9X2KM.d.ts} +43 -11
  70. package/lib/index.d.ts +2 -2
  71. package/lib/index.js +642 -258
  72. package/lib/index.js.map +1 -1
  73. package/lib/{inputResolver-BHxsuFDP.js → inputResolver-Czq6o5Gh.js} +4 -4
  74. package/lib/{inputResolver-BHxsuFDP.js.map → inputResolver-Czq6o5Gh.js.map} +1 -1
  75. package/lib/{list-CwENPuWS.js → list-BgF8Q_09.js} +2 -2
  76. package/lib/{list-CwENPuWS.js.map → list-BgF8Q_09.js.map} +1 -1
  77. package/lib/{navigation.telemetry-C6drHR5a.js → navigation.telemetry-DSG23KnM.js} +7 -7
  78. package/lib/{navigation.telemetry-C6drHR5a.js.map → navigation.telemetry-DSG23KnM.js.map} +1 -1
  79. package/lib/pane-BXoiwAkI.js +2 -0
  80. package/lib/pane-W85qO-M2.js +2 -0
  81. package/lib/{plugin-Cr5EXfrh.js → plugin-CLeQ5x8I.js} +4 -4
  82. package/lib/{plugin-Cr5EXfrh.js.map → plugin-CLeQ5x8I.js.map} +1 -1
  83. package/lib/{plugin-C1y-_vWr.js → plugin-CgIJubgG.js} +3 -3
  84. package/lib/{plugin-C1y-_vWr.js.map → plugin-CgIJubgG.js.map} +1 -1
  85. package/lib/{plugin-BHRmn24Q.js → plugin-CqWxiAAn.js} +6 -6
  86. package/lib/{plugin-BHRmn24Q.js.map → plugin-CqWxiAAn.js.map} +1 -1
  87. package/lib/{plugin-DkiEMpfN.js → plugin-DkdjF8sO.js} +5 -5
  88. package/lib/{plugin-DkiEMpfN.js.map → plugin-DkdjF8sO.js.map} +1 -1
  89. package/lib/presentation.js +1 -1
  90. package/lib/{scheduleItem-u5-b4stD.js → scheduleItem-CqReiIMI.js} +8 -8
  91. package/lib/{scheduleItem-u5-b4stD.js.map → scheduleItem-CqReiIMI.js.map} +1 -1
  92. package/lib/{schedules-D0WwNN6x.js → schedules-DoZXofxj.js} +3 -3
  93. package/lib/{schedules-D0WwNN6x.js.map → schedules-DoZXofxj.js.map} +1 -1
  94. package/lib/structure.js +2 -2
  95. package/lib/{structureTool-BCCGiqpF.js → structureTool-By2eJI8F.js} +60 -49
  96. package/lib/structureTool-By2eJI8F.js.map +1 -0
  97. package/lib/{structureTool-B5ch7u4I.js → structureTool-UGWPEr2I.js} +6 -6
  98. package/lib/{structureTool-B5ch7u4I.js.map → structureTool-UGWPEr2I.js.map} +1 -1
  99. package/lib/{studioClient-DvoDxN44.js → studioClient-DqAy4dnu.js} +2 -2
  100. package/lib/{studioClient-DvoDxN44.js.map → studioClient-DqAy4dnu.js.map} +1 -1
  101. package/lib/{useBundleDocuments-CWvP-dZI.js → useBundleDocuments-Dyop3VGZ.js} +15 -13
  102. package/lib/useBundleDocuments-Dyop3VGZ.js.map +1 -0
  103. package/lib/{useComments-KoRXRvW7.js → useComments-CzNBSPgQ.js} +3 -3
  104. package/lib/{useComments-KoRXRvW7.js.map → useComments-CzNBSPgQ.js.map} +1 -1
  105. package/lib/{useCommentsTelemetry-LlKtxi5d.js → useCommentsTelemetry-CkplhYJa.js} +3 -3
  106. package/lib/{useCommentsTelemetry-LlKtxi5d.js.map → useCommentsTelemetry-CkplhYJa.js.map} +1 -1
  107. package/lib/{useDocumentPreviewValues-DcVumcdT.js → useDocumentPreviewValues-BPzq1mWh.js} +3 -3
  108. package/lib/{useDocumentPreviewValues-DcVumcdT.js.map → useDocumentPreviewValues-BPzq1mWh.js.map} +1 -1
  109. package/lib/{useFeatureEnabled-D7BsN6xF.js → useFeatureEnabled-B_ywe2up.js} +2 -2
  110. package/lib/{useFeatureEnabled-D7BsN6xF.js.map → useFeatureEnabled-B_ywe2up.js.map} +1 -1
  111. package/lib/{useFieldActions-NrjLdjo8.js → useFieldActions-DbRTTr6-.js} +2 -2
  112. package/lib/{useFieldActions-NrjLdjo8.js.map → useFieldActions-DbRTTr6-.js.map} +1 -1
  113. package/lib/{useReleasesToolAvailable-Cki52QI6.js → useReleasesToolAvailable-CUvya3HF.js} +3 -3
  114. package/lib/{useReleasesToolAvailable-Cki52QI6.js.map → useReleasesToolAvailable-CUvya3HF.js.map} +1 -1
  115. package/lib/{useScheduledDraftMenuActions-DIa5I8rU.js → useScheduledDraftMenuActions-BBEMJkNE.js} +5 -5
  116. package/lib/{useScheduledDraftMenuActions-DIa5I8rU.js.map → useScheduledDraftMenuActions-BBEMJkNE.js.map} +1 -1
  117. package/lib/{useSetVariant-MvLHJC9A.js → useSetVariant-Cz8brFbQ.js} +3 -3
  118. package/lib/{useSetVariant-MvLHJC9A.js.map → useSetVariant-Cz8brFbQ.js.map} +1 -1
  119. package/lib/{useStudioUrl-DN_xMGIS.js → useStudioUrl-DFAbTA0R.js} +5 -5
  120. package/lib/{useStudioUrl-DN_xMGIS.js.map → useStudioUrl-DFAbTA0R.js.map} +1 -1
  121. package/lib/{useTimeZone-B5fBFjsR.js → useTimeZone-CNjAZCdC.js} +2 -2
  122. package/lib/{useTimeZone-B5fBFjsR.js.map → useTimeZone-CNjAZCdC.js.map} +1 -1
  123. package/lib/{userComponent-BQj9BWzn.js → userComponent-MPULaxdQ.js} +2 -2
  124. package/lib/{userComponent-BQj9BWzn.js.map → userComponent-MPULaxdQ.js.map} +1 -1
  125. package/lib/{validationUtils-RTzFL-p1.js → validationUtils-C9y0bJZd.js} +4 -4
  126. package/lib/{validationUtils-RTzFL-p1.js.map → validationUtils-C9y0bJZd.js.map} +1 -1
  127. package/lib/{version-CY300aPw.js → version-BZCsk4ue.js} +2 -2
  128. package/lib/{version-CY300aPw.js.map → version-BZCsk4ue.js.map} +1 -1
  129. package/package.json +12 -11
  130. package/lib/CommandList-Q4ua5avE.js.map +0 -1
  131. package/lib/Delay-DjgiAi06.js +0 -21
  132. package/lib/Delay-DjgiAi06.js.map +0 -1
  133. package/lib/PresentationToolGrantsCheck-CxqDuu8I.js.map +0 -1
  134. package/lib/ReleasesNav-BmGRLcrk.js.map +0 -1
  135. package/lib/SearchProvider-Dk7IfeRS.js.map +0 -1
  136. package/lib/VariantsStudioNavbar-N-cvStJh.js.map +0 -1
  137. package/lib/datastores-CFWEadl-.js.map +0 -1
  138. package/lib/pane-CEegQ2Kh.js +0 -2
  139. package/lib/pane-DHrjuFiG.js +0 -2
  140. package/lib/structureTool-BCCGiqpF.js.map +0 -1
  141. package/lib/useBundleDocuments-CWvP-dZI.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { t as useTimeZone } from "./useTimeZone-B5fBFjsR.js";
2
- import { o as sortByExecuteDate, s as getLastExecuteDate } from "./validationUtils-RTzFL-p1.js";
1
+ import { t as useTimeZone } from "./useTimeZone-CNjAZCdC.js";
2
+ import { o as sortByExecuteDate, s as getLastExecuteDate } from "./validationUtils-C9y0bJZd.js";
3
3
  import { useContext, useState } from "react";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -48,4 +48,4 @@ function useSchedules() {
48
48
  }
49
49
  export { SchedulesProvider as n, useSchedules as r, SchedulesContext as t };
50
50
 
51
- //# sourceMappingURL=schedules-D0WwNN6x.js.map
51
+ //# sourceMappingURL=schedules-DoZXofxj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules-D0WwNN6x.js","names":["isSameDay","ReactNode","useCallback","useContext","useMemo","useState","SchedulesContext","useTimeZone","Schedule","ScheduleSort","ScheduleState","getLastExecuteDate","sortByExecuteDate","EMPTY_SCHEDULE","SchedulesProvider","t0","$","_c","children","value","sortBy","setSortBy","t1","Symbol","for","type","utcToCurrentZoneDate","t2","wallDate","schedule","executeDate","scheduleDate","Date","zonedScheduleDate","filterByDate","filterByState","_temp","t3","scheduleState","schedules","selectedDate","filter","scheduleState_0","sort","a","b","reverseOrder","activeSchedules","t4","wallDate_0","schedulesByDate","t5","t6","context","t7","schedule_0","state","useSchedules","undefined","Error"],"sources":["../src/core/scheduled-publishing/tool/contexts/schedules.tsx"],"sourcesContent":["import {isSameDay} from 'date-fns/isSameDay'\nimport {type ReactNode, useCallback, useContext, useMemo, useState} from 'react'\nimport {SchedulesContext} from 'sanity/_singletons'\n\nimport {useTimeZone} from '../../../hooks/useTimeZone'\nimport {type Schedule, type ScheduleSort, type ScheduleState} from '../../types'\nimport {getLastExecuteDate} from '../../utils/scheduleUtils'\nimport {sortByExecuteDate} from '../../utils/sortByExecuteDate'\n\n// re-exported here so the public entry can surface the context without\n// depending on sanity/_singletons directly (boundaries policy)\nexport {SchedulesContext}\n\nconst EMPTY_SCHEDULE: Schedule[] = []\n\nfunction SchedulesProvider({\n children,\n value,\n}: {\n children: ReactNode\n value: {\n schedules: Schedule[]\n scheduleState: ScheduleState\n selectedDate?: Date\n sortBy?: ScheduleSort\n }\n}) {\n const [sortBy, setSortBy] = useState<ScheduleSort>(value.sortBy || 'executeAt')\n const {utcToCurrentZoneDate} = useTimeZone({type: 'scheduledPublishing'})\n\n const filterByDate = useCallback(\n (wallDate: Date) => {\n return function (schedule: Schedule) {\n const executeDate = getLastExecuteDate(schedule)\n if (!executeDate) {\n return false\n }\n const scheduleDate = new Date(executeDate) // UTC\n const zonedScheduleDate = utcToCurrentZoneDate(scheduleDate)\n return isSameDay(zonedScheduleDate, wallDate)\n }\n },\n [utcToCurrentZoneDate],\n )\n\n const filterByState = useCallback((scheduleState: ScheduleState) => {\n return function (schedule: Schedule) {\n return schedule.state === scheduleState\n }\n }, [])\n\n /**\n * Return all schedules if no date is currently selected, otherwise return all schedules for the\n * selected calendar date.\n *\n * By default, all schedules are displayed in reverse chronlogical order\n * except when filtering by upcoming schedules, or a date has been selected in the calendar.\n *\n * If a schedule as an `executedAt` date, sort by that instead.\n * This is because schedules may have differing values for `executeAt` and `executedAt` if\n * they've been force-published ahead of time, and we only care about the final execution date.\n *\n * Schedules with a null value for `executeAt` (possible if created externally via the Scheduling API)\n * should always be placed after all other results.\n */\n const activeSchedules = useMemo(() => {\n return (\n value.schedules\n .filter((scheduleState) => {\n if (value.selectedDate) {\n return filterByDate(value.selectedDate)(scheduleState)\n }\n return filterByState(value.scheduleState)(scheduleState)\n })\n .sort((a, b) => {\n if (sortBy === 'createdAt') {\n return a[sortBy] < b[sortBy] ? 1 : -1\n }\n if (sortBy === 'executeAt') {\n const reverseOrder = !(value.scheduleState === 'scheduled' || value.selectedDate)\n return sortByExecuteDate({reverseOrder})(a, b)\n }\n return 1\n }) || []\n )\n }, [\n filterByState,\n value.schedules,\n value.scheduleState,\n value.selectedDate,\n sortBy,\n filterByDate,\n ])\n\n /**\n * Return all matching schedules with specified date (in clock time).\n *\n * Scheduled are sorted chronologically by executed + execute date.\n *\n * Schedules with a null value for `executeAt` (possible if created externally via the Scheduling API)\n * should always be placed after all other results.\n */\n const schedulesByDate = useCallback(\n (wallDate: Date) => {\n return value.schedules\n .filter(filterByDate(wallDate)) //\n .sort(sortByExecuteDate())\n },\n [value.schedules, filterByDate],\n )\n\n const context = useMemo(\n () => ({\n activeSchedules,\n schedules: value.schedules || EMPTY_SCHEDULE,\n schedulesByDate,\n scheduleState: value.scheduleState,\n selectedDate: value.selectedDate,\n setSortBy,\n sortBy,\n }),\n [\n activeSchedules,\n schedulesByDate,\n sortBy,\n value.scheduleState,\n value.schedules,\n value.selectedDate,\n ],\n )\n\n return <SchedulesContext.Provider value={context}>{children}</SchedulesContext.Provider>\n}\n\nfunction useSchedules() {\n const context = useContext(SchedulesContext)\n if (context === undefined) {\n throw new Error('useSchedules must be used within a SchedulesProvider')\n }\n return context\n}\n\nexport {SchedulesProvider, useSchedules}\n"],"mappings":"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"}
1
+ {"version":3,"file":"schedules-DoZXofxj.js","names":["isSameDay","ReactNode","useCallback","useContext","useMemo","useState","SchedulesContext","useTimeZone","Schedule","ScheduleSort","ScheduleState","getLastExecuteDate","sortByExecuteDate","EMPTY_SCHEDULE","SchedulesProvider","t0","$","_c","children","value","sortBy","setSortBy","t1","Symbol","for","type","utcToCurrentZoneDate","t2","wallDate","schedule","executeDate","scheduleDate","Date","zonedScheduleDate","filterByDate","filterByState","_temp","t3","scheduleState","schedules","selectedDate","filter","scheduleState_0","sort","a","b","reverseOrder","activeSchedules","t4","wallDate_0","schedulesByDate","t5","t6","context","t7","schedule_0","state","useSchedules","undefined","Error"],"sources":["../src/core/scheduled-publishing/tool/contexts/schedules.tsx"],"sourcesContent":["import {isSameDay} from 'date-fns/isSameDay'\nimport {type ReactNode, useCallback, useContext, useMemo, useState} from 'react'\nimport {SchedulesContext} from 'sanity/_singletons'\n\nimport {useTimeZone} from '../../../hooks/useTimeZone'\nimport {type Schedule, type ScheduleSort, type ScheduleState} from '../../types'\nimport {getLastExecuteDate} from '../../utils/scheduleUtils'\nimport {sortByExecuteDate} from '../../utils/sortByExecuteDate'\n\n// re-exported here so the public entry can surface the context without\n// depending on sanity/_singletons directly (boundaries policy)\nexport {SchedulesContext}\n\nconst EMPTY_SCHEDULE: Schedule[] = []\n\nfunction SchedulesProvider({\n children,\n value,\n}: {\n children: ReactNode\n value: {\n schedules: Schedule[]\n scheduleState: ScheduleState\n selectedDate?: Date\n sortBy?: ScheduleSort\n }\n}) {\n const [sortBy, setSortBy] = useState<ScheduleSort>(value.sortBy || 'executeAt')\n const {utcToCurrentZoneDate} = useTimeZone({type: 'scheduledPublishing'})\n\n const filterByDate = useCallback(\n (wallDate: Date) => {\n return function (schedule: Schedule) {\n const executeDate = getLastExecuteDate(schedule)\n if (!executeDate) {\n return false\n }\n const scheduleDate = new Date(executeDate) // UTC\n const zonedScheduleDate = utcToCurrentZoneDate(scheduleDate)\n return isSameDay(zonedScheduleDate, wallDate)\n }\n },\n [utcToCurrentZoneDate],\n )\n\n const filterByState = useCallback((scheduleState: ScheduleState) => {\n return function (schedule: Schedule) {\n return schedule.state === scheduleState\n }\n }, [])\n\n /**\n * Return all schedules if no date is currently selected, otherwise return all schedules for the\n * selected calendar date.\n *\n * By default, all schedules are displayed in reverse chronlogical order\n * except when filtering by upcoming schedules, or a date has been selected in the calendar.\n *\n * If a schedule as an `executedAt` date, sort by that instead.\n * This is because schedules may have differing values for `executeAt` and `executedAt` if\n * they've been force-published ahead of time, and we only care about the final execution date.\n *\n * Schedules with a null value for `executeAt` (possible if created externally via the Scheduling API)\n * should always be placed after all other results.\n */\n const activeSchedules = useMemo(() => {\n return (\n value.schedules\n .filter((scheduleState) => {\n if (value.selectedDate) {\n return filterByDate(value.selectedDate)(scheduleState)\n }\n return filterByState(value.scheduleState)(scheduleState)\n })\n .sort((a, b) => {\n if (sortBy === 'createdAt') {\n return a[sortBy] < b[sortBy] ? 1 : -1\n }\n if (sortBy === 'executeAt') {\n const reverseOrder = !(value.scheduleState === 'scheduled' || value.selectedDate)\n return sortByExecuteDate({reverseOrder})(a, b)\n }\n return 1\n }) || []\n )\n }, [\n filterByState,\n value.schedules,\n value.scheduleState,\n value.selectedDate,\n sortBy,\n filterByDate,\n ])\n\n /**\n * Return all matching schedules with specified date (in clock time).\n *\n * Scheduled are sorted chronologically by executed + execute date.\n *\n * Schedules with a null value for `executeAt` (possible if created externally via the Scheduling API)\n * should always be placed after all other results.\n */\n const schedulesByDate = useCallback(\n (wallDate: Date) => {\n return value.schedules\n .filter(filterByDate(wallDate)) //\n .sort(sortByExecuteDate())\n },\n [value.schedules, filterByDate],\n )\n\n const context = useMemo(\n () => ({\n activeSchedules,\n schedules: value.schedules || EMPTY_SCHEDULE,\n schedulesByDate,\n scheduleState: value.scheduleState,\n selectedDate: value.selectedDate,\n setSortBy,\n sortBy,\n }),\n [\n activeSchedules,\n schedulesByDate,\n sortBy,\n value.scheduleState,\n value.schedules,\n value.selectedDate,\n ],\n )\n\n return <SchedulesContext.Provider value={context}>{children}</SchedulesContext.Provider>\n}\n\nfunction useSchedules() {\n const context = useContext(SchedulesContext)\n if (context === undefined) {\n throw new Error('useSchedules must be used within a SchedulesProvider')\n }\n return context\n}\n\nexport {SchedulesProvider, useSchedules}\n"],"mappings":"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"}
package/lib/structure.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "sanity/bundle.css";
2
2
  import { A as MenuItemBuilder, C as FormViewBuilder, D as ComponentBuilder, E as maybeSerializeView, F as SerializeError, I as structureLocaleNamespace, M as getOrderingMenuItemsForSchemaType, N as maybeSerializeMenuItem, O as MenuItemGroupBuilder, P as HELP_URL, S as form, T as GenericViewBuilder, _ as menuItemsFromInitialValueTemplateItems, a as isDocumentListItem, b as documentFromEditorWithInitialValue, c as DocumentListBuilder, d as shallowIntentChecker, f as DEFAULT_INTENT_HANDLER, g as maybeSerializeInitialValueTemplateItem, h as defaultInitialValueTemplateItems, i as DocumentListItemBuilder, j as getOrderingMenuItem, k as maybeSerializeMenuItemGroup, l as getTypeNamesFromFilter, m as InitialValueTemplateItemBuilder, n as createStructureBuilder, o as ListItemBuilder, p as defaultIntentChecker, r as DocumentTypeListBuilder, s as ListBuilder, t as StructureToolProvider, u as GenericListBuilder, v as DocumentBuilder, w as ComponentViewBuilder, x as component, y as documentFromEditor } from "./StructureToolProvider-bqgHqZki.js";
3
3
  import { a as Button$1, r as MenuButton$1, t as MenuItem$1 } from "./MenuItem-B0ry3E4J.js";
4
- import { C as PaneRouterContext, E as useDocumentPane, S as ConfirmDeleteDialogContainer, T as useDocumentTitle, _ as ActionStateDialog, a as getIncomingReferences, b as DocumentInspectorHeader, h as DocumentPaneProviderWrapper, i as INITIAL_STATE, m as usePaneOptions, n as IncomingReferencePreview, o as getCrossDatasetIncomingReferences, p as DocumentPane, r as IncomingReferencesListContainer, s as CrossDatasetIncomingReferenceDocumentPreview, t as structureTool, w as usePaneRouter, x as PaneLayout } from "./structureTool-BCCGiqpF.js";
4
+ import { C as PaneRouterContext, E as useDocumentPane, S as ConfirmDeleteDialogContainer, T as useDocumentTitle, _ as ActionStateDialog, a as getIncomingReferences, b as DocumentInspectorHeader, h as DocumentPaneProviderWrapper, i as INITIAL_STATE, m as usePaneOptions, n as IncomingReferencePreview, o as getCrossDatasetIncomingReferences, p as DocumentPane, r as IncomingReferencesListContainer, s as CrossDatasetIncomingReferenceDocumentPreview, t as structureTool, w as usePaneRouter, x as PaneLayout } from "./structureTool-By2eJI8F.js";
5
5
  import { i as Pane, t as useStructureTool } from "./useStructureTool-CX6y4EKI.js";
6
6
  import { i as PaneContent } from "./constants-CEn05wvv.js";
7
- import { n as ORDER_BY_IDS_PARAM_FIELD, t as PaneContainer } from "./PaneContainer-D8iNUpZk.js";
7
+ import { n as ORDER_BY_IDS_PARAM_FIELD, t as PaneContainer } from "./PaneContainer-B_cWaSSe.js";
8
8
  import { useCallback, useEffect, useMemo, useState } from "react";
9
9
  import { catchError, concat, filter, map, of, scan, switchMap, tap } from "rxjs";
10
10
  import { c } from "react/compiler-runtime";
@@ -3,13 +3,12 @@ import { i as Dialog$1, n as MenuGroup$1, r as Popover$1, t as ConfirmPopover }
3
3
  import { a as Button$1, c as ErrorBoundary$1, i as TooltipDelayGroupProvider$1, n as Tab$1, o as Tooltip$1, r as MenuButton$1, t as MenuItem$1 } from "./MenuItem-B0ry3E4J.js";
4
4
  import { a as usePaneLayout, i as Pane, n as PaneHeader, r as usePane, t as useStructureTool } from "./useStructureTool-CX6y4EKI.js";
5
5
  import { i as PaneContent, n as EMPTY_PARAMS$2, r as LOADING_PANE, t as DOCUMENT_PANEL_PORTAL_ELEMENT } from "./constants-CEn05wvv.js";
6
- import { t as Delay } from "./Delay-DjgiAi06.js";
7
6
  import { Fragment, Suspense, forwardRef, lazy, memo, startTransition, useContext, useDeferredValue, useEffect, useEffectEvent, useId, useLayoutEffect, useRef, useState } from "react";
8
7
  import { BehaviorSubject, EMPTY, Subject, catchError, combineLatest, concat, distinctUntilChanged, filter, firstValueFrom, from, fromEvent, map, merge, of, startWith, switchMap, tap, timeout, timer } from "rxjs";
9
8
  import { c } from "react/compiler-runtime";
10
9
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
10
  import { AvatarStack, Badge, BoundaryElementProvider, Box, Button, Card, Code, Container, Dialog, DialogProvider, Flex, Heading, Inline, Label, Layer, LayerProvider, Menu, MenuDivider, MenuItem, Popover, PortalProvider, Skeleton, Spinner, Stack, TabList, TabPanel, Text, TextInput, _raf2, focusFirstDescendant, rem, useClickOutsideEvent, useElementRect, useGlobalKeyDown, useLayer, usePortal, useToast } from "@sanity/ui";
12
- import { AvatarSkeleton, COMMENTS_INSPECTOR_NAME, CapabilityGate, ChangeConnectorRoot, ChangeFieldWrapper, ChangeIndicatorsTracker, ChangeList, ChangesError, Chip, CommandList, CommentsEnabledProvider, CommentsProvider, ContextMenuButton, CopyPasteProvider, CrossDatasetReferencePreview, DEFAULT_STUDIO_CLIENT_OPTIONS, DivergencesProvider, DocumentGroupInventory, DocumentGroupInventoryAction, DocumentPreviewPresence, DocumentStatus, DocumentStatusIndicator, EMPTY_ARRAY, EMPTY_OBJECT, Event, EventsProvider, FieldActionsProvider, FieldActionsResolver, FieldPresenceInner, FormBuilder, FormContainer, FormRow, GetFormValueProvider, GetHookCollectionState, Hotkeys as Hotkeys$1, InsufficientPermissionsMessage, LATEST, LegacyLayerProvider, LoadingBlock, NoChanges, PUBLISHED, ParseErrorsProvider, PerspectiveProvider, PresenceOverlay, PreviewCard, RELEASES_INTENT, ReferenceInputOptionsProvider, ReleaseAvatar, ReleaseAvatarIcon, ReleaseTitle, ReleasesNav, Resizable, SanityDefaultPreview, ScrollContainer, SingleDocReleaseProvider, SourceProvider, StatusButton, TIMELINE_ITEM_I18N_KEY_MAPPING, TextWithTone, TooltipOfDisabled, Translate, UserAvatar, VersionChip, VersionInlineBadge, VirtualizerScrollInstanceProvider, createPatchChannel, definePlugin, fromMutationPatches, getDocumentIdForCanvasLink, getDocumentVariantType, getDraftId, getPairTarget, getPreviewPaths, getPreviewStateObservable, getPreviewValueWithFallback, getPublishedId, getReferencePaths, getReleaseIdFromReleaseDocumentId, getReleaseTone, getTargetDocument, getTargetScopeId, getVariantTitle, getVersionFromId, getVersionId, getVersionInlineBadge, isAgentBundleName, isArray, isCardinalityOneRelease, isCreateDocumentVersionEvent, isDeleteDocumentGroupEvent, isDeleteDocumentVersionEvent, isDeprecatedSchemaType, isDev, isDocumentLimitError, isDraftId, isDraftPerspective, isEditDocumentVersionEvent, isGoingToUnpublish, isNewDocument, isNonNullable, isPausedCardinalityOneRelease, isPerspectiveWriteable, isPublishDocumentVersionEvent, isPublishedId, isPublishedPerspective, isRecord, isReleaseDocument, isReleaseScheduledOrScheduling, isSanityDefinedAction, isScheduleDocumentVersionEvent, isString, isSystemBundle, isSystemBundleName, isUnpublishDocumentEvent, isUnscheduleDocumentVersionEvent, isValidationError, isValidationWarning, isVersionId, mergeParseErrors, pathToString, prepareForPreview, selectUpstreamVersion, useActiveReleases, useActiveWorkspace, useAgentVersionDisplay, useAllVariants, useArchivedReleases, useCanvasCompanionDoc, useClient, useCommentsEnabled, useConditionalToast, useCopyPaste, useCurrentUser, useDateTimeFormat, useDocumentDivergences, useDocumentForm, useDocumentIdStack, useDocumentLimitsUpsellContext, useDocumentOperation, useDocumentOperationEvent, useDocumentPairPermissions, useDocumentPresence, useDocumentPreviewStore, useDocumentPreviewValues, useDocumentStore, useDocumentType, useDocumentVersionInfo, useDocumentVersionTypeSortedList, useDocumentVersions, useEditState, useEvents, useEventsStore, useFieldActions, useFilteredReleases, useFormatRelativeLocalePublishDate, useGetDefaultPerspective, useGetI18nText, useGlobalCopyPasteElementHandler, useI18nText, useInitialValue, useKeyValueStore, useListFormat, useManageFavorite, useMiddlewareComponents, useNavigateToCanvasDoc, useOnlyHasVersions, useParseErrors, usePausedScheduledDraft, usePerspective, useProjectId, useRelativeTime, useScheduledDraftDocument, useSchema, useSetPerspective, useSetVariant, useSingleDocRelease, useSource, useStudioUrl, useSyncState, useTargetDocumentState, useTemplatePermissions, useTemplates, useTimelineSelector, useTimelineStore, useTranslation, useUnique, useUser, useValidationStatus, useValuePreview, useVariantDocumentOperations, useVersionOperations, useWorkspace, useZIndex } from "sanity";
11
+ import { AvatarSkeleton, COMMENTS_INSPECTOR_NAME, CapabilityGate, ChangeConnectorRoot, ChangeFieldWrapper, ChangeIndicatorsTracker, ChangeList, ChangesError, Chip, CommandList, CommentsEnabledProvider, CommentsProvider, ContextMenuButton, CopyPasteProvider, CrossDatasetReferencePreview, DEFAULT_STUDIO_CLIENT_OPTIONS, Delay, DivergencesProvider, DocumentGroupInventory, DocumentGroupInventoryAction, DocumentPreviewPresence, DocumentStatus, DocumentStatusIndicator, EMPTY_ARRAY, EMPTY_OBJECT, Event, EventsProvider, FieldActionsProvider, FieldActionsResolver, FieldPresenceInner, FormBuilder, FormContainer, FormRow, GetFormValueProvider, GetHookCollectionState, Hotkeys as Hotkeys$1, InsufficientPermissionsMessage, LATEST, LegacyLayerProvider, LoadingBlock, NoChanges, PUBLISHED, ParseErrorsProvider, PerspectiveProvider, PresenceOverlay, PreviewCard, RELEASES_INTENT, ReferenceInputOptionsProvider, ReleaseAvatar, ReleaseAvatarIcon, ReleaseTitle, ReleasesNav, Resizable, SanityDefaultPreview, ScrollContainer, SingleDocReleaseProvider, SourceProvider, StatusButton, TIMELINE_ITEM_I18N_KEY_MAPPING, TextWithTone, TooltipOfDisabled, Translate, UserAvatar, VersionChip, VersionInlineBadge, VirtualizerScrollInstanceProvider, createPatchChannel, definePlugin, fromMutationPatches, getDocumentIdForCanvasLink, getDocumentVariantType, getDraftId, getPairTarget, getPreviewPaths, getPreviewStateObservable, getPreviewValueWithFallback, getPublishedId, getReferencePaths, getReleaseIdFromReleaseDocumentId, getReleaseTone, getTargetDocument, getTargetScopeId, getVariantTitle, getVersionFromId, getVersionId, getVersionInlineBadge, isAgentBundleName, isArray, isCardinalityOneRelease, isCreateDocumentVersionEvent, isDeleteDocumentGroupEvent, isDeleteDocumentVersionEvent, isDeprecatedSchemaType, isDev, isDocumentLimitError, isDraftId, isDraftPerspective, isEditDocumentVersionEvent, isGoingToUnpublish, isNewDocument, isNonNullable, isPausedCardinalityOneRelease, isPerspectiveWriteable, isPublishDocumentVersionEvent, isPublishedId, isPublishedPerspective, isRecord, isReleaseDocument, isReleaseScheduledOrScheduling, isSanityDefinedAction, isScheduleDocumentVersionEvent, isString, isSystemBundle, isSystemBundleName, isUnpublishDocumentEvent, isUnscheduleDocumentVersionEvent, isValidationError, isValidationWarning, isVersionId, mergeParseErrors, pathToString, prepareForPreview, selectUpstreamVersion, useActiveReleases, useActiveWorkspace, useAgentVersionDisplay, useAllVariants, useArchivedReleases, useCanvasCompanionDoc, useClient, useCommentsEnabled, useConditionalToast, useCopyPaste, useCurrentUser, useDateTimeFormat, useDocumentDivergences, useDocumentForm, useDocumentIdStack, useDocumentLimitsUpsellContext, useDocumentOperation, useDocumentOperationEvent, useDocumentPairPermissions, useDocumentPresence, useDocumentPreviewStore, useDocumentPreviewValues, useDocumentStore, useDocumentType, useDocumentVersionInfo, useDocumentVersionTypeSortedList, useDocumentVersions, useEditState, useEvents, useEventsStore, useFieldActions, useFilteredReleases, useFormatRelativeLocalePublishDate, useGetDefaultPerspective, useGetI18nText, useGlobalCopyPasteElementHandler, useI18nText, useInitialValue, useKeyValueStore, useListFormat, useManageFavorite, useMiddlewareComponents, useNavigateToCanvasDoc, useOnlyHasVersions, useParseErrors, usePausedScheduledDraft, usePerspective, useProjectId, useRelativeTime, useScheduledDraftDocument, useSchema, useSetPerspective, useSetVariant, useSingleDocRelease, useSource, useStudioUrl, useSyncState, useTargetDocumentState, useTemplatePermissions, useTemplates, useTimelineSelector, useTimelineStore, useTranslation, useUnique, useUser, useValidationStatus, useValuePreview, useVariantDocumentOperations, useVersionOperations, useWorkspace, useZIndex } from "sanity";
13
12
  import { CommentsEnabledContext, DocumentActionsStateContext, DocumentChangeContext, DocumentPaneContext, DocumentPaneInfoContext, EventsContext, PaneLayoutContext, PaneRouterContext, PaneRouterContext as PaneRouterContext$1, ReferenceInputOptionsContext, ResolvedPanesContext, ReviewChangesContext } from "sanity/_singletons";
14
13
  import { css, keyframes, styled } from "styled-components";
15
14
  import { ChevronDownIcon } from "@sanity/icons/ChevronDown";
@@ -2148,7 +2147,7 @@ function getWaitMessages(path) {
2148
2147
  }
2149
2148
  const Content$2 = styled(Flex).withConfig({
2150
2149
  displayName: "Content",
2151
- componentId: "sc-haa48b-0"
2150
+ componentId: "sc-c30fuz-0"
2152
2151
  })`opacity:0;transition:opacity 200ms;&[data-mounted]{opacity:1;}`, LoadingPane = memo((props) => {
2153
2152
  let $ = c(28), { delay: t0, flex, message: t1, minWidth, paneKey, path, selected, title, tone } = props, delay = t0 === void 0 ? 300 : t0, messageProp = t1 === void 0 ? getWaitMessages : t1, { t } = useTranslation(structureLocaleNamespace), t2;
2154
2153
  bb0: {
@@ -3263,7 +3262,7 @@ function findVariantCreateBaseDocument({ variant, documentVersions, fallback })
3263
3262
  };
3264
3263
  }
3265
3264
  function DocumentNotInVariantBanner() {
3266
- let $ = c(42), { t } = useTranslation(structureLocaleNamespace), { t: tCore } = useTranslation(), { value, documentId } = useDocumentPane(), { selectedPerspective, selectedVariant, selectedReleaseId } = usePerspective(), t0;
3265
+ let $ = c(43), { t } = useTranslation(structureLocaleNamespace), { t: tCore } = useTranslation(), { value, documentId } = useDocumentPane(), { selectedPerspective, selectedVariant, selectedReleaseId } = usePerspective(), t0;
3267
3266
  $[0] === documentId ? t0 = $[1] : (t0 = { documentId }, $[0] = documentId, $[1] = t0);
3268
3267
  let { versions } = useDocumentVersions(t0), { createVariantDocument } = useVariantDocumentOperations(), [status, setStatus] = useState("idle"), toast = useToast(), defaultPerspective = useGetDefaultPerspective(), t1;
3269
3268
  $[2] === selectedVariant ? t1 = $[3] : (t1 = selectedVariant ? getVariantTitle(selectedVariant) : "", $[2] = selectedVariant, $[3] = t1);
@@ -3287,24 +3286,36 @@ function DocumentNotInVariantBanner() {
3287
3286
  t2 = String(selectedPerspective);
3288
3287
  }
3289
3288
  let perspectiveTitle = t2, t3;
3290
- $[11] !== createVariantDocument || $[12] !== selectedPerspective || $[13] !== selectedVariant || $[14] !== t || $[15] !== toast || $[16] !== value || $[17] !== versions ? (t3 = async () => {
3289
+ $[11] !== createVariantDocument || $[12] !== documentId || $[13] !== selectedPerspective || $[14] !== selectedVariant || $[15] !== t || $[16] !== toast || $[17] !== value || $[18] !== versions ? (t3 = async () => {
3291
3290
  if (selectedVariant) {
3292
3291
  setStatus("in-progress");
3293
3292
  try {
3294
- let baseDocument = findVariantCreateBaseDocument({
3295
- variant: selectedVariant,
3296
- documentVersions: versions,
3297
- fallback: {
3298
- _id: value._id,
3299
- _rev: value._rev
3300
- }
3301
- });
3302
- await createVariantDocument({
3303
- baseId: baseDocument._id,
3304
- baseRevisionId: baseDocument._rev,
3305
- variant: selectedVariant,
3306
- selectedPerspective
3307
- }), setStatus("success");
3293
+ if (value._createdAt) {
3294
+ let baseDocument = findVariantCreateBaseDocument({
3295
+ variant: selectedVariant,
3296
+ documentVersions: versions,
3297
+ fallback: {
3298
+ _id: value._id,
3299
+ _rev: value._rev
3300
+ }
3301
+ });
3302
+ await createVariantDocument({
3303
+ baseId: baseDocument._id,
3304
+ ifBaseRevisionId: baseDocument._rev,
3305
+ documentGroupId: documentId,
3306
+ variant: selectedVariant,
3307
+ selectedPerspective
3308
+ });
3309
+ } else {
3310
+ let { _id, _rev, _createdAt, _updatedAt, _system, ...document } = value;
3311
+ await createVariantDocument({
3312
+ document,
3313
+ documentGroupId: documentId,
3314
+ variant: selectedVariant,
3315
+ selectedPerspective
3316
+ });
3317
+ }
3318
+ setStatus("success");
3308
3319
  } catch (t4) {
3309
3320
  let err = t4;
3310
3321
  toast.push({
@@ -3315,13 +3326,13 @@ function DocumentNotInVariantBanner() {
3315
3326
  }), setStatus("failed");
3316
3327
  }
3317
3328
  }
3318
- }, $[11] = createVariantDocument, $[12] = selectedPerspective, $[13] = selectedVariant, $[14] = t, $[15] = toast, $[16] = value, $[17] = versions, $[18] = t3) : t3 = $[18];
3329
+ }, $[11] = createVariantDocument, $[12] = documentId, $[13] = selectedPerspective, $[14] = selectedVariant, $[15] = t, $[16] = toast, $[17] = value, $[18] = versions, $[19] = t3) : t3 = $[19];
3319
3330
  let handleAddToVariant = t3, t4 = status === "success", t5;
3320
- $[19] === t ? t5 = $[20] : (t5 = t("banners.variant.waiting.title"), $[19] = t, $[20] = t5);
3331
+ $[20] === t ? t5 = $[21] : (t5 = t("banners.variant.waiting.title"), $[20] = t, $[21] = t5);
3321
3332
  let t6;
3322
- $[21] === t ? t6 = $[22] : (t6 = t("banners.variant.waiting.description"), $[21] = t, $[22] = t6);
3333
+ $[22] === t ? t6 = $[23] : (t6 = t("banners.variant.waiting.description"), $[22] = t, $[23] = t6);
3323
3334
  let t7;
3324
- $[23] !== t4 || $[24] !== t5 || $[25] !== t6 ? (t7 = {
3335
+ $[24] !== t4 || $[25] !== t5 || $[26] !== t6 ? (t7 = {
3325
3336
  status: "info",
3326
3337
  id: "add-document-to-variant",
3327
3338
  enabled: t4,
@@ -3329,19 +3340,19 @@ function DocumentNotInVariantBanner() {
3329
3340
  closable: !0,
3330
3341
  title: t5,
3331
3342
  description: t6
3332
- }, $[23] = t4, $[24] = t5, $[25] = t6, $[26] = t7) : t7 = $[26], useConditionalToast(t7);
3343
+ }, $[24] = t4, $[25] = t5, $[26] = t6, $[27] = t7) : t7 = $[27], useConditionalToast(t7);
3333
3344
  let isActionAllowed = selectedPerspective === defaultPerspective || selectedReleaseId, t8;
3334
- $[27] !== perspectiveTitle || $[28] !== variantTitle ? (t8 = {
3345
+ $[28] !== perspectiveTitle || $[29] !== variantTitle ? (t8 = {
3335
3346
  variantTitle,
3336
3347
  perspectiveTitle
3337
- }, $[27] = perspectiveTitle, $[28] = variantTitle, $[29] = t8) : t8 = $[29];
3348
+ }, $[28] = perspectiveTitle, $[29] = variantTitle, $[30] = t8) : t8 = $[30];
3338
3349
  let t9;
3339
- $[30] === Symbol.for("react.memo_cache_sentinel") ? (t9 = {
3350
+ $[31] === Symbol.for("react.memo_cache_sentinel") ? (t9 = {
3340
3351
  VariantBadge: _temp$35,
3341
3352
  PerspectiveTitle: _temp2$16
3342
- }, $[30] = t9) : t9 = $[30];
3353
+ }, $[31] = t9) : t9 = $[31];
3343
3354
  let t10;
3344
- $[31] !== t || $[32] !== t8 ? (t10 = /* @__PURE__ */ jsx(Text, {
3355
+ $[32] !== t || $[33] !== t8 ? (t10 = /* @__PURE__ */ jsx(Text, {
3345
3356
  size: 1,
3346
3357
  children: /* @__PURE__ */ jsx(Translate, {
3347
3358
  i18nKey: "banners.variant.not-in-variant",
@@ -3349,21 +3360,21 @@ function DocumentNotInVariantBanner() {
3349
3360
  values: t8,
3350
3361
  components: t9
3351
3362
  })
3352
- }), $[31] = t, $[32] = t8, $[33] = t10) : t10 = $[33];
3363
+ }), $[32] = t, $[33] = t8, $[34] = t10) : t10 = $[34];
3353
3364
  let t11;
3354
- $[34] !== handleAddToVariant || $[35] !== isActionAllowed || $[36] !== status || $[37] !== t ? (t11 = isActionAllowed ? {
3365
+ $[35] !== handleAddToVariant || $[36] !== isActionAllowed || $[37] !== status || $[38] !== t ? (t11 = isActionAllowed ? {
3355
3366
  text: t("banners.variant.action.add-to-variant"),
3356
3367
  tone: "suggest",
3357
3368
  disabled: status === "in-progress" || status === "success",
3358
3369
  onClick: handleAddToVariant,
3359
3370
  mode: "default"
3360
- } : void 0, $[34] = handleAddToVariant, $[35] = isActionAllowed, $[36] = status, $[37] = t, $[38] = t11) : t11 = $[38];
3371
+ } : void 0, $[35] = handleAddToVariant, $[36] = isActionAllowed, $[37] = status, $[38] = t, $[39] = t11) : t11 = $[39];
3361
3372
  let t12;
3362
- return $[39] !== t10 || $[40] !== t11 ? (t12 = /* @__PURE__ */ jsx(Banner, {
3373
+ return $[40] !== t10 || $[41] !== t11 ? (t12 = /* @__PURE__ */ jsx(Banner, {
3363
3374
  tone: "suggest",
3364
3375
  content: t10,
3365
3376
  action: t11
3366
- }), $[39] = t10, $[40] = t11, $[41] = t12) : t12 = $[41], t12;
3377
+ }), $[40] = t10, $[41] = t11, $[42] = t12) : t12 = $[42], t12;
3367
3378
  }
3368
3379
  function _temp2$16(t0) {
3369
3380
  let { children: children_0 } = t0;
@@ -4345,20 +4356,20 @@ function useResolvedPanesList() {
4345
4356
  return useContext(ResolvedPanesContext) ?? DEFAULT_VALUE;
4346
4357
  }
4347
4358
  /**
4348
- * When a focus document pane button is clicked
4359
+ * When a document pane is maximized via the focus pane button
4349
4360
  */
4350
- const FocusDocumentPaneClicked = defineEvent({
4351
- name: "Maximized Document Pane Clicked",
4361
+ const DocumentPaneMaximized = defineEvent({
4362
+ name: "Document Pane Maximized",
4352
4363
  version: 1,
4353
- description: "User pressed to maximize a document by click the focus pane button"
4354
- }), FocusDocumentPaneCollapsed = defineEvent({
4355
- name: "Maximized Document Pane Collapsed",
4364
+ description: "User maximized a document pane via the focus pane button"
4365
+ }), DocumentPaneCollapsed = defineEvent({
4366
+ name: "Document Pane Collapsed",
4356
4367
  version: 1,
4357
- description: "User disabled the maximization on a document pane by clicking the focus pane button"
4358
- }), FocusDocumentPaneNavigated = defineEvent({
4359
- name: "Maximized Document Pane Navigated Via Breadcrumbs",
4368
+ description: "User collapsed a maximized document pane via the focus pane button"
4369
+ }), DocumentPaneNavigated = defineEvent({
4370
+ name: "Document Pane Navigated",
4360
4371
  version: 1,
4361
- description: "User navigated to a different document pane via the breadcrumbs in the document header"
4372
+ description: "User navigated to a different document pane via the breadcrumbs in the header"
4362
4373
  });
4363
4374
  function DocumentHeaderBreadcrumbItem(t0) {
4364
4375
  let $ = c(27), { paneData, index } = t0, { pane } = paneData, router = useRouter(), { t } = useTranslation(structureLocaleNamespace), routerState = useRouterState(), telemetry = useTelemetry();
@@ -4382,7 +4393,7 @@ function DocumentHeaderBreadcrumbItem(t0) {
4382
4393
  }
4383
4394
  let displayTitle = t5, t6;
4384
4395
  $[9] !== paneData.groupIndex || $[10] !== router || $[11] !== routerPanes || $[12] !== telemetry ? (t6 = () => {
4385
- telemetry.log(FocusDocumentPaneNavigated), router.navigate({ panes: routerPanes.slice(0, paneData.groupIndex) });
4396
+ telemetry.log(DocumentPaneNavigated, { path: "breadcrumb" }), router.navigate({ panes: routerPanes.slice(0, paneData.groupIndex) });
4386
4397
  }, $[9] = paneData.groupIndex, $[10] = router, $[11] = routerPanes, $[12] = telemetry, $[13] = t6) : t6 = $[13];
4387
4398
  let handleClick = t6;
4388
4399
  if (!displayTitle && !isLoading) return null;
@@ -6390,7 +6401,7 @@ const TooltipContent$1 = (t0) => {
6390
6401
  function _temp$24() {}
6391
6402
  const HorizontalScroller = /* @__PURE__ */ styled(Card).withConfig({
6392
6403
  displayName: "HorizontalScroller",
6393
- componentId: "sc-b22sps-0"
6404
+ componentId: "sc-4sd1tl-0"
6394
6405
  })((props) => {
6395
6406
  let theme = getTheme_v2(props.theme);
6396
6407
  return css`scrollbar-width:none;z-index:1;flex:1;position:relative;> div{&::-webkit-scrollbar{width:0;height:0;}}${props.$showGradient && css`&::after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:150px;background:linear-gradient(to right,${rgba$1(theme.color.bg, 0)},var(--card-bg-color));transition:'opacity 300ms ease-out';pointer-events:none;}`}`;
@@ -6410,7 +6421,7 @@ const HorizontalScroller = /* @__PURE__ */ styled(Card).withConfig({
6410
6421
  $[9] === presence ? t3 = $[10] : (t3 = presence.filter(_temp$23), $[9] = presence, $[10] = t3);
6411
6422
  let documentLevelPresence = t3, isMaximizedPane = maximizedPane?.pane && typeof maximizedPane.pane == "object" && maximizedPane.pane.type === "document" && maximizedPane.pane.options.id === documentId, t4;
6412
6423
  $[11] !== isMaximizedPane || $[12] !== onSetMaximizedPane || $[13] !== telemetry ? (t4 = () => {
6413
- onSetMaximizedPane?.(), isMaximizedPane ? telemetry.log(FocusDocumentPaneCollapsed) : telemetry.log(FocusDocumentPaneClicked);
6424
+ onSetMaximizedPane?.(), isMaximizedPane ? telemetry.log(DocumentPaneCollapsed) : telemetry.log(DocumentPaneMaximized);
6414
6425
  }, $[11] = isMaximizedPane, $[12] = onSetMaximizedPane, $[13] = telemetry, $[14] = t4) : t4 = $[14];
6415
6426
  let handleFocusPane = t4, t5;
6416
6427
  $[15] === Symbol.for("react.memo_cache_sentinel") ? (t5 = /* @__PURE__ */ jsx(DocumentHeaderTitle, {}), $[15] = t5) : t5 = $[15];
@@ -12593,7 +12604,7 @@ const documentActions = [
12593
12604
  name: options?.name || "structure",
12594
12605
  title: options?.title || "Structure",
12595
12606
  icon,
12596
- component: lazy(() => import("./structureTool-B5ch7u4I.js")),
12607
+ component: lazy(() => import("./structureTool-UGWPEr2I.js")),
12597
12608
  canHandleIntent: (intent, params) => intent === "create" ? canHandleCreateIntent(params) : intent === "edit" && canHandleEditIntent(params),
12598
12609
  getIntentState,
12599
12610
  controlsDocumentTitle: !0,
@@ -12614,4 +12625,4 @@ function canHandleEditIntent(params) {
12614
12625
  }
12615
12626
  export { PaneRouterContext$1 as C, useDocumentPane as E, ConfirmDeleteDialogContainer as S, useDocumentTitle as T, ActionStateDialog as _, getIncomingReferences as a, DocumentInspectorHeader as b, setActivePanes as c, PaneItem as d, assignId as f, StructureTitle as g, DocumentPaneProviderWrapper as h, INITIAL_STATE as i, BackLink as l, usePaneOptions as m, IncomingReferencePreview as n, getCrossDatasetIncomingReferences as o, DocumentPane as p, IncomingReferencesListContainer as r, CrossDatasetIncomingReferenceDocumentPreview as s, structureTool as t, PaneHeaderActions as u, useStructureToolSetting as v, usePaneRouter as w, PaneLayout as x, LoadingPane as y };
12616
12627
 
12617
- //# sourceMappingURL=structureTool-BCCGiqpF.js.map
12628
+ //# sourceMappingURL=structureTool-By2eJI8F.js.map