@servicetitan/anvil2 3.17.0 → 3.18.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 (302) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/{AiMark-CYXbKuCA.js → AiMark-Ca7WmL-9.js} +113 -32
  3. package/dist/AiMark-Ca7WmL-9.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-CYpl0czJ.js → Alert-BOqBFMUV.js} +2 -2
  6. package/dist/{Alert-CYpl0czJ.js.map → Alert-BOqBFMUV.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-DagOuc9c.js → AnvilProvider-BVTxXzoS.js} +3 -3
  9. package/dist/{AnvilProvider-DagOuc9c.js.map → AnvilProvider-BVTxXzoS.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Breadcrumbs-C0CXs9Ma.js → Breadcrumbs-1MCqy-gU.js} +2 -2
  12. package/dist/{Breadcrumbs-C0CXs9Ma.js.map → Breadcrumbs-1MCqy-gU.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Calendar-BAIyDHX9.js → Calendar-BcsuV4Xv.js} +2 -2
  15. package/dist/{Calendar-BAIyDHX9.js.map → Calendar-BcsuV4Xv.js.map} +1 -1
  16. package/dist/{Calendar-C_NPqjx3.js → Calendar-oBRbQqnG.js} +2 -2
  17. package/dist/{Calendar-C_NPqjx3.js.map → Calendar-oBRbQqnG.js.map} +1 -1
  18. package/dist/Calendar.js +2 -2
  19. package/dist/{Checkbox-4Ow8rCbD.js → Checkbox-BCaUzwF_.js} +2 -2
  20. package/dist/{Checkbox-4Ow8rCbD.js.map → Checkbox-BCaUzwF_.js.map} +1 -1
  21. package/dist/{Checkbox-f1vutjn0.js → Checkbox-BocPrjKC.js} +4 -4
  22. package/dist/{Checkbox-f1vutjn0.js.map → Checkbox-BocPrjKC.js.map} +1 -1
  23. package/dist/Checkbox.js +1 -1
  24. package/dist/{Chip-AIF0WiNS.js → Chip-BWqgUX71.js} +11 -24
  25. package/dist/Chip-BWqgUX71.js.map +1 -0
  26. package/dist/Chip.js +1 -1
  27. package/dist/Combobox.js +1 -1
  28. package/dist/{DataTableEditColumnsDrawer-DRgJgso9.js → DataTableEditColumnsDrawer-C7OHRsJU.js} +101 -42
  29. package/dist/DataTableEditColumnsDrawer-C7OHRsJU.js.map +1 -0
  30. package/dist/DataTableEditColumnsDrawer.css +49 -33
  31. package/dist/{DateFieldRange-D9PA985Z.js → DateFieldRange-BPcsS6TW.js} +5 -5
  32. package/dist/{DateFieldRange-D9PA985Z.js.map → DateFieldRange-BPcsS6TW.js.map} +1 -1
  33. package/dist/DateFieldRange.js +1 -1
  34. package/dist/{DateFieldSingle-CMLojOb3.js → DateFieldSingle-BRMhe0OM.js} +5 -5
  35. package/dist/{DateFieldSingle-CMLojOb3.js.map → DateFieldSingle-BRMhe0OM.js.map} +1 -1
  36. package/dist/DateFieldSingle.js +1 -1
  37. package/dist/{DateFieldYearless-B5IyR75v.js → DateFieldYearless-NOgDKzrJ.js} +6 -6
  38. package/dist/{DateFieldYearless-B5IyR75v.js.map → DateFieldYearless-NOgDKzrJ.js.map} +1 -1
  39. package/dist/DateFieldYearless.js +1 -1
  40. package/dist/{DateFieldYearlessRange-8yXILjx7.js → DateFieldYearlessRange-ChvypgXC.js} +5 -5
  41. package/dist/{DateFieldYearlessRange-8yXILjx7.js.map → DateFieldYearlessRange-ChvypgXC.js.map} +1 -1
  42. package/dist/DateFieldYearlessRange.js +1 -1
  43. package/dist/{DaysOfTheWeek-Cxp5VdYK.js → DaysOfTheWeek-nYitIKnQ.js} +3 -3
  44. package/dist/{DaysOfTheWeek-Cxp5VdYK.js.map → DaysOfTheWeek-nYitIKnQ.js.map} +1 -1
  45. package/dist/DaysOfTheWeek.js +1 -1
  46. package/dist/Details-B2F3auTX.js +216 -0
  47. package/dist/Details-B2F3auTX.js.map +1 -0
  48. package/dist/{Details-BxqP-5vp.js → Details-DQ-_Mg4o.js} +3 -3
  49. package/dist/{Details-BxqP-5vp.js.map → Details-DQ-_Mg4o.js.map} +1 -1
  50. package/dist/Details.css +92 -68
  51. package/dist/Details.js +1 -1
  52. package/dist/Details2.css +137 -0
  53. package/dist/{Dialog-KDAJphrA.js → Dialog-BgWoV2on.js} +6 -4
  54. package/dist/Dialog-BgWoV2on.js.map +1 -0
  55. package/dist/Dialog.js +1 -1
  56. package/dist/{Drawer-C7E2NNnH.js → Drawer-BVBLtGn_.js} +7 -5
  57. package/dist/Drawer-BVBLtGn_.js.map +1 -0
  58. package/dist/Drawer.js +1 -1
  59. package/dist/DrillDown.js +1 -1
  60. package/dist/{EditCard-CutlsXfK.js → EditCard-hivZDPZh.js} +2 -2
  61. package/dist/{EditCard-CutlsXfK.js.map → EditCard-hivZDPZh.js.map} +1 -1
  62. package/dist/EditCard.js +1 -1
  63. package/dist/{FieldLabel-DYcUS3A4.js → FieldLabel-Cn559Brf.js} +8 -58
  64. package/dist/FieldLabel-Cn559Brf.js.map +1 -0
  65. package/dist/FieldLabel.css +1 -12
  66. package/dist/FieldLabel.js +1 -1
  67. package/dist/FieldMessage.js +1 -1
  68. package/dist/{FilterBar-DbDfZph-.js → FilterBar-COd38Ent.js} +5 -5
  69. package/dist/{FilterBar-DbDfZph-.js.map → FilterBar-COd38Ent.js.map} +1 -1
  70. package/dist/FilterBar.js +1 -1
  71. package/dist/InlineMarkdown-CL1tKR01.js +87 -0
  72. package/dist/InlineMarkdown-CL1tKR01.js.map +1 -0
  73. package/dist/InlineMarkdown.css +12 -0
  74. package/dist/{InputMask-BxdQc1ld.js → InputMask-DICWdeiF.js} +3 -3
  75. package/dist/{InputMask-BxdQc1ld.js.map → InputMask-DICWdeiF.js.map} +1 -1
  76. package/dist/InputMask.js +1 -1
  77. package/dist/{ListView-BVanVvBk.js → ListView-BeGBn5Vk.js} +2 -2
  78. package/dist/{ListView-BVanVvBk.js.map → ListView-BeGBn5Vk.js.map} +1 -1
  79. package/dist/ListView.js +1 -1
  80. package/dist/{Listbox-BR0YQIee.js → Listbox-n1CmJ2gh.js} +2 -2
  81. package/dist/{Listbox-BR0YQIee.js.map → Listbox-n1CmJ2gh.js.map} +1 -1
  82. package/dist/Listbox.js +1 -1
  83. package/dist/MultiSelectField.js +1 -1
  84. package/dist/{MultiSelectFieldSync-9253tott.js → MultiSelectFieldSync-CWsOdu-o.js} +44 -62
  85. package/dist/MultiSelectFieldSync-CWsOdu-o.js.map +1 -0
  86. package/dist/MultiSelectFieldSync.css +107 -69
  87. package/dist/MultiSelectMenu.js +1 -1
  88. package/dist/{MultiSelectMenuSync-BUJbWN2I.js → MultiSelectMenuSync-AVcf8ZUZ.js} +16 -29
  89. package/dist/MultiSelectMenuSync-AVcf8ZUZ.js.map +1 -0
  90. package/dist/{NumberField-DhxywJVp.js → NumberField-DjOvcCa1.js} +5 -5
  91. package/dist/{NumberField-DhxywJVp.js.map → NumberField-DjOvcCa1.js.map} +1 -1
  92. package/dist/NumberField.js +1 -1
  93. package/dist/{Page-D_KL2tdK.js → Page-_dh-JesM.js} +128 -80
  94. package/dist/Page-_dh-JesM.js.map +1 -0
  95. package/dist/Page.css +85 -80
  96. package/dist/Page.js +1 -1
  97. package/dist/{Pagination-DYpUtMha.js → Pagination-CsSpaTCs.js} +2 -2
  98. package/dist/{Pagination-DYpUtMha.js.map → Pagination-CsSpaTCs.js.map} +1 -1
  99. package/dist/Pagination.js +1 -1
  100. package/dist/{Popover-B2ix8Ji4.js → Popover-CEKl0WY3.js} +3 -3
  101. package/dist/{Popover-B2ix8Ji4.js.map → Popover-CEKl0WY3.js.map} +1 -1
  102. package/dist/Popover.js +1 -1
  103. package/dist/{ProgressBar-CjoOuJCi.js → ProgressBar-ubCKKewC.js} +3 -3
  104. package/dist/{ProgressBar-CjoOuJCi.js.map → ProgressBar-ubCKKewC.js.map} +1 -1
  105. package/dist/ProgressBar.js +1 -1
  106. package/dist/{Radio-Bz36_d0V.js → Radio-DkB6zFsS.js} +2 -2
  107. package/dist/{Radio-Bz36_d0V.js.map → Radio-DkB6zFsS.js.map} +1 -1
  108. package/dist/{Radio-DOD1d9Vw.js → Radio-q1Vp_ZQG.js} +4 -4
  109. package/dist/{Radio-DOD1d9Vw.js.map → Radio-q1Vp_ZQG.js.map} +1 -1
  110. package/dist/Radio.js +1 -1
  111. package/dist/{RichTextEditor-BORVXVDw.js → RichTextEditor-BHt6sWMA.js} +8 -8
  112. package/dist/{RichTextEditor-BORVXVDw.js.map → RichTextEditor-BHt6sWMA.js.map} +1 -1
  113. package/dist/RichTextEditor.js +1 -1
  114. package/dist/{SavedFiltersButton-vq_Kt4Qc.js → SavedFiltersButton-Cl58iHZe.js} +9 -9
  115. package/dist/{SavedFiltersButton-vq_Kt4Qc.js.map → SavedFiltersButton-Cl58iHZe.js.map} +1 -1
  116. package/dist/SavedFiltersButton.js +1 -1
  117. package/dist/{SearchField-ChoNtw8w.js → SearchField-Bk-Ltu4v.js} +2 -2
  118. package/dist/{SearchField-ChoNtw8w.js.map → SearchField-Bk-Ltu4v.js.map} +1 -1
  119. package/dist/{SearchField-DX8hZyo2.js → SearchField-INVftpNM.js} +2 -2
  120. package/dist/{SearchField-DX8hZyo2.js.map → SearchField-INVftpNM.js.map} +1 -1
  121. package/dist/SearchField.js +1 -1
  122. package/dist/{SelectCard-CJwetC1k.js → SelectCard-DeAUW1bL.js} +3 -3
  123. package/dist/{SelectCard-CJwetC1k.js.map → SelectCard-DeAUW1bL.js.map} +1 -1
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/SelectField.js +1 -1
  126. package/dist/{SelectFieldLabel-BTKqybZm.js → SelectFieldLabel-DaXwIFZj.js} +2 -2
  127. package/dist/{SelectFieldLabel-BTKqybZm.js.map → SelectFieldLabel-DaXwIFZj.js.map} +1 -1
  128. package/dist/{SelectFieldSync-CoUi-BYw.js → SelectFieldSync-DpZL4wDo.js} +47 -68
  129. package/dist/SelectFieldSync-DpZL4wDo.js.map +1 -0
  130. package/dist/SelectMenu.js +1 -1
  131. package/dist/{SelectMenuSync-CvXx-6uU.js → SelectMenuSync-Klna2oqs.js} +16 -35
  132. package/dist/SelectMenuSync-Klna2oqs.js.map +1 -0
  133. package/dist/{SelectOptions-CGRUCyf4.js → SelectOptions-DGYYFU8i.js} +2 -2
  134. package/dist/{SelectOptions-CGRUCyf4.js.map → SelectOptions-DGYYFU8i.js.map} +1 -1
  135. package/dist/{SelectTrigger-CRbl804u.js → SelectTrigger-DKY7rpZn.js} +2 -2
  136. package/dist/{SelectTrigger-CRbl804u.js.map → SelectTrigger-DKY7rpZn.js.map} +1 -1
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-BRUW_Zgc.js → SelectTriggerBase-DUYq_L-6.js} +5 -5
  139. package/dist/{SelectTriggerBase-BRUW_Zgc.js.map → SelectTriggerBase-DUYq_L-6.js.map} +1 -1
  140. package/dist/SelectTriggerBase.css +94 -56
  141. package/dist/SelectTriggerBase.module-C-NmZbg4.js +41 -0
  142. package/dist/SelectTriggerBase.module-C-NmZbg4.js.map +1 -0
  143. package/dist/{Switch-rPPL4yEa.js → Switch-C9yQgF4w.js} +2 -2
  144. package/dist/{Switch-rPPL4yEa.js.map → Switch-C9yQgF4w.js.map} +1 -1
  145. package/dist/Switch.js +1 -1
  146. package/dist/Table.js +1 -1
  147. package/dist/{Text-BRbkPr5s.js → Text-D4SWT4u-.js} +2 -2
  148. package/dist/{Text-BRbkPr5s.js.map → Text-D4SWT4u-.js.map} +1 -1
  149. package/dist/Text.js +1 -1
  150. package/dist/{TextField-B9hivHsD.js → TextField-CKXSxube.js} +5 -5
  151. package/dist/{TextField-B9hivHsD.js.map → TextField-CKXSxube.js.map} +1 -1
  152. package/dist/{TextField-DGRVg_Cw.js → TextField-DmdT2k0w.js} +2 -2
  153. package/dist/{TextField-DGRVg_Cw.js.map → TextField-DmdT2k0w.js.map} +1 -1
  154. package/dist/TextField.css +38 -23
  155. package/dist/TextField.js +1 -1
  156. package/dist/TextField.module-B3y6caP9.js +25 -0
  157. package/dist/TextField.module-B3y6caP9.js.map +1 -0
  158. package/dist/{Textarea-DNqfV8rJ.js → Textarea-Dv__veBJ.js} +11 -11
  159. package/dist/{Textarea-DNqfV8rJ.js.map → Textarea-Dv__veBJ.js.map} +1 -1
  160. package/dist/Textarea.css +26 -11
  161. package/dist/Textarea.js +1 -1
  162. package/dist/{ThemeProvider-DW-Mflv6.js → ThemeProvider-DS2aL89d.js} +2 -2
  163. package/dist/{ThemeProvider-DW-Mflv6.js.map → ThemeProvider-DS2aL89d.js.map} +1 -1
  164. package/dist/ThemeProvider.css +6 -4
  165. package/dist/ThemeProvider.js +1 -1
  166. package/dist/ThemeProvider.module-BkKwAw2f.js +8 -0
  167. package/dist/ThemeProvider.module-BkKwAw2f.js.map +1 -0
  168. package/dist/{TimeField-DldMBNAj.js → TimeField-De9qBimk.js} +48 -10
  169. package/dist/TimeField-De9qBimk.js.map +1 -0
  170. package/dist/TimeField.js +1 -1
  171. package/dist/{TimezoneMessage-CgVNxYpM.js → TimezoneMessage-DEJX87S3.js} +2 -2
  172. package/dist/{TimezoneMessage-CgVNxYpM.js.map → TimezoneMessage-DEJX87S3.js.map} +1 -1
  173. package/dist/Toast.js +2 -2
  174. package/dist/{Toaster-Bcy9XN3c.js → Toaster-BlwTxTLf.js} +2 -2
  175. package/dist/{Toaster-Bcy9XN3c.js.map → Toaster-BlwTxTLf.js.map} +1 -1
  176. package/dist/{Toaster-C66ra4BK.js → Toaster-sO16N9b5.js} +23 -9
  177. package/dist/Toaster-sO16N9b5.js.map +1 -0
  178. package/dist/{Toolbar-DgPah7M3.js → Toolbar-BhrHuIN7.js} +6 -6
  179. package/dist/{Toolbar-DgPah7M3.js.map → Toolbar-BhrHuIN7.js.map} +1 -1
  180. package/dist/{Toolbar-Br-5yBxq.js → Toolbar-Buq2zze0.js} +4 -4
  181. package/dist/{Toolbar-Br-5yBxq.js.map → Toolbar-Buq2zze0.js.map} +1 -1
  182. package/dist/Toolbar.js +2 -2
  183. package/dist/{ToolbarButtonToggle-BDfoHeie.js → ToolbarButtonToggle-CNIaqVWl.js} +2 -2
  184. package/dist/{ToolbarButtonToggle-BDfoHeie.js.map → ToolbarButtonToggle-CNIaqVWl.js.map} +1 -1
  185. package/dist/{Tooltip-C_VcYS9P.js → Tooltip-CsTkZqMg.js} +3 -3
  186. package/dist/{Tooltip-C_VcYS9P.js.map → Tooltip-CsTkZqMg.js.map} +1 -1
  187. package/dist/Tooltip.js +1 -1
  188. package/dist/TreeSelectField.js +1 -1
  189. package/dist/{TreeSelectFieldSync-1psUeqtG.js → TreeSelectFieldSync-B7w31kbz.js} +22 -22
  190. package/dist/{TreeSelectFieldSync-1psUeqtG.js.map → TreeSelectFieldSync-B7w31kbz.js.map} +1 -1
  191. package/dist/TreeSelectFieldSync.css +57 -34
  192. package/dist/TreeSelectMenu.js +1 -1
  193. package/dist/{TreeSelectMenuSync-DIPSYUnE.js → TreeSelectMenuSync-EjxlvDZp.js} +4 -4
  194. package/dist/{TreeSelectMenuSync-DIPSYUnE.js.map → TreeSelectMenuSync-EjxlvDZp.js.map} +1 -1
  195. package/dist/{TypeaheadTextField-Di9ulOBl.js → TypeaheadTextField-DTOkaJda.js} +3 -3
  196. package/dist/{TypeaheadTextField-Di9ulOBl.js.map → TypeaheadTextField-DTOkaJda.js.map} +1 -1
  197. package/dist/TypeaheadTextField.js +1 -1
  198. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js → YearlessDateInputWithPicker-DJUQypnF.js} +3 -3
  199. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js.map → YearlessDateInputWithPicker-DJUQypnF.js.map} +1 -1
  200. package/dist/beta.js +19 -18
  201. package/dist/beta.js.map +1 -1
  202. package/dist/{bulkActionTypes-B71ZHjVu.js → bulkActionTypes-bznuvizE.js} +2 -2
  203. package/dist/{bulkActionTypes-B71ZHjVu.js.map → bulkActionTypes-bznuvizE.js.map} +1 -1
  204. package/dist/{filter-state-Lw9qL0zP.js → filter-state-DxwL15y1.js} +23 -23
  205. package/dist/{filter-state-Lw9qL0zP.js.map → filter-state-DxwL15y1.js.map} +1 -1
  206. package/dist/{index-B3WhDZeI.js → index-Bn56UnMm.js} +2 -2
  207. package/dist/{index-B3WhDZeI.js.map → index-Bn56UnMm.js.map} +1 -1
  208. package/dist/index.js +157 -115
  209. package/dist/index.js.map +1 -1
  210. package/dist/index2.css +78 -73
  211. package/dist/{portalScopeClassNames-DA28LrXe.js → portalScopeClassNames-CMdDYHE0.js} +2 -2
  212. package/dist/{portalScopeClassNames-DA28LrXe.js.map → portalScopeClassNames-CMdDYHE0.js.map} +1 -1
  213. package/dist/src/beta/components/Details/Details.d.ts +25 -0
  214. package/dist/src/beta/components/Details/DetailsSummary.d.ts +121 -0
  215. package/dist/src/beta/components/Details/index.d.ts +4 -0
  216. package/dist/src/beta/components/Details/internal/DetailsArrow.d.ts +11 -0
  217. package/dist/src/beta/components/Details/internal/DetailsSummaryCells.d.ts +5 -0
  218. package/dist/src/beta/components/Page/Page.d.ts +1 -0
  219. package/dist/src/beta/components/Page/PageSidebar.d.ts +12 -0
  220. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +3 -3
  221. package/dist/src/beta/components/Table/DataTable/internal/context/tabbables/CellTabbablesQueue.d.ts +23 -0
  222. package/dist/src/beta/components/Table/DataTable/types.d.ts +11 -0
  223. package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +4 -4
  224. package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +4 -4
  225. package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +4 -4
  226. package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +4 -4
  227. package/dist/src/beta/components/index.d.ts +1 -0
  228. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  229. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  230. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -1
  231. package/dist/src/components/Page/Page.d.ts +1 -0
  232. package/dist/src/components/Page/PageSidebar.d.ts +12 -0
  233. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  234. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  235. package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +8 -1
  236. package/dist/src/internal/components/InlineMarkdown/index.d.ts +1 -1
  237. package/dist/src/internal/components/Popover/Popover.d.ts +10 -5
  238. package/dist/src/internal/components/Popover/internal/verticalPlacement.d.ts +9 -0
  239. package/dist/src/internal/contexts/DisableConditionalUnmountWarningContext.d.ts +6 -0
  240. package/dist/src/internal/contexts/SuppressPanelSwapWarningContext.d.ts +13 -0
  241. package/dist/src/internal/functions/inlineMarkdown.d.ts +5 -2
  242. package/dist/src/internal/functions/stripInlineMarkdown.d.ts +4 -2
  243. package/dist/src/internal/hooks/index.d.ts +1 -0
  244. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +9 -1
  245. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +0 -1
  246. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/index.d.ts +1 -0
  247. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/useWarnOnConditionalUnmount.d.ts +1 -0
  248. package/dist/src/internal/testing/keepMutationObserversAlive.d.ts +9 -0
  249. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +0 -1
  250. package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  251. package/dist/stripInlineMarkdown-BV12XXzl.js +35 -0
  252. package/dist/stripInlineMarkdown-BV12XXzl.js.map +1 -0
  253. package/dist/{syncFilterUtils-DnhuqY1S.js → syncFilterUtils-BNbAB0jz.js} +109 -38
  254. package/dist/syncFilterUtils-BNbAB0jz.js.map +1 -0
  255. package/dist/token/core/component-variables.scss +3 -0
  256. package/dist/token/core/component.d.ts +2 -0
  257. package/dist/token/core/component.js +17 -0
  258. package/dist/token/core/component.scss +2 -0
  259. package/dist/token/core/semantic-variables.scss +2 -0
  260. package/dist/token/core/semantic.d.ts +1 -0
  261. package/dist/token/core/semantic.js +13 -0
  262. package/dist/token/core/semantic.scss +1 -0
  263. package/dist/token.js +33 -0
  264. package/dist/token.js.map +1 -1
  265. package/dist/{treeSync-BDwht_1r.js → treeSync-BELsX1gY.js} +3 -3
  266. package/dist/{treeSync-BDwht_1r.js.map → treeSync-BELsX1gY.js.map} +1 -1
  267. package/dist/{useDrilldown-CGdhHs8L.js → useDrilldown-B8pIhfWa.js} +3 -3
  268. package/dist/{useDrilldown-CGdhHs8L.js.map → useDrilldown-B8pIhfWa.js.map} +1 -1
  269. package/dist/{useInfiniteCombobox-Db0kaxCj.js → useInfiniteCombobox-ZZalag0-.js} +4 -4
  270. package/dist/{useInfiniteCombobox-Db0kaxCj.js.map → useInfiniteCombobox-ZZalag0-.js.map} +1 -1
  271. package/dist/{useInitialFocus-fBiTU9l8.js → useInitialFocus-KdirjHEb.js} +45 -13
  272. package/dist/useInitialFocus-KdirjHEb.js.map +1 -0
  273. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js → useInvalidateOnOptionsChange-ChrPmbtS.js} +5 -5
  274. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js.map → useInvalidateOnOptionsChange-ChrPmbtS.js.map} +1 -1
  275. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  276. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  277. package/dist/{utils-CM48ODEJ.js → utils-DwLrXpmt.js} +2 -2
  278. package/dist/{utils-CM48ODEJ.js.map → utils-DwLrXpmt.js.map} +1 -1
  279. package/package.json +3 -3
  280. package/dist/AiMark-CYXbKuCA.js.map +0 -1
  281. package/dist/Chip-AIF0WiNS.js.map +0 -1
  282. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +0 -1
  283. package/dist/Dialog-KDAJphrA.js.map +0 -1
  284. package/dist/Drawer-C7E2NNnH.js.map +0 -1
  285. package/dist/FieldLabel-DYcUS3A4.js.map +0 -1
  286. package/dist/MultiSelectFieldSync-9253tott.js.map +0 -1
  287. package/dist/MultiSelectMenuSync-BUJbWN2I.js.map +0 -1
  288. package/dist/Page-D_KL2tdK.js.map +0 -1
  289. package/dist/SelectFieldSync-CoUi-BYw.js.map +0 -1
  290. package/dist/SelectMenuSync-CvXx-6uU.js.map +0 -1
  291. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +0 -40
  292. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +0 -1
  293. package/dist/TextField.module-DklyLNKz.js +0 -25
  294. package/dist/TextField.module-DklyLNKz.js.map +0 -1
  295. package/dist/ThemeProvider.module-B9qgsQ8S.js +0 -8
  296. package/dist/ThemeProvider.module-B9qgsQ8S.js.map +0 -1
  297. package/dist/TimeField-DldMBNAj.js.map +0 -1
  298. package/dist/Toaster-C66ra4BK.js.map +0 -1
  299. package/dist/stripInlineMarkdown-B6lAJb4-.js +0 -25
  300. package/dist/stripInlineMarkdown-B6lAJb4-.js.map +0 -1
  301. package/dist/syncFilterUtils-DnhuqY1S.js.map +0 -1
  302. package/dist/useInitialFocus-fBiTU9l8.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/ianaZones.ts","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/pageBreakpoint.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["/** IANA timezone names accepted by date/calendar timezone props. */\nexport const IANA_TIMEZONES = [\n \"Pacific/Kiritimati\",\n \"Pacific/Apia\",\n \"Pacific/Enderbury\",\n \"Pacific/Fakaofo\",\n \"Pacific/Tongatapu\",\n \"Pacific/Chatham\",\n \"Antarctica/McMurdo\",\n \"Asia/Anadyr\",\n \"Asia/Kamchatka\",\n \"Pacific/Auckland\",\n \"Pacific/Fiji\",\n \"Pacific/Funafuti\",\n \"Pacific/Kwajalein\",\n \"Pacific/Majuro\",\n \"Pacific/Nauru\",\n \"Pacific/Tarawa\",\n \"Pacific/Wake\",\n \"Pacific/Wallis\",\n \"Antarctica/Casey\",\n \"Antarctica/Macquarie\",\n \"Asia/Magadan\",\n \"Asia/Sakhalin\",\n \"Asia/Srednekolymsk\",\n \"Pacific/Bougainville\",\n \"Pacific/Efate\",\n \"Pacific/Guadalcanal\",\n \"Pacific/Kosrae\",\n \"Pacific/Norfolk\",\n \"Pacific/Noumea\",\n \"Pacific/Pohnpei\",\n \"Australia/Lord_Howe\",\n \"Antarctica/DumontDUrville\",\n \"Asia/Ust-Nera\",\n \"Asia/Vladivostok\",\n \"Australia/Brisbane\",\n \"Australia/Currie\",\n \"Australia/Hobart\",\n \"Australia/Lindeman\",\n \"Australia/Melbourne\",\n \"Australia/Sydney\",\n \"Pacific/Chuuk\",\n \"Pacific/Guam\",\n \"Pacific/Port_Moresby\",\n \"Pacific/Saipan\",\n \"Australia/Adelaide\",\n \"Australia/Broken_Hill\",\n \"Australia/Darwin\",\n \"Asia/Chita\",\n \"Asia/Dili\",\n \"Asia/Jayapura\",\n \"Asia/Khandyga\",\n \"Asia/Seoul\",\n \"Asia/Tokyo\",\n \"Asia/Yakutsk\",\n \"Pacific/Palau\",\n \"Australia/Eucla\",\n \"Asia/Pyongyang\",\n \"Asia/Brunei\",\n \"Asia/Choibalsan\",\n \"Asia/Hong_Kong\",\n \"Asia/Irkutsk\",\n \"Asia/Kuala_Lumpur\",\n \"Asia/Kuching\",\n \"Asia/Macau\",\n \"Asia/Makassar\",\n \"Asia/Manila\",\n \"Asia/Shanghai\",\n \"Asia/Singapore\",\n \"Asia/Taipei\",\n \"Asia/Ulaanbaatar\",\n \"Australia/Perth\",\n \"Antarctica/Davis\",\n \"Asia/Bangkok\",\n \"Asia/Barnaul\",\n \"Asia/Ho_Chi_Minh\",\n \"Asia/Hovd\",\n \"Asia/Jakarta\",\n \"Asia/Krasnoyarsk\",\n \"Asia/Novokuznetsk\",\n \"Asia/Novosibirsk\",\n \"Asia/Phnom_Penh\",\n \"Asia/Pontianak\",\n \"Asia/Tomsk\",\n \"Asia/Vientiane\",\n \"Indian/Christmas\",\n \"Asia/Yangon\",\n \"Indian/Cocos\",\n \"Antarctica/Vostok\",\n \"Asia/Almaty\",\n \"Asia/Bishkek\",\n \"Asia/Dhaka\",\n \"Asia/Omsk\",\n \"Asia/Qyzylorda\",\n \"Asia/Thimphu\",\n \"Asia/Urumqi\",\n \"Indian/Chagos\",\n \"Asia/Kathmandu\",\n \"Asia/Colombo\",\n \"Asia/Kolkata\",\n \"Antarctica/Mawson\",\n \"Asia/Aqtau\",\n \"Asia/Aqtobe\",\n \"Asia/Ashgabat\",\n \"Asia/Atyrau\",\n \"Asia/Dushanbe\",\n \"Asia/Karachi\",\n \"Asia/Oral\",\n \"Asia/Samarkand\",\n \"Asia/Tashkent\",\n \"Asia/Yekaterinburg\",\n \"Indian/Kerguelen\",\n \"Indian/Maldives\",\n \"Asia/Kabul\",\n \"Asia/Tehran\",\n \"Asia/Baku\",\n \"Asia/Dubai\",\n \"Asia/Muscat\",\n \"Asia/Tbilisi\",\n \"Asia/Yerevan\",\n \"Europe/Astrakhan\",\n \"Europe/Samara\",\n \"Europe/Saratov\",\n \"Europe/Ulyanovsk\",\n \"Indian/Mahe\",\n \"Indian/Mauritius\",\n \"Indian/Reunion\",\n \"Africa/Addis_Ababa\",\n \"Africa/Asmara\",\n \"Africa/Dar_es_Salaam\",\n \"Africa/Djibouti\",\n \"Africa/Juba\",\n \"Africa/Kampala\",\n \"Africa/Khartoum\",\n \"Africa/Mogadishu\",\n \"Africa/Nairobi\",\n \"Antarctica/Syowa\",\n \"Asia/Aden\",\n \"Asia/Amman\",\n \"Asia/Baghdad\",\n \"Asia/Bahrain\",\n \"Asia/Beirut\",\n \"Asia/Damascus\",\n \"Asia/Famagusta\",\n \"Asia/Gaza\",\n \"Asia/Hebron\",\n \"Asia/Jerusalem\",\n \"Asia/Kuwait\",\n \"Asia/Nicosia\",\n \"Asia/Qatar\",\n \"Asia/Riyadh\",\n \"Europe/Athens\",\n \"Europe/Bucharest\",\n \"Europe/Chisinau\",\n \"Europe/Helsinki\",\n \"Europe/Istanbul\",\n \"Europe/Kiev\",\n \"Europe/Kirov\",\n \"Europe/Mariehamn\",\n \"Europe/Minsk\",\n \"Europe/Moscow\",\n \"Europe/Riga\",\n \"Europe/Simferopol\",\n \"Europe/Sofia\",\n \"Europe/Tallinn\",\n \"Europe/Uzhgorod\",\n \"Europe/Vilnius\",\n \"Europe/Volgograd\",\n \"Europe/Zaporozhye\",\n \"Indian/Antananarivo\",\n \"Indian/Comoro\",\n \"Indian/Mayotte\",\n \"Africa/Blantyre\",\n \"Africa/Bujumbura\",\n \"Africa/Cairo\",\n \"Africa/Ceuta\",\n \"Africa/Gaborone\",\n \"Africa/Harare\",\n \"Africa/Johannesburg\",\n \"Africa/Kigali\",\n \"Africa/Lubumbashi\",\n \"Africa/Lusaka\",\n \"Africa/Maputo\",\n \"Africa/Maseru\",\n \"Africa/Mbabane\",\n \"Africa/Tripoli\",\n \"Antarctica/Troll\",\n \"Arctic/Longyearbyen\",\n \"Europe/Amsterdam\",\n \"Europe/Andorra\",\n \"Europe/Belgrade\",\n \"Europe/Berlin\",\n \"Europe/Bratislava\",\n \"Europe/Brussels\",\n \"Europe/Budapest\",\n \"Europe/Busingen\",\n \"Europe/Copenhagen\",\n \"Europe/Gibraltar\",\n \"Europe/Kaliningrad\",\n \"Europe/Ljubljana\",\n \"Europe/Luxembourg\",\n \"Europe/Madrid\",\n \"Europe/Malta\",\n \"Europe/Monaco\",\n \"Europe/Oslo\",\n \"Europe/Paris\",\n \"Europe/Podgorica\",\n \"Europe/Prague\",\n \"Europe/Rome\",\n \"Europe/San_Marino\",\n \"Europe/Sarajevo\",\n \"Europe/Skopje\",\n \"Europe/Stockholm\",\n \"Europe/Tirane\",\n \"Europe/Vaduz\",\n \"Europe/Vatican\",\n \"Europe/Vienna\",\n \"Europe/Warsaw\",\n \"Europe/Zagreb\",\n \"Europe/Zurich\",\n \"Africa/Algiers\",\n \"Africa/Bangui\",\n \"Africa/Brazzaville\",\n \"Africa/Casablanca\",\n \"Africa/Douala\",\n \"Africa/El_Aaiun\",\n \"Africa/Kinshasa\",\n \"Africa/Lagos\",\n \"Africa/Libreville\",\n \"Africa/Luanda\",\n \"Africa/Malabo\",\n \"Africa/Ndjamena\",\n \"Africa/Niamey\",\n \"Africa/Porto-Novo\",\n \"Africa/Tunis\",\n \"Africa/Windhoek\",\n \"Atlantic/Canary\",\n \"Atlantic/Faroe\",\n \"Atlantic/Madeira\",\n \"Europe/Dublin\",\n \"Europe/Guernsey\",\n \"Europe/Isle_of_Man\",\n \"Europe/Jersey\",\n \"Europe/Lisbon\",\n \"Europe/London\",\n \"Africa/Abidjan\",\n \"Africa/Accra\",\n \"Africa/Bamako\",\n \"Africa/Banjul\",\n \"Africa/Bissau\",\n \"Africa/Conakry\",\n \"Africa/Dakar\",\n \"Africa/Freetown\",\n \"Africa/Lome\",\n \"Africa/Monrovia\",\n \"Africa/Nouakchott\",\n \"Africa/Ouagadougou\",\n \"Africa/Sao_Tome\",\n \"America/Danmarkshavn\",\n \"America/Scoresbysund\",\n \"Atlantic/Azores\",\n \"Atlantic/Reykjavik\",\n \"Atlantic/St_Helena\",\n \"UTC\",\n \"Atlantic/Cape_Verde\",\n \"America/Godthab\",\n \"America/Miquelon\",\n \"America/Noronha\",\n \"Atlantic/South_Georgia\",\n \"America/St_Johns\",\n \"America/Araguaina\",\n \"America/Argentina/Buenos_Aires\",\n \"America/Argentina/Catamarca\",\n \"America/Argentina/Cordoba\",\n \"America/Argentina/Jujuy\",\n \"America/Argentina/La_Rioja\",\n \"America/Argentina/Mendoza\",\n \"America/Argentina/Rio_Gallegos\",\n \"America/Argentina/Salta\",\n \"America/Argentina/San_Juan\",\n \"America/Argentina/San_Luis\",\n \"America/Argentina/Tucuman\",\n \"America/Argentina/Ushuaia\",\n \"America/Bahia\",\n \"America/Belem\",\n \"America/Cayenne\",\n \"America/Fortaleza\",\n \"America/Glace_Bay\",\n \"America/Goose_Bay\",\n \"America/Halifax\",\n \"America/Maceio\",\n \"America/Moncton\",\n \"America/Montevideo\",\n \"America/Paramaribo\",\n \"America/Punta_Arenas\",\n \"America/Recife\",\n \"America/Santarem\",\n \"America/Sao_Paulo\",\n \"America/Thule\",\n \"Antarctica/Palmer\",\n \"Antarctica/Rothera\",\n \"Atlantic/Bermuda\",\n \"Atlantic/Stanley\",\n \"America/Anguilla\",\n \"America/Antigua\",\n \"America/Aruba\",\n \"America/Asuncion\",\n \"America/Barbados\",\n \"America/Blanc-Sablon\",\n \"America/Boa_Vista\",\n \"America/Campo_Grande\",\n \"America/Caracas\",\n \"America/Cuiaba\",\n \"America/Curacao\",\n \"America/Detroit\",\n \"America/Dominica\",\n \"America/Grand_Turk\",\n \"America/Grenada\",\n \"America/Guadeloupe\",\n \"America/Guyana\",\n \"America/Havana\",\n \"America/Indiana/Indianapolis\",\n \"America/Indiana/Marengo\",\n \"America/Indiana/Petersburg\",\n \"America/Indiana/Vevay\",\n \"America/Indiana/Vincennes\",\n \"America/Indiana/Winamac\",\n \"America/Iqaluit\",\n \"America/Kentucky/Louisville\",\n \"America/Kentucky/Monticello\",\n \"America/Kralendijk\",\n \"America/La_Paz\",\n \"America/Lower_Princes\",\n \"America/Manaus\",\n \"America/Marigot\",\n \"America/Martinique\",\n \"America/Montserrat\",\n \"America/Nassau\",\n \"America/New_York\",\n \"America/Nipigon\",\n \"America/Pangnirtung\",\n \"America/Port-au-Prince\",\n \"America/Port_of_Spain\",\n \"America/Porto_Velho\",\n \"America/Puerto_Rico\",\n \"America/Santiago\",\n \"America/Santo_Domingo\",\n \"America/St_Barthelemy\",\n \"America/St_Kitts\",\n \"America/St_Lucia\",\n \"America/St_Thomas\",\n \"America/St_Vincent\",\n \"America/Thunder_Bay\",\n \"America/Toronto\",\n \"America/Tortola\",\n \"America/Atikokan\",\n \"America/Bahia_Banderas\",\n \"America/Bogota\",\n \"America/Cancun\",\n \"America/Cayman\",\n \"America/Chicago\",\n \"America/Eirunepe\",\n \"America/Guayaquil\",\n \"America/Indiana/Knox\",\n \"America/Indiana/Tell_City\",\n \"America/Jamaica\",\n \"America/Lima\",\n \"America/Matamoros\",\n \"America/Menominee\",\n \"America/Merida\",\n \"America/Mexico_City\",\n \"America/Monterrey\",\n \"America/North_Dakota/Beulah\",\n \"America/North_Dakota/Center\",\n \"America/North_Dakota/New_Salem\",\n \"America/Panama\",\n \"America/Rainy_River\",\n \"America/Rankin_Inlet\",\n \"America/Resolute\",\n \"America/Rio_Branco\",\n \"America/Winnipeg\",\n \"America/Belize\",\n \"America/Boise\",\n \"America/Cambridge_Bay\",\n \"America/Chihuahua\",\n \"America/Costa_Rica\",\n \"America/Denver\",\n \"America/Edmonton\",\n \"America/El_Salvador\",\n \"America/Guatemala\",\n \"America/Inuvik\",\n \"America/Managua\",\n \"America/Mazatlan\",\n \"America/Ojinaga\",\n \"America/Regina\",\n \"America/Swift_Current\",\n \"America/Tegucigalpa\",\n \"America/Yellowknife\",\n \"Pacific/Easter\",\n \"Pacific/Galapagos\",\n \"America/Creston\",\n \"America/Dawson\",\n \"America/Dawson_Creek\",\n \"America/Fort_Nelson\",\n \"America/Hermosillo\",\n \"America/Los_Angeles\",\n \"America/Phoenix\",\n \"America/Tijuana\",\n \"America/Vancouver\",\n \"America/Whitehorse\",\n \"America/Anchorage\",\n \"America/Juneau\",\n \"America/Metlakatla\",\n \"America/Nome\",\n \"America/Sitka\",\n \"America/Yakutat\",\n \"Pacific/Pitcairn\",\n \"America/Adak\",\n \"Pacific/Gambier\",\n \"Pacific/Marquesas\",\n \"Pacific/Honolulu\",\n \"Pacific/Rarotonga\",\n \"Pacific/Tahiti\",\n \"Pacific/Midway\",\n \"Pacific/Niue\",\n \"Pacific/Pago_Pago\",\n] as const;\n\n/** Member of {@link IANA_TIMEZONES}. */\nexport type IanaZone = (typeof IANA_TIMEZONES)[number];\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n /** Observed width of the Page root; undefined outside Page. */\n pageWidth?: number;\n /**\n * Main portal target. Undefined outside Page renders Content in place; null\n * inside Page renders nothing until the slot mounts.\n */\n contentWrapper?: HTMLElement | null;\n /**\n * Footer portal target. Undefined outside Page renders Footer in place; null\n * inside Page renders nothing until the slot mounts.\n */\n footerSlot?: HTMLElement | null;\n};\n","import { core } from \"@servicetitan/hammer-token\";\n\n/**\n * Shared Page boundary between the adaptive and desktop layouts. Parsing once\n * keeps Sidebar, Panel, and Content decisions aligned.\n */\nexport const PAGE_LG_BREAKPOINT = +(\n core.primitive?.BreakpointLg?.value?.replace(\"px\", \"\") ?? 0\n);\n\n/** Whether the page width uses the adaptive Sidebar and Panel forms. */\nexport const isPageMobileWidth = (pageWidth: number | undefined): boolean =>\n (pageWidth ?? 0) < PAGE_LG_BREAKPOINT;\n\n/**\n * Whether Page.Content can render its virtual-scroll spacer. Requires a\n * nonzero parsed breakpoint and a measured desktop width; otherwise the\n * spacer could enter SSR/adaptive flow and feed back into observed height.\n */\nexport const showsPageVirtualScroll = (\n pageWidth: number | undefined,\n): boolean => PAGE_LG_BREAKPOINT > 0 && (pageWidth ?? 0) >= PAGE_LG_BREAKPOINT;\n","import { Button, Icon, Flex, Tooltip } from \"../\";\nimport { Popover } from \"../../internal/components/Popover\";\nimport { usePopoverContext } from \"../../internal/components/Popover/internal/usePopoverContext\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useRef,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, type PageContextProps } from \"./PageContext\";\nimport { isPageMobileWidth } from \"./pageBreakpoint\";\n\nfunction AdaptiveSidebarContent({\n children,\n className,\n innerRef,\n}: {\n children: ReactNode;\n className?: string;\n innerRef?: Ref<HTMLDivElement>;\n}) {\n const { closePopover, openState } = usePopoverContext();\n const containerRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([containerRef, innerRef]);\n\n useEffect(() => {\n if (!openState) return;\n const overflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = overflow;\n };\n }, [openState]);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) return;\n const handleClick = (e: Event) => {\n if (!(e.target instanceof Element)) return;\n if (e.target.closest(\"a\")) closePopover();\n };\n el.addEventListener(\"click\", handleClick);\n return () => el.removeEventListener(\"click\", handleClick);\n }, [closePopover]);\n\n return (\n <Flex direction=\"column\" className={className} ref={mergedRef}>\n {children}\n </Flex>\n );\n}\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Persists desktop collapsed state under this localStorage key. Defaults to `\"sidebar-collapsed\"`. */\n localStorageKey?: string;\n /** Overrides the generated tracking ID on the desktop toggle button. */\n [\"data-tracking-id\"]?: string;\n /** Smaller-page trigger text. Defaults to `\"Menu\"`. */\n currentPageTitle?: string;\n};\n\n/**\n * Collapsible desktop sidebar with persisted state. On smaller pages it\n * becomes a popover whose trigger shows `currentPageTitle`.\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(() =>\n typeof window !== \"undefined\"\n ? isPageMobileWidth(window.innerWidth)\n : false,\n );\n\n useLayoutEffect(() => {\n if (!pageWidth) return;\n setIsMobile(isPageMobileWidth(pageWidth));\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n setCollapsed((prev) => {\n localStorage.setItem(localStorageKey, JSON.stringify(!prev));\n return !prev;\n });\n };\n\n if (isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding>\n <Popover.Trigger>\n {(props) => {\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <AdaptiveSidebarContent\n className={styles[\"sidebar-adaptive\"]}\n innerRef={ref}\n >\n {children}\n </AdaptiveSidebarContent>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Sidebar heading region hidden from accessibility when the sidebar collapses. */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import {\n type ButtonProps,\n type ButtonLinkProps,\n type BreadcrumbsLinkProps,\n type ChipProps,\n type MenuReturnProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n TextField,\n} from \"../\";\nimport {\n type ComponentPropsWithoutRef,\n type ReactNode,\n forwardRef,\n type Ref,\n useState,\n useRef,\n useEffect,\n type KeyboardEvent,\n} from \"react\";\nimport Layout, { type LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\nimport Edit from \"@servicetitan/hammer-icon/mdi/round/edit.svg\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport IconKeyboardArrowDown from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\n\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /** Visible button text, or menu-item text when nested under `items`. */\n label: string;\n};\n\n/**\n * Props for a page header action that opens a menu instead of invoking a single\n * handler. `onClick` is omitted because the whole button opens the menu -- an\n * action carrying both a handler and items would be a split button, which\n * Anvil does not support.\n */\ntype PageHeaderMenuActionProps = Omit<PageHeaderActionProps, \"onClick\"> & {\n /** Replaces a direct click handler with a menu opened by the primary button. */\n items: PageHeaderActionProps[];\n};\n\ntype PageHeaderActionsProps = {\n /**\n * Primary action button. Pass `items` instead of `onClick` to render a\n * primary button that opens a menu of actions.\n */\n primary?: PageHeaderActionProps | PageHeaderMenuActionProps;\n /**\n * Secondary buttons. Three or more, or two alongside a primary action,\n * collapse into a More actions menu.\n */\n secondary?: PageHeaderActionProps[];\n};\n\ntype BasePreferenceProps = {\n /** Names the icon-only control and supplies its tooltip text. */\n \"aria-label\": string;\n};\n\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\ntype PageHeaderTitleConfig = {\n /** Rendered in the page's `h1` and used to initialize the edit field. */\n text: string;\n /**\n * Makes the title editable. Return `false` to keep the editor open after\n * submit or confirmation.\n */\n onChange?: (title: string) => void | boolean;\n /** Accessible name and tooltip for entering edit mode. Defaults to `\"Edit title\"`. */\n editButtonLabel?: string;\n /** Accessible name for the title field. Defaults to `\"Page title\"`. */\n editFieldLabel?: string;\n /** Accessible name and tooltip for confirmation. Defaults to `\"Update title\"`. */\n confirmButtonLabel?: string;\n /** Accessible name and tooltip for cancellation. Defaults to `\"Cancel\"`. */\n cancelButtonLabel?: string;\n};\n\ntype PageHeaderTitle = PageHeaderTitleConfig[\"text\"] | PageHeaderTitleConfig;\n\n/** @extends Omit<ComponentPropsWithoutRef<\"header\">, \"title\"> */\nexport type PageHeaderProps = Omit<\n ComponentPropsWithoutRef<\"header\">,\n \"title\"\n> & {\n /**\n * Page `h1`. A string is read-only; the object form enables inline editing\n * when it includes `onChange`.\n */\n title: PageHeaderTitle;\n /** Rendered before the title as `Breadcrumbs.Link` items. */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /** Status chips rendered below the title. */\n chips?: ChipProps[];\n /** Full-width content below the title and actions. */\n description?: ReactNode;\n /**\n * Primary and secondary controls. Secondary actions overflow into More\n * actions at three items, or two alongside a primary; primary `items` make\n * that button a menu.\n */\n actions?: PageHeaderActionsProps;\n /** Settings-icon action. An `href` renders a link; otherwise it is a button. */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Header {@link LayoutProps}. When unset, the header uses the default fixed\n * 1280px layout. Match the `fluid` and `variant` of the `Layout` inside\n * `Page.Content`.\n */\n layout?: LayoutProps;\n};\n\n/**\n * Maps page header actions onto menu items. `Menu.Item` takes only a leading\n * icon, so a bare svg and the `{ after }` form are unwrapped to it and the\n * `{ before }` form is intentionally dropped. `ButtonProps` is a union, and\n * `Omit<ButtonProps, \"appearance\">` collapses it, which is why `icon` has to be\n * narrowed at runtime here.\n */\nconst renderMenuItems = (actions: PageHeaderActionProps[]) =>\n actions.map((action, index) => {\n const icon =\n typeof action.icon === \"function\"\n ? action.icon\n : action.icon && \"after\" in action.icon\n ? action.icon.after\n : undefined;\n return (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n icon={icon}\n className={action.className}\n />\n );\n });\n\n/**\n * Builds the trigger for a menu-opening primary action. `triggerProps` spreads\n * last on purpose: `Menu` supplies the trigger's `onClick`, `onKeyDown`, and\n * ARIA state, and spreading consumer props after them would clobber the menu's\n * own behavior. `icon` sits after `buttonProps` for the same reason in reverse:\n * the chevron is what signals that this button opens a menu, so it wins over a\n * consumer-supplied icon. A menu primary therefore cannot carry a leading icon.\n * `ref` lands last so nothing can displace it: `Menu` dismisses itself by\n * testing event paths against the invoker element, which only works if the ref\n * reaches the button.\n */\nconst renderPrimaryMenuTrigger =\n (primary: PageHeaderMenuActionProps) =>\n ({ ref, ...triggerProps }: MenuReturnProps) => {\n const { items: _items, label, ...buttonProps } = primary;\n return (\n <Button\n appearance=\"primary\"\n {...buttonProps}\n icon={{ after: IconKeyboardArrowDown }}\n {...triggerProps}\n ref={ref}\n >\n {label}\n </Button>\n );\n };\n\n/** Page heading with optional breadcrumbs, status, description, and actions. */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title: titleProp,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const title: PageHeaderTitleConfig =\n typeof titleProp === \"string\" ? { text: titleProp } : titleProp;\n\n const [editing, setEditing] = useState(false);\n const [editingTitle, setEditingTitle] = useState<\n PageHeaderTitleConfig[\"text\"]\n >(title.text);\n const editFieldRef = useRef<HTMLInputElement>(null);\n const editButtonRef = useRef<HTMLButtonElement>(null);\n const firstRenderRef = useRef(true);\n\n useEffect(() => {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (editing === true && editFieldRef.current) {\n editFieldRef.current.focus();\n }\n\n if (editing === false && editButtonRef.current) {\n editButtonRef.current.focus();\n }\n }, [editing]);\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const secondaryActions = actions?.secondary ?? [];\n const primaryAction = actions?.primary;\n\n const collapseSecondary =\n secondaryActions.length >= 3 ||\n (secondaryActions.length >= 2 && !!primaryAction);\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {collapseSecondary ? (\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n {...rest}\n ref={ref}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {renderMenuItems(secondaryActions)}\n </Menu>\n ) : (\n secondaryActions.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))\n )}\n\n {primaryAction &&\n (\"items\" in primaryAction ? (\n <Menu\n label={primaryAction.label}\n trigger={renderPrimaryMenuTrigger(primaryAction)}\n >\n {renderMenuItems(primaryAction.items)}\n </Menu>\n ) : (\n <Button appearance=\"primary\" {...primaryAction}>\n {primaryAction.label}\n </Button>\n ))}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n {breadcrumbs && (\n <Layout.Item>\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n </Layout.Item>\n )}\n\n <Layout.Item sm={2} md={actionItems || editing ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n {title.onChange && editing ? (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n if (title.onChange?.(editingTitle) !== false) {\n setEditing(false);\n }\n }}\n style={{ display: \"flex\" }}\n >\n <Flex alignItems=\"center\" grow={1} gap={2}>\n <TextField\n aria-label={title.editFieldLabel ?? \"Page title\"}\n defaultValue={title.text}\n flexGrow={1}\n ref={editFieldRef}\n onChange={(event) =>\n setEditingTitle(event.target.value)\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.code === \"Escape\") {\n setEditing(false);\n setEditingTitle(title.text);\n }\n }}\n />\n\n <Flex alignItems=\"center\" gap={1}>\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Check}\n aria-label={\n title.confirmButtonLabel ?? \"Update title\"\n }\n size=\"small\"\n appearance=\"primary\"\n onClick={() => {\n if (title.onChange?.(editingTitle) !== false) {\n setEditing(false);\n }\n }}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.confirmButtonLabel ?? \"Update title\"}\n </Tooltip.Content>\n </Tooltip>\n\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Close}\n aria-label={title.cancelButtonLabel ?? \"Cancel\"}\n size=\"small\"\n onClick={() => {\n setEditing(false);\n setEditingTitle(title.text);\n }}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.cancelButtonLabel ?? \"Cancel\"}\n </Tooltip.Content>\n </Tooltip>\n </Flex>\n </Flex>\n </form>\n ) : (\n <>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title.text}\n </Text>\n\n {title.onChange != null ? (\n <>\n {\" \"}\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Edit}\n aria-label={title.editButtonLabel ?? \"Edit title\"}\n size=\"small\"\n appearance=\"ghost\"\n ref={editButtonRef}\n onClick={() => setEditing(true)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.editButtonLabel ?? \"Edit title\"}\n </Tooltip.Content>\n </Tooltip>\n </>\n ) : null}\n </>\n )}\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && (\n <Layout.Item sm={2} md={6}>\n {actionItems}\n </Layout.Item>\n )}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n useEffect,\n useRef,\n useState,\n type UIEvent,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageContext } from \"./PageContext\";\nimport { showsPageVirtualScroll } from \"./pageBreakpoint\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/** @extends ComponentPropsWithoutRef<\"section\"> */\nexport type PageContentProps = ComponentPropsWithoutRef<\"section\">;\n\n/**\n * Main content section with a desktop virtual scrollbar synchronized to the\n * document. It renders in place outside Page, waits for Page's main slot, then\n * portals into that landmark.\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const sectionRef = useRef<HTMLElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([sectionRef, ref]);\n const blocker = useRef(true);\n // Coalesce a burst of ResizeObserver notifications into one frame so the read\n // of document.scrollHeight can never round-trip synchronously into setState\n // (see the \"Maximum update depth exceeded\" feedback loop).\n const rafIdRef = useRef(0);\n const [leftOffset, setLeftOffset] = useState(-9);\n const [contentHeight, setContentHeight] = useState(0);\n\n const { contentWrapper, pageWidth } = useContext(PageContext);\n\n // Match the stylesheet boundary where the spacer is removed from flow.\n const showVirtualScroll = showsPageVirtualScroll(pageWidth);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window?.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window?.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n useEffect(() => {\n const section = sectionRef.current;\n if (!section) return;\n\n const wrapperParent = section.parentElement;\n const isWrapped =\n wrapperParent?.classList.contains(styles[\"content-wrapper\"]) ?? false;\n const heightTarget = isWrapped ? wrapperParent! : section;\n\n const observer = new ResizeObserver(() => {\n if (rafIdRef.current) return;\n rafIdRef.current = requestAnimationFrame(() => {\n rafIdRef.current = 0;\n if (!sectionRef.current) return;\n\n setLeftOffset(\n sectionRef.current.offsetLeft + sectionRef.current.offsetWidth - 9,\n );\n\n const offset =\n parseFloat(\n getComputedStyle(sectionRef.current).getPropertyValue(\"--offset\"),\n ) || 0;\n const rawHeight = document.documentElement.scrollHeight - offset;\n setContentHeight(\n Number.isFinite(rawHeight) ? Math.max(0, rawHeight) : 0,\n );\n });\n });\n\n observer.observe(section);\n if (isWrapped) observer.observe(heightTarget);\n\n return () => {\n observer.disconnect();\n if (rafIdRef.current) {\n cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = 0;\n }\n };\n }, [contentWrapper]);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n const section = (\n <section className={classNames} ref={mergedRef} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n {showVirtualScroll && (\n <div style={{ width: 1, height: contentHeight }} />\n )}\n </div>\n </section>\n );\n\n if (contentWrapper) {\n return createPortal(section, contentWrapper);\n }\n\n if (contentWrapper === undefined) {\n return section;\n }\n\n return null;\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n useEffect,\n useLayoutEffect,\n useState,\n useMemo,\n type CSSProperties,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, type PageContextProps } from \"./PageContext\";\nimport { isPageMobileWidth } from \"./pageBreakpoint\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../DrillDown/internal/useDrillDownContextState\";\nimport drillDownStyles from \"../DrillDown/DrillDown.module.scss\";\nimport { useDrillDownContext } from \"../DrillDown/internal/useDrillDownContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Controlled visibility. Omit for a persistent desktop-style panel.\n */\n open?: boolean;\n /** Width preset. Defaults to `\"medium\"`. */\n size?: \"small\" | \"medium\" | \"large\";\n /** Removes the panel's inner padding. Defaults to `false`. */\n noPadding?: boolean;\n /** Initial DrillDown index for uncontrolled navigation within the panel. */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /** Exposes the panel's DrillDown context to an external `useDrillDown` host. */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n};\n\nconst PagePanelInner = ({\n style,\n open,\n children,\n}: {\n style?: CSSProperties;\n open?: boolean;\n children?: React.ReactNode;\n}) => {\n const { index } = useDrillDownContext();\n\n const classNames = cx([styles[\"panel-inner\"]], {\n [styles[\"drilldown-open\"]]: index !== undefined,\n });\n\n return (\n <div\n className={classNames}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={{ ...style, overflowY: index === undefined ? \"auto\" : \"hidden\" }}\n >\n <div>{children}</div>\n </div>\n );\n};\n\n/**\n * Desktop side panel with DrillDown context. Omit `open` for a persistent\n * panel; a controlled panel becomes a Dialog on smaller pages.\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n defaultDrillDownIndex,\n onDrillDownContextChange,\n ...rest\n } = props;\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n const classNames = cx(\n [styles.panel, drillDownStyles.panel],\n [styles[size]],\n className,\n {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n },\n );\n\n const drillDownContextValue = useDrillDownContextState({\n defaultDrillDownIndex,\n host: \"panel\",\n });\n\n const drillDownContextProviderValue = useMemo(\n () => ({\n ...drillDownContextValue,\n hostIsInteractive: open !== false,\n }),\n [drillDownContextValue, open],\n );\n\n useLayoutEffect(() => {\n onDrillDownContextChange?.(drillDownContextProviderValue);\n }, [drillDownContextProviderValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n const previousOpenRef = useRef(open);\n\n useEffect(() => {\n if (isMobile) {\n previousOpenRef.current = open;\n return;\n }\n\n if (previousOpenRef.current && open === false) {\n drillDownContextValue.onHostClose?.();\n drillDownContextValue.onHostClosed?.();\n }\n\n previousOpenRef.current = open;\n }, [open, isMobile, drillDownContextValue]);\n\n useLayoutEffect(() => {\n if (isMobile || !open || previousOpenRef.current) {\n return;\n }\n\n drillDownContextValue.setHostTrigger?.(\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null,\n );\n }, [open, isMobile, drillDownContextValue]);\n\n useLayoutEffect(() => {\n setIsMobile(isPageMobileWidth(pageWidth));\n }, [pageWidth]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n <Dialog\n open={open}\n defaultDrillDownIndex={defaultDrillDownIndex}\n onDrillDownContextChange={onDrillDownContextChange}\n >\n <Dialog.Content>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <PagePanelInner style={style} open={open}>\n {children}\n </PagePanelInner>\n </div>\n </DrillDownContext.Provider>\n );\n },\n);\n\nPagePanel.displayName = \"PagePanel\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageContext } from \"./PageContext\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * Footer landmark. It renders in place outside Page, waits for Page's footer\n * slot, then portals into it.\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n const { footerSlot } = useContext(PageContext);\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const footer = (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n\n if (footerSlot) {\n return createPortal(footer, footerSlot);\n }\n\n if (footerSlot === undefined) {\n return footer;\n }\n\n return null;\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * Full-page shell with optional Sidebar, Header, Content, Panel, and Footer\n * regions. Content and Footer portal into the shell's main and footer slots.\n */\nexport const Page = Object.assign(\n forwardRef<HTMLDivElement, PageProps>(function PageInner(props, ref) {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number>(0);\n const [contentWrapper, setContentWrapper] = useState<HTMLElement | null>(\n null,\n );\n const [footerSlot, setFooterSlot] = useState<HTMLElement | null>(null);\n\n // Capture the portal targets with stable callback refs that ignore detach\n // (node === null). React calls a ref with null while it tears down/hides a\n // subtree (the disappearLayoutEffects phase); routing that null straight\n // into setState — as a bare `ref={setContentWrapper}` does — re-renders Page\n // mid-teardown, which detaches the ref again, looping until React throws\n // \"Maximum update depth exceeded\". The <main>/<div> below share Page's\n // lifetime, so they only truly unmount when Page does, making a retained\n // node after a real unmount harmless. Bailing when the node is unchanged\n // also avoids a redundant render if the same element is re-attached.\n const contentWrapperRef = useCallback((node: HTMLElement | null) => {\n setContentWrapper((prev) => (node && node !== prev ? node : prev));\n }, []);\n const footerSlotRef = useCallback((node: HTMLElement | null) => {\n setFooterSlot((prev) => (node && node !== prev ? node : prev));\n }, []);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n // disconnect() releases every observation, so an explicit unobserve here\n // would be redundant.\n return () => resizeObserver.disconnect();\n }, [elRef]);\n\n const contextValue = useMemo(\n () => ({ pageWidth, contentWrapper, footerSlot }),\n [pageWidth, contentWrapper, footerSlot],\n );\n\n return (\n <PageContext.Provider value={contextValue}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>\n {children}\n <main\n className={styles[\"content-wrapper\"]}\n ref={contentWrapperRef}\n />\n <div className={styles[\"footer-slot\"]} ref={footerSlotRef} />\n </div>\n </div>\n </PageContext.Provider>\n );\n }),\n {\n /** Collapsible desktop sidebar that becomes a popover on smaller pages. */\n Sidebar: PageSidebar,\n /** Sidebar heading region hidden from accessibility when collapsed. */\n SidebarHeader: PageSidebarHeader,\n /** Page heading, breadcrumbs, status, description, and actions. */\n Header: PageHeader,\n /** Section portaled into Page's main landmark. */\n Content: PageContent,\n /** Omit `open` for a persistent panel; a controlled panel becomes a Dialog on smaller pages. */\n Panel: PagePanel,\n /** Footer portaled into Page's footer slot. */\n Footer: PageFooter,\n },\n);\nPage.displayName = \"Page\";\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","IconKeyboardArrowDown","LocalSettings","ref","rest","MoreVert","Check","Close","Edit","section"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,MAAM,cAAA,GAAiB;AAAA,EAC5B,oBAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,sBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,oBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,qBAAA;AAAA,EACA,2BAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,uBAAA;AAAA,EACA,kBAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,eAAA;AAAA,EACA,sBAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,qBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,KAAA;AAAA,EACA,qBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,wBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gCAAA;AAAA,EACA,6BAAA;AAAA,EACA,2BAAA;AAAA,EACA,yBAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,gCAAA;AAAA,EACA,yBAAA;AAAA,EACA,4BAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,sBAAA;AAAA,EACA,mBAAA;AAAA,EACA,sBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,8BAAA;AAAA,EACA,yBAAA;AAAA,EACA,4BAAA;AAAA,EACA,uBAAA;AAAA,EACA,2BAAA;AAAA,EACA,yBAAA;AAAA,EACA,iBAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA,uBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,qBAAA;AAAA,EACA,wBAAA;AAAA,EACA,uBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,wBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,sBAAA;AAAA,EACA,2BAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,mBAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,gCAAA;AAAA,EACA,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,sBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,uBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,qBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,uBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACraO,MAAM,kBAAA,GAAqB,aAAA;AAAA,EAChC;AACF,CAAA;;ACNO,MAAM,WAAA,GAAc,aAAA,CAAgC,EAAE,CAAA;;ACItD,MAAM,kBAAA,GAAqB,EAChCA,cAA8B,KAAA,EAAO,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA,IAAK,CAAA,CAAA;AAIrD,MAAM,iBAAA,GAAoB,CAAC,SAAA,KAAA,CAC/B,SAAA,IAAa,CAAA,IAAK,kBAAA;AAOd,MAAM,yBAAyB,CACpC,SAAA,KACY,kBAAA,GAAqB,CAAA,IAAA,CAAM,aAAa,CAAA,KAAM,kBAAA;;ACK5D,SAAS,sBAAA,CAAuB;AAAA,EAC9B,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,EAAE,YAAA,EAAc,SAAA,EAAU,GAAI,iBAAA,EAAkB;AACtD,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,CAAC,YAAA,EAAc,QAAQ,CAAC,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,SAAA,EAAW;AAChB,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,QAAA;AACrC,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAC/B,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAAA,IACjC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAK,YAAA,CAAa,OAAA;AACxB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAa;AAChC,MAAA,IAAI,EAAE,CAAA,CAAE,MAAA,YAAkB,OAAA,CAAA,EAAU;AACpC,MAAA,IAAI,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,GAAG,GAAG,YAAA,EAAa;AAAA,IAC1C,CAAA;AACA,IAAA,EAAA,CAAG,gBAAA,CAAiB,SAAS,WAAW,CAAA;AACxC,IAAA,OAAO,MAAM,EAAA,CAAG,mBAAA,CAAoB,OAAA,EAAS,WAAW,CAAA;AAAA,EAC1D,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,2BACG,IAAA,EAAA,EAAK,SAAA,EAAU,UAAS,SAAA,EAAsB,GAAA,EAAK,WACjD,QAAA,EACH,CAAA;AAEJ;AAkBO,MAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,OAAyB,GAAA,KAA6B;AACrD,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA,GAAkB,mBAAA;AAAA,MAClB,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX;AAAA,KACF;AAEA,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,UAAA,CAA6B,WAAW,CAAA;AAE9D,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA;AAAA,MAAkB,MAChD,OAAO,MAAA,KAAW,cACd,iBAAA,CAAkB,MAAA,CAAO,UAAU,CAAA,GACnC;AAAA,KACN;AAEA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,CAAC,SAAA,EAAW;AAChB,MAAA,WAAA,CAAY,iBAAA,CAAkB,SAAS,CAAC,CAAA;AAAA,IAC1C,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,mBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAkB,MAAM;AACxD,MAAA,MAAM,YAAA,GAAe,YAAA,CAAa,OAAA,CAAQ,eAAe,CAAA;AACzD,MAAA,OAAO,YAAA,GAAe,IAAA,CAAK,KAAA,CAAM,YAAY,CAAA,GAAI,KAAA;AAAA,IACnD,CAAC,CAAA;AACD,IAAA,MAAM,aAAa,EAAA,CAAG,CAAC,OAAO,SAAS,CAAC,GAAG,SAAA,EAAW;AAAA,MACpD,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG;AAAA,KACxB,CAAA;AACD,IAAA,MAAM,sBAAsB,MAAM;AAChC,MAAA,YAAA,CAAa,CAAC,IAAA,KAAS;AACrB,QAAA,YAAA,CAAa,QAAQ,eAAA,EAAiB,IAAA,CAAK,SAAA,CAAU,CAAC,IAAI,CAAC,CAAA;AAC3D,QAAA,OAAO,CAAC,IAAA;AAAA,MACV,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,4BACG,OAAA,EAAA,EAAQ,mBAAA,EAAmB,MAAC,mBAAA,EAAmB,IAAA,EAAC,WAAS,IAAA,EACxD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,CAAQ,OAAA,EAAR,EACE,QAAA,EAAA,CAACC,MAAAA,KAAU;AACV,UAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,oCAAoC,CAAA,EACzD,QAAA,kBAAA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,OAAO,0BAA0B,CAAA;AAAA,cAC5C,IAAA,EAAMC,UAAA;AAAA,cACN,UAAA,EAAW,OAAA;AAAA,cACV,GAAGD,MAAAA;AAAA,cAEH,QAAA,EAAA;AAAA,gBAAA,CAAC,mBAAmB,MAAA,GAAS,gBAAA;AAAA,gCAC9B,GAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,OAAO,+BAA+B,CAAA;AAAA,oBACjD,cAAA,EAAe,KAAA;AAAA,oBACf,GAAA,EACEA,MAAAA,CAAM,YAAY,CAAA,KAAM,SAASE,kBAAA,GAAYC;AAAA;AAAA;AAEjD;AAAA;AAAA,WACF,EACF,CAAA;AAAA,QAEJ,CAAA,EACF,CAAA;AAAA,4BACC,OAAA,CAAQ,OAAA,EAAR,EAAgB,SAAA,EAAW,MAAA,CAAO,4BAA4B,CAAA,EAC7D,QAAA,kBAAA,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,OAAO,kBAAkB,CAAA;AAAA,YACpC,QAAA,EAAU,GAAA;AAAA,YAET;AAAA;AAAA,SACH,EACF;AAAA,OAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,EAAE,SAAA,EAAU,EAC9C,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,GAAA,EAAW,GAAG,IAAA,EACxC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EAAG,eAAa,SAAA,EACpD,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAS,CAAA,EACjB,CAAA;AAAA,sBACA,GAAA,CAAC,SAAI,SAAA,EAAW,MAAA,CAAO,uBAAuB,CAAA,EAC5C,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,OAAA,EACjB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAQ,OAAA,EAAR,EAAgB,SAAA,EAAW,MAAA,CAAO,uBAAuB,CAAA,EACxD,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,OAAA,EAAS,mBAAA;AAAA,YACT,SAAA,EAAW,OAAO,eAAe,CAAA;AAAA,YACjC,YAAA,EAAY,YAAY,cAAA,GAAiB,eAAA;AAAA,YACzC,kBAAA,EAAkB,UAAA;AAAA,YAClB,IAAA,EAAM,YAAYC,eAAA,GAAUC;AAAA;AAAA,SAC9B,EACF,CAAA;AAAA,4BACC,OAAA,CAAQ,OAAA,EAAR,EACE,QAAA,EAAA,SAAA,GAAY,iBAAiB,eAAA,EAChC;AAAA,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;;ACtLnB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EAC/B,CAAC,OAA+B,GAAA,KAA6B;AAC3D,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AACzC,IAAA,MAAM,OAAA,GAAU,WAAW,kBAAkB,CAAA;AAC7C,IAAA,MAAM,aAAa,EAAA,CAAG,CAAC,OAAO,gBAAgB,CAAC,GAAG,SAAS,CAAA;AAE3D,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,GAAA,EAAW,GAAG,IAAA,EACxC,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAO,gBAAgB,CAAA;AAAA,QAClC,eAAa,OAAA,EAAS,SAAA;AAAA,QAErB;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,oBAAA;;AC4GhC,MAAM,kBAAkB,CAAC,OAAA,KACvB,QAAQ,GAAA,CAAI,CAAC,QAAQ,KAAA,KAAU;AAC7B,EAAA,MAAM,IAAA,GACJ,OAAO,MAAA,CAAO,IAAA,KAAS,aACnB,MAAA,CAAO,IAAA,GACP,MAAA,CAAO,IAAA,IAAQ,OAAA,IAAW,MAAA,CAAO,IAAA,GAC/B,MAAA,CAAO,KAAK,KAAA,GACZ,MAAA;AACR,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA,CAAK,IAAA;AAAA,IAAL;AAAA,MAEC,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,UAAU,MAAA,CAAO,QAAA;AAAA,MACjB,IAAA;AAAA,MACA,WAAW,MAAA,CAAO;AAAA,KAAA;AAAA,IALb;AAAA,GAMP;AAEJ,CAAC,CAAA;AAaH,MAAM,wBAAA,GACJ,CAAC,OAAA,KACD,CAAC,EAAE,GAAA,EAAK,GAAG,cAAa,KAAuB;AAC7C,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,GAAG,aAAY,GAAI,OAAA;AACjD,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAW,SAAA;AAAA,MACV,GAAG,WAAA;AAAA,MACJ,IAAA,EAAM,EAAE,KAAA,EAAOC,oBAAA,EAAsB;AAAA,MACpC,GAAG,YAAA;AAAA,MACJ,GAAA;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAGK,MAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,OAAwB,GAAA,KAA8B;AACrD,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,WAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,QACJ,OAAO,SAAA,KAAc,WAAW,EAAE,IAAA,EAAM,WAAU,GAAI,SAAA;AAExD,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAC5C,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA,CAEtC,MAAM,IAAI,CAAA;AACZ,IAAA,MAAM,YAAA,GAAe,OAAyB,IAAI,CAAA;AAClD,IAAA,MAAM,aAAA,GAAgB,OAA0B,IAAI,CAAA;AACpD,IAAA,MAAM,cAAA,GAAiB,OAAO,IAAI,CAAA;AAElC,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,QAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AACzB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,KAAY,IAAA,IAAQ,YAAA,CAAa,OAAA,EAAS;AAC5C,QAAA,YAAA,CAAa,QAAQ,KAAA,EAAM;AAAA,MAC7B;AAEA,MAAA,IAAI,OAAA,KAAY,KAAA,IAAS,aAAA,CAAc,OAAA,EAAS;AAC9C,QAAA,aAAA,CAAc,QAAQ,KAAA,EAAM;AAAA,MAC9B;AAAA,IACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAQ,GAAI,UAAU,EAAC;AAEtC,IAAA,MAAM,cAAA,GACJ,gBAAA,KACC,MAAA,IAAU,gBAAA,wBACR,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAW,OAAA;AAAA,UACX,IAAA,EAAMC,WAAA;AAAA,UACN,IAAA,EAAK,OAAA;AAAA,UACL,SAAA,EAAW,OAAO,mBAAmB,CAAA;AAAA,UACpC,GAAI;AAAA;AAAA,OACP,EACF,CAAA;AAAA,0BACC,OAAA,CAAQ,OAAA,EAAR,EAAiB,QAAA,EAAA,gBAAA,CAAiB,YAAY,CAAA,EAAE;AAAA,KAAA,EACnD,CAAA,wBAEC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAW,OAAA;AAAA,UACX,IAAA,EAAMA,WAAA;AAAA,UACN,IAAA,EAAK,OAAA;AAAA,UACL,SAAA,EAAW,OAAO,mBAAmB,CAAA;AAAA,UACpC,GAAI;AAAA;AAAA,OACP,EACF,CAAA;AAAA,0BACC,OAAA,CAAQ,OAAA,EAAR,EAAiB,QAAA,EAAA,gBAAA,CAAiB,YAAY,CAAA,EAAE;AAAA,KAAA,EACnD,CAAA,CAAA;AAGJ,IAAA,MAAM,gBAAA,GAAmB,OAAA,EAAS,SAAA,IAAa,EAAC;AAChD,IAAA,MAAM,gBAAgB,OAAA,EAAS,OAAA;AAE/B,IAAA,MAAM,iBAAA,GACJ,iBAAiB,MAAA,IAAU,CAAA,IAC1B,iBAAiB,MAAA,IAAU,CAAA,IAAK,CAAC,CAAC,aAAA;AAErC,IAAA,MAAM,WAAA,GAAc,2BAClB,IAAA,CAAC,IAAA,EAAA,EAAK,gBAAe,UAAA,EAAW,SAAA,EAAW,OAAO,OAAA,EAC/C,QAAA,EAAA;AAAA,MAAA,iBAAA,mBACC,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,CAAC,EAAE,GAAA,EAAAC,MAAK,GAAGC,KAAAA,EAAK,qBACvB,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,WAAA;AAAA,gBACX,IAAA,EAAMC,WAAA;AAAA,gBACN,YAAA,EAAW,cAAA;AAAA,gBACV,GAAGD,KAAAA;AAAA,gBACJ,GAAA,EAAKD;AAAA;AAAA,aACP,EACF,CAAA;AAAA,4BACA,GAAA,CAAC,OAAA,CAAQ,OAAA,EAAR,EAAgB,QAAA,EAAA,cAAA,EAAY;AAAA,WAAA,EAC/B,CAAA;AAAA,UAGD,0BAAgB,gBAAgB;AAAA;AAAA,OACnC,GAEA,gBAAA,CAAiB,GAAA,CAAI,CAAC,QAAQ,KAAA,qBAC5B,GAAA,CAAC,MAAA,EAAA,EAAmB,UAAA,EAAW,aAAa,GAAG,MAAA,EAC5C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADG,KAEb,CACD,CAAA;AAAA,MAGF,aAAA,KACE,WAAW,aAAA,mBACV,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAO,aAAA,CAAc,KAAA;AAAA,UACrB,OAAA,EAAS,yBAAyB,aAAa,CAAA;AAAA,UAE9C,QAAA,EAAA,eAAA,CAAgB,cAAc,KAAK;AAAA;AAAA,OACtC,uBAEC,MAAA,EAAA,EAAO,UAAA,EAAW,WAAW,GAAG,aAAA,EAC9B,wBAAc,KAAA,EACjB,CAAA;AAAA,KAAA,EAEN,CAAA;AAGF,IAAA,MAAM,kBAAkB,EAAA,CAAG,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,QAAQ,SAAS,CAAA;AAEnE,IAAA,MAAM,sBAAA,GAAyB,EAAA;AAAA,MAC7B,OAAO,eAAe,CAAA;AAAA,MACtB,OAAO,sBAAsB;AAAA,KAC/B;AAEA,IAAA,2BACG,QAAA,EAAA,EAAO,GAAA,EAAU,WAAW,eAAA,EAAkB,GAAG,MAChD,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,sBAAA,EACd,+BAAC,MAAA,EAAA,EAAO,KAAA,EAAc,SAAkB,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAA,EAC/D,QAAA,EAAA;AAAA,MAAA,WAAA,oBACC,GAAA,CAAC,OAAO,IAAA,EAAP,EACC,8BAAC,WAAA,EAAA,EACE,QAAA,EAAA,WAAA,CAAY,IAAI,CAAC,UAAA,EAAY,0BAC5B,GAAA,CAAC,WAAA,CAAY,MAAZ,EAA8B,GAAG,cAAX,KAAuB,CAC/C,GACH,CAAA,EACF,CAAA;AAAA,sBAGF,IAAA,CAAC,MAAA,CAAO,IAAA,EAAP,EAAY,EAAA,EAAI,GAAG,EAAA,EAAI,WAAA,IAAe,OAAA,GAAU,CAAA,GAAI,EAAA,EACnD,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EACnC,QAAA,EAAA;AAAA,UAAA,KAAA,CAAM,YAAY,OAAA,mBACjB,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,gBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,gBAAA,IAAI,KAAA,CAAM,QAAA,GAAW,YAAY,CAAA,KAAM,KAAA,EAAO;AAC5C,kBAAA,UAAA,CAAW,KAAK,CAAA;AAAA,gBAClB;AAAA,cACF,CAAA;AAAA,cACA,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAO;AAAA,cAEzB,+BAAC,IAAA,EAAA,EAAK,UAAA,EAAW,UAAS,IAAA,EAAM,CAAA,EAAG,KAAK,CAAA,EACtC,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,SAAA;AAAA,kBAAA;AAAA,oBACC,YAAA,EAAY,MAAM,cAAA,IAAkB,YAAA;AAAA,oBACpC,cAAc,KAAA,CAAM,IAAA;AAAA,oBACpB,QAAA,EAAU,CAAA;AAAA,oBACV,GAAA,EAAK,YAAA;AAAA,oBACL,UAAU,CAAC,KAAA,KACT,eAAA,CAAgB,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,oBAEpC,SAAA,EAAW,CAAC,CAAA,KAAuC;AACjD,sBAAA,IAAI,CAAA,CAAE,SAAS,QAAA,EAAU;AACvB,wBAAA,UAAA,CAAW,KAAK,CAAA;AAChB,wBAAA,eAAA,CAAgB,MAAM,IAAI,CAAA;AAAA,sBAC5B;AAAA,oBACF;AAAA;AAAA,iBACF;AAAA,gCAEA,IAAA,CAAC,IAAA,EAAA,EAAK,UAAA,EAAW,QAAA,EAAS,KAAK,CAAA,EAC7B,QAAA,EAAA;AAAA,kCAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oCAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAMG,QAAA;AAAA,wBACN,YAAA,EACE,MAAM,kBAAA,IAAsB,cAAA;AAAA,wBAE9B,IAAA,EAAK,OAAA;AAAA,wBACL,UAAA,EAAW,SAAA;AAAA,wBACX,SAAS,MAAM;AACb,0BAAA,IAAI,KAAA,CAAM,QAAA,GAAW,YAAY,CAAA,KAAM,KAAA,EAAO;AAC5C,4BAAA,UAAA,CAAW,KAAK,CAAA;AAAA,0BAClB;AAAA,wBACF;AAAA;AAAA,qBACF,EACF,CAAA;AAAA,wCACC,OAAA,CAAQ,OAAA,EAAR,EACE,QAAA,EAAA,KAAA,CAAM,sBAAsB,cAAA,EAC/B;AAAA,mBAAA,EACF,CAAA;AAAA,uCAEC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oCAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAMC,QAAA;AAAA,wBACN,YAAA,EAAY,MAAM,iBAAA,IAAqB,QAAA;AAAA,wBACvC,IAAA,EAAK,OAAA;AAAA,wBACL,SAAS,MAAM;AACb,0BAAA,UAAA,CAAW,KAAK,CAAA;AAChB,0BAAA,eAAA,CAAgB,MAAM,IAAI,CAAA;AAAA,wBAC5B;AAAA;AAAA,qBACF,EACF,CAAA;AAAA,wCACC,OAAA,CAAQ,OAAA,EAAR,EACE,QAAA,EAAA,KAAA,CAAM,qBAAqB,QAAA,EAC9B;AAAA,mBAAA,EACF;AAAA,iBAAA,EACF;AAAA,eAAA,EACF;AAAA;AAAA,8BAGF,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,UAAA;AAAA,gBACR,IAAA,EAAK,OAAA;AAAA,gBACL,EAAA,EAAG,IAAA;AAAA,gBACH,WAAW,MAAA,CAAO,KAAA;AAAA,gBAEjB,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,aACT;AAAA,YAEC,KAAA,CAAM,QAAA,IAAY,IAAA,mBACjB,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,mCACA,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAMC,OAAA;AAAA,oBACN,YAAA,EAAY,MAAM,eAAA,IAAmB,YAAA;AAAA,oBACrC,IAAA,EAAK,OAAA;AAAA,oBACL,UAAA,EAAW,OAAA;AAAA,oBACX,GAAA,EAAK,aAAA;AAAA,oBACL,OAAA,EAAS,MAAM,UAAA,CAAW,IAAI;AAAA;AAAA,iBAChC,EACF,CAAA;AAAA,oCACC,OAAA,CAAQ,OAAA,EAAR,EACE,QAAA,EAAA,KAAA,CAAM,mBAAmB,YAAA,EAC5B;AAAA,eAAA,EACF;AAAA,aAAA,EACF,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UAGD;AAAA,SAAA,EACH,CAAA;AAAA,QAEC,yBACC,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,OACrB,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,0BAChB,GAAA,CAAC,IAAA,EAAA,EAAkB,GAAG,IAAA,EAAA,EAAX,KAAiB,CAC7B,CAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,MAEC,OAAA,wBACE,MAAA,CAAO,IAAA,EAAP,EAAY,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EACrB,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,MAGD,WAAA,oBACC,GAAA,CAAC,MAAA,CAAO,IAAA,EAAP,EAAY,IAAI,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,WAAA,EACpC,QAAA,EAAA,WAAA,EACH;AAAA,KAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,aAAA;;AC5blB,MAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,OAAyB,GAAA,KAA0B;AAClD,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AACzC,IAAA,MAAM,aAAa,EAAA,CAAG,CAAC,OAAO,SAAS,CAAC,GAAG,SAAS,CAAA;AACpD,IAAA,MAAM,UAAA,GAAa,OAAoB,IAAI,CAAA;AAC3C,IAAA,MAAM,gBAAA,GAAmB,OAAuB,IAAI,CAAA;AACpD,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,CAAC,UAAA,EAAY,GAAG,CAAC,CAAA;AAChD,IAAA,MAAM,OAAA,GAAU,OAAO,IAAI,CAAA;AAI3B,IAAA,MAAM,QAAA,GAAW,OAAO,CAAC,CAAA;AACzB,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/C,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,CAAC,CAAA;AAEpD,IAAA,MAAM,EAAE,cAAA,EAAgB,SAAA,EAAU,GAAI,WAAW,WAAW,CAAA;AAG5D,IAAA,MAAM,iBAAA,GAAoB,uBAAuB,SAAS,CAAA;AAE1D,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACnC,MAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AACtB,MAAA,SAAS,cAAA,GAAiB;AACxB,QAAA,MAAM,WAAW,MAAA,CAAO,OAAA;AAExB,QAAA,gBAAA,CAAiB,OAAA,EAAS,QAAA,CAAS,CAAA,EAAG,QAAA,IAAY,CAAC,CAAA;AAAA,MACrD;AACA,MAAA,MAAA,EAAQ,iBAAiB,QAAA,EAAU,cAAA,EAAgB,EAAE,OAAA,EAAS,MAAM,CAAA;AAEpE,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,EAAQ,mBAAA,CAAoB,UAAU,cAAc,CAAA;AAAA,MACtD,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAMC,WAAU,UAAA,CAAW,OAAA;AAC3B,MAAA,IAAI,CAACA,QAAAA,EAAS;AAEd,MAAA,MAAM,gBAAgBA,QAAAA,CAAQ,aAAA;AAC9B,MAAA,MAAM,YACJ,aAAA,EAAe,SAAA,CAAU,SAAS,MAAA,CAAO,iBAAiB,CAAC,CAAA,IAAK,KAAA;AAClE,MAAA,MAAM,YAAA,GAAe,YAAY,aAAA,GAAiBA,QAAAA;AAElD,MAAA,MAAM,QAAA,GAAW,IAAI,cAAA,CAAe,MAAM;AACxC,QAAA,IAAI,SAAS,OAAA,EAAS;AACtB,QAAA,QAAA,CAAS,OAAA,GAAU,sBAAsB,MAAM;AAC7C,UAAA,QAAA,CAAS,OAAA,GAAU,CAAA;AACnB,UAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AAEzB,UAAA,aAAA;AAAA,YACE,UAAA,CAAW,OAAA,CAAQ,UAAA,GAAa,UAAA,CAAW,QAAQ,WAAA,GAAc;AAAA,WACnE;AAEA,UAAA,MAAM,MAAA,GACJ,UAAA;AAAA,YACE,gBAAA,CAAiB,UAAA,CAAW,OAAO,CAAA,CAAE,iBAAiB,UAAU;AAAA,WAClE,IAAK,CAAA;AACP,UAAA,MAAM,SAAA,GAAY,QAAA,CAAS,eAAA,CAAgB,YAAA,GAAe,MAAA;AAC1D,UAAA,gBAAA;AAAA,YACE,MAAA,CAAO,SAAS,SAAS,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAS,CAAA,GAAI;AAAA,WACxD;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAED,MAAA,QAAA,CAAS,QAAQA,QAAO,CAAA;AACxB,MAAA,IAAI,SAAA,EAAW,QAAA,CAAS,OAAA,CAAQ,YAAY,CAAA;AAE5C,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,UAAA,EAAW;AACpB,QAAA,IAAI,SAAS,OAAA,EAAS;AACpB,UAAA,oBAAA,CAAqB,SAAS,OAAO,CAAA;AACrC,UAAA,QAAA,CAAS,OAAA,GAAU,CAAA;AAAA,QACrB;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,IAAA,SAAS,WAAW,CAAA,EAAyB;AAC3C,MAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACnC,MAAA,IAAI,QAAQ,OAAA,EAAS;AACrB,MAAA,MAAA,CAAO,QAAA,CAAS,CAAA,EAAI,CAAA,CAAE,MAAA,CAA0B,SAAS,CAAA;AAAA,IAC3D;AAEA,IAAA,MAAM,OAAA,wBACH,SAAA,EAAA,EAAQ,SAAA,EAAW,YAAY,GAAA,EAAK,SAAA,EAAY,GAAG,IAAA,EAClD,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAe,GAAI,QAAA,EAAS,CAAA;AAAA,sBACnD,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAO,0BAA0B,CAAA;AAAA,UAC5C,GAAA,EAAK,gBAAA;AAAA,UACL,KAAA,EAAO;AAAA,YACL,IAAA,EAAM;AAAA,WACR;AAAA,UACA,eAAA,EAAiB,UAAA;AAAA,UACjB,cAAc,MAAM;AAClB,YAAA,OAAA,CAAQ,OAAA,GAAU,KAAA;AAAA,UACpB,CAAA;AAAA,UACA,cAAc,MAAM;AAClB,YAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAAA,UACpB,CAAA;AAAA,UAEC,QAAA,EAAA,iBAAA,wBACE,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,aAAA,EAAc,EAAG;AAAA;AAAA;AAErD,KAAA,EACF,CAAA;AAGF,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,OAAO,YAAA,CAAa,SAAS,cAAc,CAAA;AAAA,IAC7C;AAEA,IAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;ACvG1B,MAAM,iBAAiB,CAAC;AAAA,EACtB,KAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,KAIM;AACJ,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,mBAAA,EAAoB;AAEtC,EAAA,MAAM,aAAa,EAAA,CAAG,CAAC,MAAA,CAAO,aAAa,CAAC,CAAA,EAAG;AAAA,IAC7C,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,KAAA,KAAU;AAAA,GACvC,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,UAAA;AAAA,MAEX,QAAA,EAAU,OAAO,IAAA,KAAS,WAAA,IAAe,OAAO,CAAA,GAAI,EAAA;AAAA,MACpD,KAAA,EAAO,EAAE,GAAG,KAAA,EAAO,WAAW,KAAA,KAAU,MAAA,GAAY,SAAS,QAAA,EAAS;AAAA,MAEtE,QAAA,kBAAA,GAAA,CAAC,SAAK,QAAA,EAAS;AAAA;AAAA,GACjB;AAEJ,CAAA;AAMO,MAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,OAAuB,GAAA,KAA6B;AACnD,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,GAAO,QAAA;AAAA,MACP,SAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,qBAAA;AAAA,MACA,wBAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AACJ,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEvD,IAAA,MAAM,UAAA,GAAa,EAAA;AAAA,MACjB,CAAC,MAAA,CAAO,KAAA,EAAO,eAAA,CAAgB,KAAK,CAAA;AAAA,MACpC,CAAC,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,MACb,SAAA;AAAA,MACA;AAAA,QACE,CAAC,OAAO,MAAM,CAAC,GAAG,OAAO,IAAA,KAAS,cAAc,IAAA,GAAO,IAAA;AAAA,QACvD,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,OAAO,IAAA,KAAS,WAAA;AAAA,QACxC,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG;AAAA;AACzB,KACF;AAEA,IAAA,MAAM,wBAAwB,wBAAA,CAAyB;AAAA,MACrD,qBAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,MAAM,6BAAA,GAAgC,OAAA;AAAA,MACpC,OAAO;AAAA,QACL,GAAG,qBAAA;AAAA,QACH,mBAAmB,IAAA,KAAS;AAAA,OAC9B,CAAA;AAAA,MACA,CAAC,uBAAuB,IAAI;AAAA,KAC9B;AAEA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,wBAAA,GAA2B,6BAA6B,CAAA;AAAA,IAC1D,CAAA,EAAG,CAAC,6BAA6B,CAAC,CAAA;AAElC,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,UAAA,CAA6B,WAAW,CAAA;AAC9D,IAAA,MAAM,eAAA,GAAkB,OAAO,IAAI,CAAA;AAEnC,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAC1B,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,eAAA,CAAgB,OAAA,IAAW,IAAA,KAAS,KAAA,EAAO;AAC7C,QAAA,qBAAA,CAAsB,WAAA,IAAc;AACpC,QAAA,qBAAA,CAAsB,YAAA,IAAe;AAAA,MACvC;AAEA,MAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAAA,IAC5B,CAAA,EAAG,CAAC,IAAA,EAAM,QAAA,EAAU,qBAAqB,CAAC,CAAA;AAE1C,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,QAAA,IAAY,CAAC,IAAA,IAAQ,eAAA,CAAgB,OAAA,EAAS;AAChD,QAAA;AAAA,MACF;AAEA,MAAA,qBAAA,CAAsB,cAAA;AAAA,QACpB,QAAA,CAAS,aAAA,YAAyB,WAAA,GAC9B,QAAA,CAAS,aAAA,GACT;AAAA,OACN;AAAA,IACF,CAAA,EAAG,CAAC,IAAA,EAAM,QAAA,EAAU,qBAAqB,CAAC,CAAA;AAE1C,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,WAAA,CAAY,iBAAA,CAAkB,SAAS,CAAC,CAAA;AAAA,IAC1C,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,IAAA,IAAI,OAAO,IAAA,KAAS,WAAA,IAAe,QAAA,EAAU;AAC3C,MAAA,uBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,qBAAA;AAAA,UACA,wBAAA;AAAA,UAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,CAAO,OAAA,EAAP,EACC,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,UAAA;AAAA,cACX,eAAa,CAAC,IAAA;AAAA,cACd,iBAAe,CAAC,IAAA;AAAA,cAChB,GAAA;AAAA,cACC,GAAG,IAAA;AAAA,cAEH;AAAA;AAAA,WACH,EACF;AAAA;AAAA,OACF;AAAA,IAEJ;AACA,IAAA,uBACE,GAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,OAAO,6BAAA,EAChC,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,UAAA;AAAA,QACX,eAAa,CAAC,IAAA;AAAA,QACd,iBAAe,CAAC,IAAA;AAAA,QAChB,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAc,IAAA,EAC3B,QAAA,EACH;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;ACpKjB,MAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,OAAwB,GAAA,KAA6B;AACpD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,KAAA,EAAO,GAAG,MAAK,GAAI,cAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAW,GAAI,UAAA,CAAW,WAAW,CAAA;AAE7C,IAAA,MAAM,aAAa,EAAA,CAAG,CAAC,OAAO,gBAAgB,CAAC,GAAG,SAAS,CAAA;AAC3D,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,MAAA,mBACJ,GAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAW,UAAA,EAAY,KAAU,KAAA,EAAO,aAAA,EAAgB,GAAG,IAAA,EAChE,QAAA,EACH,CAAA;AAGF,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,OAAO,YAAA,CAAa,QAAQ,UAAU,CAAA;AAAA,IACxC;AAEA,IAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;;ACtBlB,MAAM,OAAO,MAAA,CAAO,MAAA;AAAA,EACzB,UAAA,CAAsC,SAAS,SAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AACnE,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AACzC,IAAA,MAAM,UAAA,GAAa,EAAA,CAAG,MAAA,CAAO,MAAM,GAAG,SAAS,CAAA;AAC/C,IAAA,MAAM,KAAA,GAAQ,OAAuB,IAAI,CAAA;AACzC,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,CAAC,KAAA,EAAO,GAAG,CAAC,CAAA;AAE7C,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAiB,CAAC,CAAA;AACpD,IAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,QAAA;AAAA,MAC1C;AAAA,KACF;AACA,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAA6B,IAAI,CAAA;AAWrE,IAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,CAAC,IAAA,KAA6B;AAClE,MAAA,iBAAA,CAAkB,CAAC,IAAA,KAAU,IAAA,IAAQ,IAAA,KAAS,IAAA,GAAO,OAAO,IAAK,CAAA;AAAA,IACnE,CAAA,EAAG,EAAE,CAAA;AACL,IAAA,MAAM,aAAA,GAAgB,WAAA,CAAY,CAAC,IAAA,KAA6B;AAC9D,MAAA,aAAA,CAAc,CAAC,IAAA,KAAU,IAAA,IAAQ,IAAA,KAAS,IAAA,GAAO,OAAO,IAAK,CAAA;AAAA,IAC/D,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AACrD,QAAA,MAAM,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,YAAA,CAAa,KAAA,CAAM,YAAY,KAAK,CAAA;AAAA,QACtC;AAAA,MACF,CAAC,CAAA;AACD,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,cAAA,CAAe,QAAQ,OAAO,CAAA;AAAA,MAChC;AAGA,MAAA,OAAO,MAAM,eAAe,UAAA,EAAW;AAAA,IACzC,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,IAAA,MAAM,YAAA,GAAe,OAAA;AAAA,MACnB,OAAO,EAAE,SAAA,EAAW,cAAA,EAAgB,UAAA,EAAW,CAAA;AAAA,MAC/C,CAAC,SAAA,EAAW,cAAA,EAAgB,UAAU;AAAA,KACxC;AAEA,IAAA,uBACE,GAAA,CAAC,YAAY,QAAA,EAAZ,EAAqB,OAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAW,UAAA,EAAY,YAAS,MAAA,EAAO,GAAA,EAAK,aAAc,GAAG,IAAA,EAChE,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,WAAW,CAAA,EAC/B,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAO,iBAAiB,CAAA;AAAA,UACnC,GAAA,EAAK;AAAA;AAAA,OACP;AAAA,0BACC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAa,CAAA,EAAG,KAAK,aAAA,EAAe;AAAA,KAAA,EAC7D,GACF,CAAA,EACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AAAA,EACD;AAAA;AAAA,IAEE,OAAA,EAAS,WAAA;AAAA;AAAA,IAET,aAAA,EAAe,iBAAA;AAAA;AAAA,IAEf,MAAA,EAAQ,UAAA;AAAA;AAAA,IAER,OAAA,EAAS,WAAA;AAAA;AAAA,IAET,KAAA,EAAO,SAAA;AAAA;AAAA,IAEP,MAAA,EAAQ;AAAA;AAEZ;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/ianaZones.ts","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/pageBreakpoint.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["/** IANA timezone names accepted by date/calendar timezone props. */\nexport const IANA_TIMEZONES = [\n \"Pacific/Kiritimati\",\n \"Pacific/Apia\",\n \"Pacific/Enderbury\",\n \"Pacific/Fakaofo\",\n \"Pacific/Tongatapu\",\n \"Pacific/Chatham\",\n \"Antarctica/McMurdo\",\n \"Asia/Anadyr\",\n \"Asia/Kamchatka\",\n \"Pacific/Auckland\",\n \"Pacific/Fiji\",\n \"Pacific/Funafuti\",\n \"Pacific/Kwajalein\",\n \"Pacific/Majuro\",\n \"Pacific/Nauru\",\n \"Pacific/Tarawa\",\n \"Pacific/Wake\",\n \"Pacific/Wallis\",\n \"Antarctica/Casey\",\n \"Antarctica/Macquarie\",\n \"Asia/Magadan\",\n \"Asia/Sakhalin\",\n \"Asia/Srednekolymsk\",\n \"Pacific/Bougainville\",\n \"Pacific/Efate\",\n \"Pacific/Guadalcanal\",\n \"Pacific/Kosrae\",\n \"Pacific/Norfolk\",\n \"Pacific/Noumea\",\n \"Pacific/Pohnpei\",\n \"Australia/Lord_Howe\",\n \"Antarctica/DumontDUrville\",\n \"Asia/Ust-Nera\",\n \"Asia/Vladivostok\",\n \"Australia/Brisbane\",\n \"Australia/Currie\",\n \"Australia/Hobart\",\n \"Australia/Lindeman\",\n \"Australia/Melbourne\",\n \"Australia/Sydney\",\n \"Pacific/Chuuk\",\n \"Pacific/Guam\",\n \"Pacific/Port_Moresby\",\n \"Pacific/Saipan\",\n \"Australia/Adelaide\",\n \"Australia/Broken_Hill\",\n \"Australia/Darwin\",\n \"Asia/Chita\",\n \"Asia/Dili\",\n \"Asia/Jayapura\",\n \"Asia/Khandyga\",\n \"Asia/Seoul\",\n \"Asia/Tokyo\",\n \"Asia/Yakutsk\",\n \"Pacific/Palau\",\n \"Australia/Eucla\",\n \"Asia/Pyongyang\",\n \"Asia/Brunei\",\n \"Asia/Choibalsan\",\n \"Asia/Hong_Kong\",\n \"Asia/Irkutsk\",\n \"Asia/Kuala_Lumpur\",\n \"Asia/Kuching\",\n \"Asia/Macau\",\n \"Asia/Makassar\",\n \"Asia/Manila\",\n \"Asia/Shanghai\",\n \"Asia/Singapore\",\n \"Asia/Taipei\",\n \"Asia/Ulaanbaatar\",\n \"Australia/Perth\",\n \"Antarctica/Davis\",\n \"Asia/Bangkok\",\n \"Asia/Barnaul\",\n \"Asia/Ho_Chi_Minh\",\n \"Asia/Hovd\",\n \"Asia/Jakarta\",\n \"Asia/Krasnoyarsk\",\n \"Asia/Novokuznetsk\",\n \"Asia/Novosibirsk\",\n \"Asia/Phnom_Penh\",\n \"Asia/Pontianak\",\n \"Asia/Tomsk\",\n \"Asia/Vientiane\",\n \"Indian/Christmas\",\n \"Asia/Yangon\",\n \"Indian/Cocos\",\n \"Antarctica/Vostok\",\n \"Asia/Almaty\",\n \"Asia/Bishkek\",\n \"Asia/Dhaka\",\n \"Asia/Omsk\",\n \"Asia/Qyzylorda\",\n \"Asia/Thimphu\",\n \"Asia/Urumqi\",\n \"Indian/Chagos\",\n \"Asia/Kathmandu\",\n \"Asia/Colombo\",\n \"Asia/Kolkata\",\n \"Antarctica/Mawson\",\n \"Asia/Aqtau\",\n \"Asia/Aqtobe\",\n \"Asia/Ashgabat\",\n \"Asia/Atyrau\",\n \"Asia/Dushanbe\",\n \"Asia/Karachi\",\n \"Asia/Oral\",\n \"Asia/Samarkand\",\n \"Asia/Tashkent\",\n \"Asia/Yekaterinburg\",\n \"Indian/Kerguelen\",\n \"Indian/Maldives\",\n \"Asia/Kabul\",\n \"Asia/Tehran\",\n \"Asia/Baku\",\n \"Asia/Dubai\",\n \"Asia/Muscat\",\n \"Asia/Tbilisi\",\n \"Asia/Yerevan\",\n \"Europe/Astrakhan\",\n \"Europe/Samara\",\n \"Europe/Saratov\",\n \"Europe/Ulyanovsk\",\n \"Indian/Mahe\",\n \"Indian/Mauritius\",\n \"Indian/Reunion\",\n \"Africa/Addis_Ababa\",\n \"Africa/Asmara\",\n \"Africa/Dar_es_Salaam\",\n \"Africa/Djibouti\",\n \"Africa/Juba\",\n \"Africa/Kampala\",\n \"Africa/Khartoum\",\n \"Africa/Mogadishu\",\n \"Africa/Nairobi\",\n \"Antarctica/Syowa\",\n \"Asia/Aden\",\n \"Asia/Amman\",\n \"Asia/Baghdad\",\n \"Asia/Bahrain\",\n \"Asia/Beirut\",\n \"Asia/Damascus\",\n \"Asia/Famagusta\",\n \"Asia/Gaza\",\n \"Asia/Hebron\",\n \"Asia/Jerusalem\",\n \"Asia/Kuwait\",\n \"Asia/Nicosia\",\n \"Asia/Qatar\",\n \"Asia/Riyadh\",\n \"Europe/Athens\",\n \"Europe/Bucharest\",\n \"Europe/Chisinau\",\n \"Europe/Helsinki\",\n \"Europe/Istanbul\",\n \"Europe/Kiev\",\n \"Europe/Kirov\",\n \"Europe/Mariehamn\",\n \"Europe/Minsk\",\n \"Europe/Moscow\",\n \"Europe/Riga\",\n \"Europe/Simferopol\",\n \"Europe/Sofia\",\n \"Europe/Tallinn\",\n \"Europe/Uzhgorod\",\n \"Europe/Vilnius\",\n \"Europe/Volgograd\",\n \"Europe/Zaporozhye\",\n \"Indian/Antananarivo\",\n \"Indian/Comoro\",\n \"Indian/Mayotte\",\n \"Africa/Blantyre\",\n \"Africa/Bujumbura\",\n \"Africa/Cairo\",\n \"Africa/Ceuta\",\n \"Africa/Gaborone\",\n \"Africa/Harare\",\n \"Africa/Johannesburg\",\n \"Africa/Kigali\",\n \"Africa/Lubumbashi\",\n \"Africa/Lusaka\",\n \"Africa/Maputo\",\n \"Africa/Maseru\",\n \"Africa/Mbabane\",\n \"Africa/Tripoli\",\n \"Antarctica/Troll\",\n \"Arctic/Longyearbyen\",\n \"Europe/Amsterdam\",\n \"Europe/Andorra\",\n \"Europe/Belgrade\",\n \"Europe/Berlin\",\n \"Europe/Bratislava\",\n \"Europe/Brussels\",\n \"Europe/Budapest\",\n \"Europe/Busingen\",\n \"Europe/Copenhagen\",\n \"Europe/Gibraltar\",\n \"Europe/Kaliningrad\",\n \"Europe/Ljubljana\",\n \"Europe/Luxembourg\",\n \"Europe/Madrid\",\n \"Europe/Malta\",\n \"Europe/Monaco\",\n \"Europe/Oslo\",\n \"Europe/Paris\",\n \"Europe/Podgorica\",\n \"Europe/Prague\",\n \"Europe/Rome\",\n \"Europe/San_Marino\",\n \"Europe/Sarajevo\",\n \"Europe/Skopje\",\n \"Europe/Stockholm\",\n \"Europe/Tirane\",\n \"Europe/Vaduz\",\n \"Europe/Vatican\",\n \"Europe/Vienna\",\n \"Europe/Warsaw\",\n \"Europe/Zagreb\",\n \"Europe/Zurich\",\n \"Africa/Algiers\",\n \"Africa/Bangui\",\n \"Africa/Brazzaville\",\n \"Africa/Casablanca\",\n \"Africa/Douala\",\n \"Africa/El_Aaiun\",\n \"Africa/Kinshasa\",\n \"Africa/Lagos\",\n \"Africa/Libreville\",\n \"Africa/Luanda\",\n \"Africa/Malabo\",\n \"Africa/Ndjamena\",\n \"Africa/Niamey\",\n \"Africa/Porto-Novo\",\n \"Africa/Tunis\",\n \"Africa/Windhoek\",\n \"Atlantic/Canary\",\n \"Atlantic/Faroe\",\n \"Atlantic/Madeira\",\n \"Europe/Dublin\",\n \"Europe/Guernsey\",\n \"Europe/Isle_of_Man\",\n \"Europe/Jersey\",\n \"Europe/Lisbon\",\n \"Europe/London\",\n \"Africa/Abidjan\",\n \"Africa/Accra\",\n \"Africa/Bamako\",\n \"Africa/Banjul\",\n \"Africa/Bissau\",\n \"Africa/Conakry\",\n \"Africa/Dakar\",\n \"Africa/Freetown\",\n \"Africa/Lome\",\n \"Africa/Monrovia\",\n \"Africa/Nouakchott\",\n \"Africa/Ouagadougou\",\n \"Africa/Sao_Tome\",\n \"America/Danmarkshavn\",\n \"America/Scoresbysund\",\n \"Atlantic/Azores\",\n \"Atlantic/Reykjavik\",\n \"Atlantic/St_Helena\",\n \"UTC\",\n \"Atlantic/Cape_Verde\",\n \"America/Godthab\",\n \"America/Miquelon\",\n \"America/Noronha\",\n \"Atlantic/South_Georgia\",\n \"America/St_Johns\",\n \"America/Araguaina\",\n \"America/Argentina/Buenos_Aires\",\n \"America/Argentina/Catamarca\",\n \"America/Argentina/Cordoba\",\n \"America/Argentina/Jujuy\",\n \"America/Argentina/La_Rioja\",\n \"America/Argentina/Mendoza\",\n \"America/Argentina/Rio_Gallegos\",\n \"America/Argentina/Salta\",\n \"America/Argentina/San_Juan\",\n \"America/Argentina/San_Luis\",\n \"America/Argentina/Tucuman\",\n \"America/Argentina/Ushuaia\",\n \"America/Bahia\",\n \"America/Belem\",\n \"America/Cayenne\",\n \"America/Fortaleza\",\n \"America/Glace_Bay\",\n \"America/Goose_Bay\",\n \"America/Halifax\",\n \"America/Maceio\",\n \"America/Moncton\",\n \"America/Montevideo\",\n \"America/Paramaribo\",\n \"America/Punta_Arenas\",\n \"America/Recife\",\n \"America/Santarem\",\n \"America/Sao_Paulo\",\n \"America/Thule\",\n \"Antarctica/Palmer\",\n \"Antarctica/Rothera\",\n \"Atlantic/Bermuda\",\n \"Atlantic/Stanley\",\n \"America/Anguilla\",\n \"America/Antigua\",\n \"America/Aruba\",\n \"America/Asuncion\",\n \"America/Barbados\",\n \"America/Blanc-Sablon\",\n \"America/Boa_Vista\",\n \"America/Campo_Grande\",\n \"America/Caracas\",\n \"America/Cuiaba\",\n \"America/Curacao\",\n \"America/Detroit\",\n \"America/Dominica\",\n \"America/Grand_Turk\",\n \"America/Grenada\",\n \"America/Guadeloupe\",\n \"America/Guyana\",\n \"America/Havana\",\n \"America/Indiana/Indianapolis\",\n \"America/Indiana/Marengo\",\n \"America/Indiana/Petersburg\",\n \"America/Indiana/Vevay\",\n \"America/Indiana/Vincennes\",\n \"America/Indiana/Winamac\",\n \"America/Iqaluit\",\n \"America/Kentucky/Louisville\",\n \"America/Kentucky/Monticello\",\n \"America/Kralendijk\",\n \"America/La_Paz\",\n \"America/Lower_Princes\",\n \"America/Manaus\",\n \"America/Marigot\",\n \"America/Martinique\",\n \"America/Montserrat\",\n \"America/Nassau\",\n \"America/New_York\",\n \"America/Nipigon\",\n \"America/Pangnirtung\",\n \"America/Port-au-Prince\",\n \"America/Port_of_Spain\",\n \"America/Porto_Velho\",\n \"America/Puerto_Rico\",\n \"America/Santiago\",\n \"America/Santo_Domingo\",\n \"America/St_Barthelemy\",\n \"America/St_Kitts\",\n \"America/St_Lucia\",\n \"America/St_Thomas\",\n \"America/St_Vincent\",\n \"America/Thunder_Bay\",\n \"America/Toronto\",\n \"America/Tortola\",\n \"America/Atikokan\",\n \"America/Bahia_Banderas\",\n \"America/Bogota\",\n \"America/Cancun\",\n \"America/Cayman\",\n \"America/Chicago\",\n \"America/Eirunepe\",\n \"America/Guayaquil\",\n \"America/Indiana/Knox\",\n \"America/Indiana/Tell_City\",\n \"America/Jamaica\",\n \"America/Lima\",\n \"America/Matamoros\",\n \"America/Menominee\",\n \"America/Merida\",\n \"America/Mexico_City\",\n \"America/Monterrey\",\n \"America/North_Dakota/Beulah\",\n \"America/North_Dakota/Center\",\n \"America/North_Dakota/New_Salem\",\n \"America/Panama\",\n \"America/Rainy_River\",\n \"America/Rankin_Inlet\",\n \"America/Resolute\",\n \"America/Rio_Branco\",\n \"America/Winnipeg\",\n \"America/Belize\",\n \"America/Boise\",\n \"America/Cambridge_Bay\",\n \"America/Chihuahua\",\n \"America/Costa_Rica\",\n \"America/Denver\",\n \"America/Edmonton\",\n \"America/El_Salvador\",\n \"America/Guatemala\",\n \"America/Inuvik\",\n \"America/Managua\",\n \"America/Mazatlan\",\n \"America/Ojinaga\",\n \"America/Regina\",\n \"America/Swift_Current\",\n \"America/Tegucigalpa\",\n \"America/Yellowknife\",\n \"Pacific/Easter\",\n \"Pacific/Galapagos\",\n \"America/Creston\",\n \"America/Dawson\",\n \"America/Dawson_Creek\",\n \"America/Fort_Nelson\",\n \"America/Hermosillo\",\n \"America/Los_Angeles\",\n \"America/Phoenix\",\n \"America/Tijuana\",\n \"America/Vancouver\",\n \"America/Whitehorse\",\n \"America/Anchorage\",\n \"America/Juneau\",\n \"America/Metlakatla\",\n \"America/Nome\",\n \"America/Sitka\",\n \"America/Yakutat\",\n \"Pacific/Pitcairn\",\n \"America/Adak\",\n \"Pacific/Gambier\",\n \"Pacific/Marquesas\",\n \"Pacific/Honolulu\",\n \"Pacific/Rarotonga\",\n \"Pacific/Tahiti\",\n \"Pacific/Midway\",\n \"Pacific/Niue\",\n \"Pacific/Pago_Pago\",\n] as const;\n\n/** Member of {@link IANA_TIMEZONES}. */\nexport type IanaZone = (typeof IANA_TIMEZONES)[number];\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n /** Observed width of the Page root; undefined outside Page. */\n pageWidth?: number;\n /**\n * Main portal target. Undefined outside Page renders Content in place; null\n * inside Page renders nothing until the slot mounts.\n */\n contentWrapper?: HTMLElement | null;\n /**\n * Footer portal target. Undefined outside Page renders Footer in place; null\n * inside Page renders nothing until the slot mounts.\n */\n footerSlot?: HTMLElement | null;\n};\n","import { core } from \"@servicetitan/hammer-token\";\n\n/**\n * Shared Page boundary between the adaptive and desktop layouts. Parsing once\n * keeps Sidebar, Panel, and Content decisions aligned.\n */\nexport const PAGE_LG_BREAKPOINT = +(\n core.primitive?.BreakpointLg?.value?.replace(\"px\", \"\") ?? 0\n);\n\n/** Whether the page width uses the adaptive Sidebar and Panel forms. */\nexport const isPageMobileWidth = (pageWidth: number | undefined): boolean =>\n (pageWidth ?? 0) < PAGE_LG_BREAKPOINT;\n\n/**\n * Whether Page.Content can render its virtual-scroll spacer. Requires a\n * nonzero parsed breakpoint and a measured desktop width; otherwise the\n * spacer could enter SSR/adaptive flow and feed back into observed height.\n */\nexport const showsPageVirtualScroll = (\n pageWidth: number | undefined,\n): boolean => PAGE_LG_BREAKPOINT > 0 && (pageWidth ?? 0) >= PAGE_LG_BREAKPOINT;\n","import { Button, Icon, Flex, Tooltip } from \"../\";\nimport { Popover } from \"../../internal/components/Popover\";\nimport { usePopoverContext } from \"../../internal/components/Popover/internal/usePopoverContext\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useRef,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, type PageContextProps } from \"./PageContext\";\nimport { isPageMobileWidth } from \"./pageBreakpoint\";\n\nfunction AdaptiveSidebarContent({\n children,\n className,\n innerRef,\n}: {\n children: ReactNode;\n className?: string;\n innerRef?: Ref<HTMLDivElement>;\n}) {\n const { closePopover, openState } = usePopoverContext();\n const containerRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([containerRef, innerRef]);\n\n useEffect(() => {\n if (!openState) return;\n const overflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = overflow;\n };\n }, [openState]);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) return;\n const handleClick = (e: Event) => {\n if (!(e.target instanceof Element)) return;\n if (e.target.closest(\"a\")) closePopover();\n };\n el.addEventListener(\"click\", handleClick);\n return () => el.removeEventListener(\"click\", handleClick);\n }, [closePopover]);\n\n return (\n <Flex direction=\"column\" className={className} ref={mergedRef}>\n {children}\n </Flex>\n );\n}\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Persists desktop collapsed state under this localStorage key. Defaults to `\"sidebar-collapsed\"`. */\n localStorageKey?: string;\n /** Overrides the generated tracking ID on the desktop toggle button. */\n [\"data-tracking-id\"]?: string;\n /** Smaller-page trigger text. Defaults to `\"Menu\"`. */\n currentPageTitle?: string;\n /**\n * Called when the desktop sidebar collapses or expands; `open` is `true` when\n * expanded. Not called on mount. The small-page popover layout does not report\n * changes.\n */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Collapsible desktop sidebar with persisted state. On smaller pages it\n * becomes a popover whose trigger shows `currentPageTitle`.\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n onOpenChange,\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(() =>\n typeof window !== \"undefined\"\n ? isPageMobileWidth(window.innerWidth)\n : false,\n );\n\n useLayoutEffect(() => {\n if (!pageWidth) return;\n setIsMobile(isPageMobileWidth(pageWidth));\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n const next = !collapsed;\n localStorage.setItem(localStorageKey, JSON.stringify(next));\n setCollapsed(next);\n onOpenChange?.(!next);\n };\n\n if (isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding>\n <Popover.Trigger>\n {(props) => {\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <AdaptiveSidebarContent\n className={styles[\"sidebar-adaptive\"]}\n innerRef={ref}\n >\n {children}\n </AdaptiveSidebarContent>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Sidebar heading region hidden from accessibility when the sidebar collapses. */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import {\n type ButtonProps,\n type ButtonLinkProps,\n type BreadcrumbsLinkProps,\n type ChipProps,\n type MenuReturnProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n TextField,\n} from \"../\";\nimport {\n type ComponentPropsWithoutRef,\n type ReactNode,\n forwardRef,\n type Ref,\n useState,\n useRef,\n useEffect,\n type KeyboardEvent,\n} from \"react\";\nimport Layout, { type LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\nimport Edit from \"@servicetitan/hammer-icon/mdi/round/edit.svg\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport IconKeyboardArrowDown from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\n\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /** Visible button text, or menu-item text when nested under `items`. */\n label: string;\n};\n\n/**\n * Props for a page header action that opens a menu instead of invoking a single\n * handler. `onClick` is omitted because the whole button opens the menu -- an\n * action carrying both a handler and items would be a split button, which\n * Anvil does not support.\n */\ntype PageHeaderMenuActionProps = Omit<PageHeaderActionProps, \"onClick\"> & {\n /** Replaces a direct click handler with a menu opened by the primary button. */\n items: PageHeaderActionProps[];\n};\n\ntype PageHeaderActionsProps = {\n /**\n * Primary action button. Pass `items` instead of `onClick` to render a\n * primary button that opens a menu of actions.\n */\n primary?: PageHeaderActionProps | PageHeaderMenuActionProps;\n /**\n * Secondary buttons. Three or more, or two alongside a primary action,\n * collapse into a More actions menu.\n */\n secondary?: PageHeaderActionProps[];\n};\n\ntype BasePreferenceProps = {\n /** Names the icon-only control and supplies its tooltip text. */\n \"aria-label\": string;\n};\n\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\ntype PageHeaderTitleConfig = {\n /** Rendered in the page's `h1` and used to initialize the edit field. */\n text: string;\n /**\n * Makes the title editable. Return `false` to keep the editor open after\n * submit or confirmation.\n */\n onChange?: (title: string) => void | boolean;\n /** Accessible name and tooltip for entering edit mode. Defaults to `\"Edit title\"`. */\n editButtonLabel?: string;\n /** Accessible name for the title field. Defaults to `\"Page title\"`. */\n editFieldLabel?: string;\n /** Accessible name and tooltip for confirmation. Defaults to `\"Update title\"`. */\n confirmButtonLabel?: string;\n /** Accessible name and tooltip for cancellation. Defaults to `\"Cancel\"`. */\n cancelButtonLabel?: string;\n};\n\ntype PageHeaderTitle = PageHeaderTitleConfig[\"text\"] | PageHeaderTitleConfig;\n\n/** @extends Omit<ComponentPropsWithoutRef<\"header\">, \"title\"> */\nexport type PageHeaderProps = Omit<\n ComponentPropsWithoutRef<\"header\">,\n \"title\"\n> & {\n /**\n * Page `h1`. A string is read-only; the object form enables inline editing\n * when it includes `onChange`.\n */\n title: PageHeaderTitle;\n /** Rendered before the title as `Breadcrumbs.Link` items. */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /** Status chips rendered below the title. */\n chips?: ChipProps[];\n /** Full-width content below the title and actions. */\n description?: ReactNode;\n /**\n * Primary and secondary controls. Secondary actions overflow into More\n * actions at three items, or two alongside a primary; primary `items` make\n * that button a menu.\n */\n actions?: PageHeaderActionsProps;\n /** Settings-icon action. An `href` renders a link; otherwise it is a button. */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Header {@link LayoutProps}. When unset, the header uses the default fixed\n * 1280px layout. Match the `fluid` and `variant` of the `Layout` inside\n * `Page.Content`.\n */\n layout?: LayoutProps;\n};\n\n/**\n * Maps page header actions onto menu items. `Menu.Item` takes only a leading\n * icon, so a bare svg and the `{ after }` form are unwrapped to it and the\n * `{ before }` form is intentionally dropped. `ButtonProps` is a union, and\n * `Omit<ButtonProps, \"appearance\">` collapses it, which is why `icon` has to be\n * narrowed at runtime here.\n */\nconst renderMenuItems = (actions: PageHeaderActionProps[]) =>\n actions.map((action, index) => {\n const icon =\n typeof action.icon === \"function\"\n ? action.icon\n : action.icon && \"after\" in action.icon\n ? action.icon.after\n : undefined;\n return (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n icon={icon}\n className={action.className}\n />\n );\n });\n\n/**\n * Builds the trigger for a menu-opening primary action. `triggerProps` spreads\n * last on purpose: `Menu` supplies the trigger's `onClick`, `onKeyDown`, and\n * ARIA state, and spreading consumer props after them would clobber the menu's\n * own behavior. `icon` sits after `buttonProps` for the same reason in reverse:\n * the chevron is what signals that this button opens a menu, so it wins over a\n * consumer-supplied icon. A menu primary therefore cannot carry a leading icon.\n * `ref` lands last so nothing can displace it: `Menu` dismisses itself by\n * testing event paths against the invoker element, which only works if the ref\n * reaches the button.\n */\nconst renderPrimaryMenuTrigger =\n (primary: PageHeaderMenuActionProps) =>\n ({ ref, ...triggerProps }: MenuReturnProps) => {\n const { items: _items, label, ...buttonProps } = primary;\n return (\n <Button\n appearance=\"primary\"\n {...buttonProps}\n icon={{ after: IconKeyboardArrowDown }}\n {...triggerProps}\n ref={ref}\n >\n {label}\n </Button>\n );\n };\n\n/** Page heading with optional breadcrumbs, status, description, and actions. */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title: titleProp,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const title: PageHeaderTitleConfig =\n typeof titleProp === \"string\" ? { text: titleProp } : titleProp;\n\n const [editing, setEditing] = useState(false);\n const [editingTitle, setEditingTitle] = useState<\n PageHeaderTitleConfig[\"text\"]\n >(title.text);\n const editFieldRef = useRef<HTMLInputElement>(null);\n const editButtonRef = useRef<HTMLButtonElement>(null);\n const firstRenderRef = useRef(true);\n\n useEffect(() => {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (editing === true && editFieldRef.current) {\n editFieldRef.current.focus();\n }\n\n if (editing === false && editButtonRef.current) {\n editButtonRef.current.focus();\n }\n }, [editing]);\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const secondaryActions = actions?.secondary ?? [];\n const primaryAction = actions?.primary;\n\n const collapseSecondary =\n secondaryActions.length >= 3 ||\n (secondaryActions.length >= 2 && !!primaryAction);\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {collapseSecondary ? (\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n {...rest}\n ref={ref}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {renderMenuItems(secondaryActions)}\n </Menu>\n ) : (\n secondaryActions.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))\n )}\n\n {primaryAction &&\n (\"items\" in primaryAction ? (\n <Menu\n label={primaryAction.label}\n trigger={renderPrimaryMenuTrigger(primaryAction)}\n >\n {renderMenuItems(primaryAction.items)}\n </Menu>\n ) : (\n <Button appearance=\"primary\" {...primaryAction}>\n {primaryAction.label}\n </Button>\n ))}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n {breadcrumbs && (\n <Layout.Item>\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n </Layout.Item>\n )}\n\n <Layout.Item md={actionItems || editing ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n {title.onChange && editing ? (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n if (title.onChange?.(editingTitle) !== false) {\n setEditing(false);\n }\n }}\n style={{ display: \"flex\" }}\n >\n <Flex alignItems=\"center\" grow={1} gap={2}>\n <TextField\n aria-label={title.editFieldLabel ?? \"Page title\"}\n defaultValue={title.text}\n flexGrow={1}\n ref={editFieldRef}\n onChange={(event) =>\n setEditingTitle(event.target.value)\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.code === \"Escape\") {\n setEditing(false);\n setEditingTitle(title.text);\n }\n }}\n />\n\n <Flex alignItems=\"center\" gap={1}>\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Check}\n aria-label={\n title.confirmButtonLabel ?? \"Update title\"\n }\n size=\"small\"\n appearance=\"primary\"\n onClick={() => {\n if (title.onChange?.(editingTitle) !== false) {\n setEditing(false);\n }\n }}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.confirmButtonLabel ?? \"Update title\"}\n </Tooltip.Content>\n </Tooltip>\n\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Close}\n aria-label={title.cancelButtonLabel ?? \"Cancel\"}\n size=\"small\"\n onClick={() => {\n setEditing(false);\n setEditingTitle(title.text);\n }}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.cancelButtonLabel ?? \"Cancel\"}\n </Tooltip.Content>\n </Tooltip>\n </Flex>\n </Flex>\n </form>\n ) : (\n <>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title.text}\n </Text>\n\n {title.onChange != null ? (\n <>\n {\" \"}\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n icon={Edit}\n aria-label={title.editButtonLabel ?? \"Edit title\"}\n size=\"small\"\n appearance=\"ghost\"\n ref={editButtonRef}\n onClick={() => setEditing(true)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {title.editButtonLabel ?? \"Edit title\"}\n </Tooltip.Content>\n </Tooltip>\n </>\n ) : null}\n </>\n )}\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && <Layout.Item md={6}>{actionItems}</Layout.Item>}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n useEffect,\n useRef,\n useState,\n type UIEvent,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageContext } from \"./PageContext\";\nimport { showsPageVirtualScroll } from \"./pageBreakpoint\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/** @extends ComponentPropsWithoutRef<\"section\"> */\nexport type PageContentProps = ComponentPropsWithoutRef<\"section\">;\n\n/**\n * Main content section with a desktop virtual scrollbar synchronized to the\n * document. It renders in place outside Page, waits for Page's main slot, then\n * portals into that landmark.\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const sectionRef = useRef<HTMLElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([sectionRef, ref]);\n const blocker = useRef(true);\n // Coalesce a burst of ResizeObserver notifications into one frame so the read\n // of document.scrollHeight can never round-trip synchronously into setState\n // (see the \"Maximum update depth exceeded\" feedback loop).\n const rafIdRef = useRef(0);\n const [leftOffset, setLeftOffset] = useState(-9);\n const [contentHeight, setContentHeight] = useState(0);\n\n const { contentWrapper, pageWidth } = useContext(PageContext);\n\n // Match the stylesheet boundary where the spacer is removed from flow.\n const showVirtualScroll = showsPageVirtualScroll(pageWidth);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window?.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window?.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n useEffect(() => {\n const section = sectionRef.current;\n if (!section) return;\n\n const wrapperParent = section.parentElement;\n const isWrapped =\n wrapperParent?.classList.contains(styles[\"content-wrapper\"]) ?? false;\n const heightTarget = isWrapped ? wrapperParent! : section;\n\n const observer = new ResizeObserver(() => {\n if (rafIdRef.current) return;\n rafIdRef.current = requestAnimationFrame(() => {\n rafIdRef.current = 0;\n if (!sectionRef.current) return;\n\n setLeftOffset(\n sectionRef.current.offsetLeft + sectionRef.current.offsetWidth - 9,\n );\n\n const offset =\n parseFloat(\n getComputedStyle(sectionRef.current).getPropertyValue(\"--offset\"),\n ) || 0;\n const rawHeight = document.documentElement.scrollHeight - offset;\n setContentHeight(\n Number.isFinite(rawHeight) ? Math.max(0, rawHeight) : 0,\n );\n });\n });\n\n observer.observe(section);\n if (isWrapped) observer.observe(heightTarget);\n\n return () => {\n observer.disconnect();\n if (rafIdRef.current) {\n cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = 0;\n }\n };\n }, [contentWrapper]);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n const section = (\n <section className={classNames} ref={mergedRef} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n {showVirtualScroll && (\n <div style={{ width: 1, height: contentHeight }} />\n )}\n </div>\n </section>\n );\n\n if (contentWrapper) {\n return createPortal(section, contentWrapper);\n }\n\n if (contentWrapper === undefined) {\n return section;\n }\n\n return null;\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n useEffect,\n useLayoutEffect,\n useState,\n useMemo,\n type CSSProperties,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, type PageContextProps } from \"./PageContext\";\nimport { isPageMobileWidth } from \"./pageBreakpoint\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../DrillDown/internal/useDrillDownContextState\";\nimport drillDownStyles from \"../DrillDown/DrillDown.module.scss\";\nimport { useDrillDownContext } from \"../DrillDown/internal/useDrillDownContext\";\nimport { DisableConditionalUnmountWarningContext } from \"../../internal/contexts/DisableConditionalUnmountWarningContext\";\nimport { SuppressPanelSwapWarningContext } from \"../../internal/contexts/SuppressPanelSwapWarningContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Controlled visibility. Omit for a persistent desktop-style panel.\n */\n open?: boolean;\n /** Width preset. Defaults to `\"medium\"`. */\n size?: \"small\" | \"medium\" | \"large\";\n /** Removes the panel's inner padding. Defaults to `false`. */\n noPadding?: boolean;\n /** Initial DrillDown index for uncontrolled navigation within the panel. */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /** Exposes the panel's DrillDown context to an external `useDrillDown` host. */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n};\n\nconst PagePanelInner = ({\n style,\n open,\n children,\n}: {\n style?: CSSProperties;\n open?: boolean;\n children?: React.ReactNode;\n}) => {\n const { index } = useDrillDownContext();\n\n const classNames = cx([styles[\"panel-inner\"]], {\n [styles[\"drilldown-open\"]]: index !== undefined,\n });\n\n return (\n <div\n className={classNames}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={{ ...style, overflowY: index === undefined ? \"auto\" : \"hidden\" }}\n >\n <div>{children}</div>\n </div>\n );\n};\n\n/**\n * Desktop side panel with DrillDown context. Omit `open` for a persistent\n * panel; a controlled panel becomes a Dialog on smaller pages.\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n defaultDrillDownIndex,\n onDrillDownContextChange,\n ...rest\n } = props;\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n // When pageWidth is undefined (not yet measured), default to desktop to\n // prevent a Dialog from briefly mounting and then unmounting when the page\n // measures as desktop width.\n const [isMobile, setIsMobile] = useState<boolean>(() =>\n pageWidth !== undefined ? isPageMobileWidth(pageWidth) : false,\n );\n\n const classNames = cx(\n [styles.panel, drillDownStyles.panel],\n [styles[size]],\n className,\n {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n },\n );\n\n const drillDownContextValue = useDrillDownContextState({\n defaultDrillDownIndex,\n host: \"panel\",\n });\n\n const drillDownContextProviderValue = useMemo(\n () => ({\n ...drillDownContextValue,\n hostIsInteractive: open !== false,\n }),\n [drillDownContextValue, open],\n );\n\n useLayoutEffect(() => {\n onDrillDownContextChange?.(drillDownContextProviderValue);\n }, [drillDownContextProviderValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const previousOpenRef = useRef(open);\n const suppressPanelSwapWarningRef = useRef(false);\n const previousIsMobileRef = useRef(isMobile);\n\n useEffect(() => {\n if (isMobile) {\n previousOpenRef.current = open;\n return;\n }\n\n if (previousOpenRef.current && open === false) {\n drillDownContextValue.onHostClose?.();\n drillDownContextValue.onHostClosed?.();\n }\n\n previousOpenRef.current = open;\n }, [open, isMobile, drillDownContextValue]);\n\n useLayoutEffect(() => {\n if (isMobile || !open || previousOpenRef.current) {\n return;\n }\n\n drillDownContextValue.setHostTrigger?.(\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null,\n );\n }, [open, isMobile, drillDownContextValue]);\n\n useLayoutEffect(() => {\n const nextIsMobile =\n pageWidth !== undefined ? isPageMobileWidth(pageWidth) : false;\n\n if (\n typeof open !== \"undefined\" &&\n previousIsMobileRef.current !== nextIsMobile\n ) {\n // The panel swaps element trees when crossing the mobile breakpoint,\n // remounting the whole subtree (not an animation effect). Suppress\n // warnings for nested consumer Dialogs and Drawers that remount with\n // open=true during the swap. The passive clear below relies on React\n // running passive effect cleanups before passive mount effects.\n suppressPanelSwapWarningRef.current = true;\n }\n\n previousIsMobileRef.current = nextIsMobile;\n setIsMobile(nextIsMobile);\n }, [pageWidth, open]);\n\n // Clear the suppression flag after the swap completes. This must be a\n // passive effect (not a layout effect) because useWarnOnConditionalUnmount\n // warns from a passive cleanup. React flushes all passive cleanups before\n // passive mount effects, so the child's warn microtask queues before this clear.\n useEffect(() => {\n queueMicrotask(() => {\n suppressPanelSwapWarningRef.current = false;\n });\n }, [isMobile]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n // TODO(ANV-5711): Remove once Page.Panel stops swapping div/Dialog at the mobile breakpoint.\n // Suppression context prevents warnings when the subtree remounts during\n // a panel swap across the mobile breakpoint.\n <SuppressPanelSwapWarningContext.Provider\n value={suppressPanelSwapWarningRef}\n >\n <DisableConditionalUnmountWarningContext.Provider value={true}>\n <Dialog\n open={open}\n defaultDrillDownIndex={defaultDrillDownIndex}\n onDrillDownContextChange={onDrillDownContextChange}\n >\n <Dialog.Content>\n <DisableConditionalUnmountWarningContext.Provider value={false}>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </DisableConditionalUnmountWarningContext.Provider>\n </Dialog.Content>\n </Dialog>\n </DisableConditionalUnmountWarningContext.Provider>\n </SuppressPanelSwapWarningContext.Provider>\n );\n }\n return (\n // Suppression context prevents warnings when the subtree remounts during\n // a panel swap across the mobile breakpoint.\n <SuppressPanelSwapWarningContext.Provider\n value={suppressPanelSwapWarningRef}\n >\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <PagePanelInner style={style} open={open}>\n {children}\n </PagePanelInner>\n </div>\n </DrillDownContext.Provider>\n </SuppressPanelSwapWarningContext.Provider>\n );\n },\n);\n\nPagePanel.displayName = \"PagePanel\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageContext } from \"./PageContext\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * Footer landmark. It renders in place outside Page, waits for Page's footer\n * slot, then portals into it.\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n const { footerSlot } = useContext(PageContext);\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const footer = (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n\n if (footerSlot) {\n return createPortal(footer, footerSlot);\n }\n\n if (footerSlot === undefined) {\n return footer;\n }\n\n return null;\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * Full-page shell with optional Sidebar, Header, Content, Panel, and Footer\n * regions. Content and Footer portal into the shell's main and footer slots.\n */\nexport const Page = Object.assign(\n forwardRef<HTMLDivElement, PageProps>(function PageInner(props, ref) {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number | undefined>(undefined);\n const [contentWrapper, setContentWrapper] = useState<HTMLElement | null>(\n null,\n );\n const [footerSlot, setFooterSlot] = useState<HTMLElement | null>(null);\n\n // Capture the portal targets with stable callback refs that ignore detach\n // (node === null). React calls a ref with null while it tears down/hides a\n // subtree (the disappearLayoutEffects phase); routing that null straight\n // into setState — as a bare `ref={setContentWrapper}` does — re-renders Page\n // mid-teardown, which detaches the ref again, looping until React throws\n // \"Maximum update depth exceeded\". The <main>/<div> below share Page's\n // lifetime, so they only truly unmount when Page does, making a retained\n // node after a real unmount harmless. Bailing when the node is unchanged\n // also avoids a redundant render if the same element is re-attached.\n const contentWrapperRef = useCallback((node: HTMLElement | null) => {\n setContentWrapper((prev) => (node && node !== prev ? node : prev));\n }, []);\n const footerSlotRef = useCallback((node: HTMLElement | null) => {\n setFooterSlot((prev) => (node && node !== prev ? node : prev));\n }, []);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n if (element) {\n // Measure synchronously before observe() to avoid a one-frame desktop\n // flash on mobile and to prevent Page.Panel from briefly mounting a\n // Dialog at desktop width before the ResizeObserver fires.\n const w = element.clientWidth;\n if (w > 0) {\n setPageWidth(w);\n }\n }\n\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n // disconnect() releases every observation, so an explicit unobserve here\n // would be redundant.\n return () => resizeObserver.disconnect();\n }, [elRef]);\n\n const contextValue = useMemo(\n () => ({ pageWidth, contentWrapper, footerSlot }),\n [pageWidth, contentWrapper, footerSlot],\n );\n\n return (\n <PageContext.Provider value={contextValue}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>\n {children}\n <main\n className={styles[\"content-wrapper\"]}\n ref={contentWrapperRef}\n />\n <div className={styles[\"footer-slot\"]} ref={footerSlotRef} />\n </div>\n </div>\n </PageContext.Provider>\n );\n }),\n {\n /** Collapsible desktop sidebar that becomes a popover on smaller pages. */\n Sidebar: PageSidebar,\n /** Sidebar heading region hidden from accessibility when collapsed. */\n SidebarHeader: PageSidebarHeader,\n /** Page heading, breadcrumbs, status, description, and actions. */\n Header: PageHeader,\n /** Section portaled into Page's main landmark. */\n Content: PageContent,\n /** Omit `open` for a persistent panel; a controlled panel becomes a Dialog on smaller pages. */\n Panel: PagePanel,\n /** Footer portaled into Page's footer slot. */\n Footer: PageFooter,\n },\n);\nPage.displayName = \"Page\";\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","IconKeyboardArrowDown","LocalSettings","ref","rest","MoreVert","Check","Close","Edit","section"],"mappings":"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"}