@servicetitan/anvil2 3.13.0 → 3.13.2

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 (284) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{AiMark-Bf0x9FF3.js → AiMark-DvxF40mc.js} +6 -5
  3. package/dist/{AiMark-Bf0x9FF3.js.map → AiMark-DvxF40mc.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-S4D2DGx7.js → Alert-jMcoYnn3.js} +4 -4
  6. package/dist/{Alert-S4D2DGx7.js.map → Alert-jMcoYnn3.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-CGglhMfd.js → Announcement-CGTv6M31.js} +6 -5
  9. package/dist/Announcement-CGTv6M31.js.map +1 -0
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{AnvilProvider-Deh-Vgep.js → AnvilProvider-CgYBk3YP.js} +2 -2
  12. package/dist/{AnvilProvider-Deh-Vgep.js.map → AnvilProvider-CgYBk3YP.js.map} +1 -1
  13. package/dist/AnvilProvider.js +1 -1
  14. package/dist/{Avatar-lLiNUrxq.js → Avatar-D31JDNrs.js} +2 -2
  15. package/dist/{Avatar-lLiNUrxq.js.map → Avatar-D31JDNrs.js.map} +1 -1
  16. package/dist/{Avatar-ioIwH1KT.js → Avatar-DXI-w1Vi.js} +2 -2
  17. package/dist/{Avatar-ioIwH1KT.js.map → Avatar-DXI-w1Vi.js.map} +1 -1
  18. package/dist/Avatar.js +2 -2
  19. package/dist/{Breadcrumbs-CR1od1rZ.js → Breadcrumbs-lrFI8Kq5.js} +2 -2
  20. package/dist/{Breadcrumbs-CR1od1rZ.js.map → Breadcrumbs-lrFI8Kq5.js.map} +1 -1
  21. package/dist/Breadcrumbs.js +1 -1
  22. package/dist/{Calendar-B-K7eGua.js → Calendar-BDIucj98.js} +2 -2
  23. package/dist/{Calendar-B-K7eGua.js.map → Calendar-BDIucj98.js.map} +1 -1
  24. package/dist/{Calendar-DZnnO3m_.js → Calendar-PMw2HhYu.js} +2 -2
  25. package/dist/{Calendar-DZnnO3m_.js.map → Calendar-PMw2HhYu.js.map} +1 -1
  26. package/dist/Calendar.js +2 -2
  27. package/dist/{Checkbox-D5-HJC6_.js → Checkbox-D6F6szD5.js} +2 -2
  28. package/dist/{Checkbox-D5-HJC6_.js.map → Checkbox-D6F6szD5.js.map} +1 -1
  29. package/dist/{Checkbox-CXfrIo6I.js → Checkbox-laf_32U2.js} +5 -5
  30. package/dist/{Checkbox-CXfrIo6I.js.map → Checkbox-laf_32U2.js.map} +1 -1
  31. package/dist/Checkbox.js +1 -1
  32. package/dist/{Chip-DLK31FkK.js → Chip-DbmQFaSy.js} +4 -4
  33. package/dist/{Chip-DLK31FkK.js.map → Chip-DbmQFaSy.js.map} +1 -1
  34. package/dist/Chip.js +1 -1
  35. package/dist/Combobox.js +1 -1
  36. package/dist/{DataTable-ZczGbHZT.js → DataTable-B3Nctek_.js} +53 -52
  37. package/dist/DataTable-B3Nctek_.js.map +1 -0
  38. package/dist/DataTable.css +96 -115
  39. package/dist/{DateFieldRange-8JO-rJm-.js → DateFieldRange-Babt-rTV.js} +4 -4
  40. package/dist/{DateFieldRange-8JO-rJm-.js.map → DateFieldRange-Babt-rTV.js.map} +1 -1
  41. package/dist/DateFieldRange.js +1 -1
  42. package/dist/{DateFieldSingle-CrTMTL9v.js → DateFieldSingle-DMcfJwxk.js} +4 -4
  43. package/dist/{DateFieldSingle-CrTMTL9v.js.map → DateFieldSingle-DMcfJwxk.js.map} +1 -1
  44. package/dist/DateFieldSingle.js +1 -1
  45. package/dist/{DateFieldYearless-Bo1V-4K2.js → DateFieldYearless-cX9tklg3.js} +5 -5
  46. package/dist/{DateFieldYearless-Bo1V-4K2.js.map → DateFieldYearless-cX9tklg3.js.map} +1 -1
  47. package/dist/DateFieldYearless.js +1 -1
  48. package/dist/{DateFieldYearlessRange-rj36AQhR.js → DateFieldYearlessRange-B5q1JJ4o.js} +4 -4
  49. package/dist/{DateFieldYearlessRange-rj36AQhR.js.map → DateFieldYearlessRange-B5q1JJ4o.js.map} +1 -1
  50. package/dist/DateFieldYearlessRange.js +1 -1
  51. package/dist/{DaysOfTheWeek-B39FZ-TR.js → DaysOfTheWeek-BGeOcpvH.js} +4 -4
  52. package/dist/{DaysOfTheWeek-B39FZ-TR.js.map → DaysOfTheWeek-BGeOcpvH.js.map} +1 -1
  53. package/dist/DaysOfTheWeek.js +1 -1
  54. package/dist/{Dialog-PcuDCqK7.js → Dialog-DHheusQG.js} +3 -3
  55. package/dist/{Dialog-PcuDCqK7.js.map → Dialog-DHheusQG.js.map} +1 -1
  56. package/dist/Dialog.js +1 -1
  57. package/dist/{Drawer-CEsvth0Z.js → Drawer-ZpS1rSAo.js} +4 -4
  58. package/dist/{Drawer-CEsvth0Z.js.map → Drawer-ZpS1rSAo.js.map} +1 -1
  59. package/dist/Drawer.js +1 -1
  60. package/dist/DrillDown.js +1 -1
  61. package/dist/{EditCard-CtWVEAsA.js → EditCard-Cfi2Vz2n.js} +2 -2
  62. package/dist/{EditCard-CtWVEAsA.js.map → EditCard-Cfi2Vz2n.js.map} +1 -1
  63. package/dist/EditCard.js +1 -1
  64. package/dist/{FieldLabel-BFJdJP_W.js → FieldLabel-8AZcbhoO.js} +3 -3
  65. package/dist/{FieldLabel-BFJdJP_W.js.map → FieldLabel-8AZcbhoO.js.map} +1 -1
  66. package/dist/FieldLabel.js +1 -1
  67. package/dist/{FieldMessage-mTGdycSA.js → FieldMessage-8c9yA_kw.js} +4 -4
  68. package/dist/{FieldMessage-mTGdycSA.js.map → FieldMessage-8c9yA_kw.js.map} +1 -1
  69. package/dist/FieldMessage.js +1 -1
  70. package/dist/{FilterBar-lIGh4xIl.js → FilterBar-BBG7xChV.js} +5 -6
  71. package/dist/FilterBar-BBG7xChV.js.map +1 -0
  72. package/dist/FilterBar.js +1 -1
  73. package/dist/{Helper-Bq6Npkgh.js → Helper-BHpOgh7k.js} +2 -2
  74. package/dist/{Helper-Bq6Npkgh.js.map → Helper-BHpOgh7k.js.map} +1 -1
  75. package/dist/{InputMask-DJTXKPmK.js → InputMask-l91oggrN.js} +3 -3
  76. package/dist/{InputMask-DJTXKPmK.js.map → InputMask-l91oggrN.js.map} +1 -1
  77. package/dist/InputMask.js +1 -1
  78. package/dist/{ListView-CPDHEpD-.js → ListView-CZhtsHeq.js} +2 -2
  79. package/dist/{ListView-CPDHEpD-.js.map → ListView-CZhtsHeq.js.map} +1 -1
  80. package/dist/ListView.js +1 -1
  81. package/dist/{Listbox-Of-WaRWI.js → Listbox-XzguYMmw.js} +2 -2
  82. package/dist/{Listbox-Of-WaRWI.js.map → Listbox-XzguYMmw.js.map} +1 -1
  83. package/dist/Listbox.js +1 -1
  84. package/dist/{Menu-CM0EndhK.js → Menu-BjPE_ODh.js} +45 -38
  85. package/dist/Menu-BjPE_ODh.js.map +1 -0
  86. package/dist/Menu.css +21 -21
  87. package/dist/Menu.js +1 -1
  88. package/dist/Menu.module-CMDgSO9k.js +13 -0
  89. package/dist/Menu.module-CMDgSO9k.js.map +1 -0
  90. package/dist/MultiSelectField.js +1 -1
  91. package/dist/{MultiSelectFieldSync-CFw607cm.js → MultiSelectFieldSync-LbZxIXJ1.js} +58 -34
  92. package/dist/MultiSelectFieldSync-LbZxIXJ1.js.map +1 -0
  93. package/dist/MultiSelectMenu.js +1 -1
  94. package/dist/{MultiSelectMenuSync-C6afc80f.js → MultiSelectMenuSync-jlTj0prP.js} +6 -5
  95. package/dist/{MultiSelectMenuSync-C6afc80f.js.map → MultiSelectMenuSync-jlTj0prP.js.map} +1 -1
  96. package/dist/{NumberField-ASyiQu5l.js → NumberField-KO51fZ_O.js} +4 -4
  97. package/dist/{NumberField-ASyiQu5l.js.map → NumberField-KO51fZ_O.js.map} +1 -1
  98. package/dist/NumberField.js +1 -1
  99. package/dist/{Page-D5NbV2Y8.js → Page-Z_ttFQJZ.js} +219 -148
  100. package/dist/Page-Z_ttFQJZ.js.map +1 -0
  101. package/dist/Page.css +123 -88
  102. package/dist/Page.js +1 -1
  103. package/dist/{Pagination-B4HCZNYw.js → Pagination-C0x5v_yk.js} +3 -3
  104. package/dist/{Pagination-B4HCZNYw.js.map → Pagination-C0x5v_yk.js.map} +1 -1
  105. package/dist/Pagination.js +1 -1
  106. package/dist/{Popover-CjsE5FG0.js → Popover-BPg2nwm3.js} +5 -5
  107. package/dist/Popover-BPg2nwm3.js.map +1 -0
  108. package/dist/Popover.js +1 -1
  109. package/dist/{ProgressBar-C_HXy_Hx.js → ProgressBar-Dc8PTakM.js} +4 -5
  110. package/dist/{ProgressBar-C_HXy_Hx.js.map → ProgressBar-Dc8PTakM.js.map} +1 -1
  111. package/dist/ProgressBar.js +1 -1
  112. package/dist/{Radio-B5KxT85j.js → Radio-BDBjGCJR.js} +5 -5
  113. package/dist/{Radio-B5KxT85j.js.map → Radio-BDBjGCJR.js.map} +1 -1
  114. package/dist/{Radio-CBQpuxLP.js → Radio-kONDu2uD.js} +2 -2
  115. package/dist/{Radio-CBQpuxLP.js.map → Radio-kONDu2uD.js.map} +1 -1
  116. package/dist/Radio.js +1 -1
  117. package/dist/{RichTextEditor-C7CCeqGW.js → RichTextEditor-U5xv9w8O.js} +10 -10
  118. package/dist/{RichTextEditor-C7CCeqGW.js.map → RichTextEditor-U5xv9w8O.js.map} +1 -1
  119. package/dist/RichTextEditor.js +1 -1
  120. package/dist/{SavedFiltersButton-BwnP6fuk.js → SavedFiltersButton-LViLmMde.js} +9 -9
  121. package/dist/{SavedFiltersButton-BwnP6fuk.js.map → SavedFiltersButton-LViLmMde.js.map} +1 -1
  122. package/dist/SavedFiltersButton.js +1 -1
  123. package/dist/{SelectCard-DbWOdnuI.js → SelectCard-BhVmrXxS.js} +3 -3
  124. package/dist/{SelectCard-DbWOdnuI.js.map → SelectCard-BhVmrXxS.js.map} +1 -1
  125. package/dist/SelectCard.js +1 -1
  126. package/dist/SelectField.js +1 -1
  127. package/dist/{SelectFieldLabel-CujwhWLB.js → SelectFieldLabel-hJwER0Gc.js} +2 -2
  128. package/dist/{SelectFieldLabel-CujwhWLB.js.map → SelectFieldLabel-hJwER0Gc.js.map} +1 -1
  129. package/dist/{SelectFieldSync-BdYCHwPd.js → SelectFieldSync-DDL_XnSP.js} +6 -6
  130. package/dist/{SelectFieldSync-BdYCHwPd.js.map → SelectFieldSync-DDL_XnSP.js.map} +1 -1
  131. package/dist/SelectMenu.js +1 -1
  132. package/dist/{SelectMenuSync-DlqmXr04.js → SelectMenuSync-BdrLS1Jg.js} +4 -4
  133. package/dist/{SelectMenuSync-DlqmXr04.js.map → SelectMenuSync-BdrLS1Jg.js.map} +1 -1
  134. package/dist/{SelectOptions-Cz4mU7WG.js → SelectOptions-BbQaDz-p.js} +2 -2
  135. package/dist/{SelectOptions-Cz4mU7WG.js.map → SelectOptions-BbQaDz-p.js.map} +1 -1
  136. package/dist/{SelectTrigger-QkI2I04A.js → SelectTrigger-CKiKG_Z_.js} +3 -3
  137. package/dist/{SelectTrigger-QkI2I04A.js.map → SelectTrigger-CKiKG_Z_.js.map} +1 -1
  138. package/dist/SelectTrigger.js +1 -1
  139. package/dist/{SelectTriggerBase-C5C6JmDF.js → SelectTriggerBase-C53mpZ6G.js} +4 -4
  140. package/dist/{SelectTriggerBase-C5C6JmDF.js.map → SelectTriggerBase-C53mpZ6G.js.map} +1 -1
  141. package/dist/{StatusIcon-BwULopyH.js → StatusIcon-BqorkNJf.js} +13 -9
  142. package/dist/{StatusIcon-BwULopyH.js.map → StatusIcon-BqorkNJf.js.map} +1 -1
  143. package/dist/StatusIcon.css +16 -10
  144. package/dist/{Switch-MfbL3JVk.js → Switch-BuIZ8Peh.js} +3 -3
  145. package/dist/{Switch-MfbL3JVk.js.map → Switch-BuIZ8Peh.js.map} +1 -1
  146. package/dist/Switch.js +1 -1
  147. package/dist/Table.js +1 -1
  148. package/dist/{Text-CEJHoh0p.js → Text-Ci-L0y2z.js} +2 -2
  149. package/dist/{Text-CEJHoh0p.js.map → Text-Ci-L0y2z.js.map} +1 -1
  150. package/dist/Text.js +1 -1
  151. package/dist/{TextField-DTbZOxwI.js → TextField-C5db78Nb.js} +4 -4
  152. package/dist/{TextField-DTbZOxwI.js.map → TextField-C5db78Nb.js.map} +1 -1
  153. package/dist/{TextField-DWbDQfHY.js → TextField-CIF-Ibkg.js} +2 -2
  154. package/dist/{TextField-DWbDQfHY.js.map → TextField-CIF-Ibkg.js.map} +1 -1
  155. package/dist/TextField.js +1 -1
  156. package/dist/{Textarea-CSXwaDf6.js → Textarea-90BDBw_L.js} +4 -4
  157. package/dist/{Textarea-CSXwaDf6.js.map → Textarea-90BDBw_L.js.map} +1 -1
  158. package/dist/Textarea.js +1 -1
  159. package/dist/{ThemeProvider-BlEOL-sk.js → ThemeProvider-D4dbBfHd.js} +33 -24
  160. package/dist/ThemeProvider-D4dbBfHd.js.map +1 -0
  161. package/dist/ThemeProvider.js +1 -1
  162. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  163. package/dist/{TimeField-BZQP8KSf.js → TimeField-C_K-uPrE.js} +4 -4
  164. package/dist/{TimeField-BZQP8KSf.js.map → TimeField-C_K-uPrE.js.map} +1 -1
  165. package/dist/TimeField.js +1 -1
  166. package/dist/Toast.js +2 -2
  167. package/dist/{Toaster-C2z5rCrc.js → Toaster-CC34KRD9.js} +60 -32
  168. package/dist/Toaster-CC34KRD9.js.map +1 -0
  169. package/dist/{Toaster-B1xZq1bs.js → Toaster-CRoqsuBq.js} +41 -30
  170. package/dist/Toaster-CRoqsuBq.js.map +1 -0
  171. package/dist/{Toolbar-BDjgSnCU.js → Toolbar-C1fBdJiE.js} +5 -5
  172. package/dist/{Toolbar-BDjgSnCU.js.map → Toolbar-C1fBdJiE.js.map} +1 -1
  173. package/dist/{Toolbar-neulke7h.js → Toolbar-CKgEX5iE.js} +4 -4
  174. package/dist/{Toolbar-neulke7h.js.map → Toolbar-CKgEX5iE.js.map} +1 -1
  175. package/dist/Toolbar.js +2 -2
  176. package/dist/{ToolbarButtonToggle-C_Dq_qyS.js → ToolbarButtonToggle-DEPfji6E.js} +2 -2
  177. package/dist/{ToolbarButtonToggle-C_Dq_qyS.js.map → ToolbarButtonToggle-DEPfji6E.js.map} +1 -1
  178. package/dist/{Tooltip-CzrJgl98.js → Tooltip-DM63W1Np.js} +6 -6
  179. package/dist/Tooltip-DM63W1Np.js.map +1 -0
  180. package/dist/Tooltip.js +1 -1
  181. package/dist/TreeSelectField.js +1 -1
  182. package/dist/{TreeSelectFieldSync-D7ntJmDF.js → TreeSelectFieldSync-D7ou3LDX.js} +6 -6
  183. package/dist/{TreeSelectFieldSync-D7ntJmDF.js.map → TreeSelectFieldSync-D7ou3LDX.js.map} +1 -1
  184. package/dist/TreeSelectMenu.js +1 -1
  185. package/dist/{TreeSelectMenuSync-CTm2n1vJ.js → TreeSelectMenuSync-DVbQ-6UN.js} +5 -4
  186. package/dist/{TreeSelectMenuSync-CTm2n1vJ.js.map → TreeSelectMenuSync-DVbQ-6UN.js.map} +1 -1
  187. package/dist/{TypeaheadTextField-CEWM_N-N.js → TypeaheadTextField-C1uO5wgs.js} +4 -4
  188. package/dist/{TypeaheadTextField-CEWM_N-N.js.map → TypeaheadTextField-C1uO5wgs.js.map} +1 -1
  189. package/dist/TypeaheadTextField.js +1 -1
  190. package/dist/{YearlessDateInputWithPicker-D6N_mYDe.js → YearlessDateInputWithPicker-Cav1QK7J.js} +2 -2
  191. package/dist/{YearlessDateInputWithPicker-D6N_mYDe.js.map → YearlessDateInputWithPicker-Cav1QK7J.js.map} +1 -1
  192. package/dist/arrayIdsEqual-DnevhwqN.js +13 -0
  193. package/dist/arrayIdsEqual-DnevhwqN.js.map +1 -0
  194. package/dist/beta.js +17 -16
  195. package/dist/beta.js.map +1 -1
  196. package/dist/{bulkActionTypes-jKqcdwuO.js → bulkActionTypes-DHvrhDC5.js} +2 -2
  197. package/dist/{bulkActionTypes-jKqcdwuO.js.map → bulkActionTypes-DHvrhDC5.js.map} +1 -1
  198. package/dist/check_circle-C3DDoVXp.js +8 -0
  199. package/dist/check_circle-C3DDoVXp.js.map +1 -0
  200. package/dist/{confirmationTypes-CG7xl50f.js → confirmationTypes-DeRtO_Cw.js} +2 -13
  201. package/dist/confirmationTypes-DeRtO_Cw.js.map +1 -0
  202. package/dist/{filter-state-TEgOgQVy.js → filter-state-CaOTUqh1.js} +25 -30
  203. package/dist/filter-state-CaOTUqh1.js.map +1 -0
  204. package/dist/filter-state.css +27 -14
  205. package/dist/{floating-ui.react-dom-CyrxPiI-.js → floating-ui.react-dom-BIKT960u.js} +2 -2
  206. package/dist/{floating-ui.react-dom-CyrxPiI-.js.map → floating-ui.react-dom-BIKT960u.js.map} +1 -1
  207. package/dist/{index-lV_kQQH8.js → index-BObnJSIh.js} +2 -2
  208. package/dist/{index-lV_kQQH8.js.map → index-BObnJSIh.js.map} +1 -1
  209. package/dist/index.js +916 -58
  210. package/dist/index.js.map +1 -1
  211. package/dist/index2.css +407 -0
  212. package/dist/portalScopeClassNames--sU7fdKW.js +16 -0
  213. package/dist/portalScopeClassNames--sU7fdKW.js.map +1 -0
  214. package/dist/settings-Bsahaln8.js +10 -0
  215. package/dist/settings-Bsahaln8.js.map +1 -0
  216. package/dist/src/beta/components/Page/Page.d.ts +231 -0
  217. package/dist/src/beta/components/Page/Page.figma.d.ts +1 -0
  218. package/dist/src/beta/components/Page/PageContent.d.ts +22 -0
  219. package/dist/src/beta/components/Page/PageContext.d.ts +6 -0
  220. package/dist/src/beta/components/Page/PageFooter.d.ts +25 -0
  221. package/dist/src/beta/components/Page/PageHeader.d.ts +157 -0
  222. package/dist/src/beta/components/Page/PagePanel.d.ts +145 -0
  223. package/dist/src/beta/components/Page/PagePanelContent.d.ts +46 -0
  224. package/dist/src/beta/components/Page/PagePanelFooter.d.ts +34 -0
  225. package/dist/src/beta/components/Page/PagePanelHeader.d.ts +21 -0
  226. package/dist/src/beta/components/Page/PageSidebar.d.ts +57 -0
  227. package/dist/src/beta/components/Page/PageSidebarContext.d.ts +5 -0
  228. package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +23 -0
  229. package/dist/src/beta/components/Page/index.d.ts +11 -0
  230. package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +11 -0
  231. package/dist/src/beta/components/Page/pageBreakpoint.d.ts +25 -0
  232. package/dist/src/beta/components/index.d.ts +1 -0
  233. package/dist/src/components/Menu/internal/menuSelectors.d.ts +4 -0
  234. package/dist/src/components/Menu/types.d.ts +24 -4
  235. package/dist/src/components/Toast/Toaster.d.ts +5 -4
  236. package/dist/src/components/Toast/internal/Toaster.d.ts +21 -0
  237. package/dist/src/integration-testing/beta-page-native-scroll.spec.d.ts +1 -0
  238. package/dist/src/internal/components/StatusIcon/StatusIcon.d.ts +1 -1
  239. package/dist/src/internal/functions/portalScopeClassNames.d.ts +15 -0
  240. package/dist/src/internal/hooks/useCommitSelectionIfChanged.d.ts +20 -0
  241. package/dist/src/providers/ThemeProvider/internal/ThemeProviderContext.d.ts +8 -0
  242. package/dist/src/providers/ThemeProvider/themeToCssVars.d.ts +16 -0
  243. package/dist/{stripInlineMarkdown-BGdIj-cj.js → stripInlineMarkdown-aIDVZDGr.js} +2 -2
  244. package/dist/{stripInlineMarkdown-BGdIj-cj.js.map → stripInlineMarkdown-aIDVZDGr.js.map} +1 -1
  245. package/dist/{syncFilterUtils-9Pqeq8J4.js → syncFilterUtils-BPuSOFJn.js} +3 -3
  246. package/dist/{syncFilterUtils-9Pqeq8J4.js.map → syncFilterUtils-BPuSOFJn.js.map} +1 -1
  247. package/dist/{treeSync-tEqZxxHQ.js → treeSync-IYtVu8Jq.js} +3 -3
  248. package/dist/{treeSync-tEqZxxHQ.js.map → treeSync-IYtVu8Jq.js.map} +1 -1
  249. package/dist/{useDrilldown-D5iDWSx7.js → useDrilldown-CHukLz7z.js} +2 -2
  250. package/dist/{useDrilldown-D5iDWSx7.js.map → useDrilldown-CHukLz7z.js.map} +1 -1
  251. package/dist/{useInfiniteCombobox-DRd_Fp1w.js → useInfiniteCombobox-DNXkXJN5.js} +5 -5
  252. package/dist/{useInfiniteCombobox-DRd_Fp1w.js.map → useInfiniteCombobox-DNXkXJN5.js.map} +1 -1
  253. package/dist/{useInvalidateOnOptionsChange-CC_6sRp9.js → useInvalidateOnOptionsChange-C92u1JZc.js} +8 -6
  254. package/dist/useInvalidateOnOptionsChange-C92u1JZc.js.map +1 -0
  255. package/dist/usePrefersColorScheme-CwOF0TjZ.js +31 -0
  256. package/dist/usePrefersColorScheme-CwOF0TjZ.js.map +1 -0
  257. package/dist/usePrefersColorScheme.js +1 -1
  258. package/package.json +2 -2
  259. package/dist/Announcement-CGglhMfd.js.map +0 -1
  260. package/dist/DataTable-ZczGbHZT.js.map +0 -1
  261. package/dist/FilterBar-lIGh4xIl.js.map +0 -1
  262. package/dist/Menu-CM0EndhK.js.map +0 -1
  263. package/dist/Menu.module-CoyI86tZ.js +0 -13
  264. package/dist/Menu.module-CoyI86tZ.js.map +0 -1
  265. package/dist/MultiSelectFieldSync-CFw607cm.js.map +0 -1
  266. package/dist/Page-D5NbV2Y8.js.map +0 -1
  267. package/dist/Popover-CjsE5FG0.js.map +0 -1
  268. package/dist/ThemeProvider-BlEOL-sk.js.map +0 -1
  269. package/dist/Toaster-B1xZq1bs.js.map +0 -1
  270. package/dist/Toaster-C2z5rCrc.js.map +0 -1
  271. package/dist/Tooltip-CzrJgl98.js.map +0 -1
  272. package/dist/check_circle-CM0ukqXv.js +0 -6
  273. package/dist/check_circle-CM0ukqXv.js.map +0 -1
  274. package/dist/confirmationTypes-CG7xl50f.js.map +0 -1
  275. package/dist/error-DR_wWdYY.js +0 -6
  276. package/dist/error-DR_wWdYY.js.map +0 -1
  277. package/dist/filter-state-TEgOgQVy.js.map +0 -1
  278. package/dist/portalScopeClassNames-BTyv0FY8.js +0 -7
  279. package/dist/portalScopeClassNames-BTyv0FY8.js.map +0 -1
  280. package/dist/useInvalidateOnOptionsChange-CC_6sRp9.js.map +0 -1
  281. package/dist/usePrefersColorScheme-_hT7dK7_.js +0 -31
  282. package/dist/usePrefersColorScheme-_hT7dK7_.js.map +0 -1
  283. package/dist/warning-c4Wj1rI4.js +0 -6
  284. package/dist/warning-c4Wj1rI4.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page-Z_ttFQJZ.js","sources":["../src/beta/components/Page/PageSidebarContext.ts","../src/beta/components/Page/PageContext.ts","../src/beta/components/Page/pageBreakpoint.ts","../src/beta/components/Page/PageSidebar.tsx","../src/beta/components/Page/PageSidebarHeader.tsx","../src/beta/components/Page/PageHeader.tsx","../src/beta/components/Page/PageContent.tsx","../src/beta/components/Page/internal/PagePanelContext.tsx","../src/beta/components/Page/PagePanelHeader.tsx","../src/beta/components/Page/PagePanelContent.tsx","../src/beta/components/Page/PagePanelFooter.tsx","../src/beta/components/Page/PagePanel.tsx","../src/beta/components/Page/PageFooter.tsx","../src/beta/components/Page/Page.tsx"],"sourcesContent":["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 pageWidth?: number;\n contentWrapper?: HTMLElement | null;\n footerSlot?: HTMLElement | null;\n};\n","import { core } from \"@servicetitan/hammer-token\";\n\n/**\n * The Page's `lg` breakpoint width in px — the boundary between the stacked\n * \"mobile\" layout (sidebar collapses to a popover trigger, panel becomes a\n * dialog) and the desktop layout. Parsed once from the design token; falls\n * back to `0` if the token is unavailable.\n *\n * Single source of truth for every width-driven layout decision in Page\n * (`PageSidebar`, `PagePanel`, `PageContent`) so they can never drift apart.\n */\nexport const PAGE_LG_BREAKPOINT = +(\n core.primitive?.BreakpointLg?.value?.replace(\"px\", \"\") ?? 0\n);\n\n/**\n * Whether the given page width should use the mobile layout (below `lg`).\n * Used by `PageSidebar`/`PagePanel` to swap to their popover/dialog forms.\n */\nexport const isPageMobileWidth = (pageWidth: number | undefined): boolean =>\n (pageWidth ?? 0) < PAGE_LG_BREAKPOINT;\n\n/**\n * Whether `Page`'s content wrapper — the `main` landmark every `Page.Content`\n * portals into — is a native scroll container (desktop, `lg` and above). Below\n * `lg`, `Page` is stacked into a single mobile column and the whole document\n * scrolls together, so the wrapper stays in normal flow instead of becoming an\n * independently-scrolling, keyboard-focusable region — matching when `Page`'s\n * stylesheet switches `.sidebar`/`.panel` into their own sticky, self-scrolling\n * desktop layout.\n */\nexport const isPageContentScrollContainerActive = (\n pageWidth: number | undefined,\n): boolean => PAGE_LG_BREAKPOINT > 0 && (pageWidth ?? 0) >= PAGE_LG_BREAKPOINT;\n","import { Button, Icon, Flex, Tooltip } from \"../../../components\";\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 * Props for the PageSidebar component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Key for storing sidebar collapsed state in localStorage\n * @default \"sidebar-collapsed\"\n */\n localStorageKey?: string;\n /**\n * Custom tracking ID for analytics\n */\n [\"data-tracking-id\"]?: string;\n /**\n * Title to display in the adaptive trigger button\n */\n currentPageTitle?: string;\n};\n\n/**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\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 // getting stored value\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/**\n * Props for the PageSidebarHeader component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\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 \"../../../components\";\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 \"../../../components/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\n/**\n * Props for page header action buttons\n */\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /**\n * Label text for the action button\n */\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 /**\n * Actions listed in the menu this button opens\n */\n items: PageHeaderActionProps[];\n};\n\n/**\n * Props for page header actions configuration\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 * Array of secondary action buttons\n */\n secondary?: PageHeaderActionProps[];\n};\n\n/**\n * Base props for preference actions\n */\ntype BasePreferenceProps = {\n /**\n * Accessible label for the preference action\n */\n \"aria-label\": string;\n};\n\n/**\n * Props for preference button actions\n */\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for preference link actions\n */\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\ntype PageHeaderTitleConfig = {\n text: string;\n onChange?: (title: string) => void | boolean;\n editButtonLabel?: string;\n editFieldLabel?: string;\n confirmButtonLabel?: string;\n cancelButtonLabel?: string;\n};\n\ntype PageHeaderTitle = PageHeaderTitleConfig[\"text\"] | PageHeaderTitleConfig;\n\n/**\n * Props for the PageHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PageHeaderProps = Omit<\n ComponentPropsWithoutRef<\"header\">,\n \"title\"\n> & {\n /**\n * Main title of the page\n */\n title: PageHeaderTitle;\n /**\n * Breadcrumb navigation links\n */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /**\n * Status chips to display\n */\n chips?: ChipProps[];\n /**\n * Description text or content below the title\n */\n description?: ReactNode;\n /**\n * Primary and secondary action buttons\n */\n actions?: PageHeaderActionsProps;\n /**\n * Preference action button or link\n */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Layout configuration for the header\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/**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\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 useRef,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"../../../hooks\";\n\n/**\n * Props for the PageContent component\n * @extends ComponentPropsWithoutRef<\"section\">\n */\nexport type PageContentProps = ComponentPropsWithoutRef<\"section\">;\n\n/**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Renders as a section element inside Page's main landmark\n * - Portals into Page's content wrapper via context, which is the native scroll\n * container at desktop breakpoints — sibling sections scroll together as one\n * - Responsive design\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\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 mergedRef = useMergeRefs([sectionRef, ref]);\n\n const { contentWrapper } = useContext(PageContext);\n\n const section = (\n <section className={classNames} ref={mergedRef} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</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 { type RefObject, createContext } from \"react\";\n\n/**\n * Context props for the PagePanel component\n */\nexport type PagePanelContextProps = {\n /**\n * Reference to the panel header element for sticky content positioning.\n */\n headerRef?: RefObject<HTMLElement>;\n};\n\nexport const PagePanelContext = createContext<PagePanelContextProps>({});\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 { PagePanelContext } from \"./internal/PagePanelContext\";\nimport { useMergeRefs } from \"../../../hooks\";\n\n/**\n * Props for the PagePanelHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PagePanelHeaderProps = ComponentPropsWithoutRef<\"header\">;\n\n/**\n * Header component for the panel that stays pinned to the top of the panel's scrollable area.\n *\n * Features:\n * - Sticky positioning at the top of the panel's scrollable content\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard header element props\n *\n * @example\n * <Page.Panel.Header>\n * <Text variant=\"headline\" el=\"h3\">Panel Title</Text>\n * </Page.Panel.Header>\n */\nexport const PagePanelHeader = forwardRef(\n (props: PagePanelHeaderProps, ref: Ref<HTMLElement>) => {\n const { className, children, ...rest } = props;\n const { headerRef } = useContext(PagePanelContext);\n const classNames = cx(styles[\"panel-header\"], className);\n\n return (\n <header\n className={classNames}\n data-anv=\"page-panel-header\"\n ref={useMergeRefs([ref, headerRef])}\n {...rest}\n >\n {children}\n </header>\n );\n },\n);\n\nPagePanelHeader.displayName = \"PagePanelHeader\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type Ref,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PagePanelContext } from \"./internal/PagePanelContext\";\n\n/**\n * Props for the PagePanelContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * When true, the content will stick below the header during scroll, acting as a second header.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Content container for the panel that holds the main scrollable content area.\n *\n * Features:\n * - Grows to fill the space between the panel's header and footer\n * - Scrolls independently of the header and footer once content overflows\n * - Optional sticky positioning below the header, for a second sticky region (e.g. a filter bar)\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard div element props\n *\n * @example\n * // Basic content\n * <Page.Panel.Content>\n * <Text>Panel content goes here</Text>\n * </Page.Panel.Content>\n *\n * @example\n * // Sticky content (e.g., a search field that remains visible while scrolling)\n * <Page.Panel.Header>Panel Title</Page.Panel.Header>\n * <Page.Panel.Content sticky>\n * <TextField placeholder=\"Filter results...\" />\n * </Page.Panel.Content>\n * <Page.Panel.Content>\n * <Text>Scrollable results</Text>\n * </Page.Panel.Content>\n */\nexport const PagePanelContent = forwardRef(\n (props: PagePanelContentProps, ref: Ref<HTMLDivElement>) => {\n const { className, children, sticky = false, style, ...rest } = props;\n const { headerRef } = useContext(PagePanelContext);\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"panel-content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"page-panel-content\"\n ref={ref}\n style={{ ...stickyStyle, ...style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nPagePanelContent.displayName = \"PagePanelContent\";\n","import { type ComponentPropsWithoutRef, forwardRef, type Ref } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\n\n/**\n * Props for the PagePanelFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type PagePanelFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * When true, the footer will stick to the bottom of the panel's scrollable area.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Footer component for the panel that displays action buttons and controls.\n *\n * Features:\n * - Flex layout that right-aligns action buttons and wraps on overflow\n * - Optional sticky positioning at the bottom of the panel\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard footer element props\n *\n * @example\n * <Page.Panel.Footer sticky>\n * <Button appearance=\"primary\" onClick={handleSave}>Save</Button>\n * </Page.Panel.Footer>\n */\nexport const PagePanelFooter = forwardRef(\n (props: PagePanelFooterProps, ref: Ref<HTMLElement>) => {\n const { className, children, sticky = false, ...rest } = props;\n const classNames = cx(styles[\"panel-footer\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={classNames}\n data-anv=\"page-panel-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nPagePanelFooter.displayName = \"PagePanelFooter\";\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 \"../../../components/Dialog\";\nimport { PageContext, type PageContextProps } from \"./PageContext\";\nimport { isPageMobileWidth } from \"./pageBreakpoint\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../../../components/DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../../../components/DrillDown/internal/useDrillDownContextState\";\nimport drillDownStyles from \"../../../components/DrillDown/DrillDown.module.scss\";\nimport { useDrillDownContext } from \"../../../components/DrillDown/internal/useDrillDownContext\";\nimport { PagePanelHeader } from \"./PagePanelHeader\";\nimport { PagePanelContent } from \"./PagePanelContent\";\nimport { PagePanelFooter } from \"./PagePanelFooter\";\nimport { PagePanelContext } from \"./internal/PagePanelContext\";\n\n/**\n * Props for the PagePanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Whether the panel is open\n * @default true\n */\n open?: boolean;\n /**\n * Size of the panel\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to remove default padding from the panel\n * @default false\n */\n noPadding?: boolean;\n /**\n * Sets the default DrillDown index when used in an uncontrolled way\n */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /**\n * Callback to pass context to useDrillDown hook\n */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n};\n\nconst PagePanelInner = ({\n style,\n open,\n hostedInDialog,\n children,\n}: {\n style?: CSSProperties;\n open?: boolean;\n /**\n * Set when rendered inside the mobile Dialog fallback, which owns its own\n * scrollable region (`.scroller`) and focus trap. Skips the self-managed\n * overflow/tabIndex behavior below so sticky Header/Content/Footer pin to\n * that scroller instead of this unconstrained wrapper, and so the Dialog's\n * focus trap lands on the first real control instead of this container.\n */\n hostedInDialog?: 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={\n hostedInDialog\n ? undefined\n : typeof open !== \"undefined\" && open\n ? 0\n : -1\n }\n style={{\n ...style,\n ...(hostedInDialog\n ? {}\n : { overflowY: index === undefined ? \"auto\" : \"hidden\" }),\n }}\n >\n {children}\n </div>\n );\n};\n\n/**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n * - Compound component structure with Header, Content, and Footer\n * - Sticky header and optional sticky footer around a scrollable content area\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Page.Panel.Header>\n * <Text variant=\"headline\" el=\"h3\">Panel Title</Text>\n * </Page.Panel.Header>\n * <Page.Panel.Content>\n * <Text>Panel content goes here</Text>\n * </Page.Panel.Content>\n * <Page.Panel.Footer sticky>\n * <Button appearance=\"primary\" onClick={() => setIsOpen(false)}>Save</Button>\n * </Page.Panel.Footer>\n * </Page.Panel>\n */\nexport const PagePanel = Object.assign(\n forwardRef((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 const headerRef = useRef<HTMLElement>(null);\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 });\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 <PagePanelContext.Provider value={{ headerRef }}>\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} hostedInDialog>\n {children}\n </PagePanelInner>\n </div>\n </PagePanelContext.Provider>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <PagePanelContext.Provider value={{ headerRef }}>\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 </PagePanelContext.Provider>\n </DrillDownContext.Provider>\n );\n }),\n {\n /**\n * Header component for the panel that stays pinned to the top of the panel's scrollable area.\n *\n * Features:\n * - Sticky positioning at the top of the panel's scrollable content\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard header element props\n *\n * @example\n * <Page.Panel.Header>\n * <Text variant=\"headline\" el=\"h3\">Panel Title</Text>\n * </Page.Panel.Header>\n */\n Header: PagePanelHeader,\n /**\n * Content container for the panel that holds the main scrollable content area.\n *\n * Features:\n * - Grows to fill the space between the panel's header and footer\n * - Scrolls independently of the header and footer once content overflows\n * - Optional sticky positioning below the header, for a second sticky region (e.g. a filter bar)\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard div element props\n *\n * @example\n * <Page.Panel.Content>\n * <Text>Panel content goes here</Text>\n * </Page.Panel.Content>\n *\n * @example\n * // A second, sticky Content region acting as a sub-header below Page.Panel.Header\n * <Page.Panel.Content sticky>\n * <TextField placeholder=\"Filter results...\" />\n * </Page.Panel.Content>\n * <Page.Panel.Content>\n * <Text>Scrollable results</Text>\n * </Page.Panel.Content>\n */\n Content: PagePanelContent,\n /**\n * Footer component for the panel that displays action buttons and controls.\n *\n * Features:\n * - Flex layout that right-aligns action buttons and wraps on overflow\n * - Optional sticky positioning at the bottom of the panel\n * - Proper semantic HTML structure\n * - Consistent padding and styling with the design system\n * - Supports all standard footer element props\n *\n * @example\n * <Page.Panel.Footer sticky>\n * <Button appearance=\"primary\" onClick={handleSave}>Save</Button>\n * </Page.Panel.Footer>\n */\n Footer: PagePanelFooter,\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 * Props for the PageFooter component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n * - Portals into Page's footer slot via context\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\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 { isPageContentScrollContainerActive } from \"./pageBreakpoint\";\nimport { useMergeRefs } from \"../../../hooks\";\n\n//--- Start Page Element ---//\n/**\n * Props for the Page component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * Page component for creating full-page layouts with navigation and content areas.\n *\n * Features:\n * - Container for complete page layouts\n * - Supports sidebar navigation with collapsible state\n * - Header with breadcrumbs, chips, and action buttons\n * - Main content area with its own native scroll container\n * - Optional slide-out panels with responsive dialog fallback\n * - Footer with layout utilities\n * - Responsive design with mobile adaptations\n * - Accessibility support with proper landmarks\n * - Automatic tracking ID generation for analytics\n * - Local storage persistence for sidebar state\n *\n * @example\n * <Page>\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Navigation</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[{ href: \"/\", children: \"Home\" }]}\n * actions={{ primary: { label: \"Save\", onClick: handleSave } }}\n * />\n * <Page.Content>\n * <Text>Main content</Text>\n * </Page.Content>\n * <Page.Panel open={isPanelOpen} size=\"medium\">\n * <Page.Panel.Content>\n * <Text>Panel content</Text>\n * </Page.Panel.Content>\n * </Page.Panel>\n * <Page.Footer>\n * <Text>Footer content</Text>\n * </Page.Footer>\n * </Page>\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 /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- makes the native overflow:auto scroll region keyboard-operable (Page Up/Page Down) at the desktop breakpoint, where CSS turns this wrapper into an independently-scrolling container regardless of whether its content currently overflows */\n tabIndex={\n isPageContentScrollContainerActive(pageWidth) ? 0 : undefined\n }\n />\n <div className={styles[\"footer-slot\"]} ref={footerSlotRef} />\n </div>\n </div>\n </PageContext.Provider>\n );\n }),\n {\n /**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\n Sidebar: PageSidebar,\n /**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\n SidebarHeader: PageSidebarHeader,\n /**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\n Header: PageHeader,\n /**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Renders as a section element inside Page's main landmark\n * - Native scroll container for long content at desktop breakpoints\n * - Keyboard operable (Page Up / Page Down) when focus is within Page.Content\n * - Responsive design\n * - Portals into Page's content wrapper via context\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\n Content: PageContent,\n /**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n * - Compound component structure with Header, Content, and Footer\n * - Sticky header and optional sticky footer around a scrollable content area\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Page.Panel.Header>\n * <Text variant=\"headline\" el=\"h3\">Panel Title</Text>\n * </Page.Panel.Header>\n * <Page.Panel.Content>\n * <Text>Panel content</Text>\n * </Page.Panel.Content>\n * <Page.Panel.Footer>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel.Footer>\n * </Page.Panel>\n */\n Panel: PagePanel,\n /**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\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"],"mappings":"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"}