@persona/design-system 0.10.6 → 0.10.7

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 (472) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/Accordion.d.mts +1 -1
  3. package/dist/AccordionItem.d.mts +1 -1
  4. package/dist/{Action-Bmo8B-Q3.d.mts → Action-BLMJwLBV.d.mts} +3 -3
  5. package/dist/Action.d.mts +1 -1
  6. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  7. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  8. package/dist/ArrayValueControl.d.mts +1 -1
  9. package/dist/Attribute.d.mts +3 -3
  10. package/dist/BooleanValueControl.d.mts +1 -1
  11. package/dist/BottomPanel.d.mts +7 -0
  12. package/dist/{Breadcrumb-DnY8n3EL.d.mts → Breadcrumb-chGXhl3V.d.mts} +1 -1
  13. package/dist/Breadcrumb.d.mts +1 -1
  14. package/dist/{Breadcrumbs-DRu_JfdI.d.mts → Breadcrumbs-ChKWIuRq.d.mts} +2 -2
  15. package/dist/Breadcrumbs.d.mts +1 -1
  16. package/dist/{Button-Cg8KyT5M.d.mts → Button-B79_aXfC.d.mts} +4 -4
  17. package/dist/Button.d.mts +1 -1
  18. package/dist/{Calendar-D-6WOLJ1.d.mts → Calendar-50D7poM_.d.mts} +1 -1
  19. package/dist/Calendar.d.mts +1 -1
  20. package/dist/CalendarBase.d.mts +1 -1
  21. package/dist/CalendarCell.d.mts +1 -1
  22. package/dist/CalendarGrid.d.mts +1 -1
  23. package/dist/{Card-CfECLwQ6.d.mts → Card-DOIqF954.d.mts} +3 -3
  24. package/dist/Card.d.mts +1 -1
  25. package/dist/CardGrouping.d.mts +2 -2
  26. package/dist/{Checkbox-ZywrdT_h.d.mts → Checkbox-EgYclGfH.d.mts} +1 -1
  27. package/dist/Checkbox.d.mts +1 -1
  28. package/dist/{CheckboxGroupField-CjeEoiPa.d.mts → CheckboxGroupField-Cw-1UxIW.d.mts} +3 -3
  29. package/dist/CheckboxGroupField.d.mts +1 -1
  30. package/dist/ChoicesValueControl.d.mts +1 -1
  31. package/dist/{Combobox-O6LbofT2.d.mts → Combobox-BkDYZlUh.d.mts} +3 -3
  32. package/dist/Combobox.d.mts +2 -2
  33. package/dist/{ComboboxBase-5aSDuY-E.d.mts → ComboboxBase-1Xy4pnRV.d.mts} +6 -6
  34. package/dist/ComboboxBase.d.mts +1 -1
  35. package/dist/{ComboboxMultiSelect-D3mX4Dzq.d.mts → ComboboxMultiSelect-DHf7NK7Z.d.mts} +2 -2
  36. package/dist/ComboboxMultiSelect.d.mts +1 -1
  37. package/dist/{ComboboxSingleSelect-CfSy6sCU.d.mts → ComboboxSingleSelect-Ble5PcXQ.d.mts} +4 -4
  38. package/dist/ComboboxSingleSelect.d.mts +1 -1
  39. package/dist/{CompactBar-zYfXjFmn.d.mts → CompactBar-DmoFq5i6.d.mts} +3 -3
  40. package/dist/CompactBar.d.mts +1 -1
  41. package/dist/{ControlBar-kJ_eWf8f.d.mts → ControlBar-dqzVo6e6.d.mts} +2 -2
  42. package/dist/ControlBar.d.mts +1 -1
  43. package/dist/{DataTable-CAfZNJmb.mjs → DataTable-B7QqP6YU.mjs} +4 -4
  44. package/dist/{DataTable-CAfZNJmb.mjs.map → DataTable-B7QqP6YU.mjs.map} +1 -1
  45. package/dist/{DataTable-BXHmi-SW.d.mts → DataTable-Cblw6bLk.d.mts} +6 -6
  46. package/dist/DataTable.d.mts +1 -1
  47. package/dist/{DateField-g7malFm-.d.mts → DateField-CbTxDzYF.d.mts} +2 -2
  48. package/dist/DateField.d.mts +1 -1
  49. package/dist/{DatePicker-8kUpFFh8.d.mts → DatePicker-1BADH9Pi.d.mts} +2 -2
  50. package/dist/{DatePicker-D-_ibUd1.mjs → DatePicker-CHaNe2Es.mjs} +2 -2
  51. package/dist/{DatePicker-D-_ibUd1.mjs.map → DatePicker-CHaNe2Es.mjs.map} +1 -1
  52. package/dist/DatePicker.d.mts +1 -1
  53. package/dist/{DateRangePicker-Nv4uNuIW.d.mts → DateRangePicker-fq-_pFpg.d.mts} +3 -3
  54. package/dist/DateRangePicker.d.mts +1 -1
  55. package/dist/DateRangeValueControl.d.mts +2 -2
  56. package/dist/DateValueControl.d.mts +1 -1
  57. package/dist/DropdownButton.d.mts +2 -2
  58. package/dist/{DropdownMenu-CAYVX9Q3.d.mts → DropdownMenu-DjdNBJqP.d.mts} +2 -2
  59. package/dist/DropdownMenu.d.mts +1 -1
  60. package/dist/{ErrorProps-Cy-APmdC.d.mts → ErrorProps-D4G9EWX2.d.mts} +1 -1
  61. package/dist/ErrorProps.d.mts +1 -1
  62. package/dist/{FieldRegistry-a44G08fS.d.mts → FieldRegistry-CPr7YoG5.d.mts} +2 -2
  63. package/dist/FieldRegistry.d.mts +1 -1
  64. package/dist/{FilterBar-BpMguIXl.d.mts → FilterBar-DPCPfr4_.d.mts} +4 -4
  65. package/dist/FilterBar.d.mts +1 -1
  66. package/dist/FilterPickerMenu.d.mts +2 -2
  67. package/dist/FilterPill.d.mts +1 -1
  68. package/dist/FilterPopover.d.mts +1 -1
  69. package/dist/FloatValueControl.d.mts +1 -1
  70. package/dist/{FloatingActionBar-DPA9v_yH.d.mts → FloatingActionBar-u3TJcigs.d.mts} +1 -1
  71. package/dist/FloatingActionBar.d.mts +1 -1
  72. package/dist/FloatingToolbar-Df90f7Dm.mjs +493 -0
  73. package/dist/FloatingToolbar-Df90f7Dm.mjs.map +1 -0
  74. package/dist/FloatingToolbar.d.mts +1 -1
  75. package/dist/{FormControl-TkYMZeBd.d.mts → FormControl-D8vpeAPI.d.mts} +2 -2
  76. package/dist/FormControl.d.mts +1 -1
  77. package/dist/FormControlLabel.d.mts +1 -1
  78. package/dist/{FormField-D10LW9-a.d.mts → FormField-C6vp1Vfe.d.mts} +2 -2
  79. package/dist/FormField.d.mts +1 -1
  80. package/dist/{Grid-BtTuj5mR.mjs → Grid-CYpOqTUu.mjs} +1 -1
  81. package/dist/{Grid-BtTuj5mR.mjs.map → Grid-CYpOqTUu.mjs.map} +1 -1
  82. package/dist/{Header-fwlbzxYx.d.mts → Header-C9oYPBLv.d.mts} +1 -1
  83. package/dist/Header.d.mts +1 -1
  84. package/dist/{HelperTooltip-BLfPfJRN.d.mts → HelperTooltip-jHTdkLQq.d.mts} +2 -2
  85. package/dist/HelperTooltip.d.mts +1 -1
  86. package/dist/HighlightedText.d.mts +2 -2
  87. package/dist/{I18nContext-BBVKF9ui.d.mts → I18nContext-DzV-RDIh.d.mts} +2 -2
  88. package/dist/I18nContext.d.mts +1 -1
  89. package/dist/{IconButton-KhCwTwPx.d.mts → IconButton-CaEvsrOn.d.mts} +2 -2
  90. package/dist/IconButton.d.mts +1 -1
  91. package/dist/ImageTile.d.mts +1 -1
  92. package/dist/IndexTableLayout.d.mts +5 -5
  93. package/dist/InlineCombobox.d.mts +1 -1
  94. package/dist/InlineInput.d.mts +1 -1
  95. package/dist/{Input-QNjbGo38.d.mts → Input-DQ2J9wlC.d.mts} +3 -3
  96. package/dist/Input.d.mts +1 -1
  97. package/dist/{InputProps-BT7-RfnD.d.mts → InputProps-DrG94eFF.d.mts} +2 -2
  98. package/dist/InputProps.d.mts +1 -1
  99. package/dist/{Inserter-BnQVEqHV.d.mts → Inserter-CZeKlPqj.d.mts} +1 -1
  100. package/dist/Inserter.d.mts +1 -1
  101. package/dist/IntegerValueControl.d.mts +1 -1
  102. package/dist/Link.d.mts +1 -1
  103. package/dist/{ListBox-CvnFiHK5.d.mts → ListBox-DxbXE_EE.d.mts} +3 -3
  104. package/dist/ListBox.d.mts +1 -1
  105. package/dist/{ListBoxField-DuUwx9Cv.d.mts → ListBoxField-DVLggscv.d.mts} +4 -4
  106. package/dist/ListBoxField.d.mts +1 -1
  107. package/dist/LoadingShimmer.d.mts +1 -1
  108. package/dist/{LogicRow-COvZNiUd.d.mts → LogicRow-DG06PsUe.d.mts} +3 -3
  109. package/dist/LogicRow.d.mts +1 -1
  110. package/dist/MaskedInput.d.mts +1 -1
  111. package/dist/{Menu-ByYFNvgS.d.mts → Menu-Bq6Lij2L.d.mts} +3 -3
  112. package/dist/Menu.d.mts +1 -1
  113. package/dist/{Modal-ziuzDCPN.mjs → Modal-BBlilB-B.mjs} +2 -2
  114. package/dist/{Modal-ziuzDCPN.mjs.map → Modal-BBlilB-B.mjs.map} +1 -1
  115. package/dist/{Modal-Bhwq1bQJ.d.mts → Modal-kEgKwLg4.d.mts} +2 -2
  116. package/dist/Modal.d.mts +1 -1
  117. package/dist/{PageHeader-D2QLrS7-.d.mts → PageHeader-BGGhOS81.d.mts} +2 -2
  118. package/dist/{PageHeader-BzvA_NNt.mjs → PageHeader-DEKTopzU.mjs} +1 -1
  119. package/dist/{PageHeader-BzvA_NNt.mjs.map → PageHeader-DEKTopzU.mjs.map} +1 -1
  120. package/dist/PageHeader.d.mts +1 -1
  121. package/dist/{PageLayout-DfAbeFIh.d.mts → PageLayout-B_LKPZD8.d.mts} +1 -1
  122. package/dist/{PageLayout-DCe3F76N.mjs → PageLayout-DjtGrvJa.mjs} +2 -2
  123. package/dist/{PageLayout-DCe3F76N.mjs.map → PageLayout-DjtGrvJa.mjs.map} +1 -1
  124. package/dist/PageLayout.d.mts +1 -1
  125. package/dist/{PageLayoutFrame-CQLREOBH.d.mts → PageLayoutFrame-uf17F41p.d.mts} +1 -1
  126. package/dist/PageLayoutFrame.d.mts +1 -1
  127. package/dist/{PageSelector-BOe4EzbS.d.mts → PageSelector-CLeG2gFh.d.mts} +3 -3
  128. package/dist/PageSelector.d.mts +1 -1
  129. package/dist/{Pagination-Dpc6TadZ.mjs → Pagination-C8hPOu0l.mjs} +2 -2
  130. package/dist/{Pagination-Dpc6TadZ.mjs.map → Pagination-C8hPOu0l.mjs.map} +1 -1
  131. package/dist/{Pagination-Dy-OSH0Y.d.mts → Pagination-y3kn2X_A.d.mts} +2 -2
  132. package/dist/Pagination.d.mts +1 -1
  133. package/dist/{PillShell-B35z66jZ.d.mts → PillShell-Clv4b-2w.d.mts} +2 -2
  134. package/dist/PillShell.d.mts +1 -1
  135. package/dist/{ProgressIndicator-COCwRZfK.d.mts → ProgressIndicator-tVvf0cY5.d.mts} +1 -1
  136. package/dist/{ProgressIndicator-ISARECzW.mjs → ProgressIndicator-zt3ndT9U.mjs} +1 -1
  137. package/dist/{ProgressIndicator-ISARECzW.mjs.map → ProgressIndicator-zt3ndT9U.mjs.map} +1 -1
  138. package/dist/ProgressIndicator.d.mts +1 -1
  139. package/dist/{PseudoClassProps-D_f-JUT1.d.mts → PseudoClassProps-D-sdJdnG.d.mts} +1 -1
  140. package/dist/PseudoClassProps.d.mts +1 -1
  141. package/dist/{RadioGroup-pyGpWhhj.d.mts → RadioGroup-9AnTQbh9.d.mts} +1 -1
  142. package/dist/RadioGroup.d.mts +1 -1
  143. package/dist/{RangeCalendar-BiugsdSP.d.mts → RangeCalendar-D86xh2yV.d.mts} +2 -2
  144. package/dist/RangeCalendar.d.mts +1 -1
  145. package/dist/RangeCalendarPresets.d.mts +2 -2
  146. package/dist/{RouterContext-BUdfr1it.d.mts → RouterContext-Bgg29ZJo.d.mts} +2 -2
  147. package/dist/RouterContext.d.mts +1 -1
  148. package/dist/{RouterLink-BKbfvJcM.d.mts → RouterLink-CMCsV5H-.d.mts} +2 -2
  149. package/dist/RouterLink.d.mts +1 -1
  150. package/dist/RuleEditorFields.d.mts +2 -2
  151. package/dist/RulesPill.d.mts +1 -1
  152. package/dist/{SearchInput-BejaiGsS.d.mts → SearchInput-NlIspWun.d.mts} +2 -2
  153. package/dist/SearchInput.d.mts +1 -1
  154. package/dist/SectionHeading.d.mts +1 -1
  155. package/dist/{SegmentedControl-UV03Ujqn.d.mts → SegmentedControl-C4C5ge4p.d.mts} +1 -1
  156. package/dist/SegmentedControl.d.mts +1 -1
  157. package/dist/{Select-BLqHxJUz.d.mts → Select-By_LoM1n.d.mts} +3 -3
  158. package/dist/Select.d.mts +1 -1
  159. package/dist/{SingleColumnLayout-DBo35psH.d.mts → SingleColumnLayout-C4qrVyMf.d.mts} +2 -2
  160. package/dist/SingleColumnLayout.d.mts +1 -1
  161. package/dist/SmartTextInput.d.mts +6 -6
  162. package/dist/SmartTextInputField.d.mts +2 -2
  163. package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
  164. package/dist/SmartTextInputListbox.d.mts +2 -2
  165. package/dist/SmartTextInputPopover.d.mts +1 -1
  166. package/dist/{SplitColumnLayout-C6m_mwdf.d.mts → SplitColumnLayout-BXT7AeNx.d.mts} +2 -2
  167. package/dist/SplitColumnLayout.d.mts +1 -1
  168. package/dist/{Stack-DrYxBkiF.d.mts → Stack-BqRcxDQM.d.mts} +1 -1
  169. package/dist/Stack.d.mts +1 -1
  170. package/dist/{StatusIndicator-pWl1-FLb.mjs → StatusIndicator-Zf75KK3O.mjs} +1 -1
  171. package/dist/{StatusIndicator-pWl1-FLb.mjs.map → StatusIndicator-Zf75KK3O.mjs.map} +1 -1
  172. package/dist/{Sticker-sIBnBbHD.d.mts → Sticker-C2zp47FB.d.mts} +4 -4
  173. package/dist/Sticker.d.mts +1 -1
  174. package/dist/StringValueControl.d.mts +1 -1
  175. package/dist/Tab.d.mts +1 -1
  176. package/dist/{Table-BJfcRpMX.d.mts → Table-DGl3mDwc.d.mts} +1 -1
  177. package/dist/Table.d.mts +1 -1
  178. package/dist/{TableBody-CBz2PjA-.d.mts → TableBody-BbC-H2qj.d.mts} +1 -1
  179. package/dist/TableBody.d.mts +1 -1
  180. package/dist/TableBox.d.mts +2 -2
  181. package/dist/{TableBoxCell-DPXrw63v.d.mts → TableBoxCell-DuvWTwOm.d.mts} +6 -6
  182. package/dist/TableBoxCell.d.mts +1 -1
  183. package/dist/{TableBoxField-C7MGSie9.d.mts → TableBoxField-DRx24VAz.d.mts} +5 -5
  184. package/dist/TableBoxField.d.mts +1 -1
  185. package/dist/{TableBoxRow-uToXVWvl.d.mts → TableBoxRow-DFPTf-bZ.d.mts} +3 -3
  186. package/dist/TableBoxRow.d.mts +1 -1
  187. package/dist/{TableBoxRowActions-Do646IVE.d.mts → TableBoxRowActions-CFCnGc7D.d.mts} +2 -2
  188. package/dist/TableBoxRowActions.d.mts +1 -1
  189. package/dist/{TableCell-KHx5JlqZ.d.mts → TableCell-Do9W49SJ.d.mts} +2 -2
  190. package/dist/TableCell.d.mts +1 -1
  191. package/dist/{TableControls-C-0Dw8vM.mjs → TableControls-Dgle87OP.mjs} +4 -4
  192. package/dist/{TableControls-C-0Dw8vM.mjs.map → TableControls-Dgle87OP.mjs.map} +1 -1
  193. package/dist/{TableControls-BHv-tXA-.d.mts → TableControls-r58fZb_C.d.mts} +5 -5
  194. package/dist/TableControls.d.mts +1 -1
  195. package/dist/{TableControlsContext-D6rifk-v.d.mts → TableControlsContext-nz8GXmXc.d.mts} +2 -2
  196. package/dist/TableControlsContext.d.mts +1 -1
  197. package/dist/{TableHead-D5A3bOwt.d.mts → TableHead-CIXIrZGE.d.mts} +1 -1
  198. package/dist/TableHead.d.mts +1 -1
  199. package/dist/{TableHeaderCell-BXgnxPpX.d.mts → TableHeaderCell-wKcp8rZj.d.mts} +1 -1
  200. package/dist/TableHeaderCell.d.mts +1 -1
  201. package/dist/{TableLayout-Dy5ht8KO.d.mts → TableLayout-0-9FnNvt.d.mts} +1 -1
  202. package/dist/TableLayout.d.mts +1 -1
  203. package/dist/{TableRow-C1iGbNjZ.d.mts → TableRow-C011thJ3.d.mts} +2 -2
  204. package/dist/TableRow.d.mts +1 -1
  205. package/dist/TableTH.d.mts +1 -1
  206. package/dist/{TableViewConfigurationDropdown-C5bjxTGX.d.mts → TableViewConfigurationDropdown-D0VcRmd4.d.mts} +2 -2
  207. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  208. package/dist/{Text-SaoRBdB6.d.mts → Text-BgSW0yDb.d.mts} +3 -3
  209. package/dist/Text.d.mts +1 -1
  210. package/dist/{TextArea-gtSlghjy.d.mts → TextArea-CyWv8jaV.d.mts} +2 -2
  211. package/dist/TextArea.d.mts +1 -1
  212. package/dist/{TextUnderlineTooltip-DV61avLv.d.mts → TextUnderlineTooltip-CcyG4VkJ.d.mts} +2 -2
  213. package/dist/TextUnderlineTooltip.d.mts +1 -1
  214. package/dist/Tile.d.mts +1 -1
  215. package/dist/Toast.d.mts +1 -1
  216. package/dist/{Toggle-BlvrM-Cw.d.mts → Toggle-BIJoB1AA.d.mts} +1 -1
  217. package/dist/Toggle.d.mts +1 -1
  218. package/dist/{Tooltip-CysnLwST.d.mts → Tooltip-CrpfAAfA.d.mts} +2 -2
  219. package/dist/Tooltip.d.mts +1 -1
  220. package/dist/{TruncatedText-YcjNG-zP.d.mts → TruncatedText-DaGx3CX6.d.mts} +1 -1
  221. package/dist/VersionHistory.d.mts +1 -1
  222. package/dist/{VersionHistoryItem-Px3ylMMq.d.mts → VersionHistoryItem-Bo78T7y7.d.mts} +1 -1
  223. package/dist/VersionHistoryItem.d.mts +1 -1
  224. package/dist/WizardModal.d.mts +2 -2
  225. package/dist/{accordionTitleTypography-Dlo2YyWd.d.mts → accordionTitleTypography-D7tOgRzj.d.mts} +2 -2
  226. package/dist/accordionTitleTypography.d.mts +1 -1
  227. package/dist/{chainTypes-aF5rWav-.d.mts → chainTypes-CLKwXymd.d.mts} +4 -4
  228. package/dist/{clientFilterUtils-DDDG1g7e.d.mts → clientFilterUtils-BnASP9Tt.d.mts} +2 -2
  229. package/dist/clientFilterUtils.d.mts +1 -1
  230. package/dist/{codec-D8ZKFLgs.d.mts → codec-C4WJftW6.d.mts} +2 -2
  231. package/dist/codec.d.mts +1 -1
  232. package/dist/{color-Cy_0z4IY.d.mts → color-Db57Wms_.d.mts} +2 -2
  233. package/dist/complete-typography.d.mts +1 -1
  234. package/dist/components/Accordion/index.d.mts +1 -1
  235. package/dist/components/BottomPanel/index.mjs +67 -6
  236. package/dist/components/BottomPanel/index.mjs.map +1 -1
  237. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  238. package/dist/components/Button/index.d.mts +2 -2
  239. package/dist/components/Card/index.d.mts +2 -2
  240. package/dist/components/CardV2/index.d.mts +1 -1
  241. package/dist/components/Checkbox/index.d.mts +1 -1
  242. package/dist/components/Combobox/index.d.mts +2 -2
  243. package/dist/components/DataTable/TableControls/index.d.mts +21 -21
  244. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  245. package/dist/components/DataTable/index.d.mts +8 -8
  246. package/dist/components/DataTable/index.mjs +1 -1
  247. package/dist/components/DataTable/types.d.mts +1 -1
  248. package/dist/components/DatePicker/index.d.mts +5 -5
  249. package/dist/components/DatePicker/index.mjs +1 -1
  250. package/dist/components/DropdownMenu/index.d.mts +1 -1
  251. package/dist/components/FloatingToolbar/index.d.mts +2 -0
  252. package/dist/components/FloatingToolbar/index.mjs +2 -0
  253. package/dist/components/FormControl/index.d.mts +2 -2
  254. package/dist/components/FormField/index.d.mts +5 -5
  255. package/dist/components/Grid/index.mjs +1 -1
  256. package/dist/components/Input/index.d.mts +1 -1
  257. package/dist/components/ListBox/index.d.mts +3 -3
  258. package/dist/components/Menu/index.d.mts +1 -1
  259. package/dist/components/Modal/index.d.mts +1 -1
  260. package/dist/components/Modal/index.mjs +1 -1
  261. package/dist/components/PageHeader/index.d.mts +1 -1
  262. package/dist/components/PageHeader/index.mjs +1 -1
  263. package/dist/components/Pagination/index.d.mts +3 -3
  264. package/dist/components/Pagination/index.mjs +1 -1
  265. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  266. package/dist/components/ProgressIndicator/index.mjs +1 -1
  267. package/dist/components/RadioGroup/index.d.mts +1 -1
  268. package/dist/components/RichTextEditor/index.d.mts +1 -2
  269. package/dist/components/RichTextEditor/index.mjs +21 -476
  270. package/dist/components/RichTextEditor/index.mjs.map +1 -1
  271. package/dist/components/SegmentedControl/index.d.mts +1 -1
  272. package/dist/components/Select/index.d.mts +1 -1
  273. package/dist/components/SmartTextInput/index.d.mts +2 -2
  274. package/dist/components/SmartTextInput/index.mjs +1 -1
  275. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  276. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
  277. package/dist/components/Stack/index.d.mts +1 -1
  278. package/dist/components/StatusIndicator/index.mjs +1 -1
  279. package/dist/components/Sticker/index.d.mts +1 -1
  280. package/dist/components/Table/index.d.mts +8 -8
  281. package/dist/components/TableBox/index.d.mts +2 -2
  282. package/dist/components/Text/index.d.mts +1 -1
  283. package/dist/components/TextArea/index.d.mts +1 -1
  284. package/dist/components/Toggle/index.d.mts +1 -1
  285. package/dist/components/Tooltip/index.d.mts +3 -3
  286. package/dist/components/VersionHistory/index.d.mts +1 -1
  287. package/dist/components/VersionHistory/index.mjs +2 -2
  288. package/dist/compound-expression.d.mts +1 -1
  289. package/dist/{constants-CW1DRgwi.d.mts → constants-B2NIZBD6.d.mts} +1 -1
  290. package/dist/{constants-D1hoZ5LO.d.mts → constants-ChVceduh.d.mts} +1 -1
  291. package/dist/constants.d.mts +1 -1
  292. package/dist/constants2.d.mts +1 -1
  293. package/dist/{createPath-C4ZFkt93.d.mts → createPath-D_opTH9A.d.mts} +2 -2
  294. package/dist/createPath.d.mts +1 -1
  295. package/dist/{date-range-rule-value-CrVBpQcf.d.mts → date-range-rule-value-3izEoXmi.d.mts} +2 -2
  296. package/dist/date-range-rule-value.d.mts +1 -1
  297. package/dist/{date-rule-intent-C1aptAoX.d.mts → date-rule-intent-DjYIGcGO.d.mts} +3 -3
  298. package/dist/date-rule-intent.d.mts +1 -1
  299. package/dist/display.d.mts +2 -2
  300. package/dist/fieldPickerOptions.d.mts +2 -2
  301. package/dist/{filter-size-context-CbT4pi3S.d.mts → filter-size-context-BcpjykVw.d.mts} +2 -2
  302. package/dist/filter-size-context.d.mts +1 -1
  303. package/dist/{filters-CkAFU8LV.d.mts → filters-DUI7TLSn.d.mts} +2 -2
  304. package/dist/filters.d.mts +1 -1
  305. package/dist/{formatDateTime-BikGGrvq.d.mts → formatDateTime-CgQvW3A5.d.mts} +1 -1
  306. package/dist/formatDateTime.d.mts +1 -1
  307. package/dist/{helpers-Dvvcz-hL.d.mts → helpers-CDZ7Zk9G.d.mts} +4 -4
  308. package/dist/helpers.d.mts +1 -1
  309. package/dist/{i18n-CKRi992F.mjs → i18n-DaOKaFc2.mjs} +3 -2
  310. package/dist/i18n-DaOKaFc2.mjs.map +1 -0
  311. package/dist/{index-BWAycP6L.d.mts → index-B9kfFACl.d.mts} +1 -1
  312. package/dist/{index-B3A74_ew.d.mts → index-CDFw-zKW.d.mts} +3 -3
  313. package/dist/{index-D2YFHdsf.d.mts → index-DntqThoS.d.mts} +2 -2
  314. package/dist/{index-FgIOTuJ4.d.mts → index-_D_TMpPU.d.mts} +2 -2
  315. package/dist/index2.d.mts +1 -1
  316. package/dist/index3.d.mts +1 -1
  317. package/dist/index4.d.mts +3 -3
  318. package/dist/index5.d.mts +1 -1
  319. package/dist/index6.d.mts +14 -14
  320. package/dist/{input-gtTnb9M8.d.mts → input-RTMLTvG1.d.mts} +3 -3
  321. package/dist/{inputFields-Dfpxi68z.d.mts → inputFields-iRg_emVK.d.mts} +11 -11
  322. package/dist/inputFields.d.mts +1 -1
  323. package/dist/{jsonSchema-DUkfAip_.d.mts → jsonSchema-BJpNaFc4.d.mts} +1 -1
  324. package/dist/lib/PDSProvider.d.mts +3 -3
  325. package/dist/lib/PDSProvider.mjs +1 -1
  326. package/dist/lib/TruncatedText.d.mts +1 -1
  327. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  328. package/dist/lib/chainTypes.d.mts +1 -1
  329. package/dist/lib/color.d.mts +1 -1
  330. package/dist/lib/colorMode.d.mts +2 -2
  331. package/dist/lib/customFunctionSchema.d.mts +1 -1
  332. package/dist/lib/date-filter/index.d.mts +2 -2
  333. package/dist/lib/i18n/index.d.mts +3 -3
  334. package/dist/lib/i18n/index.mjs +1 -1
  335. package/dist/lib/jsonSchema.d.mts +1 -1
  336. package/dist/lib/jsonSchemaType.d.mts +1 -1
  337. package/dist/lib/message.d.mts +1 -1
  338. package/dist/lib/methodChain.d.mts +2 -2
  339. package/dist/lib/methodChainNormalize.d.mts +2 -2
  340. package/dist/lib/methodChainTypes.d.mts +1 -1
  341. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  342. package/dist/lib/platformObject.d.mts +1 -1
  343. package/dist/lib/pseudoClass.d.mts +1 -1
  344. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  345. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  346. package/dist/lib/router/index.d.mts +5 -5
  347. package/dist/lib/schemaOptions.d.mts +1 -1
  348. package/dist/lib/semanticColor.d.mts +1 -1
  349. package/dist/lib/useChain.d.mts +1 -1
  350. package/dist/lint/index.d.mts +1 -1
  351. package/dist/{listbox-options-CkwENvff.d.mts → listbox-options-D0JmYWjB.d.mts} +3 -3
  352. package/dist/listbox-options.d.mts +1 -1
  353. package/dist/{message-klSuXfNN.d.mts → message-Bk5UTw75.d.mts} +1 -1
  354. package/dist/{methodChain-CRYRDa1k.d.mts → methodChain-C3u60_V8.d.mts} +4 -4
  355. package/dist/{methodChainTypes-BtbYWrdP.d.mts → methodChainTypes-Di4GCMX7.d.mts} +2 -2
  356. package/dist/min-copy-size.d.mts +1 -1
  357. package/dist/mixins/focus.d.mts +1 -1
  358. package/dist/mixins/hoverable.d.mts +2 -2
  359. package/dist/mixins/input.d.mts +1 -1
  360. package/dist/mixins/menuItem.d.mts +2 -2
  361. package/dist/mixins/scrollbar.d.mts +1 -1
  362. package/dist/mixins/text.d.mts +1 -1
  363. package/dist/no-raw-table.d.mts +1 -1
  364. package/dist/{operators-BrrJKENE.d.mts → operators-BTCnQpeu.d.mts} +3 -3
  365. package/dist/operators.d.mts +1 -1
  366. package/dist/{palette-C1gBbxLO.d.mts → palette-D61sDyDI.d.mts} +3 -3
  367. package/dist/palette.d.mts +1 -1
  368. package/dist/patterns/CardGrouping/index.mjs +1 -1
  369. package/dist/patterns/IndexTableLayout/index.mjs +3 -3
  370. package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
  371. package/dist/patterns/PageLayout/index.d.mts +4 -4
  372. package/dist/patterns/PageLayout/index.mjs +1 -1
  373. package/dist/patterns/WizardModal/index.mjs +2 -2
  374. package/dist/reactRouterFallback.d.mts +1 -1
  375. package/dist/reduced-motion.d.mts +1 -1
  376. package/dist/relative-date-label.d.mts +1 -1
  377. package/dist/safe-parse.d.mts +1 -1
  378. package/dist/{schemaOptions-C_JM2-sg.d.mts → schemaOptions-BKtrXvjR.d.mts} +3 -3
  379. package/dist/{semantic-BLaQSW1r.d.mts → semantic-BZbvb3LV.d.mts} +1 -1
  380. package/dist/semantic-color.d.mts +1 -1
  381. package/dist/{semanticColor-Bxufk3ZO.d.mts → semanticColor-y9byerSl.d.mts} +3 -3
  382. package/dist/shared.d.mts +1 -1
  383. package/dist/{strings-BGXKl_m6.d.mts → strings-T-gsdqiJ.d.mts} +3 -1
  384. package/dist/strings.d.mts +1 -1
  385. package/dist/{text-Csytfclh.d.mts → text-CKLxMlG4.d.mts} +1 -1
  386. package/dist/{theme-mQ4WkH90.d.mts → theme-BFP-_PEh.d.mts} +3 -3
  387. package/dist/theme.d.mts +1 -1
  388. package/dist/tone.d.mts +3 -3
  389. package/dist/tree.d.mts +1 -1
  390. package/dist/{types-B4KbdEDc.d.mts → types-1p-ij0cd.d.mts} +2 -2
  391. package/dist/{types-Dhz6VMKx.d.mts → types-B5RbKp2V.d.mts} +1 -1
  392. package/dist/{types-dmItSshr.d.mts → types-Bg_sfqXE.d.mts} +2 -2
  393. package/dist/{types-sUEmxsGM.d.mts → types-BiRayNak.d.mts} +3 -3
  394. package/dist/{types-XjJqUj-p.d.mts → types-BnXYfNrd.d.mts} +4 -4
  395. package/dist/{types-C2RhHxbE.d.mts → types-Bu5rhBdH.d.mts} +1 -1
  396. package/dist/{types-DoJubhWu.d.mts → types-C31ecr0j.d.mts} +3 -3
  397. package/dist/{types-rDQg74j-.d.mts → types-FG-jOit9.d.mts} +1 -1
  398. package/dist/{types-DbOD5vE_.d.mts → types-K57NVM0M.d.mts} +2 -2
  399. package/dist/{types-6L0ptM6-.d.mts → types-QYT1VZgy.d.mts} +1 -1
  400. package/dist/types.d.mts +1 -1
  401. package/dist/types2.d.mts +1 -1
  402. package/dist/types3.d.mts +1 -1
  403. package/dist/types4.d.mts +1 -1
  404. package/dist/types5.d.mts +1 -1
  405. package/dist/types6.d.mts +1 -1
  406. package/dist/types8.d.mts +1 -1
  407. package/dist/{url-state-CmgyDnG7.d.mts → url-state-DmhG0Qg-.d.mts} +2 -2
  408. package/dist/url-state.d.mts +1 -1
  409. package/dist/{useChain-7ztbfujM.d.mts → useChain-CIwI4Xop.d.mts} +6 -6
  410. package/dist/useChainAtCursor.d.mts +6 -6
  411. package/dist/useCodeChainFunctionPanel.d.mts +1 -1
  412. package/dist/useColumnConfiguration.d.mts +2 -2
  413. package/dist/useComboboxFooterAction.d.mts +1 -1
  414. package/dist/{useFilterStateV2-CPBt0qwc.d.mts → useFilterStateV2-DPzkJpGT.d.mts} +3 -3
  415. package/dist/useFilterStateV2.d.mts +1 -1
  416. package/dist/{useFormField-CmEJCqse.d.mts → useFormField-ATKyX8CU.d.mts} +2 -2
  417. package/dist/useFormField.d.mts +1 -1
  418. package/dist/{useLocationPathname-Cnqj8pf4.d.mts → useLocationPathname-DPMpqO1_.d.mts} +1 -1
  419. package/dist/useLocationPathname.d.mts +1 -1
  420. package/dist/{useTableBoxDragAndDrop-8NS4JBuI.d.mts → useTableBoxDragAndDrop-CCMADt-F.d.mts} +1 -1
  421. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  422. package/dist/{useTableColumns-nPrbDfF_.d.mts → useTableColumns-Bw0HvnP4.d.mts} +2 -2
  423. package/dist/useTableColumns.d.mts +1 -1
  424. package/dist/useTruncation.d.mts +1 -1
  425. package/dist/{utilities-CXoc5Cyr.d.mts → utilities-BfXjJZQt.d.mts} +1 -1
  426. package/dist/utilities.d.mts +1 -1
  427. package/dist/utils/testing.d.mts +1 -1
  428. package/dist/utils.d.mts +1 -1
  429. package/dist/utils4.d.mts +5 -5
  430. package/dist/{validation-BaqPVG1C.d.mts → validation-yhA0siru.d.mts} +3 -3
  431. package/dist/validation.d.mts +1 -1
  432. package/dist/validation2.d.mts +4 -4
  433. package/dist/{value-control-resolver-CMyFwEY7.d.mts → value-control-resolver-Df0AmGFe.d.mts} +2 -2
  434. package/dist/value-control-resolver.d.mts +1 -1
  435. package/dist/variables/effect.d.mts +1 -1
  436. package/dist/variables/semantic.d.mts +1 -1
  437. package/llms.txt +1 -1
  438. package/package.json +12 -13
  439. package/skills/ui-authoring/COMPONENTS.md +1 -0
  440. package/dist/i18n-CKRi992F.mjs.map +0 -1
  441. /package/dist/{index-AnhM47-e2.d.mts → index-BAJc0Rej.d.mts} +0 -0
  442. /package/dist/{index-B33elXxm.d.mts → index-BFHp82YL.d.mts} +0 -0
  443. /package/dist/{index-B4woaFSm.d.mts → index-BYd3Btr1.d.mts} +0 -0
  444. /package/dist/{index-B6T7ov8p.d.mts → index-C6HcjJiY.d.mts} +0 -0
  445. /package/dist/{index-BNRXMhlr.d.mts → index-CEUVsenl.d.mts} +0 -0
  446. /package/dist/{index-BPiqSRRl.d.mts → index-CEqOS-7M.d.mts} +0 -0
  447. /package/dist/{index-BTviwbFV.d.mts → index-CNxS4Tlu.d.mts} +0 -0
  448. /package/dist/{index-Bo9LXG4r.d.mts → index-CP2eJYlK.d.mts} +0 -0
  449. /package/dist/{index-Bq9Ub6MB.d.mts → index-CQQezDJQ2.d.mts} +0 -0
  450. /package/dist/{index-BrGZHEgX.d.mts → index-CWB6exYm.d.mts} +0 -0
  451. /package/dist/{index-Bt4QNofW.d.mts → index-CcSfkYLp2.d.mts} +0 -0
  452. /package/dist/{index-CFuHCx9T.d.mts → index-Cm-1i165.d.mts} +0 -0
  453. /package/dist/{index-CLTQPxoD.d.mts → index-D-giXKyu.d.mts} +0 -0
  454. /package/dist/{index-CaqYCRmZ.d.mts → index-D4DUvwPf.d.mts} +0 -0
  455. /package/dist/{index-CjmAoxrR2.d.mts → index-DCTy4zg0.d.mts} +0 -0
  456. /package/dist/{index-Cx0vQ6ld.d.mts → index-DWIh4oP5.d.mts} +0 -0
  457. /package/dist/{index-CzItj62a.d.mts → index-Dflz2i1X.d.mts} +0 -0
  458. /package/dist/{index-CzUpNo0e.d.mts → index-DhiymMxa.d.mts} +0 -0
  459. /package/dist/{index-DBGd4WeR.d.mts → index-DkrC-i1D.d.mts} +0 -0
  460. /package/dist/{index-DMRtRo7y.d.mts → index-Dp7lwkTl2.d.mts} +0 -0
  461. /package/dist/{index-DNjQe1D8.d.mts → index-DqCA6utX.d.mts} +0 -0
  462. /package/dist/{index-DW3xeuzq.d.mts → index-Iujpc9_6.d.mts} +0 -0
  463. /package/dist/{index-DZlqSwCF.d.mts → index-Jh0C5PIG.d.mts} +0 -0
  464. /package/dist/{index-De7MV8-j.d.mts → index-N-OgGgfF.d.mts} +0 -0
  465. /package/dist/{index-DjG1RCY5.d.mts → index-Oio5ygqN.d.mts} +0 -0
  466. /package/dist/{index-Dlcv6Ku22.d.mts → index-Rvd9MEUQ.d.mts} +0 -0
  467. /package/dist/{index-DrK1_jKY.d.mts → index-YB8V3VRW.d.mts} +0 -0
  468. /package/dist/{index-DztUdPP_.d.mts → index-aKlsLnwy.d.mts} +0 -0
  469. /package/dist/{index-K614ZhWK.d.mts → index-fxXoW-qc.d.mts} +0 -0
  470. /package/dist/{index-NKYLt_R9.d.mts → index-ikHBE458.d.mts} +0 -0
  471. /package/dist/{index-VWno75SQ.d.mts → index-luywJTzJ.d.mts} +0 -0
  472. /package/dist/{index-uMNhmxEh.d.mts → index-xmouCHX9.d.mts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Grid-BtTuj5mR.mjs","names":[],"sources":["../src/components/Grid/Grid.tsx","../src/components/Grid/GridItem.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n createContext,\n type ReactNode,\n type RefObject,\n useContext,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const GRID_BREAKPOINTS = { sm: 768, md: 1024, lg: 1408 } as const;\n\ntype Breakpoint = 'xs' | 'sm' | 'md' | 'lg';\n\nconst GridBreakpointContext = createContext<Breakpoint>('md');\n\n/** Breakpoint of the nearest `Grid`, measured from that grid's width. */\nexport const useGridBreakpoint = (): Breakpoint => useContext(GridBreakpointContext);\n\nconst getBreakpoint = (width: number): Breakpoint => {\n if (width >= GRID_BREAKPOINTS.lg) {\n return 'lg';\n }\n if (width >= GRID_BREAKPOINTS.md) {\n return 'md';\n }\n if (width >= GRID_BREAKPOINTS.sm) {\n return 'sm';\n }\n return 'xs';\n};\n\nconst useMeasuredGridBreakpoint = (ref: RefObject<HTMLDivElement>) => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>('md');\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setBreakpoint(getBreakpoint(node.offsetWidth));\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return breakpoint;\n};\n\nconst Root = styled.div<{ $mode: GridProps['mode']; $breakpoint: Breakpoint }>`\n display: grid;\n width: 100%;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n box-sizing: border-box;\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' &&\n css`\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n `}\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' || $breakpoint === 'sm'\n ? css`\n gap: ${Spacing[3]};\n padding-inline: ${Spacing[5]};\n `\n : css`\n gap: ${Spacing[4]};\n padding-inline: ${Spacing[6]};\n `}\n\n // max-width equals the lg threshold; offsetWidth reads the clamped border-box width and getBreakpoint uses >=, so the clamp stays 'lg'\n ${({ $mode, $breakpoint }) =>\n $mode === 'fixed' &&\n $breakpoint === 'lg' &&\n css`\n max-width: ${GRID_BREAKPOINTS.lg}px;\n margin-inline: auto;\n `}\n`;\n\nexport interface GridProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Selects the grid width behavior at the large breakpoint. `fixed` centers the grid at a\n * maximum width of 1408px, while `fluid` fills the available width.\n *\n * Breakpoints:\n * - ≤767px: 12 columns, 24px margins, 12px gutters, and a 767px minimum width.\n * - 768–1023px: 12 columns, 24px margins, 12px gutters, and 100% width.\n * - 1024–1407px: 12 columns, 32px margins, 16px gutters, and 100% width.\n * - ≥1408px: 12 columns, 32px margins, 16px gutters, and either fixed or fluid width.\n */\n mode: 'fixed' | 'fluid';\n children: ReactNode;\n}\n\n/**\n * Provides a 12-column CSS grid that measures its own width with a ResizeObserver for responsive\n * horizontal margins and gutters. Vertical spacing is left to the consumer.\n *\n * The grid measures breakpoints against its own width rather than the viewport. Use `fixed` to\n * center the grid at its large-screen maximum width, or `fluid` to keep it at 100% width.\n */\nexport const Grid = ({ mode, children, ...rest }: GridProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const breakpoint = useMeasuredGridBreakpoint(ref);\n return (\n <GridBreakpointContext.Provider value={breakpoint}>\n <Root ref={ref} $mode={mode} $breakpoint={breakpoint} {...rest}>\n {children}\n </Root>\n </GridBreakpointContext.Provider>\n );\n};\n\nexport default Grid;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nexport type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport interface GridItemProps extends ComponentPropsWithoutRef<'div'> {\n span: GridSpan;\n children: ReactNode;\n}\n\nconst Item = styled.div<{ $span: GridSpan }>`\n grid-column: span ${({ $span }) => $span};\n min-width: 0;\n`;\n\nexport const GridItem = ({ span, children, ...rest }: GridItemProps) => (\n <Item $span={span} {...rest}>\n {children}\n </Item>\n);\n\nexport default GridItem;\n"],"mappings":";;;;;AAcA,MAAa,mBAAmB;CAAE,IAAI;CAAK,IAAI;CAAM,IAAI;CAAM;AAI/D,MAAM,wBAAwB,cAA0B,KAAK;;AAG7D,MAAa,0BAAsC,WAAW,sBAAsB;AAEpF,MAAM,iBAAiB,UAA8B;AACnD,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,QAAO;;AAGT,MAAM,6BAA6B,QAAmC;CACpE,MAAM,CAAC,YAAY,iBAAiB,SAAqB,KAAK;AAC9D,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,cAAc,cAAc,KAAK,YAAY,CAAC;AACnE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,CAAC,IAAI,CAAC;AACT,QAAO;;AAGT,MAAM,OAAO,OAAO,GAA0D;;;;;;KAMzE,EAAE,kBACH,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,KAAK,EAAE;MACrC;;KAED,EAAE,kBACH,gBAAgB,QAAQ,gBAAgB,OACpC,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;YAE/B,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;UAC7B;;;KAGL,EAAE,OAAO,kBACV,UAAU,WACV,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,GAAG;;MAEjC;;;;;;;;;AAyBN,MAAa,QAAQ,EAAE,MAAM,UAAU,GAAG,WAAsB;CAC9D,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,aAAa,0BAA0B,IAAI;AACjD,QACE,oBAAC,sBAAsB,UAAvB;EAAgC,OAAO;YACrC,oBAAC,MAAD;GAAW;GAAK,OAAO;GAAM,aAAa;GAAY,GAAI;GACvD;GACI,CAAA;EACwB,CAAA;;;;ACzGrC,MAAM,OAAO,OAAO,GAAwB;uBACrB,EAAE,YAAY,MAAM;;;AAI3C,MAAa,YAAY,EAAE,MAAM,UAAU,GAAG,WAC5C,oBAAC,MAAD;CAAM,OAAO;CAAM,GAAI;CACpB;CACI,CAAA"}
