sanity 6.9.0-next.8 → 6.9.0

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 (193) hide show
  1. package/lib/{AddonDatasetProvider-CpISgo4-.js → AddonDatasetProvider-BNzAv5cF.js} +2 -2
  2. package/lib/{AddonDatasetProvider-CpISgo4-.js.map → AddonDatasetProvider-BNzAv5cF.js.map} +1 -1
  3. package/lib/{CalendarFilter-BXGUbwvL.js → CalendarFilter-CnHl_Wxj.js} +4 -4
  4. package/lib/{CalendarFilter-BXGUbwvL.js.map → CalendarFilter-CnHl_Wxj.js.map} +1 -1
  5. package/lib/{CommandList-D5cOafb5.js → CommandList-CjmwJGX8.js} +5 -5
  6. package/lib/CommandList-CjmwJGX8.js.map +1 -0
  7. package/lib/{CommentsDocumentLayout-B0Tc6YzF.js → CommentsDocumentLayout-cIjOckd4.js} +2 -2
  8. package/lib/{CommentsDocumentLayout-B0Tc6YzF.js.map → CommentsDocumentLayout-cIjOckd4.js.map} +1 -1
  9. package/lib/{CommentsField-EER6ceeq.js → CommentsField-Dc-OnqMB.js} +5 -5
  10. package/lib/{CommentsField-EER6ceeq.js.map → CommentsField-Dc-OnqMB.js.map} +1 -1
  11. package/lib/{CommentsInput-DIEwIMjz.js → CommentsInput-Dct2uTnB.js} +7 -7
  12. package/lib/{CommentsInput-DIEwIMjz.js.map → CommentsInput-Dct2uTnB.js.map} +1 -1
  13. package/lib/{CommentsInspector-Bj7LAvHR.js → CommentsInspector-PbvOqPmn.js} +8 -8
  14. package/lib/{CommentsInspector-Bj7LAvHR.js.map → CommentsInspector-PbvOqPmn.js.map} +1 -1
  15. package/lib/{CommentsListItem-rAz3WxJd.js → CommentsListItem-D4eaCu0g.js} +6 -6
  16. package/lib/{CommentsListItem-rAz3WxJd.js.map → CommentsListItem-D4eaCu0g.js.map} +1 -1
  17. package/lib/{CommentsSelectedPathProvider-BOK9GUqu.js → CommentsSelectedPathProvider-DvYcXgnK.js} +3 -3
  18. package/lib/{CommentsSelectedPathProvider-BOK9GUqu.js.map → CommentsSelectedPathProvider-DvYcXgnK.js.map} +1 -1
  19. package/lib/{CommentsStudioLayout-4JwQ6hCQ.js → CommentsStudioLayout-D-bs3orG.js} +4 -4
  20. package/lib/{CommentsStudioLayout-4JwQ6hCQ.js.map → CommentsStudioLayout-D-bs3orG.js.map} +1 -1
  21. package/lib/{ConfirmPopover-WRAOGm9W.js → ConfirmPopover-CMrDD2xD.js} +2 -2
  22. package/lib/{ConfirmPopover-WRAOGm9W.js.map → ConfirmPopover-CMrDD2xD.js.map} +1 -1
  23. package/lib/{ContextMenuButton-DdDb7caH.js → ContextMenuButton-BrT0XfTD.js} +2 -2
  24. package/lib/{ContextMenuButton-DdDb7caH.js.map → ContextMenuButton-BrT0XfTD.js.map} +1 -1
  25. package/lib/{LiveQueries-DKw9aLWN.js → LiveQueries-DbyKxOig.js} +4 -3
  26. package/lib/LiveQueries-DbyKxOig.js.map +1 -0
  27. package/lib/{MenuItem-elxYOUX3.js → MenuItem-DEAYBMOb.js} +4 -4
  28. package/lib/MenuItem-DEAYBMOb.js.map +1 -0
  29. package/lib/{PaneContainer-CPS68Tzl.js → PaneContainer-DOlV1RFb.js} +53 -48
  30. package/lib/PaneContainer-DOlV1RFb.js.map +1 -0
  31. package/lib/{PresentationToolGrantsCheck-Bf0jlBKV.js → PresentationToolGrantsCheck-BUlTzVYK.js} +10 -20
  32. package/lib/PresentationToolGrantsCheck-BUlTzVYK.js.map +1 -0
  33. package/lib/{RelativeTime-DQVqHt_D.js → RelativeTime-CwaKm8vm.js} +2 -2
  34. package/lib/{RelativeTime-DQVqHt_D.js.map → RelativeTime-CwaKm8vm.js.map} +1 -1
  35. package/lib/{ReleasesMetadataProvider-BcImP1CL.js → ReleasesMetadataProvider-BMCgib0B.js} +2 -2
  36. package/lib/{ReleasesMetadataProvider-BcImP1CL.js.map → ReleasesMetadataProvider-BMCgib0B.js.map} +1 -1
  37. package/lib/{ReleasesNav-dVNTVAB-.js → ReleasesNav-nEtGHxFh.js} +15 -15
  38. package/lib/ReleasesNav-nEtGHxFh.js.map +1 -0
  39. package/lib/{ReleasesStudioLayout-BTDOTxDw.js → ReleasesStudioLayout-BeZvlZJf.js} +9 -9
  40. package/lib/{ReleasesStudioLayout-BTDOTxDw.js.map → ReleasesStudioLayout-BeZvlZJf.js.map} +1 -1
  41. package/lib/{ReleasesTool-CI0fy7bg.js → ReleasesTool-DwkMrY4t.js} +23 -23
  42. package/lib/ReleasesTool-DwkMrY4t.js.map +1 -0
  43. package/lib/{SchedulePublishingStudioLayout-3gZ784Ks.js → SchedulePublishingStudioLayout-Bt952IXi.js} +3 -3
  44. package/lib/{SchedulePublishingStudioLayout-3gZ784Ks.js.map → SchedulePublishingStudioLayout-Bt952IXi.js.map} +1 -1
  45. package/lib/{SchedulePublishingUpsellProvider-Df1GopfM.js → SchedulePublishingUpsellProvider-CbX_0wqo.js} +2 -2
  46. package/lib/{SchedulePublishingUpsellProvider-Df1GopfM.js.map → SchedulePublishingUpsellProvider-CbX_0wqo.js.map} +1 -1
  47. package/lib/{ScheduledPublishingEnabledProvider-DQskkLuk.js → ScheduledPublishingEnabledProvider-BwH39kpd.js} +3 -3
  48. package/lib/{ScheduledPublishingEnabledProvider-DQskkLuk.js.map → ScheduledPublishingEnabledProvider-BwH39kpd.js.map} +1 -1
  49. package/lib/{SearchProvider-Bxix8Gm7.js → SearchProvider-DngcOvui.js} +107 -108
  50. package/lib/SearchProvider-DngcOvui.js.map +1 -0
  51. package/lib/{SingleDocReleaseLayout-Befj0lEJ.js → SingleDocReleaseLayout-DCmUPdw0.js} +2 -2
  52. package/lib/{SingleDocReleaseLayout-Befj0lEJ.js.map → SingleDocReleaseLayout-DCmUPdw0.js.map} +1 -1
  53. package/lib/{SingleDocReleaseUpsellProvider-BlcvYm4n.js → SingleDocReleaseUpsellProvider-intNbJMQ.js} +4 -4
  54. package/lib/{SingleDocReleaseUpsellProvider-BlcvYm4n.js.map → SingleDocReleaseUpsellProvider-intNbJMQ.js.map} +1 -1
  55. package/lib/{StructureToolProvider-bqgHqZki.js → StructureToolProvider-BF6aVR4a.js} +21 -18
  56. package/lib/StructureToolProvider-BF6aVR4a.js.map +1 -0
  57. package/lib/{TasksFooterOpenTasks-BhJXBNJ7.js → TasksFooterOpenTasks-CcMvxb1S.js} +2 -2
  58. package/lib/{TasksFooterOpenTasks-BhJXBNJ7.js.map → TasksFooterOpenTasks-CcMvxb1S.js.map} +1 -1
  59. package/lib/{TasksStudioActiveToolLayout-0BuRQAXH.js → TasksStudioActiveToolLayout-AHJDWlBs.js} +66 -60
  60. package/lib/TasksStudioActiveToolLayout-AHJDWlBs.js.map +1 -0
  61. package/lib/{TasksStudioLayout-C0qls8Jz.js → TasksStudioLayout-CvmYGNpG.js} +5 -5
  62. package/lib/{TasksStudioLayout-C0qls8Jz.js.map → TasksStudioLayout-CvmYGNpG.js.map} +1 -1
  63. package/lib/{TasksStudioNavbar-CYOCh1HB.js → TasksStudioNavbar-B2y8eBnJ.js} +2 -2
  64. package/lib/{TasksStudioNavbar-CYOCh1HB.js.map → TasksStudioNavbar-B2y8eBnJ.js.map} +1 -1
  65. package/lib/{Tool-DjvT6VJl.js → Tool-CqeGxdwu.js} +15 -15
  66. package/lib/Tool-CqeGxdwu.js.map +1 -0
  67. package/lib/{UnpublishVersionDialog-C7FllfqP.js → UnpublishVersionDialog-D7ti1pvw.js} +8 -8
  68. package/lib/UnpublishVersionDialog-D7ti1pvw.js.map +1 -0
  69. package/lib/{UpsellDialog-B_6IjE-L.js → UpsellDialog-whgrf_jd.js} +4 -4
  70. package/lib/{UpsellDialog-B_6IjE-L.js.map → UpsellDialog-whgrf_jd.js.map} +1 -1
  71. package/lib/{UpsellPanel-BkMo3Eja.js → UpsellPanel-D4A_J_mQ.js} +2 -2
  72. package/lib/{UpsellPanel-BkMo3Eja.js.map → UpsellPanel-D4A_J_mQ.js.map} +1 -1
  73. package/lib/{VariantsStudioNavbar-aD_m5WUx.js → VariantsStudioNavbar-QWklTgaC.js} +8 -8
  74. package/lib/{VariantsStudioNavbar-aD_m5WUx.js.map → VariantsStudioNavbar-QWklTgaC.js.map} +1 -1
  75. package/lib/{VariantsTool-CAhPS_hl.js → VariantsTool-Dcw6UNeT.js} +23 -22
  76. package/lib/VariantsTool-Dcw6UNeT.js.map +1 -0
  77. package/lib/{WorkspaceLoader-DWLatzcr.js → WorkspaceLoader-D-AE4jC9.js} +372 -258
  78. package/lib/WorkspaceLoader-D-AE4jC9.js.map +1 -0
  79. package/lib/_createContext.js +1 -1
  80. package/lib/_singletons.d.ts +3 -3
  81. package/lib/{buildTextSelectionFromFragment-CF8yXpOe.js → buildTextSelectionFromFragment-DK2sGkxp.js} +3 -3
  82. package/lib/{buildTextSelectionFromFragment-CF8yXpOe.js.map → buildTextSelectionFromFragment-DK2sGkxp.js.map} +1 -1
  83. package/lib/{datastores-DzbiOGPP.js → datastores-CAN9gF_N.js} +190 -132
  84. package/lib/datastores-CAN9gF_N.js.map +1 -0
  85. package/lib/desk.d.ts +3 -3
  86. package/lib/desk.js +3 -3
  87. package/lib/i18n-CZ3Xx4ce.js.map +1 -1
  88. package/lib/{index-BiVF9EeG.d.ts → index-2eck_tQd.d.ts} +296 -16
  89. package/lib/index.d.ts +2 -2
  90. package/lib/index.js +1453 -621
  91. package/lib/index.js.map +1 -1
  92. package/lib/{inputResolver-COzh7hku.js → inputResolver-pBBLZPO8.js} +4 -4
  93. package/lib/{inputResolver-COzh7hku.js.map → inputResolver-pBBLZPO8.js.map} +1 -1
  94. package/lib/{list-uFtxhvjI.js → list-CG-DNx76.js} +3 -3
  95. package/lib/{list-uFtxhvjI.js.map → list-CG-DNx76.js.map} +1 -1
  96. package/lib/media-library.d.ts +4 -1
  97. package/lib/{navigation.telemetry-bAlpwgnf.js → navigation.telemetry-_-oYsYEZ.js} +9 -9
  98. package/lib/{navigation.telemetry-bAlpwgnf.js.map → navigation.telemetry-_-oYsYEZ.js.map} +1 -1
  99. package/lib/pane-CLfkF5__.js +2 -0
  100. package/lib/pane-IEuMGUwt.js +2 -0
  101. package/lib/{plugin-D81ExmRE.js → plugin-BU45VUGg.js} +8 -8
  102. package/lib/plugin-BU45VUGg.js.map +1 -0
  103. package/lib/{plugin-BwMbbAOb.js → plugin-CDL44aqx.js} +3 -3
  104. package/lib/{plugin-BwMbbAOb.js.map → plugin-CDL44aqx.js.map} +1 -1
  105. package/lib/{plugin-DreT5rgb.js → plugin-CPQd0sKT.js} +5 -5
  106. package/lib/{plugin-DreT5rgb.js.map → plugin-CPQd0sKT.js.map} +1 -1
  107. package/lib/{plugin-DkVMeLfG.js → plugin-Cp5P5M6Z.js} +4 -4
  108. package/lib/{plugin-DkVMeLfG.js.map → plugin-Cp5P5M6Z.js.map} +1 -1
  109. package/lib/presentation.d.ts +1 -1
  110. package/lib/presentation.js +22 -17
  111. package/lib/presentation.js.map +1 -1
  112. package/lib/resources-BfdRqhdp.js.map +1 -1
  113. package/lib/{resources-DdpIsFj_.js → resources-DWYbg5ya.js} +11 -1
  114. package/lib/{resources-DdpIsFj_.js.map → resources-DWYbg5ya.js.map} +1 -1
  115. package/lib/{scheduleItem-Ctlq-oxE.js → scheduleItem-Dr7UqnO0.js} +11 -11
  116. package/lib/scheduleItem-Dr7UqnO0.js.map +1 -0
  117. package/lib/{schedules-BEdcwB3j.js → schedules-B76A4ZxW.js} +3 -3
  118. package/lib/{schedules-BEdcwB3j.js.map → schedules-B76A4ZxW.js.map} +1 -1
  119. package/lib/{searchDocumentRelease-B9ZSPMQ0.js → searchDocumentRelease-BUInC-Fo.js} +2 -2
  120. package/lib/searchDocumentRelease-BUInC-Fo.js.map +1 -0
  121. package/lib/structure.d.ts +2 -2
  122. package/lib/structure.js +175 -148
  123. package/lib/structure.js.map +1 -1
  124. package/lib/{structureTool-LwsLxm8b.js → structureTool-B-4Rgag1.js} +483 -344
  125. package/lib/structureTool-B-4Rgag1.js.map +1 -0
  126. package/lib/{structureTool-BaKrSrDq.js → structureTool-_7tV03_U.js} +85 -52
  127. package/lib/structureTool-_7tV03_U.js.map +1 -0
  128. package/lib/{studioClient-CbVMMhwJ.js → studioClient-0INzes4j.js} +2 -2
  129. package/lib/{studioClient-CbVMMhwJ.js.map → studioClient-0INzes4j.js.map} +1 -1
  130. package/lib/{types-pSwINOjF.d.ts → types-BSHwiUGT.d.ts} +16 -1
  131. package/lib/{types-DdqcmD0r.d.ts → types-DHS8RBqE.d.ts} +6 -1
  132. package/lib/{useBundleDocuments-D118c1o_.js → useBundleDocuments-DQBEGnM0.js} +230 -151
  133. package/lib/useBundleDocuments-DQBEGnM0.js.map +1 -0
  134. package/lib/{useComments-Ce2ZG1zf.js → useComments-B4l2ZDjl.js} +5 -5
  135. package/lib/useComments-B4l2ZDjl.js.map +1 -0
  136. package/lib/{useCommentsTelemetry-Dsj0RAus.js → useCommentsTelemetry-CYo7hANR.js} +4 -4
  137. package/lib/{useCommentsTelemetry-Dsj0RAus.js.map → useCommentsTelemetry-CYo7hANR.js.map} +1 -1
  138. package/lib/{useDocumentPreviewValues-CK_kSuoM.js → useDocumentPreviewValues-CwdjeP0z.js} +11 -11
  139. package/lib/useDocumentPreviewValues-CwdjeP0z.js.map +1 -0
  140. package/lib/{useFeatureEnabled-Bv0AjtZ1.js → useFeatureEnabled-vKK-UQgR.js} +2 -2
  141. package/lib/{useFeatureEnabled-Bv0AjtZ1.js.map → useFeatureEnabled-vKK-UQgR.js.map} +1 -1
  142. package/lib/{useFieldActions-BKSa8rzV.js → useFieldActions-C4v6GVo7.js} +2 -2
  143. package/lib/{useFieldActions-BKSa8rzV.js.map → useFieldActions-C4v6GVo7.js.map} +1 -1
  144. package/lib/{usePresentationNavigate-CLGuKsYS.js → usePresentationNavigate-BxYhJZlq.js} +14 -3
  145. package/lib/usePresentationNavigate-BxYhJZlq.js.map +1 -0
  146. package/lib/{useReleasesToolAvailable-BPEX4VoV.js → useReleasesToolAvailable-CvsDXDJG.js} +3 -3
  147. package/lib/{useReleasesToolAvailable-BPEX4VoV.js.map → useReleasesToolAvailable-CvsDXDJG.js.map} +1 -1
  148. package/lib/{useScheduledDraftMenuActions-DzBi_HIW.js → useScheduledDraftMenuActions-DU3du0ow.js} +6 -6
  149. package/lib/useScheduledDraftMenuActions-DU3du0ow.js.map +1 -0
  150. package/lib/{useSetVariant-C26klcfF.js → useSetVariant-DNfuYLa-.js} +3 -3
  151. package/lib/{useSetVariant-C26klcfF.js.map → useSetVariant-DNfuYLa-.js.map} +1 -1
  152. package/lib/{useStructureTool-CUdDcZZx.d.ts → useStructureTool-C3XT2jaf.d.ts} +14 -3
  153. package/lib/{useStudioUrl-BgsT2vQf.js → useStudioUrl-BaTFWspv.js} +5 -5
  154. package/lib/useStudioUrl-BaTFWspv.js.map +1 -0
  155. package/lib/useTasksNavigation-C14jkMNJ.js.map +1 -1
  156. package/lib/{useTimeZone-CocQM0-q.js → useTimeZone-Cxx2Mhvw.js} +4 -4
  157. package/lib/useTimeZone-Cxx2Mhvw.js.map +1 -0
  158. package/lib/{userComponent-B3TYM1rn.js → userComponent-CalMHy7P.js} +3 -3
  159. package/lib/{userComponent-B3TYM1rn.js.map → userComponent-CalMHy7P.js.map} +1 -1
  160. package/lib/{validationUtils-CmLwcWOU.js → validationUtils-CDvRlmT4.js} +4 -4
  161. package/lib/{validationUtils-CmLwcWOU.js.map → validationUtils-CDvRlmT4.js.map} +1 -1
  162. package/lib/{version-NCz39NTA.js → version-DTcPz6_F.js} +2 -2
  163. package/lib/{version-NCz39NTA.js.map → version-DTcPz6_F.js.map} +1 -1
  164. package/package.json +29 -28
  165. package/lib/CommandList-D5cOafb5.js.map +0 -1
  166. package/lib/LiveQueries-DKw9aLWN.js.map +0 -1
  167. package/lib/MenuItem-elxYOUX3.js.map +0 -1
  168. package/lib/PaneContainer-CPS68Tzl.js.map +0 -1
  169. package/lib/PresentationToolGrantsCheck-Bf0jlBKV.js.map +0 -1
  170. package/lib/ReleasesNav-dVNTVAB-.js.map +0 -1
  171. package/lib/ReleasesTool-CI0fy7bg.js.map +0 -1
  172. package/lib/SearchProvider-Bxix8Gm7.js.map +0 -1
  173. package/lib/StructureToolProvider-bqgHqZki.js.map +0 -1
  174. package/lib/TasksStudioActiveToolLayout-0BuRQAXH.js.map +0 -1
  175. package/lib/Tool-DjvT6VJl.js.map +0 -1
  176. package/lib/UnpublishVersionDialog-C7FllfqP.js.map +0 -1
  177. package/lib/VariantsTool-CAhPS_hl.js.map +0 -1
  178. package/lib/WorkspaceLoader-DWLatzcr.js.map +0 -1
  179. package/lib/datastores-DzbiOGPP.js.map +0 -1
  180. package/lib/pane-CGo5Uy4e.js +0 -2
  181. package/lib/pane-Cpl2zA3O.js +0 -2
  182. package/lib/plugin-D81ExmRE.js.map +0 -1
  183. package/lib/scheduleItem-Ctlq-oxE.js.map +0 -1
  184. package/lib/searchDocumentRelease-B9ZSPMQ0.js.map +0 -1
  185. package/lib/structureTool-BaKrSrDq.js.map +0 -1
  186. package/lib/structureTool-LwsLxm8b.js.map +0 -1
  187. package/lib/useBundleDocuments-D118c1o_.js.map +0 -1
  188. package/lib/useComments-Ce2ZG1zf.js.map +0 -1
  189. package/lib/useDocumentPreviewValues-CK_kSuoM.js.map +0 -1
  190. package/lib/usePresentationNavigate-CLGuKsYS.js.map +0 -1
  191. package/lib/useScheduledDraftMenuActions-DzBi_HIW.js.map +0 -1
  192. package/lib/useStudioUrl-BgsT2vQf.js.map +0 -1
  193. package/lib/useTimeZone-CocQM0-q.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { c as useWorkspace, i as useClient, n as DEFAULT_STUDIO_CLIENT_OPTIONS } from "./studioClient-CbVMMhwJ.js";