1
+ {"version":3,"file":"Grid-CYpOqTUu.mjs","names":[],"sources":["../src/components/Grid/Grid.tsx","../src/components/Grid/GridItem.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n createContext,\n type ReactNode,\n type RefObject,\n useContext,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const GRID_BREAKPOINTS = { sm: 768, md: 1024, lg: 1408 } as const;\n\ntype Breakpoint = 'xs' | 'sm' | 'md' | 'lg';\n\nconst GridBreakpointContext = createContext<Breakpoint>('md');\n\n/** Breakpoint of the nearest `Grid`, measured from that grid's width. */\nexport const useGridBreakpoint = (): Breakpoint => useContext(GridBreakpointContext);\n\nconst getBreakpoint = (width: number): Breakpoint => {\n if (width >= GRID_BREAKPOINTS.lg) {\n return 'lg';\n }\n if (width >= GRID_BREAKPOINTS.md) {\n return 'md';\n }\n if (width >= GRID_BREAKPOINTS.sm) {\n return 'sm';\n }\n return 'xs';\n};\n\nconst useMeasuredGridBreakpoint = (ref: RefObject<HTMLDivElement>) => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>('md');\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setBreakpoint(getBreakpoint(node.offsetWidth));\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return breakpoint;\n};\n\nconst Root = styled.div<{ $mode: GridProps['mode']; $breakpoint: Breakpoint }>`\n display: grid;\n width: 100%;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n box-sizing: border-box;\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' &&\n css`\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n `}\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' || $breakpoint === 'sm'\n ? css`\n gap: ${Spacing[3]};\n padding-inline: ${Spacing[5]};\n `\n : css`\n gap: ${Spacing[4]};\n padding-inline: ${Spacing[6]};\n `}\n\n // max-width equals the lg threshold; offsetWidth reads the clamped border-box width and getBreakpoint uses >=, so the clamp stays 'lg'\n ${({ $mode, $breakpoint }) =>\n $mode === 'fixed' &&\n $breakpoint === 'lg' &&\n css`\n max-width: ${GRID_BREAKPOINTS.lg}px;\n margin-inline: auto;\n `}\n`;\n\nexport interface GridProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Selects the grid width behavior at the large breakpoint. `fixed` centers the grid at a\n * maximum width of 1408px, while `fluid` fills the available width.\n *\n * Breakpoints:\n * - ≤767px: 12 columns, 24px margins, 12px gutters, and a 767px minimum width.\n * - 768–1023px: 12 columns, 24px margins, 12px gutters, and 100% width.\n * - 1024–1407px: 12 columns, 32px margins, 16px gutters, and 100% width.\n * - ≥1408px: 12 columns, 32px margins, 16px gutters, and either fixed or fluid width.\n */\n mode: 'fixed' | 'fluid';\n children: ReactNode;\n}\n\n/**\n * Provides a 12-column CSS grid that measures its own width with a ResizeObserver for responsive\n * horizontal margins and gutters. Vertical spacing is left to the consumer.\n *\n * The grid measures breakpoints against its own width rather than the viewport. Use `fixed` to\n * center the grid at its large-screen maximum width, or `fluid` to keep it at 100% width.\n */\nexport const Grid = ({ mode, children, ...rest }: GridProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const breakpoint = useMeasuredGridBreakpoint(ref);\n return (\n <GridBreakpointContext.Provider value={breakpoint}>\n <Root ref={ref} $mode={mode} $breakpoint={breakpoint} {...rest}>\n {children}\n </Root>\n </GridBreakpointContext.Provider>\n );\n};\n\nexport default Grid;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nexport type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport interface GridItemProps extends ComponentPropsWithoutRef<'div'> {\n span: GridSpan;\n children: ReactNode;\n}\n\nconst Item = styled.div<{ $span: GridSpan }>`\n grid-column: span ${({ $span }) => $span};\n min-width: 0;\n`;\n\nexport const GridItem = ({ span, children, ...rest }: GridItemProps) => (\n <Item $span={span} {...rest}>\n {children}\n </Item>\n);\n\nexport default GridItem;\n"],"mappings":";;;;;AAcA,MAAa,mBAAmB;CAAE,IAAI;CAAK,IAAI;CAAM,IAAI;CAAM;AAI/D,MAAM,wBAAwB,cAA0B,KAAK;;AAG7D,MAAa,0BAAsC,WAAW,sBAAsB;AAEpF,MAAM,iBAAiB,UAA8B;AACnD,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,QAAO;;AAGT,MAAM,6BAA6B,QAAmC;CACpE,MAAM,CAAC,YAAY,iBAAiB,SAAqB,KAAK;AAC9D,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,cAAc,cAAc,KAAK,YAAY,CAAC;AACnE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,CAAC,IAAI,CAAC;AACT,QAAO;;AAGT,MAAM,OAAO,OAAO,GAA0D;;;;;;KAMzE,EAAE,kBACH,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,KAAK,EAAE;MACrC;;KAED,EAAE,kBACH,gBAAgB,QAAQ,gBAAgB,OACpC,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;YAE/B,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;UAC7B;;;KAGL,EAAE,OAAO,kBACV,UAAU,WACV,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,GAAG;;MAEjC;;;;;;;;;AAyBN,MAAa,QAAQ,EAAE,MAAM,UAAU,GAAG,WAAsB;CAC9D,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,aAAa,0BAA0B,IAAI;AACjD,QACE,oBAAC,sBAAsB,UAAvB;EAAgC,OAAO;YACrC,oBAAC,MAAD;GAAW;GAAK,OAAO;GAAM,aAAa;GAAY,GAAI;GACvD;GACI,CAAA;EACwB,CAAA;;;;ACzGrC,MAAM,OAAO,OAAO,GAAwB;uBACrB,EAAE,YAAY,MAAM;;;AAI3C,MAAa,YAAY,EAAE,MAAM,UAAU,GAAG,WAC5C,oBAAC,MAAD;CAAM,OAAO;CAAM,GAAI;CACpB;CACI,CAAA"}
@@ -32,4 +32,4 @@ declare const Root: ({
32
32
  }: HeaderProps & ComponentPropsWithoutRef<"div">) => _$react_jsx_runtime0.JSX.Element;
33
33
  //#endregion
34
34
  export { Root as a, HeaderProps as i, Header as n, Title as o, HeaderContainer as r, TitleContainer as s, ActionsContainer as t };
35
- //# sourceMappingURL=Header-fwlbzxYx.d.mts.map
35
+ //# sourceMappingURL=Header-C9oYPBLv.d.mts.map
package/dist/Header.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as Root, i as HeaderProps, n as Header, o as Title, r as HeaderContainer, s as TitleContainer, t as ActionsContainer } from "./Header-fwlbzxYx.mjs";
1
+ import { a as Root, i as HeaderProps, n as Header, o as Title, r as HeaderContainer, s as TitleContainer, t as ActionsContainer } from "./Header-C9oYPBLv.mjs";
2
2
  export { ActionsContainer, HeaderContainer, HeaderProps, Root, Title, TitleContainer, Header as default };
@@ -1,4 +1,4 @@
1
- import { i as TooltipWithIconProps } from "./Tooltip-CysnLwST.mjs";
1
+ import { i as TooltipWithIconProps } from "./Tooltip-CrpfAAfA.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -17,4 +17,4 @@ declare const HelperTooltip: ({
17
17
  }: HelperTooltipProps) => _$react_jsx_runtime0.JSX.Element;
18
18
  //#endregion