1
+ import { c as useWorkspace, i as useClient, n as DEFAULT_STUDIO_CLIENT_OPTIONS } from "./studioClient-0INzes4j.js";
2
2
  import { useContext, useEffect, useState } from "react";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -79,4 +79,4 @@ function AddonDatasetProvider(props) {
79
79
  }
80
80
  export { AddonDatasetProvider as t };
81
81
 
82
- //# sourceMappingURL=AddonDatasetProvider-CpISgo4-.js.map
82
+ //# sourceMappingURL=AddonDatasetProvider-BNzAv5cF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddonDatasetProvider-CpISgo4-.js","names":["SanityClient","useCallback","useContext","useEffect","useMemo","useState","AddonDatasetContext","useClient","DEFAULT_STUDIO_CLIENT_OPTIONS","useWorkspace","AddonDatasetContextValue","AddonDatasetSetupProviderProps","children","React","ReactNode","AddonDatasetProviderInner","props","$","_c","dataset","projectId","originalClient","addonDatasetClient","setAddonDatasetClient","isCreatingDataset","setIsCreatingDataset","ready","setReady","error","setError","t0","res","request","uri","tag","name","getAddonDatasetName","t1","addonDatasetName","client","withConfig","requestTagPrefix","useCdn","handleCreateClient","t2","addonDatasetName_0","client_0","run","res_0","method","datasetName","client_1","finally","handleCreateAddonDataset","t3","t4","then","addonDatasetName_1","client_2","catch","err","t5","createAddonDataset","ctxValue","t6","AddonDatasetProvider","context"],"sources":["../src/core/studio/addonDataset/AddonDatasetProvider.tsx"],"sourcesContent":["import {type SanityClient} from '@sanity/client'\nimport {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {AddonDatasetContext} from 'sanity/_singletons'\n\nimport {useClient} from '../../hooks/useClient'\nimport {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../studioClient'\nimport {useWorkspace} from '../workspace'\nimport {type AddonDatasetContextValue} from './types'\n\ninterface AddonDatasetSetupProviderProps {\n children: React.ReactNode\n}\n\nfunction AddonDatasetProviderInner(props: AddonDatasetSetupProviderProps) {\n const {children} = props\n const {dataset, projectId} = useWorkspace()\n const originalClient = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const [addonDatasetClient, setAddonDatasetClient] = useState<SanityClient | null>(null)\n const [isCreatingDataset, setIsCreatingDataset] = useState<boolean>(false)\n const [ready, setReady] = useState<boolean>(false)\n const [error, setError] = useState<Error | null>(null)\n\n const getAddonDatasetName = useCallback(async (): Promise<string | undefined> => {\n const res = await originalClient.request({\n uri: `/projects/${projectId}/datasets?datasetProfile=comments&addonFor=${dataset}`,\n tag: 'sanity.studio',\n })\n\n // The response is an array containing the addon dataset. We only expect\n // one addon dataset to be returned, so we return the name of the first\n // addon dataset in the array.\n return res?.[0]?.name\n }, [dataset, originalClient, projectId])\n\n const handleCreateClient = useCallback(\n (addonDatasetName: string) => {\n const client = originalClient.withConfig({\n dataset: addonDatasetName,\n projectId,\n requestTagPrefix: 'sanity.studio',\n useCdn: false,\n })\n\n return client\n },\n [originalClient, projectId],\n )\n\n const handleCreateAddonDataset = useCallback(async (): Promise<SanityClient | null> => {\n setIsCreatingDataset(true)\n\n // Before running the setup, we check if the addon dataset already exists.\n // The addon dataset might already exist if another user has already run\n // the setup, but the current user has not refreshed the page yet and\n // therefore don't have a client for the addon dataset yet.\n try {\n const addonDatasetName = await getAddonDatasetName()\n\n if (addonDatasetName) {\n const client = handleCreateClient(addonDatasetName)\n setAddonDatasetClient(client)\n setIsCreatingDataset(false)\n return client\n }\n } catch {\n // If the dataset does not exist we will get an error, but we can ignore\n // it since we will create the dataset in the next step.\n }\n\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n // 1. Create the addon dataset\n const res = await originalClient.request({\n uri: `/comments/${dataset}/setup`,\n method: 'POST',\n })\n\n const datasetName = res?.datasetName\n\n // 2. We can't continue if the addon dataset name is not returned\n if (!datasetName) {\n setIsCreatingDataset(false)\n return null\n }\n\n // 3. Create a client for the addon dataset and set it in the context value\n // so that the consumers can use it to execute comment operations and set up\n // the real time listener for the addon dataset.\n const client = handleCreateClient(datasetName)\n setAddonDatasetClient(client)\n\n // 4. Return the client so that the caller can use it to execute operations\n return client\n }\n return run().finally(() => {\n setIsCreatingDataset(false)\n })\n }, [dataset, getAddonDatasetName, handleCreateClient, originalClient])\n\n useEffect(() => {\n // On mount, we check if the addon dataset already exists. If it does, we create\n // a client for it and set it in the context value so that the consumers can use\n // it to execute comment operations and set up the real time listener for the addon\n // dataset.\n getAddonDatasetName()\n .then((addonDatasetName) => {\n if (!addonDatasetName) return\n const client = handleCreateClient(addonDatasetName)\n setAddonDatasetClient(client)\n })\n .catch((err) => {\n // If the addon dataset does not exist or we don't have permission to access it,\n // We can ignore this error.\n setError(err)\n })\n .finally(() => {\n setReady(true)\n })\n }, [getAddonDatasetName, handleCreateClient])\n\n const ctxValue = useMemo(\n (): AddonDatasetContextValue => ({\n client: addonDatasetClient,\n createAddonDataset: handleCreateAddonDataset,\n isCreatingDataset,\n ready,\n error,\n }),\n [addonDatasetClient, error, handleCreateAddonDataset, isCreatingDataset, ready],\n )\n\n return <AddonDatasetContext.Provider value={ctxValue}>{children}</AddonDatasetContext.Provider>\n}\n\n/**\n * This provider sets the addon dataset client, currently called `comments` dataset.\n * It also exposes a `createAddonDataset` function that can be used to create the addon dataset if it does not exist.\n * @beta\n * @hidden\n */\nexport function AddonDatasetProvider(props: AddonDatasetSetupProviderProps) {\n const context = useContext(AddonDatasetContext)\n // Avoid mounting the provider if it's already provided by a parent\n if (context) return props.children\n return <AddonDatasetProviderInner {...props} />\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AddonDatasetProvider-BNzAv5cF.js","names":["SanityClient","useCallback","useContext","useEffect","useMemo","useState","AddonDatasetContext","useClient","DEFAULT_STUDIO_CLIENT_OPTIONS","useWorkspace","AddonDatasetContextValue","AddonDatasetSetupProviderProps","children","React","ReactNode","AddonDatasetProviderInner","props","$","_c","dataset","projectId","originalClient","addonDatasetClient","setAddonDatasetClient","isCreatingDataset","setIsCreatingDataset","ready","setReady","error","setError","t0","res","request","uri","tag","name","getAddonDatasetName","t1","addonDatasetName","client","withConfig","requestTagPrefix","useCdn","handleCreateClient","t2","addonDatasetName_0","client_0","run","res_0","method","datasetName","client_1","finally","handleCreateAddonDataset","t3","t4","then","addonDatasetName_1","client_2","catch","err","t5","createAddonDataset","ctxValue","t6","AddonDatasetProvider","context"],"sources":["../src/core/studio/addonDataset/AddonDatasetProvider.tsx"],"sourcesContent":["import {type SanityClient} from '@sanity/client'\nimport {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {AddonDatasetContext} from 'sanity/_singletons'\n\nimport {useClient} from '../../hooks/useClient'\nimport {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../studioClient'\nimport {useWorkspace} from '../workspace'\nimport {type AddonDatasetContextValue} from './types'\n\ninterface AddonDatasetSetupProviderProps {\n children: React.ReactNode\n}\n\nfunction AddonDatasetProviderInner(props: AddonDatasetSetupProviderProps) {\n const {children} = props\n const {dataset, projectId} = useWorkspace()\n const originalClient = useClient(DEFAULT_STUDIO_CLIENT_OPTIONS)\n const [addonDatasetClient, setAddonDatasetClient] = useState<SanityClient | null>(null)\n const [isCreatingDataset, setIsCreatingDataset] = useState<boolean>(false)\n const [ready, setReady] = useState<boolean>(false)\n const [error, setError] = useState<Error | null>(null)\n\n const getAddonDatasetName = useCallback(async (): Promise<string | undefined> => {\n const res = await originalClient.request({\n uri: `/projects/${projectId}/datasets?datasetProfile=comments&addonFor=${dataset}`,\n tag: 'sanity.studio',\n })\n\n // The response is an array containing the addon dataset. We only expect\n // one addon dataset to be returned, so we return the name of the first\n // addon dataset in the array.\n return res?.[0]?.name\n }, [dataset, originalClient, projectId])\n\n const handleCreateClient = useCallback(\n (addonDatasetName: string) => {\n const client = originalClient.withConfig({\n dataset: addonDatasetName,\n projectId,\n requestTagPrefix: 'sanity.studio',\n useCdn: false,\n })\n\n return client\n },\n [originalClient, projectId],\n )\n\n const handleCreateAddonDataset = useCallback(async (): Promise<SanityClient | null> => {\n setIsCreatingDataset(true)\n\n // Before running the setup, we check if the addon dataset already exists.\n // The addon dataset might already exist if another user has already run\n // the setup, but the current user has not refreshed the page yet and\n // therefore don't have a client for the addon dataset yet.\n try {\n const addonDatasetName = await getAddonDatasetName()\n\n if (addonDatasetName) {\n const client = handleCreateClient(addonDatasetName)\n setAddonDatasetClient(client)\n setIsCreatingDataset(false)\n return client\n }\n } catch {\n // If the dataset does not exist we will get an error, but we can ignore\n // it since we will create the dataset in the next step.\n }\n\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = async () => {\n // 1. Create the addon dataset\n const res = await originalClient.request({\n uri: `/comments/${dataset}/setup`,\n method: 'POST',\n })\n\n const datasetName = res?.datasetName\n\n // 2. We can't continue if the addon dataset name is not returned\n if (!datasetName) {\n setIsCreatingDataset(false)\n return null\n }\n\n // 3. Create a client for the addon dataset and set it in the context value\n // so that the consumers can use it to execute comment operations and set up\n // the real time listener for the addon dataset.\n const client = handleCreateClient(datasetName)\n setAddonDatasetClient(client)\n\n // 4. Return the client so that the caller can use it to execute operations\n return client\n }\n return run().finally(() => {\n setIsCreatingDataset(false)\n })\n }, [dataset, getAddonDatasetName, handleCreateClient, originalClient])\n\n useEffect(() => {\n // On mount, we check if the addon dataset already exists. If it does, we create\n // a client for it and set it in the context value so that the consumers can use\n // it to execute comment operations and set up the real time listener for the addon\n // dataset.\n getAddonDatasetName()\n .then((addonDatasetName) => {\n if (!addonDatasetName) return\n const client = handleCreateClient(addonDatasetName)\n setAddonDatasetClient(client)\n })\n .catch((err) => {\n // If the addon dataset does not exist or we don't have permission to access it,\n // We can ignore this error.\n setError(err)\n })\n .finally(() => {\n setReady(true)\n })\n }, [getAddonDatasetName, handleCreateClient])\n\n const ctxValue = useMemo(\n (): AddonDatasetContextValue => ({\n client: addonDatasetClient,\n createAddonDataset: handleCreateAddonDataset,\n isCreatingDataset,\n ready,\n error,\n }),\n [addonDatasetClient, error, handleCreateAddonDataset, isCreatingDataset, ready],\n )\n\n return <AddonDatasetContext.Provider value={ctxValue}>{children}</AddonDatasetContext.Provider>\n}\n\n/**\n * This provider sets the addon dataset client, currently called `comments` dataset.\n * It also exposes a `createAddonDataset` function that can be used to create the addon dataset if it does not exist.\n * @beta\n * @hidden\n */\nexport function AddonDatasetProvider(props: AddonDatasetSetupProviderProps) {\n const context = useContext(AddonDatasetContext)\n // Avoid mounting the provider if it's already provided by a parent\n if (context) return props.children\n return <AddonDatasetProviderInner {...props} />\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { a as Button$1, i as TooltipDelayGroupProvider$1 } from "./MenuItem-elxYOUX3.js";
1
+ import { a as Button$1, i as TooltipDelayGroupProvider$1 } from "./MenuItem-DEAYBMOb.js";
2
2
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
3
- import { At as DEFAULT_WEEK_DAY_NAMES, Dt as useWeeksOfMonth, Ot as ARROW_KEYS, kt as DEFAULT_MONTH_NAMES } from "./useBundleDocuments-D118c1o_.js";
4
- import { t as useTimeZone } from "./useTimeZone-CocQM0-q.js";
3
+ import { At as DEFAULT_WEEK_DAY_NAMES, Dt as useWeeksOfMonth, Ot as ARROW_KEYS, kt as DEFAULT_MONTH_NAMES } from "./useBundleDocuments-DQBEGnM0.js";
4
+ import { t as useTimeZone } from "./useTimeZone-Cxx2Mhvw.js";
5
5
  import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