19
19
  export { HelperTooltipProps as n, HelperTooltip as t };
20
- //# sourceMappingURL=HelperTooltip-BLfPfJRN.d.mts.map
20
+ //# sourceMappingURL=HelperTooltip-jHTdkLQq.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as HelperTooltipProps, t as HelperTooltip } from "./HelperTooltip-BLfPfJRN.mjs";
1
+ import { n as HelperTooltipProps, t as HelperTooltip } from "./HelperTooltip-jHTdkLQq.mjs";
2
2
  export { HelperTooltipProps, HelperTooltip as default };
@@ -1,5 +1,5 @@
1
- import { t as ASTNode } from "./types-dmItSshr.mjs";
2
- import { a as Mode, l as TextStyle, u as ValueType } from "./types-XjJqUj-p.mjs";
1
+ import { t as ASTNode } from "./types-Bg_sfqXE.mjs";
2
+ import { a as Mode, l as TextStyle, u as ValueType } from "./types-BnXYfNrd.mjs";
3
3
  import { SchemaValidator } from "./validation2.mjs";
4
4
  import * as _$react from "react";
5
5
  import { FC, ReactNode } from "react";
@@ -1,4 +1,4 @@
1
- import { i as CommonStrings, n as CommonStringOverrides } from "./strings-BGXKl_m6.mjs";
1
+ import { i as CommonStrings, n as CommonStringOverrides } from "./strings-T-gsdqiJ.mjs";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
 
4
4
  //#region src/lib/i18n/I18nContext.d.ts
@@ -19,4 +19,4 @@ declare function usePDSStrings(): CommonStrings;
19
19
  declare function usePDSLocale(): string | undefined;
20
20
  //#endregion
21
21
  export { usePDSStrings as i, PDSI18nProviderProps as n, usePDSLocale as r, PDSI18nProvider as t };
22
- //# sourceMappingURL=I18nContext-BBVKF9ui.d.mts.map
22
+ //# sourceMappingURL=I18nContext-DzV-RDIh.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "./I18nContext-BBVKF9ui.mjs";
1
+ import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "./I18nContext-DzV-RDIh.mjs";
2
2
  export { PDSI18nProvider, PDSI18nProviderProps, usePDSLocale, usePDSStrings };
@@ -1,4 +1,4 @@
1
- import { r as ButtonProps } from "./Button-Cg8KyT5M.mjs";
1
+ import { r as ButtonProps } from "./Button-B79_aXfC.mjs";
2
2
  import * as _$react from "react";
3
3
 
4
4
  //#region src/components/Button/IconButton.d.ts
@@ -21,4 +21,4 @@ interface IconButtonProps extends Omit<ButtonProps, 'width' | 'prefixIcon' | 'pr
21
21
  declare const IconButton: _$react.ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & _$react.RefAttributes<HTMLButtonElement>>;
22
22
  //#endregion
23
23
  export { IconButtonProps as n, IconButton as t };
24
- //# sourceMappingURL=IconButton-KhCwTwPx.d.mts.map
24
+ //# sourceMappingURL=IconButton-CaEvsrOn.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as IconButtonProps, t as IconButton } from "./IconButton-KhCwTwPx.mjs";
1
+ import { n as IconButtonProps, t as IconButton } from "./IconButton-CaEvsrOn.mjs";
2
2
  export { IconButtonProps, IconButton as default };
@@ -1,4 +1,4 @@
1
- import { i as TextAction } from "./Action-Bmo8B-Q3.mjs";
1
+ import { i as TextAction } from "./Action-BLMJwLBV.mjs";
2
2
  import { ComponentPropsWithoutRef, MouseEvent, ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,8 +1,8 @@
1
- import { r as BreadcrumbsProps } from "./Breadcrumbs-DRu_JfdI.mjs";
2
- import { i as BaseFilterConfig, s as FilterConfig } from "./types-sUEmxsGM.mjs";
3
- import { r as TableControlsProps } from "./TableControls-BHv-tXA-.mjs";
4
- import { i as DataTableProps } from "./DataTable-BXHmi-SW.mjs";
5
- import { r as PageHeaderProps } from "./PageHeader-D2QLrS7-.mjs";
1
+ import { r as BreadcrumbsProps } from "./Breadcrumbs-ChKWIuRq.mjs";
2
+ import { i as BaseFilterConfig, s as FilterConfig } from "./types-BiRayNak.mjs";
3
+ import { r as TableControlsProps } from "./TableControls-r58fZb_C.mjs";
4
+ import { i as DataTableProps } from "./DataTable-Cblw6bLk.mjs";
5
+ import { r as PageHeaderProps } from "./PageHeader-BGGhOS81.mjs";
6
6
  import { UseColumnConfigurationOptions } from "./useColumnConfiguration.mjs";
7
7
  import { ReactNode } from "react";
8
8
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { r as InlineEditConfig } from "./TableBoxCell-DPXrw63v.mjs";
1
+ import { r as InlineEditConfig } from "./TableBoxCell-DuvWTwOm.mjs";
2
2
  import { RefObject } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as InlineEditConfig } from "./TableBoxCell-DPXrw63v.mjs";
1
+ import { r as InlineEditConfig } from "./TableBoxCell-DuvWTwOm.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/TableBox/InlineInput.d.ts
@@ -1,5 +1,5 @@
1
- import { r as ButtonProps } from "./Button-Cg8KyT5M.mjs";
2
- import { n as InputSizes, t as InputMixinProps } from "./input-gtTnb9M8.mjs";
1
+ import { r as ButtonProps } from "./Button-B79_aXfC.mjs";
2
+ import { n as InputSizes, t as InputMixinProps } from "./input-RTMLTvG1.mjs";
3
3
  import * as _$react from "react";
4
4
  import { ComponentPropsWithoutRef, MouseEventHandler, ReactElement, ReactNode } from "react";
5
5
  import * as _$styled_components0 from "styled-components";
@@ -58,4 +58,4 @@ interface InputGroupProps extends ComponentPropsWithoutRef<'div'>, Omit<InputMix
58
58
  declare const InputGroup: _$react.ForwardRefExoticComponent<InputGroupProps & _$react.RefAttributes<HTMLDivElement>>;
59
59
  //#endregion
60
60
  export { InputProps as a, InputGroupProps as i, Input as n, InputGroup as r, ClearButton as t };
61
- //# sourceMappingURL=Input-QNjbGo38.d.mts.map
61
+ //# sourceMappingURL=Input-DQ2J9wlC.d.mts.map
package/dist/Input.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as InputProps, i as InputGroupProps, n as Input, r as InputGroup, t as ClearButton } from "./Input-QNjbGo38.mjs";
1
+ import { a as InputProps, i as InputGroupProps, n as Input, r as InputGroup, t as ClearButton } from "./Input-DQ2J9wlC.mjs";
2
2
  export { ClearButton, Input, Input as default, InputGroup, InputGroupProps, InputProps };
@@ -1,4 +1,4 @@
1
- import { n as InputSizes, t as InputMixinProps } from "./input-gtTnb9M8.mjs";
1
+ import { n as InputSizes, t as InputMixinProps } from "./input-RTMLTvG1.mjs";
2
2
 
3
3
  //#region src/types/InputProps.d.ts
4
4
  interface InputProps extends Omit<InputMixinProps, '$size'> {
@@ -13,4 +13,4 @@ interface InputProps extends Omit<InputMixinProps, '$size'> {
13
13
  }
14
14
  //#endregion
15
15
  export { InputProps as t };
16
- //# sourceMappingURL=InputProps-BT7-RfnD.d.mts.map
16
+ //# sourceMappingURL=InputProps-DrG94eFF.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as InputProps } from "./InputProps-BT7-RfnD.mjs";
1
+ import { t as InputProps } from "./InputProps-DrG94eFF.mjs";
2
2
  export { InputProps };
@@ -9,4 +9,4 @@ interface InserterProps {
9
9
  declare const Inserter: React.FC<InserterProps>;
10
10
  //#endregion
11
11
  export { Inserter as t };
12
- //# sourceMappingURL=Inserter-BnQVEqHV.d.mts.map
12
+ //# sourceMappingURL=Inserter-CZeKlPqj.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as Inserter } from "./Inserter-BnQVEqHV.mjs";
1
+ import { t as Inserter } from "./Inserter-CZeKlPqj.mjs";
2
2
  export { Inserter };
@@ -1,4 +1,4 @@
1
- import { t as ValueControlProps } from "./types-B4KbdEDc.mjs";
1
+ import { t as ValueControlProps } from "./types-1p-ij0cd.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/DataTable/TableControls/FiltersV2/value-controls/IntegerValueControl/IntegerValueControl.d.ts
package/dist/Link.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { r as RouterLinkComponentProps } from "./types-Dhz6VMKx.mjs";
1
+ import { r as RouterLinkComponentProps } from "./types-B5RbKp2V.mjs";
2
2
  import { AnchorHTMLAttributes, ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,5 +1,5 @@
1
- import { r as ButtonProps } from "./Button-Cg8KyT5M.mjs";
2
- import { l as MenuItemProps } from "./Menu-ByYFNvgS.mjs";
1
+ import { r as ButtonProps } from "./Button-B79_aXfC.mjs";
2
+ import { l as MenuItemProps } from "./Menu-Bq6Lij2L.mjs";
3
3
  import { ComponentPropsWithoutRef, PropsWithChildren, ReactNode } from "react";
4
4
  import * as _$react_aria_components0 from "react-aria-components";
5
5
  import { GridList, GridListItem, Header } from "react-aria-components";
@@ -140,4 +140,4 @@ interface ListBoxItemProps extends ComponentPropsWithoutRef<typeof GridListItem>
140
140
  }
141
141
  //#endregion
142
142
  export { useListBoxContext as i, ListBoxItemProps as n, ListBoxProps$1 as r, ListBox as t };
143
- //# sourceMappingURL=ListBox-CvnFiHK5.d.mts.map
143
+ //# sourceMappingURL=ListBox-DxbXE_EE.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-CvnFiHK5.mjs";
1
+ import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-DxbXE_EE.mjs";
2
2
  export { ListBox, ListBox as default, ListBoxItemProps, ListBoxProps, useListBoxContext };
@@ -1,6 +1,6 @@
1
- import { l as MenuItemProps } from "./Menu-ByYFNvgS.mjs";
2
- import { o as ImplementsFormField } from "./inputFields-Dfpxi68z.mjs";
3
- import { r as ListBoxProps } from "./ListBox-CvnFiHK5.mjs";
1
+ import { l as MenuItemProps } from "./Menu-Bq6Lij2L.mjs";
2
+ import { o as ImplementsFormField } from "./inputFields-iRg_emVK.mjs";
3
+ import { r as ListBoxProps } from "./ListBox-DxbXE_EE.mjs";
4
4
  import { ReactNode } from "react";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
6
6
 
@@ -48,4 +48,4 @@ declare const ListBoxField: <T extends object>({
48
48
  }: ListBoxFieldProps<T>) => _$react_jsx_runtime0.JSX.Element;
49
49
  //#endregion
50
50
  export { ListBoxField as t };
51
- //# sourceMappingURL=ListBoxField-DuUwx9Cv.d.mts.map
51
+ //# sourceMappingURL=ListBoxField-DVLggscv.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as ListBoxField } from "./ListBoxField-DuUwx9Cv.mjs";
1
+ import { t as ListBoxField } from "./ListBoxField-DVLggscv.mjs";
2
2
  export { ListBoxField as default };
@@ -1,4 +1,4 @@
1
- import { i as ParagraphSize, n as HeadingSize } from "./text-Csytfclh.mjs";
1
+ import { i as ParagraphSize, n as HeadingSize } from "./text-CKLxMlG4.mjs";
2
2
  import { ComponentPropsWithoutRef, FC } from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import { n as InputSizes } from "./input-gtTnb9M8.mjs";
2
- import { n as ListBoxItemProps } from "./ListBox-CvnFiHK5.mjs";
1
+ import { n as InputSizes } from "./input-RTMLTvG1.mjs";
2
+ import { n as ListBoxItemProps } from "./ListBox-DxbXE_EE.mjs";
3
3
  import { ReactNode } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -37,4 +37,4 @@ declare const LogicRow: ({
37
37
  }: LogicRowProps) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { LogicRowProps as n, LogicRow as t };
40
- //# sourceMappingURL=LogicRow-COvZNiUd.d.mts.map
40
+ //# sourceMappingURL=LogicRow-DG06PsUe.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as LogicRowProps, t as LogicRow } from "./LogicRow-COvZNiUd.mjs";
1
+ import { n as LogicRowProps, t as LogicRow } from "./LogicRow-DG06PsUe.mjs";
2
2
  export { LogicRowProps, LogicRow as default };
@@ -1,4 +1,4 @@
1
- import { a as InputProps } from "./Input-QNjbGo38.mjs";
1
+ import { a as InputProps } from "./Input-DQ2J9wlC.mjs";
2
2
  import * as _$react from "react";
3
3
  import { IMaskInputProps } from "react-imask/mixin";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as _default } from "./Card-CfECLwQ6.mjs";
1
+ import { r as _default } from "./Card-DOIqF954.mjs";
2
2
  import { ComponentPropsWithRef, ComponentPropsWithoutRef, ComponentType, ElementType, FC, ReactNode, RefObject } from "react";
3
3
  import { DefaultTheme, StyledComponent, StyledComponentPropsWithRef } from "styled-components";
4
4
  import { Spacing } from "@persona/design-tokens";
@@ -22,7 +22,7 @@ interface MenuItemProps<T extends ElementType = 'div'> {
22
22
  selected?: boolean;
23
23
  size?: 'sm' | 'md';
24
24
  }
25
- declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "size" | "disabled" | "selected" | "focused" | "variant">, never>;
25
+ declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "size" | "disabled" | "variant" | "selected" | "focused">, never>;
26
26
  declare const IconContainer: StyledComponent<"div", any, {
27
27
  suffix?: boolean;
28
28
  }, never>;
@@ -67,4 +67,4 @@ declare const Menu: {
67
67
  };
68
68
  //#endregion
69
69
  export { MenuDivider as a, MenuItem as c, MenuList as d, MenuProps as f, Menu as i, MenuItemProps as l, IconContainer as n, MenuHeading as o, ListItem as r, MenuHeadingProps as s, FloatingCard as t, MenuItemType as u };
70
- //# sourceMappingURL=Menu-ByYFNvgS.d.mts.map
70
+ //# sourceMappingURL=Menu-Bq6Lij2L.d.mts.map
package/dist/Menu.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-ByYFNvgS.mjs";
1
+ import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-Bq6Lij2L.mjs";
2
2
  export { FloatingCard, IconContainer, ListItem, Menu, Menu as default, MenuDivider, MenuHeading, MenuHeadingProps, MenuItem, MenuItemProps, MenuItemType, MenuList, MenuProps };
@@ -1,5 +1,5 @@
1
1
  import { a as styled } from "./styledComponentsInterop-Cs5CCPRy.mjs";
2
- import { l as usePDSStrings } from "./i18n-CKRi992F.mjs";
2
+ import { l as usePDSStrings } from "./i18n-DaOKaFc2.mjs";
3
3
  import { semanticColor, semanticOnly } from "./lib/semanticColor.mjs";
4
4
  import { t as Card_default } from "./Card-DuQHyroh.mjs";
5
5
  import { n as Heading$1 } from "./Text-D0vEReED.mjs";
@@ -259,4 +259,4 @@ var Modal_default = Object.assign(Modal$1, { Title: ModalTitle });
259
259
  //#endregion
260
260
  export { Modal_default as i, ModalContent as n, ModalTrigger as r, ModalClose as t };
261
261
 
262
- //# sourceMappingURL=Modal-ziuzDCPN.mjs.map
262
+ //# sourceMappingURL=Modal-BBlilB-B.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal-ziuzDCPN.mjs","names":["AriaModal","Button","AriaButton","Heading","AriaHeading","Card","Modal"],"sources":["../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport {\n Button as AriaButton,\n Dialog,\n DialogTrigger,\n Heading as AriaHeading,\n Modal as AriaModal,\n ModalOverlay,\n type ModalOverlayProps,\n OverlayTriggerStateContext,\n Pressable,\n} from 'react-aria-components';\nimport styled from 'styled-components';\n\nimport Button, { type ButtonProps } from '@persona/design-system/components/Button';\nimport Card from '@persona/design-system/components/Card';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport TabBar, { Tab } from '@persona/design-system/components/TabBar';\nimport { Heading } from '@persona/design-system/components/Text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor, semanticOnly } from '#src/lib/semanticColor';\nimport useEmbeddedSurface, {\n useEmbeddedSurfaceGate,\n useEmbeddedSurfaceId,\n} from '#src/lib/useEmbeddedSurface';\nimport useModalInsetRight, {\n SIDEBAR_CLOSE_TRANSITION_MS,\n SIDEBAR_OPEN_TRANSITION_MS,\n} from '#src/lib/useModalInsetRight';\nimport { semanticScrollbar } from '#src/mixins/scrollbar';\n\nconst StyledModalOverlay = styled(ModalOverlay)<{\n $hostPending: boolean;\n $animationDelayMs: number;\n $insetRight: string;\n $transitionMs: number;\n}>`\n @keyframes overlayShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n background-color: rgba(0, 0, 0, 0.5);\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: ${({ $insetRight }) => $insetRight};\n transition: right ${({ $transitionMs }) => $transitionMs}ms ease-out;\n animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);\n animation-delay: ${({ $animationDelayMs }) => $animationDelayMs}ms;\n animation-fill-mode: both;\n ${({ $hostPending }) =>\n $hostPending &&\n `\n animation-play-state: paused;\n `}\n @media (prefers-reduced-motion: reduce) {\n animation-duration: 0ms;\n animation-delay: 0ms;\n animation-play-state: running;\n }\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst StyledModal = styled(AriaModal)`\n z-index: 10001;\n outline: none;\n width: fit-content;\n max-width: 100%;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n`;\n\n/**\n * React Aria keeps the overlay mounted through the exit animation, so announcing the surface from\n * here — rather than from the persistent gate below — releases the host's backdrop exactly when the\n * modal stops being painted.\n */\nconst EmbeddedSurfaceModal = forwardRef<HTMLDivElement, { children: ReactNode; surfaceId: string }>(\n function EmbeddedSurfaceModal({ children, surfaceId }, ref) {\n useEmbeddedSurface(surfaceId);\n return <StyledModal ref={ref}>{children}</StyledModal>;\n },\n);\n\ntype EmbeddedSurfaceOverlayProps = ModalOverlayProps & {\n $insetRight: string;\n $transitionMs: number;\n surfaceId: string;\n};\n\nconst EmbeddedSurfaceOverlay = ({ surfaceId, ...props }: EmbeddedSurfaceOverlayProps) => {\n const state = useContext(OverlayTriggerStateContext);\n const isOpen = state?.isOpen ?? false;\n const { ready, animationDelayMs } = useEmbeddedSurfaceGate(surfaceId, isOpen);\n\n const { $insetRight, $transitionMs, ...overlayProps } = props;\n return (\n <StyledModalOverlay\n {...overlayProps}\n $insetRight={$insetRight}\n $transitionMs={$transitionMs}\n $animationDelayMs={animationDelayMs}\n $hostPending={isOpen && !ready}\n />\n );\n};\n\nconst ModalCloseButton = styled(Button)`\n display: inline-flex;\n padding: ${Spacing[2]};\n border-radius: ${Spacing[1]};\n width: fit-content;\n min-width: unset;\n`;\n\nconst ModalFooter = styled(HStack).attrs({\n justify: 'flex-end',\n align: 'center',\n spacing: Spacing[2],\n})`\n padding: ${Spacing[3]} ${Spacing[4]};\n border-top: 1px solid ${({ theme }) => semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n`;\n\nconst ModalHeaderTitle = styled.div`\n flex: 1;\n`;\n\nexport const ModalTrigger = DialogTrigger;\nexport const ModalContent = StyledModal;\n\nexport const ModalClose = (props: ButtonProps) => {\n return (\n <AriaButton slot='close' style={{ all: 'unset', display: 'contents' }}>\n <ModalCloseButton variant='text' width='icon' size='md' {...props}>\n <XIcon />\n </ModalCloseButton>\n </AriaButton>\n );\n};\n\nexport interface ModalTitleProps {\n children: ReactNode;\n className?: string;\n}\n\n/** Props passed to modal content render functions. */\nexport interface ModalRenderProps {\n /** Element that floating content should use as its portal container. */\n portalContainer: HTMLDivElement | null;\n}\n\ntype ModalRenderable = ReactNode | ((props: ModalRenderProps) => ReactNode);\n\nconst ModalTitle = ({ children, ...props }: ModalTitleProps) => {\n return (\n <Heading size='sm' color='primary' as={AriaHeading} slot='title' {...props}>\n {children}\n </Heading>\n );\n};\n\nconst ModalHeader = styled(HStack)<{ $hasTabs: boolean }>`\n border-bottom: ${({ $hasTabs, theme }) =>\n $hasTabs ? 'none' : `1px solid ${semanticColor(theme, 'BorderSubtle', Color.BorderDivider)}`};\n padding: ${({ $hasTabs }) =>\n $hasTabs\n ? `${Spacing[3]} ${Spacing[2]} ${Spacing[1]} ${Spacing[4]}`\n : `${Spacing[3]} ${Spacing[2]} ${Spacing[3]} ${Spacing[4]}`};\n`;\n\nconst ModalTabBar = styled(TabBar)`\n padding-left: ${Spacing[4]};\n`;\n\nconst StyledDialog = styled(Dialog)`\n outline: none;\n`;\n\nconst StyledCard = styled(Card)<{ $size?: 'auto' | 'md' | 'lg' | 'xl' | 'full' }>`\n position: relative;\n width: ${({ $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return '90vw';\n }\n }};\n max-width: ${({ theme, $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return theme.modal.width[$size];\n }\n }};\n /* TODO: Use breakpoints to make this responsive */\n max-height: ${({ $size }) => ($size === 'full' ? 'calc(100vh - 160px)' : '85vh')};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${({ $size }) =>\n $size === 'full' &&\n `\n height: calc(100vh - 160px);\n `}\n margin-bottom: 0;\n`;\n\ninterface ModalCardProps extends ComponentPropsWithoutRef<typeof Dialog> {\n /**\n * Display X button to close popover\n */\n showCloseButton?: boolean;\n\n /**\n * Accessible label for the built-in close button. Defaults to the PDS closeModal string (\"Close\").\n */\n closeButtonLabel?: string;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer content\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n * Tab contents can be render functions that receive the modal portal container.\n */\n tabs?: TabView[];\n\n /**\n * Title of the modal\n */\n title?: ReactNode;\n\n /**\n * Children content\n */\n children?: ReactNode;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n */\n noBodyPadding?: boolean;\n\n /**\n * Additional props for the Dialog element\n */\n className?: string;\n}\n\ninterface ModalCardInternalProps extends ModalCardProps {\n portalContainer: HTMLDivElement | null;\n}\n\nconst StyledModalCardBody = styled(Card.Body)<{\n $noPadding?: boolean;\n $hidden?: boolean;\n}>`\n overflow-y: auto;\n ${semanticScrollbar}\n flex: 1;\n min-height: 0;\n ${({ $noPadding }) =>\n $noPadding\n ? 'padding: 0;'\n : `\n padding-left: ${Spacing[4]};\n padding-right: ${Spacing[4]};\n `}\n ${({ $hidden }) => $hidden && 'display: none;'}\n`;\n\n/**\n * Card to be used in Modal contexts. Inherits props from react-aria-components Dialog.\n */\nconst ModalCard = forwardRef<HTMLDivElement, ModalCardInternalProps>(function ModalCard(\n {\n title,\n children,\n showCloseButton = true,\n closeButtonLabel,\n size,\n footer,\n tabs,\n noBodyPadding = false,\n portalContainer,\n ...props\n },\n ref,\n) {\n const strings = usePDSStrings();\n const [selectedTabIdx, setSelectedTabIdx] = useState(0);\n const tabCount = tabs?.length ?? 0;\n\n useEffect(() => {\n setSelectedTabIdx(0);\n }, [tabCount]);\n\n const titleAndClose = (\n <ModalHeader justify='flex-start' align='center' spacing={Spacing[2]} $hasTabs={Boolean(tabs)}>\n <ModalHeaderTitle>{title ? <ModalTitle>{title}</ModalTitle> : null}</ModalHeaderTitle>\n {showCloseButton && <ModalClose aria-label={closeButtonLabel ?? strings.closeModal} />}\n </ModalHeader>\n );\n\n const modalHeader = tabs ? (\n <Stack>\n {titleAndClose}\n <ModalTabBar>\n {tabs.map((tab, idx) => (\n <Tab\n key={tab.name}\n selected={selectedTabIdx === idx}\n id={`pds-modal_tab-${idx}`}\n onClick={() => setSelectedTabIdx(idx)}\n aria-controls={`pds-modal_tab-panel-${idx}`}\n >\n {tab.name}\n </Tab>\n ))}\n </ModalTabBar>\n </Stack>\n ) : (\n titleAndClose\n );\n\n return (\n <StyledDialog {...props} ref={ref}>\n <StyledCard elevated $size={size}>\n {(showCloseButton || title) && modalHeader}\n {tabs ? (\n tabs.map((tab, idx) => (\n <StyledModalCardBody\n key={tab.name}\n $noPadding={noBodyPadding}\n $hidden={selectedTabIdx !== idx}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${tab.name}`}\n aria-labelledby={`pds-modal_tab-${tab.name}`}\n >\n {typeof tab.contents === 'function'\n ? tab.contents({ portalContainer })\n : tab.contents}\n </StyledModalCardBody>\n ))\n ) : (\n <StyledModalCardBody\n $noPadding={noBodyPadding}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${selectedTabIdx}`}\n aria-labelledby={`pds-modal_tab-${selectedTabIdx}`}\n >\n {children}\n </StyledModalCardBody>\n )}\n\n {footer && <ModalFooter>{footer}</ModalFooter>}\n </StyledCard>\n </StyledDialog>\n );\n});\n\ninterface TabView {\n name: string;\n contents: ModalRenderable;\n badge?: React.ReactElement;\n disabled?: boolean;\n 'data-tour-target'?: string;\n}\n\nexport interface ModalProps {\n /**\n * Title of the Card\n */\n title?: string;\n\n /**\n * Component to use as trigger. React Aria trigger props will be merged with this element.\n */\n trigger?: ComponentProps<typeof Pressable>['children'];\n\n /**\n * Props to apply to Modal.Card within\n */\n contentProps?: ModalCardProps;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer section intended for actions.\n * You can pass in Buttons directly and they will render in a HStack.\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n */\n tabs?: TabView[];\n\n /**\n * Children content\n */\n children?: ModalRenderable;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n * Can also be set via contentProps.noBodyPadding.\n */\n noBodyPadding?: boolean;\n\n /**\n * Controls whether the modal is open (controlled)\n */\n open?: boolean;\n\n /**\n * Default open state (uncontrolled)\n */\n defaultOpen?: boolean;\n\n /**\n * Handler called when open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Whether the modal can be dismissed by clicking outside or pressing escape\n */\n isDismissable?: boolean;\n\n /**\n * Whether pressing the escape key closes the modal\n */\n isKeyboardDismissDisabled?: boolean;\n}\n\nconst Modal = ({\n children,\n trigger,\n contentProps,\n noBodyPadding = false,\n size = 'md',\n title,\n footer,\n tabs,\n defaultOpen,\n onOpenChange,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n open,\n}: ModalProps) => {\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null);\n const surfaceId = useEmbeddedSurfaceId();\n const { insetRight: modalInsetRight, panelState } = useModalInsetRight();\n const transitionMs =\n panelState === 'opening'\n ? SIDEBAR_OPEN_TRANSITION_MS\n : panelState === 'closing'\n ? SIDEBAR_CLOSE_TRANSITION_MS\n : 0;\n\n const content = (\n <ModalCard\n size={size}\n title={title}\n footer={footer}\n tabs={tabs}\n noBodyPadding={noBodyPadding}\n {...contentProps}\n portalContainer={portalContainer}\n >\n {typeof children === 'function' ? children({ portalContainer }) : children}\n </ModalCard>\n );\n\n // Wrap trigger element to ensure it works with react-aria-components\n const wrappedTrigger = trigger ? <Pressable>{trigger}</Pressable> : null;\n\n return (\n <DialogTrigger isOpen={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {wrappedTrigger}\n <EmbeddedSurfaceOverlay\n surfaceId={surfaceId}\n $insetRight={modalInsetRight}\n $transitionMs={transitionMs}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n shouldCloseOnInteractOutside={(element) => !element.closest('[data-react-aria-top-layer]')}\n >\n <EmbeddedSurfaceModal ref={setPortalContainer} surfaceId={surfaceId}>\n {content}\n </EmbeddedSurfaceModal>\n </EmbeddedSurfaceOverlay>\n </DialogTrigger>\n );\n};\n\nexport default Object.assign(Modal, {\n Title: ModalTitle,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal-BBlilB-B.mjs","names":["AriaModal","Button","AriaButton","Heading","AriaHeading","Card","Modal"],"sources":["../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport {\n Button as AriaButton,\n Dialog,\n DialogTrigger,\n Heading as AriaHeading,\n Modal as AriaModal,\n ModalOverlay,\n type ModalOverlayProps,\n OverlayTriggerStateContext,\n Pressable,\n} from 'react-aria-components';\nimport styled from 'styled-components';\n\nimport Button, { type ButtonProps } from '@persona/design-system/components/Button';\nimport Card from '@persona/design-system/components/Card';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport TabBar, { Tab } from '@persona/design-system/components/TabBar';\nimport { Heading } from '@persona/design-system/components/Text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor, semanticOnly } from '#src/lib/semanticColor';\nimport useEmbeddedSurface, {\n useEmbeddedSurfaceGate,\n useEmbeddedSurfaceId,\n} from '#src/lib/useEmbeddedSurface';\nimport useModalInsetRight, {\n SIDEBAR_CLOSE_TRANSITION_MS,\n SIDEBAR_OPEN_TRANSITION_MS,\n} from '#src/lib/useModalInsetRight';\nimport { semanticScrollbar } from '#src/mixins/scrollbar';\n\nconst StyledModalOverlay = styled(ModalOverlay)<{\n $hostPending: boolean;\n $animationDelayMs: number;\n $insetRight: string;\n $transitionMs: number;\n}>`\n @keyframes overlayShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n background-color: rgba(0, 0, 0, 0.5);\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: ${({ $insetRight }) => $insetRight};\n transition: right ${({ $transitionMs }) => $transitionMs}ms ease-out;\n animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);\n animation-delay: ${({ $animationDelayMs }) => $animationDelayMs}ms;\n animation-fill-mode: both;\n ${({ $hostPending }) =>\n $hostPending &&\n `\n animation-play-state: paused;\n `}\n @media (prefers-reduced-motion: reduce) {\n animation-duration: 0ms;\n animation-delay: 0ms;\n animation-play-state: running;\n }\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst StyledModal = styled(AriaModal)`\n z-index: 10001;\n outline: none;\n width: fit-content;\n max-width: 100%;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n`;\n\n/**\n * React Aria keeps the overlay mounted through the exit animation, so announcing the surface from\n * here — rather than from the persistent gate below — releases the host's backdrop exactly when the\n * modal stops being painted.\n */\nconst EmbeddedSurfaceModal = forwardRef<HTMLDivElement, { children: ReactNode; surfaceId: string }>(\n function EmbeddedSurfaceModal({ children, surfaceId }, ref) {\n useEmbeddedSurface(surfaceId);\n return <StyledModal ref={ref}>{children}</StyledModal>;\n },\n);\n\ntype EmbeddedSurfaceOverlayProps = ModalOverlayProps & {\n $insetRight: string;\n $transitionMs: number;\n surfaceId: string;\n};\n\nconst EmbeddedSurfaceOverlay = ({ surfaceId, ...props }: EmbeddedSurfaceOverlayProps) => {\n const state = useContext(OverlayTriggerStateContext);\n const isOpen = state?.isOpen ?? false;\n const { ready, animationDelayMs } = useEmbeddedSurfaceGate(surfaceId, isOpen);\n\n const { $insetRight, $transitionMs, ...overlayProps } = props;\n return (\n <StyledModalOverlay\n {...overlayProps}\n $insetRight={$insetRight}\n $transitionMs={$transitionMs}\n $animationDelayMs={animationDelayMs}\n $hostPending={isOpen && !ready}\n />\n );\n};\n\nconst ModalCloseButton = styled(Button)`\n display: inline-flex;\n padding: ${Spacing[2]};\n border-radius: ${Spacing[1]};\n width: fit-content;\n min-width: unset;\n`;\n\nconst ModalFooter = styled(HStack).attrs({\n justify: 'flex-end',\n align: 'center',\n spacing: Spacing[2],\n})`\n padding: ${Spacing[3]} ${Spacing[4]};\n border-top: 1px solid ${({ theme }) => semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n`;\n\nconst ModalHeaderTitle = styled.div`\n flex: 1;\n`;\n\nexport const ModalTrigger = DialogTrigger;\nexport const ModalContent = StyledModal;\n\nexport const ModalClose = (props: ButtonProps) => {\n return (\n <AriaButton slot='close' style={{ all: 'unset', display: 'contents' }}>\n <ModalCloseButton variant='text' width='icon' size='md' {...props}>\n <XIcon />\n </ModalCloseButton>\n </AriaButton>\n );\n};\n\nexport interface ModalTitleProps {\n children: ReactNode;\n className?: string;\n}\n\n/** Props passed to modal content render functions. */\nexport interface ModalRenderProps {\n /** Element that floating content should use as its portal container. */\n portalContainer: HTMLDivElement | null;\n}\n\ntype ModalRenderable = ReactNode | ((props: ModalRenderProps) => ReactNode);\n\nconst ModalTitle = ({ children, ...props }: ModalTitleProps) => {\n return (\n <Heading size='sm' color='primary' as={AriaHeading} slot='title' {...props}>\n {children}\n </Heading>\n );\n};\n\nconst ModalHeader = styled(HStack)<{ $hasTabs: boolean }>`\n border-bottom: ${({ $hasTabs, theme }) =>\n $hasTabs ? 'none' : `1px solid ${semanticColor(theme, 'BorderSubtle', Color.BorderDivider)}`};\n padding: ${({ $hasTabs }) =>\n $hasTabs\n ? `${Spacing[3]} ${Spacing[2]} ${Spacing[1]} ${Spacing[4]}`\n : `${Spacing[3]} ${Spacing[2]} ${Spacing[3]} ${Spacing[4]}`};\n`;\n\nconst ModalTabBar = styled(TabBar)`\n padding-left: ${Spacing[4]};\n`;\n\nconst StyledDialog = styled(Dialog)`\n outline: none;\n`;\n\nconst StyledCard = styled(Card)<{ $size?: 'auto' | 'md' | 'lg' | 'xl' | 'full' }>`\n position: relative;\n width: ${({ $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return '90vw';\n }\n }};\n max-width: ${({ theme, $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return theme.modal.width[$size];\n }\n }};\n /* TODO: Use breakpoints to make this responsive */\n max-height: ${({ $size }) => ($size === 'full' ? 'calc(100vh - 160px)' : '85vh')};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${({ $size }) =>\n $size === 'full' &&\n `\n height: calc(100vh - 160px);\n `}\n margin-bottom: 0;\n`;\n\ninterface ModalCardProps extends ComponentPropsWithoutRef<typeof Dialog> {\n /**\n * Display X button to close popover\n */\n showCloseButton?: boolean;\n\n /**\n * Accessible label for the built-in close button. Defaults to the PDS closeModal string (\"Close\").\n */\n closeButtonLabel?: string;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer content\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n * Tab contents can be render functions that receive the modal portal container.\n */\n tabs?: TabView[];\n\n /**\n * Title of the modal\n */\n title?: ReactNode;\n\n /**\n * Children content\n */\n children?: ReactNode;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n */\n noBodyPadding?: boolean;\n\n /**\n * Additional props for the Dialog element\n */\n className?: string;\n}\n\ninterface ModalCardInternalProps extends ModalCardProps {\n portalContainer: HTMLDivElement | null;\n}\n\nconst StyledModalCardBody = styled(Card.Body)<{\n $noPadding?: boolean;\n $hidden?: boolean;\n}>`\n overflow-y: auto;\n ${semanticScrollbar}\n flex: 1;\n min-height: 0;\n ${({ $noPadding }) =>\n $noPadding\n ? 'padding: 0;'\n : `\n padding-left: ${Spacing[4]};\n padding-right: ${Spacing[4]};\n `}\n ${({ $hidden }) => $hidden && 'display: none;'}\n`;\n\n/**\n * Card to be used in Modal contexts. Inherits props from react-aria-components Dialog.\n */\nconst ModalCard = forwardRef<HTMLDivElement, ModalCardInternalProps>(function ModalCard(\n {\n title,\n children,\n showCloseButton = true,\n closeButtonLabel,\n size,\n footer,\n tabs,\n noBodyPadding = false,\n portalContainer,\n ...props\n },\n ref,\n) {\n const strings = usePDSStrings();\n const [selectedTabIdx, setSelectedTabIdx] = useState(0);\n const tabCount = tabs?.length ?? 0;\n\n useEffect(() => {\n setSelectedTabIdx(0);\n }, [tabCount]);\n\n const titleAndClose = (\n <ModalHeader justify='flex-start' align='center' spacing={Spacing[2]} $hasTabs={Boolean(tabs)}>\n <ModalHeaderTitle>{title ? <ModalTitle>{title}</ModalTitle> : null}</ModalHeaderTitle>\n {showCloseButton && <ModalClose aria-label={closeButtonLabel ?? strings.closeModal} />}\n </ModalHeader>\n );\n\n const modalHeader = tabs ? (\n <Stack>\n {titleAndClose}\n <ModalTabBar>\n {tabs.map((tab, idx) => (\n <Tab\n key={tab.name}\n selected={selectedTabIdx === idx}\n id={`pds-modal_tab-${idx}`}\n onClick={() => setSelectedTabIdx(idx)}\n aria-controls={`pds-modal_tab-panel-${idx}`}\n >\n {tab.name}\n </Tab>\n ))}\n </ModalTabBar>\n </Stack>\n ) : (\n titleAndClose\n );\n\n return (\n <StyledDialog {...props} ref={ref}>\n <StyledCard elevated $size={size}>\n {(showCloseButton || title) && modalHeader}\n {tabs ? (\n tabs.map((tab, idx) => (\n <StyledModalCardBody\n key={tab.name}\n $noPadding={noBodyPadding}\n $hidden={selectedTabIdx !== idx}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${tab.name}`}\n aria-labelledby={`pds-modal_tab-${tab.name}`}\n >\n {typeof tab.contents === 'function'\n ? tab.contents({ portalContainer })\n : tab.contents}\n </StyledModalCardBody>\n ))\n ) : (\n <StyledModalCardBody\n $noPadding={noBodyPadding}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${selectedTabIdx}`}\n aria-labelledby={`pds-modal_tab-${selectedTabIdx}`}\n >\n {children}\n </StyledModalCardBody>\n )}\n\n {footer && <ModalFooter>{footer}</ModalFooter>}\n </StyledCard>\n </StyledDialog>\n );\n});\n\ninterface TabView {\n name: string;\n contents: ModalRenderable;\n badge?: React.ReactElement;\n disabled?: boolean;\n 'data-tour-target'?: string;\n}\n\nexport interface ModalProps {\n /**\n * Title of the Card\n */\n title?: string;\n\n /**\n * Component to use as trigger. React Aria trigger props will be merged with this element.\n */\n trigger?: ComponentProps<typeof Pressable>['children'];\n\n /**\n * Props to apply to Modal.Card within\n */\n contentProps?: ModalCardProps;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer section intended for actions.\n * You can pass in Buttons directly and they will render in a HStack.\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n */\n tabs?: TabView[];\n\n /**\n * Children content\n */\n children?: ModalRenderable;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n * Can also be set via contentProps.noBodyPadding.\n */\n noBodyPadding?: boolean;\n\n /**\n * Controls whether the modal is open (controlled)\n */\n open?: boolean;\n\n /**\n * Default open state (uncontrolled)\n */\n defaultOpen?: boolean;\n\n /**\n * Handler called when open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Whether the modal can be dismissed by clicking outside or pressing escape\n */\n isDismissable?: boolean;\n\n /**\n * Whether pressing the escape key closes the modal\n */\n isKeyboardDismissDisabled?: boolean;\n}\n\nconst Modal = ({\n children,\n trigger,\n contentProps,\n noBodyPadding = false,\n size = 'md',\n title,\n footer,\n tabs,\n defaultOpen,\n onOpenChange,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n open,\n}: ModalProps) => {\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null);\n const surfaceId = useEmbeddedSurfaceId();\n const { insetRight: modalInsetRight, panelState } = useModalInsetRight();\n const transitionMs =\n panelState === 'opening'\n ? SIDEBAR_OPEN_TRANSITION_MS\n : panelState === 'closing'\n ? SIDEBAR_CLOSE_TRANSITION_MS\n : 0;\n\n const content = (\n <ModalCard\n size={size}\n title={title}\n footer={footer}\n tabs={tabs}\n noBodyPadding={noBodyPadding}\n {...contentProps}\n portalContainer={portalContainer}\n >\n {typeof children === 'function' ? children({ portalContainer }) : children}\n </ModalCard>\n );\n\n // Wrap trigger element to ensure it works with react-aria-components\n const wrappedTrigger = trigger ? <Pressable>{trigger}</Pressable> : null;\n\n return (\n <DialogTrigger isOpen={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {wrappedTrigger}\n <EmbeddedSurfaceOverlay\n surfaceId={surfaceId}\n $insetRight={modalInsetRight}\n $transitionMs={transitionMs}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n shouldCloseOnInteractOutside={(element) => !element.closest('[data-react-aria-top-layer]')}\n >\n <EmbeddedSurfaceModal ref={setPortalContainer} surfaceId={surfaceId}>\n {content}\n </EmbeddedSurfaceModal>\n </EmbeddedSurfaceOverlay>\n </DialogTrigger>\n );\n};\n\nexport default Object.assign(Modal, {\n Title: ModalTitle,\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as ButtonProps } from "./Button-Cg8KyT5M.mjs";
1
+ import { r as ButtonProps } from "./Button-B79_aXfC.mjs";
2
2
  import { ComponentProps, ComponentPropsWithoutRef, ReactNode } from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import { Dialog, DialogTrigger, Pressable } from "react-aria-components";
@@ -146,4 +146,4 @@ declare const _default: (({
146
146
  };
147
147
  //#endregion
148
148
  export { ModalTitleProps as a, ModalRenderProps as i, ModalContent as n, ModalTrigger as o, ModalProps as r, _default as s, ModalClose as t };
149
- //# sourceMappingURL=Modal-Bhwq1bQJ.d.mts.map
149
+ //# sourceMappingURL=Modal-kEgKwLg4.d.mts.map
package/dist/Modal.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as ModalTitleProps, i as ModalRenderProps, n as ModalContent, o as ModalTrigger, r as ModalProps, s as _default, t as ModalClose } from "./Modal-Bhwq1bQJ.mjs";
1
+ import { a as ModalTitleProps, i as ModalRenderProps, n as ModalContent, o as ModalTrigger, r as ModalProps, s as _default, t as ModalClose } from "./Modal-kEgKwLg4.mjs";
2
2
  export { ModalClose, ModalContent, ModalProps, ModalRenderProps, ModalTitleProps, ModalTrigger, _default as default };
@@ -1,4 +1,4 @@
1
- import { r as BreadcrumbsProps } from "./Breadcrumbs-DRu_JfdI.mjs";
1
+ import { r as BreadcrumbsProps } from "./Breadcrumbs-ChKWIuRq.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -37,4 +37,4 @@ declare const PageHeader: ({
37
37
  }: PageHeaderProps) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { PageHeaderContainer as n, PageHeaderProps as r, PageHeader as t };