6
6
  import { c } from "react/compiler-runtime";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -296,4 +296,4 @@ const PRESERVE_FOCUS_ELEMENT = /* @__PURE__ */ jsx("span", {
296
296
  });
297
297
  export { CalendarDay as n, CalendarFilter as t };
298
298
 
299
- //# sourceMappingURL=CalendarFilter-BXGUbwvL.js.map
299
+ //# sourceMappingURL=CalendarFilter-CnHl_Wxj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarFilter-BXGUbwvL.js","names":["CloseIcon","Card","CardTone","Text","isWeekend","useCallback","CalendarDayProps","date","Date","focused","onSelect","isCurrentMonth","isToday","selected","dateStyles","React","CSSProperties","disabled","CalendarDay","props","$","_c","t0","t1","undefined","t2","handleClick","tone","t3","toDateString","t4","t5","getDate","getMonth","t6","Symbol","for","position","t7","t8","opacity","textAlign","t9","t10","t11","t12","Box","Card","Grid","Label","isSameDay","isSameMonth","TimeZoneScope","useTimeZone","DEFAULT_WEEK_DAY_NAMES","useWeeksOfMonth","CalendarDay","DefaultCalendarDay","CalendarProps","CalendarMonthProps","date","Date","focused","selected","onSelect","hidden","renderCalendarDay","disabled","timeZoneScope","CalendarMonth","props","$","_c","getCurrentZoneDate","weeksOfMonth","t0","t1","t2","Symbol","for","gap","gridTemplateColumns","map","_temp","t3","t4","week","weekIdx","days","dayDate","dayIdx","isToday","isCurrentMonth","t5","weekday","textAlign","slice","ChevronLeftIcon","ChevronRightIcon","Box","Flex","Text","addDays","addMonths","setHours","setMinutes","ComponentProps","ForwardedRef","forwardRef","KeyboardEvent","useCallback","useEffect","useImperativeHandle","useRef","useState","Button","TooltipDelayGroupProvider","TimeZoneScope","useTimeZone","useTranslation","ARROW_KEYS","DEFAULT_MONTH_NAMES","CalendarDayProps","CalendarMonth","CalendarProps","Omit","focusedDate","Date","onSelect","date","onFocusedDateChange","index","selectedDate","renderCalendarDay","props","React","ReactNode","disabled","timeZoneScope","PRESERVE_FOCUS_ELEMENT","overflow","position","outline","CalendarFilter","Calendar","forwardedRef","$","_c","handleOnFocusedDateChange","providedFocusedDate","restProps","t0","Symbol","for","_focusedDate","_setFocusedDate","t","tCore","zoneDateToUtc","t1","t2","date_0","setFocusedDate","t3","by","moveFocusedDate","t4","date_1","targetDate","getHours","getMinutes","undefined","handleDateChange","ref","t5","current","t6","querySelector","focus","focusCurrentWeekDay","t7","event","includes","key","preventDefault","currentTarget","hasAttribute","handleKeyDown","t8","t9","t10","currentFocusInCalendarGrid","document","activeElement","matches","t11","t12","now","handleNowClick","t13","handlePrevMonthClick","t14","handleNextMonthClick","t15","borderBottom","minHeight","top","t16","getMonth","t17","getFullYear","t18","t19","content","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32"],"sources":["../src/core/components/inputs/DateFilters/calendar/CalendarDay.tsx","../src/core/components/inputs/DateFilters/calendar/CalendarMonth.tsx","../src/core/components/inputs/DateFilters/calendar/CalendarFilter.tsx"],"sourcesContent":["import {CloseIcon} from '@sanity/icons/Close'\nimport {Card, type CardTone, Text} from '@sanity/ui'\nimport {isWeekend} from 'date-fns/isWeekend'\nimport {useCallback} from 'react'\n\nexport interface CalendarDayProps {\n date: Date // clock time\n focused?: boolean\n onSelect: (date?: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n dateStyles?: React.CSSProperties\n disabled?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {\n date,\n focused,\n isCurrentMonth,\n isToday,\n onSelect,\n selected,\n disabled,\n dateStyles = {},\n } = props\n\n const handleClick = useCallback(() => {\n if (selected) {\n onSelect(undefined)\n } else {\n onSelect(date)\n }\n }, [date, onSelect, selected])\n\n let tone: CardTone\n if (isToday || selected) {\n tone = 'primary'\n } else if (isWeekend(date)) {\n // tone = 'transparent'\n tone = 'default'\n } else {\n tone = 'default'\n }\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n data-testid={isToday ? 'day-tile-today' : `day-tile-${date.getDate()}-${date.getMonth()}`}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n paddingX={3}\n paddingY={4}\n radius={2}\n selected={selected}\n style={{position: 'relative'}}\n tone={tone}\n disabled={disabled}\n >\n <Text\n size={1}\n style={{\n opacity: !selected && !isCurrentMonth ? 0.35 : 1,\n textAlign: 'center',\n ...dateStyles,\n }}\n >\n {selected ? <CloseIcon /> : date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {Box, Card, Grid, Label} from '@sanity/ui'\nimport {isSameDay} from 'date-fns/isSameDay'\nimport {isSameMonth} from 'date-fns/isSameMonth'\n\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {DEFAULT_WEEK_DAY_NAMES} from '../../DateInputs/calendar/constants'\nimport {useWeeksOfMonth} from '../../DateInputs/calendar/utils'\nimport {CalendarDay as DefaultCalendarDay} from './CalendarDay'\nimport {type CalendarProps} from './CalendarFilter'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date?: Date) => void\n hidden?: boolean\n renderCalendarDay?: CalendarProps['renderCalendarDay']\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n const {date, renderCalendarDay, hidden, disabled, timeZoneScope} = props\n const {getCurrentZoneDate} = useTimeZone(timeZoneScope)\n const CalendarDay = renderCalendarDay || DefaultCalendarDay\n const weeksOfMonth = useWeeksOfMonth(date)\n\n return (\n <Box aria-hidden={hidden || false} data-ui=\"CalendarMonth\">\n <Grid\n style={{\n gap: '1px',\n gridTemplateColumns: 'repeat(7, 1fr)',\n }}\n >\n {/* Header */}\n {DEFAULT_WEEK_DAY_NAMES.map((weekday) => (\n <Card key={weekday} paddingY={3}>\n <Label size={1} style={{textAlign: 'center'}}>\n {weekday.slice(0, 1)}\n </Label>\n </Card>\n ))}\n\n {weeksOfMonth.map((week, weekIdx) =>\n week.days.map((dayDate, dayIdx) => {\n const focused = props.focused && isSameDay(dayDate, props.focused)\n const selected = props.selected && isSameDay(dayDate, props.selected)\n const isToday = isSameDay(dayDate, getCurrentZoneDate())\n const isCurrentMonth = isSameMonth(dayDate, props.focused || date)\n\n return (\n <CalendarDay\n key={`${weekIdx}-${dayIdx}`}\n date={dayDate}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n onSelect={props.onSelect}\n selected={selected}\n disabled={disabled}\n />\n )\n }),\n )}\n </Grid>\n </Box>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {addDays} from 'date-fns/addDays'\nimport {addMonths} from 'date-fns/addMonths'\nimport {setHours} from 'date-fns/setHours'\nimport {setMinutes} from 'date-fns/setMinutes'\nimport {\n type ComponentProps,\n type ForwardedRef,\n forwardRef,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {ARROW_KEYS, DEFAULT_MONTH_NAMES} from '../../DateInputs/calendar/constants'\nimport {type CalendarDayProps} from './CalendarDay'\nimport {CalendarMonth} from './CalendarMonth'\n\nexport type CalendarProps = Omit<ComponentProps<'div'>, 'onSelect'> & {\n focusedDate?: Date\n onSelect: (date?: Date) => void\n onFocusedDateChange?: (index: Date) => void\n selectedDate?: Date\n renderCalendarDay?: (props: CalendarDayProps) => React.ReactNode\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const CalendarFilter = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n focusedDate: providedFocusedDate,\n onFocusedDateChange: handleOnFocusedDateChange,\n onSelect,\n selectedDate,\n renderCalendarDay,\n timeZoneScope,\n ...restProps\n } = props\n const [_focusedDate, _setFocusedDate] = useState<Date>(new Date())\n const {t: tCore} = useTranslation()\n const {zoneDateToUtc} = useTimeZone(timeZoneScope)\n\n const focusedDate = providedFocusedDate || _focusedDate\n\n const onFocusedDateChange = useCallback(\n (date: Date) => {\n if (handleOnFocusedDateChange && providedFocusedDate) {\n handleOnFocusedDateChange(date)\n } else {\n _setFocusedDate(date)\n }\n },\n [handleOnFocusedDateChange, providedFocusedDate],\n )\n\n const setFocusedDate = useCallback(\n (date: Date) => {\n onFocusedDateChange(zoneDateToUtc(date))\n },\n [onFocusedDateChange, zoneDateToUtc],\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate],\n )\n\n const handleDateChange = useCallback(\n (date?: Date) => {\n if (date) {\n const targetDate = zoneDateToUtc(\n setMinutes(setHours(date, date.getHours()), date.getMinutes()),\n )\n onSelect(targetDate)\n onFocusedDateChange(targetDate)\n } else {\n onSelect(undefined)\n }\n },\n [onSelect, zoneDateToUtc, onFocusedDateChange],\n )\n\n const ref = useRef<HTMLDivElement | null>(null)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.currentTarget.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7)))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7)))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1)))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1)))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate, zoneDateToUtc],\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]',\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n // Select AND focus current date when 'today' is pressed\n const handleNowClick = useCallback(() => {\n const now = new Date()\n onSelect(now)\n onFocusedDateChange(now)\n }, [onSelect, onFocusedDateChange])\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Month + Year header */}\n <Flex\n align=\"center\"\n paddingLeft={4}\n style={{\n borderBottom: '1px solid var(--card-border-color)',\n minHeight: `55px`,\n position: 'sticky',\n top: 0,\n }}\n >\n <Flex align=\"center\" flex={1} justify=\"space-between\">\n <Text weight=\"medium\" size={1}>\n {DEFAULT_MONTH_NAMES[focusedDate?.getMonth()]} {focusedDate?.getFullYear()}\n </Text>\n <Flex paddingRight={3} gap={2}>\n <TooltipDelayGroupProvider>\n <Button\n icon={ChevronLeftIcon}\n mode=\"bleed\"\n onClick={handlePrevMonthClick}\n tooltipProps={{content: 'Previous month'}}\n disabled={restProps.disabled}\n />\n <Button\n icon={ChevronRightIcon}\n mode=\"bleed\"\n onClick={handleNextMonthClick}\n tooltipProps={{content: 'Next month'}}\n disabled={restProps.disabled}\n />\n </TooltipDelayGroupProvider>\n </Flex>\n </Flex>\n </Flex>\n\n {/* Select date */}\n <Box>\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n overflow=\"hidden\"\n paddingBottom={1}\n paddingX={1}\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={providedFocusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n renderCalendarDay={renderCalendarDay}\n disabled={restProps.disabled}\n timeZoneScope={timeZoneScope}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Today button */}\n <Box flex={1} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n <Button\n disabled={restProps.disabled}\n mode=\"bleed\"\n onClick={handleNowClick}\n width=\"fill\"\n aria-label={tCore('calendar.action.go-to-today-aria-label')}\n text={tCore('calendar.action.go-to-today')}\n />\n </Box>\n </Box>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarFilter-CnHl_Wxj.js","names":["CloseIcon","Card","CardTone","Text","isWeekend","useCallback","CalendarDayProps","date","Date","focused","onSelect","isCurrentMonth","isToday","selected","dateStyles","React","CSSProperties","disabled","CalendarDay","props","$","_c","t0","t1","undefined","t2","handleClick","tone","t3","toDateString","t4","t5","getDate","getMonth","t6","Symbol","for","position","t7","t8","opacity","textAlign","t9","t10","t11","t12","Box","Card","Grid","Label","isSameDay","isSameMonth","TimeZoneScope","useTimeZone","DEFAULT_WEEK_DAY_NAMES","useWeeksOfMonth","CalendarDay","DefaultCalendarDay","CalendarProps","CalendarMonthProps","date","Date","focused","selected","onSelect","hidden","renderCalendarDay","disabled","timeZoneScope","CalendarMonth","props","$","_c","getCurrentZoneDate","weeksOfMonth","t0","t1","t2","Symbol","for","gap","gridTemplateColumns","map","_temp","t3","t4","week","weekIdx","days","dayDate","dayIdx","isToday","isCurrentMonth","t5","weekday","textAlign","slice","ChevronLeftIcon","ChevronRightIcon","Box","Flex","Text","addDays","addMonths","setHours","setMinutes","ComponentProps","ForwardedRef","forwardRef","KeyboardEvent","useCallback","useEffect","useImperativeHandle","useRef","useState","Button","TooltipDelayGroupProvider","TimeZoneScope","useTimeZone","useTranslation","ARROW_KEYS","DEFAULT_MONTH_NAMES","CalendarDayProps","CalendarMonth","CalendarProps","Omit","focusedDate","Date","onSelect","date","onFocusedDateChange","index","selectedDate","renderCalendarDay","props","React","ReactNode","disabled","timeZoneScope","PRESERVE_FOCUS_ELEMENT","overflow","position","outline","CalendarFilter","Calendar","forwardedRef","$","_c","handleOnFocusedDateChange","providedFocusedDate","restProps","t0","Symbol","for","_focusedDate","_setFocusedDate","t","tCore","zoneDateToUtc","t1","t2","date_0","setFocusedDate","t3","by","moveFocusedDate","t4","date_1","targetDate","getHours","getMinutes","undefined","handleDateChange","ref","t5","current","t6","querySelector","focus","focusCurrentWeekDay","t7","event","includes","key","preventDefault","currentTarget","hasAttribute","handleKeyDown","t8","t9","t10","currentFocusInCalendarGrid","document","activeElement","matches","t11","t12","now","handleNowClick","t13","handlePrevMonthClick","t14","handleNextMonthClick","t15","borderBottom","minHeight","top","t16","getMonth","t17","getFullYear","t18","t19","content","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32"],"sources":["../src/core/components/inputs/DateFilters/calendar/CalendarDay.tsx","../src/core/components/inputs/DateFilters/calendar/CalendarMonth.tsx","../src/core/components/inputs/DateFilters/calendar/CalendarFilter.tsx"],"sourcesContent":["import {CloseIcon} from '@sanity/icons/Close'\nimport {Card, type CardTone, Text} from '@sanity/ui'\nimport {isWeekend} from 'date-fns/isWeekend'\nimport {useCallback} from 'react'\n\nexport interface CalendarDayProps {\n date: Date // clock time\n focused?: boolean\n onSelect: (date?: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n dateStyles?: React.CSSProperties\n disabled?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {\n date,\n focused,\n isCurrentMonth,\n isToday,\n onSelect,\n selected,\n disabled,\n dateStyles = {},\n } = props\n\n const handleClick = useCallback(() => {\n if (selected) {\n onSelect(undefined)\n } else {\n onSelect(date)\n }\n }, [date, onSelect, selected])\n\n let tone: CardTone\n if (isToday || selected) {\n tone = 'primary'\n } else if (isWeekend(date)) {\n // tone = 'transparent'\n tone = 'default'\n } else {\n tone = 'default'\n }\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n data-testid={isToday ? 'day-tile-today' : `day-tile-${date.getDate()}-${date.getMonth()}`}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n paddingX={3}\n paddingY={4}\n radius={2}\n selected={selected}\n style={{position: 'relative'}}\n tone={tone}\n disabled={disabled}\n >\n <Text\n size={1}\n style={{\n opacity: !selected && !isCurrentMonth ? 0.35 : 1,\n textAlign: 'center',\n ...dateStyles,\n }}\n >\n {selected ? <CloseIcon /> : date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {Box, Card, Grid, Label} from '@sanity/ui'\nimport {isSameDay} from 'date-fns/isSameDay'\nimport {isSameMonth} from 'date-fns/isSameMonth'\n\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {DEFAULT_WEEK_DAY_NAMES} from '../../DateInputs/calendar/constants'\nimport {useWeeksOfMonth} from '../../DateInputs/calendar/utils'\nimport {CalendarDay as DefaultCalendarDay} from './CalendarDay'\nimport {type CalendarProps} from './CalendarFilter'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date?: Date) => void\n hidden?: boolean\n renderCalendarDay?: CalendarProps['renderCalendarDay']\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n const {date, renderCalendarDay, hidden, disabled, timeZoneScope} = props\n const {getCurrentZoneDate} = useTimeZone(timeZoneScope)\n const CalendarDay = renderCalendarDay || DefaultCalendarDay\n const weeksOfMonth = useWeeksOfMonth(date)\n\n return (\n <Box aria-hidden={hidden || false} data-ui=\"CalendarMonth\">\n <Grid\n style={{\n gap: '1px',\n gridTemplateColumns: 'repeat(7, 1fr)',\n }}\n >\n {/* Header */}\n {DEFAULT_WEEK_DAY_NAMES.map((weekday) => (\n <Card key={weekday} paddingY={3}>\n <Label size={1} style={{textAlign: 'center'}}>\n {weekday.slice(0, 1)}\n </Label>\n </Card>\n ))}\n\n {weeksOfMonth.map((week, weekIdx) =>\n week.days.map((dayDate, dayIdx) => {\n const focused = props.focused && isSameDay(dayDate, props.focused)\n const selected = props.selected && isSameDay(dayDate, props.selected)\n const isToday = isSameDay(dayDate, getCurrentZoneDate())\n const isCurrentMonth = isSameMonth(dayDate, props.focused || date)\n\n return (\n <CalendarDay\n key={`${weekIdx}-${dayIdx}`}\n date={dayDate}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n onSelect={props.onSelect}\n selected={selected}\n disabled={disabled}\n />\n )\n }),\n )}\n </Grid>\n </Box>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {addDays} from 'date-fns/addDays'\nimport {addMonths} from 'date-fns/addMonths'\nimport {setHours} from 'date-fns/setHours'\nimport {setMinutes} from 'date-fns/setMinutes'\nimport {\n type ComponentProps,\n type ForwardedRef,\n forwardRef,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {ARROW_KEYS, DEFAULT_MONTH_NAMES} from '../../DateInputs/calendar/constants'\nimport {type CalendarDayProps} from './CalendarDay'\nimport {CalendarMonth} from './CalendarMonth'\n\nexport type CalendarProps = Omit<ComponentProps<'div'>, 'onSelect'> & {\n focusedDate?: Date\n onSelect: (date?: Date) => void\n onFocusedDateChange?: (index: Date) => void\n selectedDate?: Date\n renderCalendarDay?: (props: CalendarDayProps) => React.ReactNode\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const CalendarFilter = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n focusedDate: providedFocusedDate,\n onFocusedDateChange: handleOnFocusedDateChange,\n onSelect,\n selectedDate,\n renderCalendarDay,\n timeZoneScope,\n ...restProps\n } = props\n const [_focusedDate, _setFocusedDate] = useState<Date>(new Date())\n const {t: tCore} = useTranslation()\n const {zoneDateToUtc} = useTimeZone(timeZoneScope)\n\n const focusedDate = providedFocusedDate || _focusedDate\n\n const onFocusedDateChange = useCallback(\n (date: Date) => {\n if (handleOnFocusedDateChange && providedFocusedDate) {\n handleOnFocusedDateChange(date)\n } else {\n _setFocusedDate(date)\n }\n },\n [handleOnFocusedDateChange, providedFocusedDate],\n )\n\n const setFocusedDate = useCallback(\n (date: Date) => {\n onFocusedDateChange(zoneDateToUtc(date))\n },\n [onFocusedDateChange, zoneDateToUtc],\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate],\n )\n\n const handleDateChange = useCallback(\n (date?: Date) => {\n if (date) {\n const targetDate = zoneDateToUtc(\n setMinutes(setHours(date, date.getHours()), date.getMinutes()),\n )\n onSelect(targetDate)\n onFocusedDateChange(targetDate)\n } else {\n onSelect(undefined)\n }\n },\n [onSelect, zoneDateToUtc, onFocusedDateChange],\n )\n\n const ref = useRef<HTMLDivElement | null>(null)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.currentTarget.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7)))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7)))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1)))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1)))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate, zoneDateToUtc],\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]',\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n // Select AND focus current date when 'today' is pressed\n const handleNowClick = useCallback(() => {\n const now = new Date()\n onSelect(now)\n onFocusedDateChange(now)\n }, [onSelect, onFocusedDateChange])\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Month + Year header */}\n <Flex\n align=\"center\"\n paddingLeft={4}\n style={{\n borderBottom: '1px solid var(--card-border-color)',\n minHeight: `55px`,\n position: 'sticky',\n top: 0,\n }}\n >\n <Flex align=\"center\" flex={1} justify=\"space-between\">\n <Text weight=\"medium\" size={1}>\n {DEFAULT_MONTH_NAMES[focusedDate?.getMonth()]} {focusedDate?.getFullYear()}\n </Text>\n <Flex paddingRight={3} gap={2}>\n <TooltipDelayGroupProvider>\n <Button\n icon={ChevronLeftIcon}\n mode=\"bleed\"\n onClick={handlePrevMonthClick}\n tooltipProps={{content: 'Previous month'}}\n disabled={restProps.disabled}\n />\n <Button\n icon={ChevronRightIcon}\n mode=\"bleed\"\n onClick={handleNextMonthClick}\n tooltipProps={{content: 'Next month'}}\n disabled={restProps.disabled}\n />\n </TooltipDelayGroupProvider>\n </Flex>\n </Flex>\n </Flex>\n\n {/* Select date */}\n <Box>\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n overflow=\"hidden\"\n paddingBottom={1}\n paddingX={1}\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={providedFocusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n renderCalendarDay={renderCalendarDay}\n disabled={restProps.disabled}\n timeZoneScope={timeZoneScope}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Today button */}\n <Box flex={1} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n <Button\n disabled={restProps.disabled}\n mode=\"bleed\"\n onClick={handleNowClick}\n width=\"fill\"\n aria-label={tCore('calendar.action.go-to-today-aria-label')}\n text={tCore('calendar.action.go-to-today')}\n />\n </Box>\n </Box>\n )\n})\n"],"mappings":"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"}
@@ -8,19 +8,19 @@ import { measureElement, useVirtualizer } from "@tanstack/react-virtual";
8
8
  import throttle from "lodash-es/throttle.js";
9
9
  const LIST_ITEM_INTERACTIVE_SELECTOR = "a,button", FocusOverlayDiv = /* @__PURE__ */ styled.div.withConfig({
10
10
  displayName: "FocusOverlayDiv",
11
- componentId: "sc-y8xpy1-0"
11
+ componentId: "sc-nt8nl4-0"
12
12
  })(({ theme, offset }) => css`bottom:${-offset}px;border-radius:${rem(theme.sanity.radius[1])};left:${-offset}px;pointer-events:none;position:absolute;right:${-offset}px;top:${-offset}px;z-index:2;${VirtualListBox}:focus-visible &{box-shadow:${focusRingStyle({
13
13
  base: theme.sanity.color.base,
14
14
  focusRing: theme.sanity.focusRing
15
15
  })};}`), PointerOverlayDiv = styled.div.withConfig({
16
16
  displayName: "PointerOverlayDiv",
17
- componentId: "sc-y8xpy1-1"
17
+ componentId: "sc-nt8nl4-1"
18
18
  })`bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:1;@media (hover:hover){&[data-enabled='true']{display:block;}}`, VirtualListBox = styled(Box).withConfig({
19
19
  displayName: "VirtualListBox",
20
- componentId: "sc-y8xpy1-2"
20
+ componentId: "sc-nt8nl4-2"
21
21
  })`height:100%;outline:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;width:100%;`, VirtualListChildBox = styled(Box).attrs(({ $height }) => ({ style: { height: `${$height}px` } })).withConfig({
22
22
  displayName: "VirtualListChildBox",
23
- componentId: "sc-y8xpy1-3"
23
+ componentId: "sc-nt8nl4-3"
24
24
  })`position:relative;width:100%;`, CommandList = memo(forwardRef(function CommandList({ activeItemDataAttr = "data-active", ariaLabel, ariaMultiselectable = !1, autoFocus, canReceiveFocus, fixedHeight, focusRingOffset = 0, getItemDisabled, getItemKey, getItemSelected, initialIndex, initialScrollAlign = "start", inputElement, itemHeight, items, onEndReached, onEndReachedIndexOffset = 0, onlyShowSelectionWhenActive, overscan, renderItem, testId, wrapAround = !0, ...responsivePaddingProps }, ref) {
25
25
  let isMountedRef = useRef(!1), [commandListId] = useState(useId()), activeIndexRef = useRef(initialIndex ?? 0), [childContainerElement, setChildContainerElement] = useState(null), [hovered, setHovered] = useState(!1), [pointerOverlayElement, setPointerOverlayElement] = useState(null), [virtualListElement, setVirtualListElement] = useState(null), handleChange = useCallback((v) => {
26
26
  if (!onEndReached) return;
@@ -330,4 +330,4 @@ function measureVisibleElement(element, entry, instance) {
330
330
  }
331
331
  export { CommandList as t };
332
332
 
333
- //# sourceMappingURL=CommandList-D5cOafb5.js.map
333
+ //# sourceMappingURL=CommandList-CjmwJGX8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandList-CjmwJGX8.js","names":["Box","rem","Stack","measureElement","ScrollToOptions","useVirtualizer","Virtualizer","throttle","cloneElement","forwardRef","Fragment","isValidElement","memo","useCallback","useEffect","useId","useImperativeHandle","useMemo","useRef","useState","css","styled","FIXME","focusRingStyle","CommandListElementType","CommandListGetItemDisabledCallback","CommandListGetItemSelectedCallback","CommandListHandle","CommandListProps","LIST_ITEM_DATA_ATTR_ACTIVE","LIST_ITEM_INTERACTIVE_SELECTOR","FocusOverlayDiv","div","offset","theme","sanity","radius","VirtualListBox","base","color","focusRing","PointerOverlayDiv","VirtualListChildBoxProps","$height","VirtualListChildBox","attrs","style","height","CommandListComponent","CommandList","activeItemDataAttr","ariaLabel","ariaMultiselectable","autoFocus","canReceiveFocus","fixedHeight","focusRingOffset","getItemDisabled","getItemKey","getItemSelected","initialIndex","initialScrollAlign","inputElement","itemHeight","items","onEndReached","onEndReachedIndexOffset","onlyShowSelectionWhenActive","overscan","renderItem","testId","wrapAround","responsivePaddingProps","ref","isMountedRef","commandListId","activeIndexRef","childContainerElement","setChildContainerElement","HTMLElement","hovered","setHovered","pointerOverlayElement","setPointerOverlayElement","HTMLDivElement","virtualListElement","setVirtualListElement","handleChange","v","Element","lastItem","getVirtualItems","reverse","reachedEnd","index","length","current","virtualizer","count","getScrollElement","estimateSize","measureVisibleElement","onChange","itemIndices","getItemIndicies","activeItemCount","filter","disabled","enableChildContainerPointerEvents","enabled","setAttribute","toString","getChildDescendantId","getCommandListChildrenId","showChildrenActiveState","hasFocus","some","el","document","activeElement","childElements","Array","from","children","forEach","child","virtualIndex","Number","dataset","targetIndex","activeIndex","querySelector","toggleAttribute","hideChildrenActiveState","refreshChildrenActiveStateThrottled","handleUpdateActiveDescendant","removeAttribute","handleGetTopIndex","childContainerParentElement","parentElement","getBoundingClientRect","top","getVirtualItemForOffset","setActiveIndex","scrollAlign","scrollIntoView","virtualListIndex","findIndex","i","scrollToIndex","align","selectAdjacentItemIndex","direction","nextIndex","lastIndex","wrapAroundIndex","focusElement","type","focus","focusInputElement","focusListElement","handleChildMouseEnter","handleFocus","handleKeyDown","event","KeyboardEvent","key","preventDefault","currentElement","find","clickableElement","click","handleKeyDownInput","handleKeyDownList","handleVirtualListMouseEnter","handleVirtualListMouseLeave","getTopIndex","handleMouseEvent","addEventListener","passive","removeEventListener","mutationObserver","MutationObserver","observe","childList","subtree","disconnect","rootTabIndex","getTotalSize","map","virtualRow","selected","itemToRender","React","JSX","clonedItem","tabIndex","undefined","size","start","displayName","CommandListItemComponent","CommandListItem","props","forwardedRef","$","_c","virtualRowStart","t0","onMouseEnter","t1","activeAriaAttributes","t2","t3","flex","left","position","const","transform","width","t4","reduce","acc","_","element","entry","ResizeObserverEntry","instance","measuredSize","scrollElement","isHidden","offsetWidth","offsetHeight","indexFromElement","cachedSize","itemSizeCache","get","options"],"sources":["../src/core/components/commandList/CommandList.tsx"],"sourcesContent":["import {Box, rem, Stack} from '@sanity/ui'\nimport {\n measureElement,\n type ScrollToOptions,\n useVirtualizer,\n type Virtualizer,\n} from '@tanstack/react-virtual'\nimport throttle from 'lodash-es/throttle.js'\nimport {\n cloneElement,\n forwardRef,\n Fragment,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {type FIXME} from '../../FIXME'\nimport {focusRingStyle} from '../../form/components/formField/styles'\nimport {\n type CommandListElementType,\n type CommandListGetItemDisabledCallback,\n type CommandListGetItemSelectedCallback,\n type CommandListHandle,\n type CommandListProps,\n} from './types'\n\n// Data attribute to assign to the current active virtual list element\nconst LIST_ITEM_DATA_ATTR_ACTIVE = 'data-active'\n// Selector to find the first interactive element in the virtual list element\nconst LIST_ITEM_INTERACTIVE_SELECTOR = 'a,button'\n\n/**\n * Conditionally render a focus ring overlay over the command list, with adjustable offset\n */\nconst FocusOverlayDiv = styled.div<{offset: number}>(({theme, offset}) => {\n return css`\n bottom: ${-offset}px;\n border-radius: ${rem(theme.sanity.radius[1]) /* oxlint-disable-line no-deprecated -- will fix in follow up PR */};\n left: ${-offset}px;\n pointer-events: none;\n position: absolute;\n right: ${-offset}px;\n top: ${-offset}px;\n z-index: 2;\n\n ${VirtualListBox}:focus-visible & {\n box-shadow: ${focusRingStyle({\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n base: theme.sanity.color.base,\n // oxlint-disable-next-line no-deprecated -- will fix in follow up PR\n focusRing: theme.sanity.focusRing,\n })};\n }\n `\n})\n\n/*\n * Conditionally appears over command list items to cancel existing :hover states for all child elements.\n * It should only appear if hover capabilities are available (not on touch devices)\n */\nconst PointerOverlayDiv = styled.div`\n bottom: 0;\n display: none;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1;\n\n @media (hover: hover) {\n &[data-enabled='true'] {\n display: block;\n }\n }\n`\n\nconst VirtualListBox = styled(Box)`\n height: 100%;\n outline: none;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n width: 100%;\n`\n\ntype VirtualListChildBoxProps = {\n $height: number\n}\nconst VirtualListChildBox = styled(Box) //\n .attrs<VirtualListChildBoxProps>(({$height}) => ({\n style: {height: `${$height}px`},\n }))<VirtualListChildBoxProps>`\n position: relative;\n width: 100%;\n`\n\nconst CommandListComponent = forwardRef<CommandListHandle, CommandListProps>(function CommandList(\n {\n activeItemDataAttr = LIST_ITEM_DATA_ATTR_ACTIVE,\n ariaLabel,\n ariaMultiselectable = false,\n autoFocus,\n canReceiveFocus,\n fixedHeight,\n focusRingOffset = 0,\n getItemDisabled,\n getItemKey,\n getItemSelected,\n initialIndex,\n initialScrollAlign = 'start',\n inputElement,\n itemHeight,\n items,\n onEndReached,\n onEndReachedIndexOffset = 0,\n onlyShowSelectionWhenActive,\n overscan,\n renderItem,\n testId,\n wrapAround = true,\n ...responsivePaddingProps\n },\n ref,\n) {\n const isMountedRef = useRef(false)\n const [commandListId] = useState(useId())\n const activeIndexRef = useRef(initialIndex ?? 0)\n\n const [childContainerElement, setChildContainerElement] = useState<HTMLElement | null>(null)\n const [hovered, setHovered] = useState(false)\n const [pointerOverlayElement, setPointerOverlayElement] = useState<HTMLDivElement | null>(null)\n const [virtualListElement, setVirtualListElement] = useState<HTMLElement | null>(null)\n\n const handleChange = useCallback(\n (v: Virtualizer<HTMLElement, Element>) => {\n if (!onEndReached) return\n\n const [lastItem] = [...v.getVirtualItems()].reverse()\n\n if (!lastItem) return\n\n const reachedEnd = lastItem.index >= items.length - onEndReachedIndexOffset - 1\n\n // Make sure we only trigger `onEndReached` after initial mount\n if (reachedEnd && isMountedRef.current) {\n onEndReached()\n }\n },\n [onEndReached, items.length, onEndReachedIndexOffset],\n )\n\n // This will trigger a re-render whenever its internal state changes\n const virtualizer = useVirtualizer({\n count: items.length,\n getItemKey,\n getScrollElement: () => virtualListElement,\n estimateSize: () => itemHeight,\n measureElement: measureVisibleElement,\n onChange: handleChange,\n overscan,\n })\n\n /**\n * Return an array of values with `activeIndex`, `disabled` and `selected` defined, applying custom\n * mapping functions (`getItemDisabled`, `getItemSelected`) if provided. E.g.:\n *\n * ```\n * [\n * { activeIndex: 0 disabled: false, selected: false },\n * { activeIndex: null, disabled: true, selected: false },\n * { activeIndex: 1, disabled: false, selected: true }\n * ]\n * ```\n *\n * Disabled virtual list items are ignored when creating aria attributes.\n */\n const itemIndices = useMemo(\n () => getItemIndicies(items, getItemDisabled, getItemSelected),\n [getItemDisabled, getItemSelected, items],\n )\n\n const activeItemCount = useMemo(\n () => itemIndices.filter((v) => !v.disabled).length,\n [itemIndices],\n )\n\n /**\n * Toggle pointer overlay element which will kill existing hover states\n */\n const enableChildContainerPointerEvents = useCallback(\n (enabled: boolean) =>\n pointerOverlayElement?.setAttribute('data-enabled', (!enabled).toString()),\n [pointerOverlayElement],\n )\n\n const getChildDescendantId = useCallback(\n (index: number) => `${commandListId}-item-${index}`,\n [commandListId],\n )\n\n const getCommandListChildrenId = useCallback(() => `${commandListId}-children`, [commandListId])\n\n /**\n * Iterate through all virtual list children and apply the active data-attribute on the selected index.\n * Don't apply styles when `hideSelectionOnMouseLeave` is true and the command list is neither focused or hovered.\n */\n const showChildrenActiveState = useCallback(() => {\n const hasFocus = [inputElement, virtualListElement].some((el) => document.activeElement === el)\n if (onlyShowSelectionWhenActive && !hasFocus && !hovered) {\n return\n }\n\n const childElements = Array.from(childContainerElement?.children || []) as HTMLElement[]\n childElements?.forEach((child) => {\n const virtualIndex = Number(child.dataset?.index)\n const targetIndex = itemIndices[virtualIndex]?.activeIndex\n child\n .querySelector(LIST_ITEM_INTERACTIVE_SELECTOR)\n ?.toggleAttribute(activeItemDataAttr, targetIndex === activeIndexRef.current)\n })\n }, [\n activeItemDataAttr,\n childContainerElement?.children,\n hovered,\n inputElement,\n itemIndices,\n onlyShowSelectionWhenActive,\n virtualListElement,\n ])\n\n /**\n * Iterate through all virtual list children and clear the active data-attribute.\n */\n const hideChildrenActiveState = useCallback(() => {\n const childElements = Array.from(childContainerElement?.children || [])\n childElements?.forEach((child) => {\n child\n .querySelector(LIST_ITEM_INTERACTIVE_SELECTOR)\n ?.toggleAttribute(activeItemDataAttr, false)\n })\n }, [activeItemDataAttr, childContainerElement?.children])\n\n /**\n * Throttled version of `showChildrenActiveState`, used when DOM mutations are detected in virtual lists\n */\n const refreshChildrenActiveStateThrottled = useMemo(() => {\n return throttle(showChildrenActiveState, 200)\n }, [showChildrenActiveState])\n\n /**\n * Assign active descendant on input element (if present)\n */\n const handleUpdateActiveDescendant = useCallback(() => {\n const activeIndex = activeIndexRef?.current\n if (items.length > 0) {\n inputElement?.setAttribute('aria-activedescendant', getChildDescendantId(activeIndex))\n virtualListElement?.setAttribute('aria-activedescendant', getChildDescendantId(activeIndex))\n } else {\n inputElement?.removeAttribute('aria-activedescendant')\n virtualListElement?.removeAttribute('aria-activedescendant')\n }\n }, [getChildDescendantId, inputElement, items.length, virtualListElement])\n\n /**\n * Obtain index of the top most visible element\n */\n const handleGetTopIndex = useCallback(() => {\n const childContainerParentElement = childContainerElement?.parentElement\n if (childContainerElement && childContainerParentElement) {\n const offset =\n childContainerParentElement.getBoundingClientRect().top -\n childContainerElement.getBoundingClientRect().top\n return virtualizer.getVirtualItemForOffset(offset)?.index ?? -1\n }\n return -1\n }, [childContainerElement, virtualizer])\n\n /**\n * Mark an index as active, re-assign aria attrs on all children and optionally scroll into view\n */\n const setActiveIndex = useCallback(\n ({\n index,\n scrollAlign,\n scrollIntoView = true,\n }: {\n index: number\n scrollAlign?: ScrollToOptions['align']\n scrollIntoView?: boolean\n }) => {\n activeIndexRef.current = index\n handleUpdateActiveDescendant()\n showChildrenActiveState()\n\n if (scrollIntoView) {\n const virtualListIndex = itemIndices.findIndex((i) => i.activeIndex === index)\n if (virtualListIndex > -1) {\n virtualizer.scrollToIndex(virtualListIndex, scrollAlign ? {align: scrollAlign} : {})\n }\n }\n },\n [handleUpdateActiveDescendant, itemIndices, showChildrenActiveState, virtualizer],\n )\n\n /**\n * Select adjacent virtual item index and scroll into view with `react-virtual`\n */\n const selectAdjacentItemIndex = useCallback(\n (direction: 'previous' | 'next') => {\n let nextIndex = -1\n const lastIndex = activeItemCount - 1\n\n if (direction === 'next') {\n const wrapAroundIndex = wrapAround ? 0 : lastIndex\n nextIndex =\n activeIndexRef.current < activeItemCount - 1\n ? activeIndexRef.current + 1\n : wrapAroundIndex\n }\n if (direction === 'previous') {\n const wrapAroundIndex = wrapAround ? lastIndex : 0\n nextIndex = activeIndexRef.current > 0 ? activeIndexRef.current - 1 : wrapAroundIndex\n }\n setActiveIndex({index: nextIndex, scrollIntoView: true})\n enableChildContainerPointerEvents(false)\n },\n [activeItemCount, enableChildContainerPointerEvents, setActiveIndex, wrapAround],\n )\n\n const focusElement = useCallback(\n (type: CommandListElementType) => {\n switch (type) {\n case 'input':\n inputElement?.focus()\n break\n case 'list':\n virtualListElement?.focus()\n break\n default:\n break\n }\n },\n [inputElement, virtualListElement],\n )\n\n const focusInputElement = useCallback(() => {\n inputElement?.focus()\n }, [inputElement])\n\n const focusListElement = useCallback(() => {\n virtualListElement?.focus()\n }, [virtualListElement])\n\n /**\n * Mark hovered child item as active\n */\n const handleChildMouseEnter = useCallback(\n (index: number) => () => {\n setActiveIndex({index, scrollIntoView: false})\n },\n [setActiveIndex],\n )\n\n const handleFocus = useCallback(() => {\n showChildrenActiveState()\n }, [showChildrenActiveState])\n\n /**\n * Handle keyboard events:\n * - Up/down arrow: scroll to adjacent items\n * - Enter: trigger click events on the current active element\n */\n const handleKeyDown = useCallback(\n (type: CommandListElementType) => (event: KeyboardEvent) => {\n const childElements = Array.from(childContainerElement?.children || []) as HTMLElement[]\n if (!childElements.length) {\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n focusElement(type)\n selectAdjacentItemIndex('next')\n }\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n focusElement(type)\n selectAdjacentItemIndex('previous')\n }\n\n if (event.key === 'Enter') {\n event.preventDefault()\n focusElement(type)\n const currentElement = childElements.find(\n (el) =>\n Number(el.dataset.index) ===\n itemIndices.findIndex((i) => i.activeIndex === activeIndexRef.current),\n )\n\n if (currentElement) {\n const clickableElement = currentElement?.querySelector<HTMLElement>(\n LIST_ITEM_INTERACTIVE_SELECTOR,\n )\n clickableElement?.click()\n }\n }\n },\n [childContainerElement?.children, focusElement, itemIndices, selectAdjacentItemIndex],\n )\n const handleKeyDownInput = useCallback(\n (event: KeyboardEvent) => handleKeyDown('input')(event),\n [handleKeyDown],\n )\n const handleKeyDownList = useCallback(\n (event: KeyboardEvent) => handleKeyDown('list')(event),\n [handleKeyDown],\n )\n\n const handleVirtualListMouseEnter = useCallback(() => {\n if (onlyShowSelectionWhenActive) {\n showChildrenActiveState()\n setHovered(true)\n }\n }, [onlyShowSelectionWhenActive, showChildrenActiveState])\n const handleVirtualListMouseLeave = useCallback(() => {\n if (onlyShowSelectionWhenActive) {\n hideChildrenActiveState()\n setHovered(false)\n }\n }, [hideChildrenActiveState, onlyShowSelectionWhenActive])\n\n useImperativeHandle(ref, () => {\n return {\n focusInputElement() {\n focusInputElement()\n },\n focusListElement() {\n focusListElement()\n },\n getTopIndex() {\n return handleGetTopIndex()\n },\n scrollToIndex(index: number) {\n setActiveIndex({index})\n enableChildContainerPointerEvents(true)\n },\n }\n }, [\n enableChildContainerPointerEvents,\n focusInputElement,\n focusListElement,\n handleGetTopIndex,\n setActiveIndex,\n ])\n\n /**\n * Optionally set active index (and align) on mount only\n */\n useEffect(() => {\n if (typeof initialIndex !== 'undefined' && !isMountedRef.current) {\n setActiveIndex({\n index: initialIndex,\n scrollAlign: initialScrollAlign,\n scrollIntoView: true,\n })\n }\n isMountedRef.current = true\n }, [initialIndex, initialScrollAlign, onlyShowSelectionWhenActive, setActiveIndex])\n\n /**\n * Re-enable child pointer events on any mousemove / wheel event\n */\n useEffect(() => {\n function handleMouseEvent() {\n enableChildContainerPointerEvents(true)\n }\n virtualListElement?.addEventListener('mousemove', handleMouseEvent)\n virtualListElement?.addEventListener('wheel', handleMouseEvent, {passive: true})\n return () => {\n virtualListElement?.removeEventListener('mousemove', handleMouseEvent)\n virtualListElement?.removeEventListener('wheel', handleMouseEvent)\n }\n }, [enableChildContainerPointerEvents, virtualListElement])\n\n /**\n * Listen to keyboard / blur / focus events on both input element (if present) and the virtual list element.\n */\n useEffect(() => {\n inputElement?.addEventListener('focus', handleFocus)\n inputElement?.addEventListener('keydown', handleKeyDownInput)\n virtualListElement?.addEventListener('focus', handleFocus)\n virtualListElement?.addEventListener('keydown', handleKeyDownList)\n return () => {\n inputElement?.removeEventListener('focus', handleFocus)\n inputElement?.removeEventListener('keydown', handleKeyDownInput)\n virtualListElement?.removeEventListener('focus', handleFocus)\n virtualListElement?.removeEventListener('keydown', handleKeyDownList)\n }\n }, [\n canReceiveFocus,\n handleFocus,\n handleKeyDown,\n handleKeyDownInput,\n handleKeyDownList,\n hideChildrenActiveState,\n inputElement,\n showChildrenActiveState,\n virtualListElement,\n ])\n\n /**\n * Refresh selected state when item values change (as a result of filtering).\n * This is to ensure that we correctly clear aria-activedescendant attrs if the filtered array is empty.\n */\n useEffect(() => {\n handleUpdateActiveDescendant()\n }, [handleUpdateActiveDescendant, items])\n\n /**\n * On DOM mutations, re-assign active descendant on input element (if present) and update active state on all children.\n *\n * Useful since virtual lists will constantly mutate the DOM on scroll, and we want to ensure that\n * new elements coming into view are rendered with the correct selected state.\n *\n * An alternative to using MutationObserver is hooking into the `onChange` callback that `react-virtual` provides, though\n * this changes on _every_ internal state change.\n */\n useEffect(() => {\n const mutationObserver = new MutationObserver(refreshChildrenActiveStateThrottled)\n\n if (childContainerElement) {\n mutationObserver.observe(childContainerElement, {\n childList: true,\n subtree: true,\n })\n }\n\n return () => {\n mutationObserver.disconnect()\n }\n }, [childContainerElement, refreshChildrenActiveStateThrottled])\n\n /**\n * Apply input aria attributes\n */\n useEffect(() => {\n inputElement?.setAttribute('aria-autocomplete', 'list')\n inputElement?.setAttribute('aria-expanded', 'true')\n inputElement?.setAttribute('aria-controls', getCommandListChildrenId())\n inputElement?.setAttribute('role', 'combobox')\n }, [getCommandListChildrenId, inputElement])\n\n /**\n * Focus input / virtual list element on mount\n */\n useEffect(() => {\n if (autoFocus) {\n focusElement(autoFocus)\n }\n }, [autoFocus, canReceiveFocus, focusListElement, focusInputElement, focusElement])\n\n const rootTabIndex = canReceiveFocus ? 0 : -1\n\n return (\n <VirtualListBox\n id={getCommandListChildrenId()}\n onMouseEnter={handleVirtualListMouseEnter}\n onMouseLeave={handleVirtualListMouseLeave}\n ref={setVirtualListElement}\n sizing=\"border\"\n tabIndex={rootTabIndex}\n data-testid={testId}\n {...responsivePaddingProps}\n >\n {canReceiveFocus && <FocusOverlayDiv offset={focusRingOffset} />}\n <PointerOverlayDiv aria-hidden=\"true\" data-enabled=\"false\" ref={setPointerOverlayElement} />\n {virtualizer && (\n <VirtualListChildBox\n forwardedAs=\"ul\"\n $height={virtualizer.getTotalSize()}\n aria-label={ariaLabel}\n aria-multiselectable={ariaMultiselectable}\n flex={1}\n ref={setChildContainerElement}\n role=\"listbox\"\n >\n {virtualizer.getVirtualItems().map((virtualRow) => {\n const virtualIndex = virtualRow.index // visible index in the DOM\n const {activeIndex, disabled, selected} = itemIndices[virtualIndex]\n\n const itemToRender = renderItem(items[virtualIndex], {\n activeIndex,\n disabled,\n selected,\n virtualIndex,\n }) as React.JSX.Element\n\n // @TODO can we avoid using cloneElement here?\n const clonedItem =\n isValidElement(itemToRender) && itemToRender.type != Fragment\n ? cloneElement(itemToRender, {\n // @ts-expect-error @TODO shift the responsibility of setting tabIndex to the consumer, so we can remove the need to clone\n tabIndex: -1,\n })\n : itemToRender\n\n return (\n <CommandListItem\n key={virtualRow.key}\n ref={fixedHeight ? undefined : virtualizer.measureElement}\n activeIndex={activeIndex}\n activeItemCount={activeItemCount}\n ariaMultiselectable={ariaMultiselectable}\n disabled={disabled}\n fixedHeight={fixedHeight ? `${virtualRow.size}px` : undefined}\n getChildDescendantId={getChildDescendantId}\n handleChildMouseEnter={handleChildMouseEnter}\n selected={selected}\n virtualIndex={virtualIndex}\n virtualRowStart={virtualRow.start}\n >\n {clonedItem}\n </CommandListItem>\n )\n })}\n </VirtualListChildBox>\n )}\n </VirtualListBox>\n )\n})\n\n/**\n * Renders a Command List with support for the following:\n *\n * - Keyboard navigation (↑ / ↓ / ENTER) to children with a specified container (`childContainerRef`)\n * - Focus redirection when clicking child elements\n * - Pointer blocking when navigating with arrow keys (to ensure that only one active state is visible at any given time)\n * - ARIA attributes to define a `combobox` input that controls a separate `listbox`\n *\n * @internal\n */\nexport const CommandList = memo(CommandListComponent)\nCommandList.displayName = 'Memo(ForwardRef(CommandList))'\n\nconst CommandListItemComponent = forwardRef(function CommandListItem(\n props: {\n children: React.ReactNode\n activeIndex: number | null\n activeItemCount: number\n ariaMultiselectable: boolean\n disabled: boolean\n fixedHeight: `${number}px` | undefined\n getChildDescendantId: (index: number) => string\n handleChildMouseEnter: (index: number) => () => void\n selected: boolean\n virtualIndex: number\n virtualRowStart: number\n },\n forwardedRef: React.ForwardedRef<HTMLLIElement>,\n) {\n const {\n children,\n activeIndex,\n activeItemCount,\n ariaMultiselectable,\n disabled,\n fixedHeight,\n getChildDescendantId,\n handleChildMouseEnter,\n selected,\n virtualIndex,\n virtualRowStart,\n } = props\n\n const onMouseEnter = useMemo(\n () =>\n typeof activeIndex === 'number' && !disabled ? handleChildMouseEnter(activeIndex) : undefined,\n [activeIndex, disabled, handleChildMouseEnter],\n )\n const activeAriaAttributes = useMemo(\n () =>\n typeof activeIndex === 'number' && !disabled\n ? {\n 'aria-posinset': activeIndex + 1,\n ...(ariaMultiselectable ? {'aria-selected': selected.toString()} : {}),\n 'aria-setsize': activeItemCount,\n 'id': getChildDescendantId(activeIndex),\n 'role': 'option',\n }\n : {},\n [activeIndex, activeItemCount, ariaMultiselectable, disabled, getChildDescendantId, selected],\n )\n\n const style = useMemo(\n () => ({\n flex: 1,\n height: fixedHeight,\n left: 0,\n position: 'absolute' as const,\n top: 0,\n transform: `translateY(${virtualRowStart}px)`,\n width: '100%',\n }),\n [fixedHeight, virtualRowStart],\n )\n\n return (\n <Stack\n as=\"li\"\n data-index={virtualIndex}\n ref={forwardedRef}\n style={style}\n tabIndex={-1}\n {...activeAriaAttributes}\n onMouseEnter={onMouseEnter}\n >\n {children}\n </Stack>\n )\n})\n\nconst CommandListItem = memo(CommandListItemComponent)\nCommandListItem.displayName = 'Memo(ForwardRef(CommandListItem))'\n\nfunction getItemIndicies(\n items: FIXME[],\n getItemDisabled: CommandListGetItemDisabledCallback | undefined,\n getItemSelected: CommandListGetItemSelectedCallback | undefined,\n) {\n let i = -1\n return items.reduce<\n {\n activeIndex: number | null\n selected: boolean\n disabled: boolean\n }[]\n >((acc, _, index) => {\n const disabled = getItemDisabled?.(index) ?? false\n const selected = getItemSelected?.(index) ?? false\n if (!disabled) {\n i += 1\n }\n acc[index] = {\n activeIndex: disabled ? null : i,\n disabled,\n selected,\n }\n return acc\n }, [])\n}\n\n/**\n * Retrieve the element's measured dimensions if its scroll element is visible\n * or its measured dimensions are greater than zero, otherwise retrieve its\n * cached or estimated dimensions.\n *\n * This prevents the element's lack of dimensions when its scroll element is\n * hidden from poisoning its virtualization state.\n */\nfunction measureVisibleElement(\n element: Element,\n entry: ResizeObserverEntry | undefined,\n instance: Virtualizer<HTMLElement, Element>,\n): number {\n const measuredSize = measureElement(element, entry, instance)\n\n if (measuredSize > 0) {\n return measuredSize\n }\n\n const scrollElement = instance.scrollElement\n const isHidden = scrollElement?.offsetWidth === 0 || scrollElement?.offsetHeight === 0\n\n if (!isHidden) {\n return measuredSize\n }\n\n const index = instance.indexFromElement(element)\n const cachedSize = instance.itemSizeCache.get(instance.options.getItemKey(index))\n\n if (cachedSize !== undefined && cachedSize > 0) {\n return cachedSize\n }\n\n return instance.options.estimateSize(index)\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { n as CommentsEnabledProvider, r as CommentsAuthoringPathProvider, t as CommentsSelectedPathProvider } from "./CommentsSelectedPathProvider-BOK9GUqu.js";
1
+ import { n as CommentsEnabledProvider, r as CommentsAuthoringPathProvider, t as CommentsSelectedPathProvider } from "./CommentsSelectedPathProvider-DvYcXgnK.js";
2
2
  import { t as useCommentsEnabled } from "./useCommentsEnabled-BPc3788v.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -30,4 +30,4 @@ function CommentsDocumentLayoutInner(props) {
30
30
  }
31
31
  export { CommentsDocumentLayout };
32
32
 
33
- //# sourceMappingURL=CommentsDocumentLayout-B0Tc6YzF.js.map
33
+ //# sourceMappingURL=CommentsDocumentLayout-cIjOckd4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsDocumentLayout-B0Tc6YzF.js","names":["DocumentLayoutProps","CommentsAuthoringPathProvider","CommentsEnabledProvider","CommentsSelectedPathProvider","useCommentsEnabled","CommentsDocumentLayout","props","$","_c","documentId","documentType","parentContext","mode","t0","t1","CommentsDocumentLayoutInner","commentsEnabled","enabled","renderDefault"],"sources":["../src/core/comments/plugin/document-layout/CommentsDocumentLayout.tsx"],"sourcesContent":["import {type DocumentLayoutProps} from '../../../config/types'\nimport {CommentsAuthoringPathProvider} from '../../context/authoring-path/CommentsAuthoringPathProvider'\nimport {CommentsEnabledProvider} from '../../context/enabled/CommentsEnabledProvider'\nimport {CommentsSelectedPathProvider} from '../../context/selected-path/CommentsSelectedPathProvider'\nimport {useCommentsEnabled} from '../../hooks/useCommentsEnabled'\n\nexport function CommentsDocumentLayout(props: DocumentLayoutProps) {\n const {documentId, documentType} = props\n const parentContext = useCommentsEnabled()\n\n // If there is a parent context and the mode is not null, a parent provider is\n // already checking if comments are enabled. In such cases, additional wrapping\n // of the document layout in the `CommentsEnabledProvider` is unnecessary.\n // The `DocumentPane` component within the `structureTool` handles this wrapping.\n // However, as this plugin may be used in contexts outside of the `structureTool`,\n // we must check for a parent context that checks if comments are enabled and\n // conditionally apply the `CommentsEnabledProvider` wrapping if it is not present.\n if (parentContext.mode !== null) {\n return <CommentsDocumentLayoutInner {...props} />\n }\n\n return (\n <CommentsEnabledProvider documentId={documentId} documentType={documentType}>\n <CommentsDocumentLayoutInner {...props} />\n </CommentsEnabledProvider>\n )\n}\n\nfunction CommentsDocumentLayoutInner(props: DocumentLayoutProps) {\n const commentsEnabled = useCommentsEnabled()\n\n // If comments are not enabled, render the default document layout\n if (!commentsEnabled.enabled) {\n return props.renderDefault(props)\n }\n\n return (\n <CommentsSelectedPathProvider>\n <CommentsAuthoringPathProvider>{props.renderDefault(props)}</CommentsAuthoringPathProvider>\n </CommentsSelectedPathProvider>\n )\n}\n"],"mappings":";;;;AAMA,SAAOK,uBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAC,YAAAC,iBAAmCJ;CAUnC,IATsBF,mBASlBO,CAAa,CAAAC,SAAU,MAAI;EAAA,IAAAC;EACoB,OADpBN,EAAA,OAAAD,QACoBO,KAAAN,EAAA,MAA1CM,KAAA,oBAAC,6BAAD,EAA4B,GAAKP,MAAK,CAAA,GAAIC,EAAA,KAAAD,OAAAC,EAAA,KAAAM,KAA1CA;CAA0C;CAClD,IAAAA;CAAA,AAAAN,EAAA,OAAAD,QAI6CO,KAAAN,EAAA,MAA1CM,KAAA,oBAAC,6BAAD,EAA4B,GAAKP,MAAK,CAAA,GAAIC,EAAA,KAAAD,OAAAC,EAAA,KAAAM;CAAA,IAAAC;CAClB,OADkBP,EAAA,OAAAE,cAAAF,EAAA,OAAAG,gBAAAH,EAAA,OAAAM,MAD5CC,KAAA,oBAAC,yBAAD;EAAqCL;EAA0BC;EAC7DG,UAAAA;CADsB,CAAA,GAEEN,EAAA,KAAAE,YAAAF,EAAA,KAAAG,cAAAH,EAAA,KAAAM,IAAAN,EAAA,KAAAO,MAAAA,KAAAP,EAAA,IAF1BO;AAE0B;AAI9B,SAAAC,4BAAAT,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA;CAIE,IAAI,CAHoBJ,mBAGnBY,CAAe,CAAAC,SAAQ;EAAA,IAAAJ;EACO,OADPN,EAAA,OAAAD,QACOO,KAAAN,EAAA,MAA1BM,KAAAP,MAAKY,cAAeZ,KAAK,GAACC,EAAA,KAAAD,OAAAC,EAAA,KAAAM,KAA1BA;CAA0B;CAClC,IAAAA;CAAA,AAAAN,EAAA,OAAAD,QAI6DO,KAAAN,EAAA,MAA1BM,KAAAP,MAAKY,cAAeZ,KAAK,GAACC,EAAA,KAAAD,OAAAC,EAAA,KAAAM;CAAA,IAAAC;CAC7B,OAD6BP,EAAA,OAAAM,KAC7BC,KAAAP,EAAA,MAF/BO,KAAA,oBAAC,8BAAD,EAAA,UACE,oBAAC,+BAAD,EAAA,UAAgCD,GAAF,CAAA,EADH,CAAA,GAEEN,EAAA,KAAAM,IAAAN,EAAA,KAAAO,KAF/BA;AAE+B"}
1
+ {"version":3,"file":"CommentsDocumentLayout-cIjOckd4.js","names":["DocumentLayoutProps","CommentsAuthoringPathProvider","CommentsEnabledProvider","CommentsSelectedPathProvider","useCommentsEnabled","CommentsDocumentLayout","props","$","_c","documentId","documentType","parentContext","mode","t0","t1","CommentsDocumentLayoutInner","commentsEnabled","enabled","renderDefault"],"sources":["../src/core/comments/plugin/document-layout/CommentsDocumentLayout.tsx"],"sourcesContent":["import {type DocumentLayoutProps} from '../../../config/types'\nimport {CommentsAuthoringPathProvider} from '../../context/authoring-path/CommentsAuthoringPathProvider'\nimport {CommentsEnabledProvider} from '../../context/enabled/CommentsEnabledProvider'\nimport {CommentsSelectedPathProvider} from '../../context/selected-path/CommentsSelectedPathProvider'\nimport {useCommentsEnabled} from '../../hooks/useCommentsEnabled'\n\nexport function CommentsDocumentLayout(props: DocumentLayoutProps) {\n const {documentId, documentType} = props\n const parentContext = useCommentsEnabled()\n\n // If there is a parent context and the mode is not null, a parent provider is\n // already checking if comments are enabled. In such cases, additional wrapping\n // of the document layout in the `CommentsEnabledProvider` is unnecessary.\n // The `DocumentPane` component within the `structureTool` handles this wrapping.\n // However, as this plugin may be used in contexts outside of the `structureTool`,\n // we must check for a parent context that checks if comments are enabled and\n // conditionally apply the `CommentsEnabledProvider` wrapping if it is not present.\n if (parentContext.mode !== null) {\n return <CommentsDocumentLayoutInner {...props} />\n }\n\n return (\n <CommentsEnabledProvider documentId={documentId} documentType={documentType}>\n <CommentsDocumentLayoutInner {...props} />\n </CommentsEnabledProvider>\n )\n}\n\nfunction CommentsDocumentLayoutInner(props: DocumentLayoutProps) {\n const commentsEnabled = useCommentsEnabled()\n\n // If comments are not enabled, render the default document layout\n if (!commentsEnabled.enabled) {\n return props.renderDefault(props)\n }\n\n return (\n <CommentsSelectedPathProvider>\n <CommentsAuthoringPathProvider>{props.renderDefault(props)}</CommentsAuthoringPathProvider>\n </CommentsSelectedPathProvider>\n )\n}\n"],"mappings":";;;;AAMA,SAAOK,uBAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAC,YAAAC,iBAAmCJ;CAUnC,IATsBF,mBASlBO,CAAa,CAAAC,SAAU,MAAI;EAAA,IAAAC;EACoB,OADpBN,EAAA,OAAAD,QACoBO,KAAAN,EAAA,MAA1CM,KAAA,oBAAC,6BAAD,EAA4B,GAAKP,MAAK,CAAA,GAAIC,EAAA,KAAAD,OAAAC,EAAA,KAAAM,KAA1CA;CAA0C;CAClD,IAAAA;CAAA,AAAAN,EAAA,OAAAD,QAI6CO,KAAAN,EAAA,MAA1CM,KAAA,oBAAC,6BAAD,EAA4B,GAAKP,MAAK,CAAA,GAAIC,EAAA,KAAAD,OAAAC,EAAA,KAAAM;CAAA,IAAAC;CAClB,OADkBP,EAAA,OAAAE,cAAAF,EAAA,OAAAG,gBAAAH,EAAA,OAAAM,MAD5CC,KAAA,oBAAC,yBAAD;EAAqCL;EAA0BC;EAC7DG,UAAAA;CADsB,CAAA,GAEEN,EAAA,KAAAE,YAAAF,EAAA,KAAAG,cAAAH,EAAA,KAAAM,IAAAN,EAAA,KAAAO,MAAAA,KAAAP,EAAA,IAF1BO;AAE0B;AAI9B,SAAAC,4BAAAT,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA;CAIE,IAAI,CAHoBJ,mBAGnBY,CAAe,CAAAC,SAAQ;EAAA,IAAAJ;EACO,OADPN,EAAA,OAAAD,QACOO,KAAAN,EAAA,MAA1BM,KAAAP,MAAKY,cAAeZ,KAAK,GAACC,EAAA,KAAAD,OAAAC,EAAA,KAAAM,KAA1BA;CAA0B;CAClC,IAAAA;CAAA,AAAAN,EAAA,OAAAD,QAI6DO,KAAAN,EAAA,MAA1BM,KAAAP,MAAKY,cAAeZ,KAAK,GAACC,EAAA,KAAAD,OAAAC,EAAA,KAAAM;CAAA,IAAAC;CAC7B,OAD6BP,EAAA,OAAAM,KAC7BC,KAAAP,EAAA,MAF/BO,KAAA,oBAAC,8BAAD,EAAA,UACE,oBAAC,+BAAD,EAAA,UAAgCD,GAAF,CAAA,EADH,CAAA,GAEEN,EAAA,KAAAM,IAAAN,EAAA,KAAAO,KAF/BA;AAE+B"}
@@ -1,8 +1,8 @@
1
- import { r as Popover$1 } from "./ConfirmPopover-WRAOGm9W.js";
2
- import { a as Button$1, o as Tooltip$1 } from "./MenuItem-elxYOUX3.js";
3
- import { p as useCurrentUser } from "./datastores-DzbiOGPP.js";
1
+ import { r as Popover$1 } from "./ConfirmPopover-CMrDD2xD.js";
2
+ import { a as Button$1, o as Tooltip$1 } from "./MenuItem-DEAYBMOb.js";
3
+ import { p as useCurrentUser } from "./datastores-CAN9gF_N.js";
4
4
  import { t as useTranslation } from "./useTranslation-Cqs6Itwv.js";
5
- import { b as commentsLocaleNamespace, d as hasCommentMessageValue, f as isTextSelectionComment, g as applyCommentsFieldAttr, n as COMMENTS_HIGHLIGHT_HUE_KEY, o as CommentInput, p as parseCommentFieldPath, t as useComments, y as useCommentsScroll } from "./useComments-Ce2ZG1zf.js";
5
+ import { b as commentsLocaleNamespace, d as hasCommentMessageValue, f as isTextSelectionComment, g as applyCommentsFieldAttr, n as COMMENTS_HIGHLIGHT_HUE_KEY, o as CommentInput, p as parseCommentFieldPath, t as useComments, y as useCommentsScroll } from "./useComments-B4l2ZDjl.js";
6
6
  import { t as Translate } from "./Translate-B8ORyU6k.js";
7
7
  import { t as useAddonDataset } from "./useAddonDataset-BvCgByG6.js";
8
8
  import { t as useCommentsEnabled } from "./useCommentsEnabled-BPc3788v.js";
@@ -327,4 +327,4 @@ function belongsToField(fieldPath, path) {
327
327
  }
328
328
  export { CommentsField };
329
329
 
330
- //# sourceMappingURL=CommentsField-EER6ceeq.js.map
330
+ //# sourceMappingURL=CommentsField-Dc-OnqMB.js.map