40
- //# sourceMappingURL=PageHeader-D2QLrS7-.d.mts.map
40
+ //# sourceMappingURL=PageHeader-BGGhOS81.d.mts.map
@@ -72,4 +72,4 @@ const PageHeader = ({ title, breadcrumbs, subtitle, level = "product", prepend,
72
72
  //#endregion
73
73
  export { PageHeaderContainer as n, PageHeader as t };
74
74
 
75
- //# sourceMappingURL=PageHeader-BzvA_NNt.mjs.map
75
+ //# sourceMappingURL=PageHeader-DEKTopzU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader-BzvA_NNt.mjs","names":[],"sources":["../src/components/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport Breadcrumbs, { type BreadcrumbsProps } from '#src/components/Breadcrumbs';\nimport { Heading, Paragraph } from '#src/components/Text';\nimport { semanticColor, semanticOnly } from '#src/lib/semanticColor';\n\nexport const PageHeaderContainer = styled.header`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ${Spacing[3]} ${Spacing[5]};\n background-color: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', theme.color.background.primary)};\n border-bottom: 1px solid ${({ theme }) => semanticColor(theme, 'BorderDivider', theme.color.border.primary)};\n box-sizing: border-box;\n min-height: 56px; /* Standardize height for most PageHeaders */\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex: 0 1 auto;\n min-width: 0;\n align-items: center;\n h1 {\n margin: 0;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n }\n p {\n margin: 0 0 0 ${Spacing[2]};\n ${semanticOnly((tokens) => `color: ${tokens.FgSecondary};`)}\n }\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: ${Spacing[2]};\n min-width: 0;\n & > :not(${TitleContainer}) {\n flex-shrink: 0;\n }\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n margin-left: ${Spacing[3]};\n flex-shrink: 0;\n`;\n\ninterface PageHeaderCommonProps {\n level?: 'product' | 'detail';\n prepend?: ReactNode;\n append?: ReactNode;\n children?: ReactNode;\n}\n\n/** Exactly one heading source is required: either `title` or `breadcrumbs`. */\nexport type PageHeaderProps = PageHeaderCommonProps &\n (\n | { title: ReactNode; subtitle?: ReactNode; breadcrumbs?: never }\n | {\n title?: never;\n /**\n * The subtitle is sunset in the breadcrumbs variant (PX-1299); fold the value it\n * carried (e.g. an object ID) into the current crumb, with a copy action if useful.\n */\n subtitle?: never;\n /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */\n breadcrumbs: BreadcrumbsProps;\n }\n );\n\nconst PageHeader = ({\n title,\n breadcrumbs,\n subtitle,\n level = 'product',\n prepend,\n append,\n children,\n ...props\n}: PageHeaderProps) => (\n <PageHeaderContainer {...props}>\n <LeftContainer>\n {prepend}\n <TitleContainer>\n {breadcrumbs ? (\n <Breadcrumbs size='lg' {...breadcrumbs} />\n ) : (\n <>\n {level === 'product' && (\n <Heading as='h1' size='sm'>\n {title}\n </Heading>\n )}\n {level === 'detail' && (\n <Paragraph as='h1' size='lg' color='primary'>\n {title}\n </Paragraph>\n )}\n </>\n )}\n {subtitle && <Paragraph size='md'>{subtitle}</Paragraph>}\n </TitleContainer>\n {append}\n </LeftContainer>\n {children && <RightContainer>{children}</RightContainer>}\n </PageHeaderContainer>\n);\n\nexport default PageHeader;\n"],"mappings":";;;;;;;AASA,MAAa,sBAAsB,OAAO,MAAM;;;;;aAKnC,QAAQ,GAAG,GAAG,QAAQ,GAAG;uBACf,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,MAAM,WAAW,QAAQ,CAAC;8BAC9E,EAAE,YAAY,cAAc,OAAO,iBAAiB,MAAM,MAAM,OAAO,QAAQ,CAAC;;;;AAK9G,MAAM,iBAAiB,OAAO,GAAG;;;;;;;MAO3B,cAAc,WAAW,UAAU,OAAO,UAAU,GAAG,CAAC;;;oBAG1C,QAAQ,GAAG;MACzB,cAAc,WAAW,UAAU,OAAO,YAAY,GAAG,CAAC;;;AAIhE,MAAM,gBAAgB,OAAO,GAAG;;;;SAIvB,QAAQ,GAAG;;aAEP,eAAe;;;;AAK5B,MAAM,iBAAiB,OAAO,GAAG;;SAExB,QAAQ,GAAG;iBACH,QAAQ,GAAG;;;AA2B5B,MAAM,cAAc,EAClB,OACA,aACA,UACA,QAAQ,WACR,SACA,QACA,UACA,GAAG,YAEH,qBAAC,qBAAD;CAAqB,GAAI;WAAzB,CACE,qBAAC,eAAD,EAAA,UAAA;EACG;EACD,qBAAC,gBAAD,EAAA,UAAA,CACG,cACC,oBAAC,aAAD;GAAa,MAAK;GAAK,GAAI;GAAe,CAAA,GAE1C,qBAAA,UAAA,EAAA,UAAA,CACG,UAAU,aACT,oBAAC,SAAD;GAAS,IAAG;GAAK,MAAK;aACnB;GACO,CAAA,EAEX,UAAU,YACT,oBAAC,WAAD;GAAW,IAAG;GAAK,MAAK;GAAK,OAAM;aAChC;GACS,CAAA,CAEb,EAAA,CAAA,EAEJ,YAAY,oBAAC,WAAD;GAAW,MAAK;aAAM;GAAqB,CAAA,CACzC,EAAA,CAAA;EAChB;EACa,EAAA,CAAA,EACf,YAAY,oBAAC,gBAAD,EAAiB,UAA0B,CAAA,CACpC"}
1
+ {"version":3,"file":"PageHeader-DEKTopzU.mjs","names":[],"sources":["../src/components/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport Breadcrumbs, { type BreadcrumbsProps } from '#src/components/Breadcrumbs';\nimport { Heading, Paragraph } from '#src/components/Text';\nimport { semanticColor, semanticOnly } from '#src/lib/semanticColor';\n\nexport const PageHeaderContainer = styled.header`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ${Spacing[3]} ${Spacing[5]};\n background-color: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', theme.color.background.primary)};\n border-bottom: 1px solid ${({ theme }) => semanticColor(theme, 'BorderDivider', theme.color.border.primary)};\n box-sizing: border-box;\n min-height: 56px; /* Standardize height for most PageHeaders */\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex: 0 1 auto;\n min-width: 0;\n align-items: center;\n h1 {\n margin: 0;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n }\n p {\n margin: 0 0 0 ${Spacing[2]};\n ${semanticOnly((tokens) => `color: ${tokens.FgSecondary};`)}\n }\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: ${Spacing[2]};\n min-width: 0;\n & > :not(${TitleContainer}) {\n flex-shrink: 0;\n }\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n margin-left: ${Spacing[3]};\n flex-shrink: 0;\n`;\n\ninterface PageHeaderCommonProps {\n level?: 'product' | 'detail';\n prepend?: ReactNode;\n append?: ReactNode;\n children?: ReactNode;\n}\n\n/** Exactly one heading source is required: either `title` or `breadcrumbs`. */\nexport type PageHeaderProps = PageHeaderCommonProps &\n (\n | { title: ReactNode; subtitle?: ReactNode; breadcrumbs?: never }\n | {\n title?: never;\n /**\n * The subtitle is sunset in the breadcrumbs variant (PX-1299); fold the value it\n * carried (e.g. an object ID) into the current crumb, with a copy action if useful.\n */\n subtitle?: never;\n /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */\n breadcrumbs: BreadcrumbsProps;\n }\n );\n\nconst PageHeader = ({\n title,\n breadcrumbs,\n subtitle,\n level = 'product',\n prepend,\n append,\n children,\n ...props\n}: PageHeaderProps) => (\n <PageHeaderContainer {...props}>\n <LeftContainer>\n {prepend}\n <TitleContainer>\n {breadcrumbs ? (\n <Breadcrumbs size='lg' {...breadcrumbs} />\n ) : (\n <>\n {level === 'product' && (\n <Heading as='h1' size='sm'>\n {title}\n </Heading>\n )}\n {level === 'detail' && (\n <Paragraph as='h1' size='lg' color='primary'>\n {title}\n </Paragraph>\n )}\n </>\n )}\n {subtitle && <Paragraph size='md'>{subtitle}</Paragraph>}\n </TitleContainer>\n {append}\n </LeftContainer>\n {children && <RightContainer>{children}</RightContainer>}\n </PageHeaderContainer>\n);\n\nexport default PageHeader;\n"],"mappings":";;;;;;;AASA,MAAa,sBAAsB,OAAO,MAAM;;;;;aAKnC,QAAQ,GAAG,GAAG,QAAQ,GAAG;uBACf,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,MAAM,WAAW,QAAQ,CAAC;8BAC9E,EAAE,YAAY,cAAc,OAAO,iBAAiB,MAAM,MAAM,OAAO,QAAQ,CAAC;;;;AAK9G,MAAM,iBAAiB,OAAO,GAAG;;;;;;;MAO3B,cAAc,WAAW,UAAU,OAAO,UAAU,GAAG,CAAC;;;oBAG1C,QAAQ,GAAG;MACzB,cAAc,WAAW,UAAU,OAAO,YAAY,GAAG,CAAC;;;AAIhE,MAAM,gBAAgB,OAAO,GAAG;;;;SAIvB,QAAQ,GAAG;;aAEP,eAAe;;;;AAK5B,MAAM,iBAAiB,OAAO,GAAG;;SAExB,QAAQ,GAAG;iBACH,QAAQ,GAAG;;;AA2B5B,MAAM,cAAc,EAClB,OACA,aACA,UACA,QAAQ,WACR,SACA,QACA,UACA,GAAG,YAEH,qBAAC,qBAAD;CAAqB,GAAI;WAAzB,CACE,qBAAC,eAAD,EAAA,UAAA;EACG;EACD,qBAAC,gBAAD,EAAA,UAAA,CACG,cACC,oBAAC,aAAD;GAAa,MAAK;GAAK,GAAI;GAAe,CAAA,GAE1C,qBAAA,UAAA,EAAA,UAAA,CACG,UAAU,aACT,oBAAC,SAAD;GAAS,IAAG;GAAK,MAAK;aACnB;GACO,CAAA,EAEX,UAAU,YACT,oBAAC,WAAD;GAAW,IAAG;GAAK,MAAK;GAAK,OAAM;aAChC;GACS,CAAA,CAEb,EAAA,CAAA,EAEJ,YAAY,oBAAC,WAAD;GAAW,MAAK;aAAM;GAAqB,CAAA,CACzC,EAAA,CAAA;EAChB;EACa,EAAA,CAAA,EACf,YAAY,oBAAC,gBAAD,EAAiB,UAA0B,CAAA,CACpC"}
@@ -1,2 +1,2 @@
1
- import { n as PageHeaderContainer, r as PageHeaderProps, t as PageHeader } from "./PageHeader-D2QLrS7-.mjs";
1
+ import { n as PageHeaderContainer, r as PageHeaderProps, t as PageHeader } from "./PageHeader-BGGhOS81.mjs";
2
2
  export { PageHeaderContainer, PageHeaderProps, PageHeader as default };
@@ -13,4 +13,4 @@ declare const Container: ({
13
13
  declare const Section: _$styled_components0.StyledComponent<"div", any, {}, never>;
14
14
  //#endregion
15
15
  export { Container as n, Section as r, Backdrop as t };
16
- //# sourceMappingURL=PageLayout-DfAbeFIh.d.mts.map
16
+ //# sourceMappingURL=PageLayout-B_LKPZD8.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { a as styled } from "./styledComponentsInterop-Cs5CCPRy.mjs";
2
2
  import { n as Stack } from "./Stack-Bzom2BTR.mjs";
3
- import { i as useGridBreakpoint, n as GRID_BREAKPOINTS, r as Grid, t as GridItem } from "./Grid-BtTuj5mR.mjs";
3
+ import { i as useGridBreakpoint, n as GRID_BREAKPOINTS, r as Grid, t as GridItem } from "./Grid-CYpOqTUu.mjs";
4
4
  import { useLayoutEffect, useRef, useState } from "react";
5
5
  import { Spacing } from "@persona/design-tokens";
6
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -129,4 +129,4 @@ const SplitColumnLayout = ({ main, aside, ...chrome }) => /* @__PURE__ */ jsx(Pa
129
129
  //#endregion
130
130
  export { Section as a, Container as i, SingleColumnLayout as n, Backdrop as r, SplitColumnLayout as t };
131
131
 
132
- //# sourceMappingURL=PageLayout-DCe3F76N.mjs.map
132
+ //# sourceMappingURL=PageLayout-DjtGrvJa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout-DCe3F76N.mjs","names":[],"sources":["../src/patterns/PageLayout/PageLayout.tsx","../src/patterns/PageLayout/PageLayoutFrame.tsx","../src/patterns/PageLayout/SingleColumnLayout.tsx","../src/patterns/PageLayout/SplitColumnLayout.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const Backdrop = styled.div`\n position: relative;\n width: 100%;\n padding: ${Spacing[7]} ${Spacing[5]};\n\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledContainer = styled('div')`\n position: relative;\n width: 100%;\n padding: 0;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const Container = ({\n children,\n ...rest\n}: { children: ReactNode } & ComponentPropsWithoutRef<'div'>) => {\n return <StyledContainer {...rest}>{children}</StyledContainer>;\n};\n\nexport const Section = styled('div')`\n width: 100%;\n padding: ${Spacing[7]};\n`;\n","import { type ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport Grid, { GRID_BREAKPOINTS, GridItem } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nexport type PageLayoutWidth = 'standard' | 'wide';\n\nexport interface PageLayoutChromeProps {\n /**\n * `standard` uses the fixed grid (centered, max 1408px). `wide` uses the fluid grid.\n *\n * @defaultValue 'standard'\n */\n width?: PageLayoutWidth;\n /** Tab group. Sits above the page notice and scrolls with the page. Omit to skip the region and its gap. */\n tabs?: ReactNode;\n /** Page notice under the tabs. Omit to skip the region and its gap. */\n pageNotice?: ReactNode;\n}\n\nconst topPadding = (condensed: boolean) => (condensed ? Spacing[5] : Spacing[6]);\n\nconst Root = styled.div<{ $condensed: boolean; $tabs: boolean }>`\n width: 100%;\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n padding-top: ${({ $condensed, $tabs }) => ($tabs ? Spacing[5] : topPadding($condensed))};\n padding-bottom: ${({ $condensed }) => topPadding($condensed)};\n`;\n\nconst gridMode = (width: PageLayoutWidth): 'fixed' | 'fluid' =>\n width === 'wide' ? 'fluid' : 'fixed';\n\nconst FullWidthBand = ({ mode, children }: { mode: 'fixed' | 'fluid'; children: ReactNode }) => (\n <Grid mode={mode}>\n <GridItem span={12}>{children}</GridItem>\n </Grid>\n);\n\nexport const PageLayoutFrame = ({\n width = 'standard',\n tabs,\n pageNotice,\n children,\n}: PageLayoutChromeProps & { children: ReactNode }) => {\n const mode = gridMode(width);\n const ref = useRef<HTMLDivElement>(null);\n const [condensed, setCondensed] = useState(false);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setCondensed(node.offsetWidth < GRID_BREAKPOINTS.md);\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n return (\n <Root ref={ref} $condensed={condensed} $tabs={Boolean(tabs)}>\n <Stack spacing={Spacing[5]}>\n {tabs && <FullWidthBand mode={mode}>{tabs}</FullWidthBand>}\n {pageNotice && <FullWidthBand mode={mode}>{pageNotice}</FullWidthBand>}\n <Grid mode={mode}>{children}</Grid>\n </Stack>\n </Root>\n );\n};\n","import type { ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport { GridItem } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nimport { PageLayoutFrame, type PageLayoutChromeProps } from './PageLayoutFrame';\n\nexport interface SingleColumnLayoutProps extends PageLayoutChromeProps {\n /** Primary page content. Direct children stack vertically. */\n main: ReactNode;\n}\n\nexport const SingleColumnLayout = ({ main, ...chrome }: SingleColumnLayoutProps) => (\n <PageLayoutFrame {...chrome}>\n <GridItem span={12}>\n <Stack spacing={Spacing[4]}>{main}</Stack>\n </GridItem>\n </PageLayoutFrame>\n);\n","import type { ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport { GridItem, type GridSpan, useGridBreakpoint } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nimport { PageLayoutFrame, type PageLayoutChromeProps } from './PageLayoutFrame';\n\nconst SPLIT_COLUMN_SPANS = { main: 8, aside: 4 } as const satisfies Record<string, GridSpan>;\n\nexport interface SplitColumnLayoutProps extends PageLayoutChromeProps {\n /** Primary column. Direct children stack vertically and stay in this column. */\n main: ReactNode;\n /** Supporting column. Direct children stack vertically and stay in this column. */\n aside: ReactNode;\n}\n\nconst Region = ({ children }: { children: ReactNode }) => (\n <Stack spacing={Spacing[4]}>{children}</Stack>\n);\n\nconst SplitBody = ({ main, aside }: { main: ReactNode; aside: ReactNode }) => {\n const stacked = useGridBreakpoint() === 'xs';\n const mainSpan = stacked ? 12 : SPLIT_COLUMN_SPANS.main;\n const asideSpan = stacked ? 12 : SPLIT_COLUMN_SPANS.aside;\n\n return (\n <>\n <GridItem span={mainSpan}>\n <Region>{main}</Region>\n </GridItem>\n <GridItem span={asideSpan}>\n <aside>\n <Region>{aside}</Region>\n </aside>\n </GridItem>\n </>\n );\n};\n\nexport const SplitColumnLayout = ({ main, aside, ...chrome }: SplitColumnLayoutProps) => (\n <PageLayoutFrame {...chrome}>\n <SplitBody main={main} aside={aside} />\n </PageLayoutFrame>\n);\n"],"mappings":";;;;;;;AAKA,MAAa,WAAW,OAAO,GAAG;;;aAGrB,QAAQ,GAAG,GAAG,QAAQ,GAAG;;;;;AAMtC,MAAM,kBAAkB,OAAO,MAAM;;;;;;;;;AAUrC,MAAa,aAAa,EACxB,UACA,GAAG,WAC4D;AAC/D,QAAO,oBAAC,iBAAD;EAAiB,GAAI;EAAO;EAA2B,CAAA;;AAGhE,MAAa,UAAU,OAAO,MAAM;;aAEvB,QAAQ,GAAG;;;;ACVxB,MAAM,cAAc,cAAwB,YAAY,QAAQ,KAAK,QAAQ;AAE7E,MAAM,OAAO,OAAO,GAA4C;;eAEjD,iBAAiB,KAAK,EAAE;kBACrB,EAAE,YAAY,YAAa,QAAQ,QAAQ,KAAK,WAAW,WAAW,CAAE;qBACrE,EAAE,iBAAiB,WAAW,WAAW,CAAC;;AAG/D,MAAM,YAAY,UAChB,UAAU,SAAS,UAAU;AAE/B,MAAM,iBAAiB,EAAE,MAAM,eAC7B,oBAAC,MAAD;CAAY;WACV,oBAAC,UAAD;EAAU,MAAM;EAAK;EAAoB,CAAA;CACpC,CAAA;AAGT,MAAa,mBAAmB,EAC9B,QAAQ,YACR,MACA,YACA,eACqD;CACrD,MAAM,OAAO,SAAS,MAAM;CAC5B,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,aAAa,KAAK,cAAc,iBAAiB,GAAG;AACzE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,EAAE,CAAC;AAEN,QACE,oBAAC,MAAD;EAAW;EAAK,YAAY;EAAW,OAAO,QAAQ,KAAK;YACzD,qBAAC,OAAD;GAAO,SAAS,QAAQ;aAAxB;IACG,QAAQ,oBAAC,eAAD;KAAqB;eAAO;KAAqB,CAAA;IACzD,cAAc,oBAAC,eAAD;KAAqB;eAAO;KAA2B,CAAA;IACtE,oBAAC,MAAD;KAAY;KAAO;KAAgB,CAAA;IAC7B;;EACH,CAAA;;;;ACxDX,MAAa,sBAAsB,EAAE,MAAM,GAAG,aAC5C,oBAAC,iBAAD;CAAiB,GAAI;WACnB,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,OAAD;GAAO,SAAS,QAAQ;aAAK;GAAa,CAAA;EACjC,CAAA;CACK,CAAA;;;ACVpB,MAAM,qBAAqB;CAAE,MAAM;CAAG,OAAO;CAAG;AAShD,MAAM,UAAU,EAAE,eAChB,oBAAC,OAAD;CAAO,SAAS,QAAQ;CAAK;CAAiB,CAAA;AAGhD,MAAM,aAAa,EAAE,MAAM,YAAmD;CAC5E,MAAM,UAAU,mBAAmB,KAAK;CACxC,MAAM,WAAW,UAAU,KAAK,mBAAmB;CACnD,MAAM,YAAY,UAAU,KAAK,mBAAmB;AAEpD,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,QAAD,EAAA,UAAS,MAAc,CAAA;EACd,CAAA,EACX,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,SAAD,EAAA,UACE,oBAAC,QAAD,EAAA,UAAS,OAAe,CAAA,EAClB,CAAA;EACC,CAAA,CACV,EAAA,CAAA;;AAIP,MAAa,qBAAqB,EAAE,MAAM,OAAO,GAAG,aAClD,oBAAC,iBAAD;CAAiB,GAAI;WACnB,oBAAC,WAAD;EAAiB;EAAa;EAAS,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"PageLayout-DjtGrvJa.mjs","names":[],"sources":["../src/patterns/PageLayout/PageLayout.tsx","../src/patterns/PageLayout/PageLayoutFrame.tsx","../src/patterns/PageLayout/SingleColumnLayout.tsx","../src/patterns/PageLayout/SplitColumnLayout.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const Backdrop = styled.div`\n position: relative;\n width: 100%;\n padding: ${Spacing[7]} ${Spacing[5]};\n\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledContainer = styled('div')`\n position: relative;\n width: 100%;\n padding: 0;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const Container = ({\n children,\n ...rest\n}: { children: ReactNode } & ComponentPropsWithoutRef<'div'>) => {\n return <StyledContainer {...rest}>{children}</StyledContainer>;\n};\n\nexport const Section = styled('div')`\n width: 100%;\n padding: ${Spacing[7]};\n`;\n","import { type ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport Grid, { GRID_BREAKPOINTS, GridItem } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nexport type PageLayoutWidth = 'standard' | 'wide';\n\nexport interface PageLayoutChromeProps {\n /**\n * `standard` uses the fixed grid (centered, max 1408px). `wide` uses the fluid grid.\n *\n * @defaultValue 'standard'\n */\n width?: PageLayoutWidth;\n /** Tab group. Sits above the page notice and scrolls with the page. Omit to skip the region and its gap. */\n tabs?: ReactNode;\n /** Page notice under the tabs. Omit to skip the region and its gap. */\n pageNotice?: ReactNode;\n}\n\nconst topPadding = (condensed: boolean) => (condensed ? Spacing[5] : Spacing[6]);\n\nconst Root = styled.div<{ $condensed: boolean; $tabs: boolean }>`\n width: 100%;\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n padding-top: ${({ $condensed, $tabs }) => ($tabs ? Spacing[5] : topPadding($condensed))};\n padding-bottom: ${({ $condensed }) => topPadding($condensed)};\n`;\n\nconst gridMode = (width: PageLayoutWidth): 'fixed' | 'fluid' =>\n width === 'wide' ? 'fluid' : 'fixed';\n\nconst FullWidthBand = ({ mode, children }: { mode: 'fixed' | 'fluid'; children: ReactNode }) => (\n <Grid mode={mode}>\n <GridItem span={12}>{children}</GridItem>\n </Grid>\n);\n\nexport const PageLayoutFrame = ({\n width = 'standard',\n tabs,\n pageNotice,\n children,\n}: PageLayoutChromeProps & { children: ReactNode }) => {\n const mode = gridMode(width);\n const ref = useRef<HTMLDivElement>(null);\n const [condensed, setCondensed] = useState(false);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setCondensed(node.offsetWidth < GRID_BREAKPOINTS.md);\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n return (\n <Root ref={ref} $condensed={condensed} $tabs={Boolean(tabs)}>\n <Stack spacing={Spacing[5]}>\n {tabs && <FullWidthBand mode={mode}>{tabs}</FullWidthBand>}\n {pageNotice && <FullWidthBand mode={mode}>{pageNotice}</FullWidthBand>}\n <Grid mode={mode}>{children}</Grid>\n </Stack>\n </Root>\n );\n};\n","import type { ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport { GridItem } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nimport { PageLayoutFrame, type PageLayoutChromeProps } from './PageLayoutFrame';\n\nexport interface SingleColumnLayoutProps extends PageLayoutChromeProps {\n /** Primary page content. Direct children stack vertically. */\n main: ReactNode;\n}\n\nexport const SingleColumnLayout = ({ main, ...chrome }: SingleColumnLayoutProps) => (\n <PageLayoutFrame {...chrome}>\n <GridItem span={12}>\n <Stack spacing={Spacing[4]}>{main}</Stack>\n </GridItem>\n </PageLayoutFrame>\n);\n","import type { ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\n\nimport { GridItem, type GridSpan, useGridBreakpoint } from '#src/components/Grid';\nimport { Stack } from '#src/components/Stack';\n\nimport { PageLayoutFrame, type PageLayoutChromeProps } from './PageLayoutFrame';\n\nconst SPLIT_COLUMN_SPANS = { main: 8, aside: 4 } as const satisfies Record<string, GridSpan>;\n\nexport interface SplitColumnLayoutProps extends PageLayoutChromeProps {\n /** Primary column. Direct children stack vertically and stay in this column. */\n main: ReactNode;\n /** Supporting column. Direct children stack vertically and stay in this column. */\n aside: ReactNode;\n}\n\nconst Region = ({ children }: { children: ReactNode }) => (\n <Stack spacing={Spacing[4]}>{children}</Stack>\n);\n\nconst SplitBody = ({ main, aside }: { main: ReactNode; aside: ReactNode }) => {\n const stacked = useGridBreakpoint() === 'xs';\n const mainSpan = stacked ? 12 : SPLIT_COLUMN_SPANS.main;\n const asideSpan = stacked ? 12 : SPLIT_COLUMN_SPANS.aside;\n\n return (\n <>\n <GridItem span={mainSpan}>\n <Region>{main}</Region>\n </GridItem>\n <GridItem span={asideSpan}>\n <aside>\n <Region>{aside}</Region>\n </aside>\n </GridItem>\n </>\n );\n};\n\nexport const SplitColumnLayout = ({ main, aside, ...chrome }: SplitColumnLayoutProps) => (\n <PageLayoutFrame {...chrome}>\n <SplitBody main={main} aside={aside} />\n </PageLayoutFrame>\n);\n"],"mappings":";;;;;;;AAKA,MAAa,WAAW,OAAO,GAAG;;;aAGrB,QAAQ,GAAG,GAAG,QAAQ,GAAG;;;;;AAMtC,MAAM,kBAAkB,OAAO,MAAM;;;;;;;;;AAUrC,MAAa,aAAa,EACxB,UACA,GAAG,WAC4D;AAC/D,QAAO,oBAAC,iBAAD;EAAiB,GAAI;EAAO;EAA2B,CAAA;;AAGhE,MAAa,UAAU,OAAO,MAAM;;aAEvB,QAAQ,GAAG;;;;ACVxB,MAAM,cAAc,cAAwB,YAAY,QAAQ,KAAK,QAAQ;AAE7E,MAAM,OAAO,OAAO,GAA4C;;eAEjD,iBAAiB,KAAK,EAAE;kBACrB,EAAE,YAAY,YAAa,QAAQ,QAAQ,KAAK,WAAW,WAAW,CAAE;qBACrE,EAAE,iBAAiB,WAAW,WAAW,CAAC;;AAG/D,MAAM,YAAY,UAChB,UAAU,SAAS,UAAU;AAE/B,MAAM,iBAAiB,EAAE,MAAM,eAC7B,oBAAC,MAAD;CAAY;WACV,oBAAC,UAAD;EAAU,MAAM;EAAK;EAAoB,CAAA;CACpC,CAAA;AAGT,MAAa,mBAAmB,EAC9B,QAAQ,YACR,MACA,YACA,eACqD;CACrD,MAAM,OAAO,SAAS,MAAM;CAC5B,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,aAAa,KAAK,cAAc,iBAAiB,GAAG;AACzE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,EAAE,CAAC;AAEN,QACE,oBAAC,MAAD;EAAW;EAAK,YAAY;EAAW,OAAO,QAAQ,KAAK;YACzD,qBAAC,OAAD;GAAO,SAAS,QAAQ;aAAxB;IACG,QAAQ,oBAAC,eAAD;KAAqB;eAAO;KAAqB,CAAA;IACzD,cAAc,oBAAC,eAAD;KAAqB;eAAO;KAA2B,CAAA;IACtE,oBAAC,MAAD;KAAY;KAAO;KAAgB,CAAA;IAC7B;;EACH,CAAA;;;;ACxDX,MAAa,sBAAsB,EAAE,MAAM,GAAG,aAC5C,oBAAC,iBAAD;CAAiB,GAAI;WACnB,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,OAAD;GAAO,SAAS,QAAQ;aAAK;GAAa,CAAA;EACjC,CAAA;CACK,CAAA;;;ACVpB,MAAM,qBAAqB;CAAE,MAAM;CAAG,OAAO;CAAG;AAShD,MAAM,UAAU,EAAE,eAChB,oBAAC,OAAD;CAAO,SAAS,QAAQ;CAAK;CAAiB,CAAA;AAGhD,MAAM,aAAa,EAAE,MAAM,YAAmD;CAC5E,MAAM,UAAU,mBAAmB,KAAK;CACxC,MAAM,WAAW,UAAU,KAAK,mBAAmB;CACnD,MAAM,YAAY,UAAU,KAAK,mBAAmB;AAEpD,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,QAAD,EAAA,UAAS,MAAc,CAAA;EACd,CAAA,EACX,oBAAC,UAAD;EAAU,MAAM;YACd,oBAAC,SAAD,EAAA,UACE,oBAAC,QAAD,EAAA,UAAS,OAAe,CAAA,EAClB,CAAA;EACC,CAAA,CACV,EAAA,CAAA;;AAIP,MAAa,qBAAqB,EAAE,MAAM,OAAO,GAAG,aAClD,oBAAC,iBAAD;CAAiB,GAAI;WACnB,oBAAC,WAAD;EAAiB;EAAa;EAAS,CAAA;CACvB,CAAA"}
@@ -1,2 +1,2 @@
1
- import { n as Container, r as Section, t as Backdrop } from "./PageLayout-DfAbeFIh.mjs";
1
+ import { n as Container, r as Section, t as Backdrop } from "./PageLayout-B_LKPZD8.mjs";
2
2
  export { Backdrop, Container, Section };
@@ -25,4 +25,4 @@ declare const PageLayoutFrame: ({
25
25
  }) => _$react_jsx_runtime0.JSX.Element;
26
26
  //#endregion
27
27
  export { PageLayoutFrame as n, PageLayoutWidth as r, PageLayoutChromeProps as t };
28
- //# sourceMappingURL=PageLayoutFrame-CQLREOBH.d.mts.map
28
+ //# sourceMappingURL=PageLayoutFrame-uf17F41p.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as PageLayoutFrame, r as PageLayoutWidth, t as PageLayoutChromeProps } from "./PageLayoutFrame-CQLREOBH.mjs";
1
+ import { n as PageLayoutFrame, r as PageLayoutWidth, t as PageLayoutChromeProps } from "./PageLayoutFrame-uf17F41p.mjs";
2
2
  export { PageLayoutChromeProps, PageLayoutFrame, PageLayoutWidth };