@persona/design-system 0.10.6 → 0.10.8

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 (469) hide show
  1. package/CHANGELOG.md +28 -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-CHWYwpYR.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-uK4v6_P1.d.mts} +1 -1
  13. package/dist/Breadcrumb.d.mts +1 -1
  14. package/dist/{Breadcrumbs-DRu_JfdI.d.mts → Breadcrumbs-3MtvzTPi.d.mts} +2 -2
  15. package/dist/Breadcrumbs.d.mts +1 -1
  16. package/dist/{Button-Cg8KyT5M.d.mts → Button-DjD8QxcY.d.mts} +4 -4
  17. package/dist/Button.d.mts +1 -1
  18. package/dist/{Calendar-D-6WOLJ1.d.mts → Calendar-DRJljp8S.d.mts} +1 -1
  19. package/dist/Calendar.d.mts +1 -1
  20. package/dist/CalendarBase.d.mts +1 -1
  21. package/dist/{Card-CfECLwQ6.d.mts → Card-DiUHtYg_.d.mts} +3 -3
  22. package/dist/Card.d.mts +1 -1
  23. package/dist/Card2.d.mts +2 -2
  24. package/dist/CardGrouping.d.mts +2 -2
  25. package/dist/{Checkbox-ZywrdT_h.d.mts → Checkbox-Clt9mCTk.d.mts} +1 -1
  26. package/dist/Checkbox.d.mts +1 -1
  27. package/dist/{CheckboxGroupField-CjeEoiPa.d.mts → CheckboxGroupField-DnVqlpwi.d.mts} +3 -3
  28. package/dist/CheckboxGroupField.d.mts +1 -1
  29. package/dist/ChoicesValueControl.d.mts +1 -1
  30. package/dist/{Combobox-O6LbofT2.d.mts → Combobox-fYZjpn5-.d.mts} +3 -3
  31. package/dist/Combobox.d.mts +2 -2
  32. package/dist/{ComboboxBase-5aSDuY-E.d.mts → ComboboxBase-Mb8HyeAI.d.mts} +6 -6
  33. package/dist/ComboboxBase.d.mts +1 -1
  34. package/dist/{ComboboxMultiSelect-D3mX4Dzq.d.mts → ComboboxMultiSelect-C87lkXr7.d.mts} +2 -2
  35. package/dist/ComboboxMultiSelect.d.mts +1 -1
  36. package/dist/{ComboboxSingleSelect-CfSy6sCU.d.mts → ComboboxSingleSelect-CIYakRW5.d.mts} +4 -4
  37. package/dist/ComboboxSingleSelect.d.mts +1 -1
  38. package/dist/{CompactBar-zYfXjFmn.d.mts → CompactBar-D67CdcIo.d.mts} +3 -3
  39. package/dist/CompactBar.d.mts +1 -1
  40. package/dist/{ControlBar-kJ_eWf8f.d.mts → ControlBar-34th2yt4.d.mts} +2 -2
  41. package/dist/ControlBar.d.mts +1 -1
  42. package/dist/{DataTable-BXHmi-SW.d.mts → DataTable-BZtzdtVs.d.mts} +6 -6
  43. package/dist/{DataTable-CAfZNJmb.mjs → DataTable-BvA2H9D9.mjs} +4 -4
  44. package/dist/{DataTable-CAfZNJmb.mjs.map → DataTable-BvA2H9D9.mjs.map} +1 -1
  45. package/dist/DataTable.d.mts +1 -1
  46. package/dist/{DateField-g7malFm-.d.mts → DateField-BIPqfQzC.d.mts} +2 -2
  47. package/dist/DateField.d.mts +1 -1
  48. package/dist/{DatePicker-8kUpFFh8.d.mts → DatePicker-BdOqWdwx.d.mts} +2 -2
  49. package/dist/DatePicker.d.mts +1 -1
  50. package/dist/{DateRangePicker-Nv4uNuIW.d.mts → DateRangePicker-DlHC2q--.d.mts} +3 -3
  51. package/dist/DateRangePicker.d.mts +1 -1
  52. package/dist/DateRangeValueControl.d.mts +2 -2
  53. package/dist/DateValueControl.d.mts +1 -1
  54. package/dist/DropdownButton.d.mts +2 -2
  55. package/dist/{DropdownMenu-CAYVX9Q3.d.mts → DropdownMenu-DVxXQDRC.d.mts} +2 -2
  56. package/dist/DropdownMenu.d.mts +1 -1
  57. package/dist/{ErrorProps-Cy-APmdC.d.mts → ErrorProps-4Ohsinrf.d.mts} +1 -1
  58. package/dist/ErrorProps.d.mts +1 -1
  59. package/dist/{FieldRegistry-a44G08fS.d.mts → FieldRegistry-C2NVPhMO.d.mts} +2 -2
  60. package/dist/FieldRegistry.d.mts +1 -1
  61. package/dist/{FilterBar-BpMguIXl.d.mts → FilterBar-BE_gBM0H.d.mts} +4 -4
  62. package/dist/FilterBar.d.mts +1 -1
  63. package/dist/FilterPickerMenu.d.mts +2 -2
  64. package/dist/FilterPill.d.mts +1 -1
  65. package/dist/FilterPopover.d.mts +1 -1
  66. package/dist/FloatValueControl.d.mts +1 -1
  67. package/dist/{FloatingActionBar-DPA9v_yH.d.mts → FloatingActionBar-BUgSKimy.d.mts} +1 -1
  68. package/dist/FloatingActionBar.d.mts +1 -1
  69. package/dist/FloatingToolbar-Df90f7Dm.mjs +493 -0
  70. package/dist/FloatingToolbar-Df90f7Dm.mjs.map +1 -0
  71. package/dist/FloatingToolbar.d.mts +1 -1
  72. package/dist/{FormControl-TkYMZeBd.d.mts → FormControl-BQe3GRhi.d.mts} +2 -2
  73. package/dist/FormControl.d.mts +1 -1
  74. package/dist/FormControlLabel.d.mts +1 -1
  75. package/dist/{FormField-D10LW9-a.d.mts → FormField-BW5uMzId.d.mts} +2 -2
  76. package/dist/FormField.d.mts +1 -1
  77. package/dist/{Grid-BtTuj5mR.mjs → Grid-CYpOqTUu.mjs} +1 -1
  78. package/dist/{Grid-BtTuj5mR.mjs.map → Grid-CYpOqTUu.mjs.map} +1 -1
  79. package/dist/{Header-fwlbzxYx.d.mts → Header-CV0Lcf0C.d.mts} +1 -1
  80. package/dist/Header.d.mts +1 -1
  81. package/dist/{HelperTooltip-BLfPfJRN.d.mts → HelperTooltip-BNM3pTM-.d.mts} +2 -2
  82. package/dist/HelperTooltip.d.mts +1 -1
  83. package/dist/HighlightedText.d.mts +2 -2
  84. package/dist/{I18nContext-BBVKF9ui.d.mts → I18nContext-Dt5VraO8.d.mts} +2 -2
  85. package/dist/I18nContext.d.mts +1 -1
  86. package/dist/{IconButton-KhCwTwPx.d.mts → IconButton-C_ReZm8v.d.mts} +2 -2
  87. package/dist/IconButton.d.mts +1 -1
  88. package/dist/ImageTile.d.mts +1 -1
  89. package/dist/IndexTableLayout.d.mts +5 -5
  90. package/dist/InlineCombobox.d.mts +1 -1
  91. package/dist/InlineInput.d.mts +1 -1
  92. package/dist/{Input-QNjbGo38.d.mts → Input-DH-5dKor.d.mts} +3 -3
  93. package/dist/Input.d.mts +1 -1
  94. package/dist/{InputProps-BT7-RfnD.d.mts → InputProps-B363l4_k.d.mts} +2 -2
  95. package/dist/InputProps.d.mts +1 -1
  96. package/dist/{Inserter-BnQVEqHV.d.mts → Inserter-BtUatmsd.d.mts} +1 -1
  97. package/dist/Inserter.d.mts +1 -1
  98. package/dist/IntegerValueControl.d.mts +1 -1
  99. package/dist/Link.d.mts +1 -1
  100. package/dist/{ListBox-CvnFiHK5.d.mts → ListBox-DxOACf6N.d.mts} +3 -3
  101. package/dist/ListBox.d.mts +1 -1
  102. package/dist/{ListBoxField-DuUwx9Cv.d.mts → ListBoxField-CgnDuhUw.d.mts} +4 -4
  103. package/dist/ListBoxField.d.mts +1 -1
  104. package/dist/LoadingShimmer.d.mts +1 -1
  105. package/dist/{LogicRow-COvZNiUd.d.mts → LogicRow-Dv_1G1TC.d.mts} +3 -3
  106. package/dist/LogicRow.d.mts +1 -1
  107. package/dist/MaskedInput.d.mts +2 -2
  108. package/dist/{Menu-ByYFNvgS.d.mts → Menu-BfjvH8mr.d.mts} +3 -3
  109. package/dist/Menu.d.mts +1 -1
  110. package/dist/{Modal-ziuzDCPN.mjs → Modal-BGlRX63w.mjs} +47 -39
  111. package/dist/Modal-BGlRX63w.mjs.map +1 -0
  112. package/dist/{Modal-Bhwq1bQJ.d.mts → Modal-CujB7DuB.d.mts} +6 -3
  113. package/dist/Modal.d.mts +1 -1
  114. package/dist/{PageHeader-BzvA_NNt.mjs → PageHeader-DEKTopzU.mjs} +1 -1
  115. package/dist/{PageHeader-BzvA_NNt.mjs.map → PageHeader-DEKTopzU.mjs.map} +1 -1
  116. package/dist/{PageHeader-D2QLrS7-.d.mts → PageHeader-DRatgscC.d.mts} +2 -2
  117. package/dist/PageHeader.d.mts +1 -1
  118. package/dist/{PageLayout-DfAbeFIh.d.mts → PageLayout-BdVM37bV.d.mts} +1 -1
  119. package/dist/{PageLayout-DCe3F76N.mjs → PageLayout-DjtGrvJa.mjs} +2 -2
  120. package/dist/{PageLayout-DCe3F76N.mjs.map → PageLayout-DjtGrvJa.mjs.map} +1 -1
  121. package/dist/PageLayout.d.mts +1 -1
  122. package/dist/{PageLayoutFrame-CQLREOBH.d.mts → PageLayoutFrame-4QGs7x-t.d.mts} +1 -1
  123. package/dist/PageLayoutFrame.d.mts +1 -1
  124. package/dist/{PageSelector-BOe4EzbS.d.mts → PageSelector-B5CcAzss.d.mts} +3 -3
  125. package/dist/PageSelector.d.mts +1 -1
  126. package/dist/{Pagination-Dpc6TadZ.mjs → Pagination-C8hPOu0l.mjs} +2 -2
  127. package/dist/{Pagination-Dpc6TadZ.mjs.map → Pagination-C8hPOu0l.mjs.map} +1 -1
  128. package/dist/{Pagination-Dy-OSH0Y.d.mts → Pagination-CCKuudiz.d.mts} +2 -2
  129. package/dist/Pagination.d.mts +1 -1
  130. package/dist/{PillShell-B35z66jZ.d.mts → PillShell-B7Bm-dsE.d.mts} +2 -2
  131. package/dist/PillShell.d.mts +1 -1
  132. package/dist/{ProgressIndicator-COCwRZfK.d.mts → ProgressIndicator-BoB5JOfV.d.mts} +1 -1
  133. package/dist/{ProgressIndicator-ISARECzW.mjs → ProgressIndicator-zt3ndT9U.mjs} +1 -1
  134. package/dist/{ProgressIndicator-ISARECzW.mjs.map → ProgressIndicator-zt3ndT9U.mjs.map} +1 -1
  135. package/dist/ProgressIndicator.d.mts +1 -1
  136. package/dist/{PseudoClassProps-D_f-JUT1.d.mts → PseudoClassProps-CIuO49a4.d.mts} +1 -1
  137. package/dist/PseudoClassProps.d.mts +1 -1
  138. package/dist/{RadioGroup-pyGpWhhj.d.mts → RadioGroup-D_z37ZOU.d.mts} +1 -1
  139. package/dist/RadioGroup.d.mts +1 -1
  140. package/dist/{RangeCalendar-BiugsdSP.d.mts → RangeCalendar-CLCp70w6.d.mts} +2 -2
  141. package/dist/RangeCalendar.d.mts +1 -1
  142. package/dist/RangeCalendarPresets.d.mts +1 -1
  143. package/dist/{RouterContext-BUdfr1it.d.mts → RouterContext-DchdVyIX.d.mts} +2 -2
  144. package/dist/RouterContext.d.mts +1 -1
  145. package/dist/{RouterLink-BKbfvJcM.d.mts → RouterLink-B6ikC5Kq.d.mts} +2 -2
  146. package/dist/RouterLink.d.mts +1 -1
  147. package/dist/RuleEditorFields.d.mts +2 -2
  148. package/dist/RulesPill.d.mts +1 -1
  149. package/dist/{SearchInput-BejaiGsS.d.mts → SearchInput-D42v7MLp.d.mts} +2 -2
  150. package/dist/SearchInput.d.mts +1 -1
  151. package/dist/SectionHeading.d.mts +1 -1
  152. package/dist/{SegmentedControl-UV03Ujqn.d.mts → SegmentedControl-yVK6kkcx.d.mts} +1 -1
  153. package/dist/SegmentedControl.d.mts +1 -1
  154. package/dist/{Select-BLqHxJUz.d.mts → Select-CaG6OQi1.d.mts} +3 -3
  155. package/dist/Select.d.mts +1 -1
  156. package/dist/{SingleColumnLayout-DBo35psH.d.mts → SingleColumnLayout-D2bpX7X1.d.mts} +2 -2
  157. package/dist/SingleColumnLayout.d.mts +1 -1
  158. package/dist/SmartTextInput.d.mts +6 -6
  159. package/dist/SmartTextInputField.d.mts +2 -2
  160. package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
  161. package/dist/SmartTextInputListbox.d.mts +2 -2
  162. package/dist/SmartTextInputPopover.d.mts +1 -1
  163. package/dist/{SplitColumnLayout-C6m_mwdf.d.mts → SplitColumnLayout-CRDSDHHm.d.mts} +2 -2
  164. package/dist/SplitColumnLayout.d.mts +1 -1
  165. package/dist/{Stack-DrYxBkiF.d.mts → Stack-CODxfzhl.d.mts} +1 -1
  166. package/dist/Stack.d.mts +1 -1
  167. package/dist/{StatusIndicator-pWl1-FLb.mjs → StatusIndicator-Zf75KK3O.mjs} +1 -1
  168. package/dist/{StatusIndicator-pWl1-FLb.mjs.map → StatusIndicator-Zf75KK3O.mjs.map} +1 -1
  169. package/dist/{Sticker-sIBnBbHD.d.mts → Sticker-CLvRB8V5.d.mts} +4 -4
  170. package/dist/Sticker.d.mts +1 -1
  171. package/dist/StringValueControl.d.mts +1 -1
  172. package/dist/Tab.d.mts +1 -1
  173. package/dist/{Table-BJfcRpMX.d.mts → Table-qsIo7V-R.d.mts} +1 -1
  174. package/dist/Table.d.mts +1 -1
  175. package/dist/{TableBody-CBz2PjA-.d.mts → TableBody-1fqZP2Cb.d.mts} +1 -1
  176. package/dist/TableBody.d.mts +1 -1
  177. package/dist/TableBox.d.mts +2 -2
  178. package/dist/{TableBoxCell-DPXrw63v.d.mts → TableBoxCell-B9KMWebc.d.mts} +6 -6
  179. package/dist/TableBoxCell.d.mts +1 -1
  180. package/dist/{TableBoxField-C7MGSie9.d.mts → TableBoxField-0uIGzBhF.d.mts} +5 -5
  181. package/dist/TableBoxField.d.mts +1 -1
  182. package/dist/{TableBoxRow-uToXVWvl.d.mts → TableBoxRow-PjBBDcEk.d.mts} +3 -3
  183. package/dist/TableBoxRow.d.mts +1 -1
  184. package/dist/{TableBoxRowActions-Do646IVE.d.mts → TableBoxRowActions-B7stm6Q3.d.mts} +2 -2
  185. package/dist/TableBoxRowActions.d.mts +1 -1
  186. package/dist/{TableCell-KHx5JlqZ.d.mts → TableCell-CQsF7t4e.d.mts} +2 -2
  187. package/dist/TableCell.d.mts +1 -1
  188. package/dist/{TableControls-C-0Dw8vM.mjs → TableControls-BZ8RrYOc.mjs} +3 -3
  189. package/dist/{TableControls-C-0Dw8vM.mjs.map → TableControls-BZ8RrYOc.mjs.map} +1 -1
  190. package/dist/{TableControls-BHv-tXA-.d.mts → TableControls-DT2YpFK8.d.mts} +5 -5
  191. package/dist/TableControls.d.mts +1 -1
  192. package/dist/{TableControlsContext-D6rifk-v.d.mts → TableControlsContext-CHuLxfa7.d.mts} +2 -2
  193. package/dist/TableControlsContext.d.mts +1 -1
  194. package/dist/{TableHead-D5A3bOwt.d.mts → TableHead-Dq0Fi4hP.d.mts} +1 -1
  195. package/dist/TableHead.d.mts +1 -1
  196. package/dist/{TableHeaderCell-BXgnxPpX.d.mts → TableHeaderCell-CAfcFwJy.d.mts} +1 -1
  197. package/dist/TableHeaderCell.d.mts +1 -1
  198. package/dist/{TableLayout-Dy5ht8KO.d.mts → TableLayout-CM8wiU3C.d.mts} +1 -1
  199. package/dist/TableLayout.d.mts +1 -1
  200. package/dist/{TableRow-C1iGbNjZ.d.mts → TableRow-C4eHuRF3.d.mts} +2 -2
  201. package/dist/TableRow.d.mts +1 -1
  202. package/dist/TableTH.d.mts +1 -1
  203. package/dist/{TableViewConfigurationDropdown-C5bjxTGX.d.mts → TableViewConfigurationDropdown-BWBBUXCs.d.mts} +2 -2
  204. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  205. package/dist/{Text-SaoRBdB6.d.mts → Text-CvaqognH.d.mts} +3 -3
  206. package/dist/Text.d.mts +1 -1
  207. package/dist/{TextArea-gtSlghjy.d.mts → TextArea-BJWEaURJ.d.mts} +2 -2
  208. package/dist/TextArea.d.mts +1 -1
  209. package/dist/{TextUnderlineTooltip-DV61avLv.d.mts → TextUnderlineTooltip-Bd5e8KH3.d.mts} +2 -2
  210. package/dist/TextUnderlineTooltip.d.mts +1 -1
  211. package/dist/Tile.d.mts +1 -1
  212. package/dist/Toast.d.mts +1 -1
  213. package/dist/{Toggle-BlvrM-Cw.d.mts → Toggle-CeIDF9yS.d.mts} +1 -1
  214. package/dist/Toggle.d.mts +1 -1
  215. package/dist/{Tooltip-CysnLwST.d.mts → Tooltip-Ddy2Jq0K.d.mts} +2 -2
  216. package/dist/Tooltip.d.mts +1 -1
  217. package/dist/{TruncatedText-YcjNG-zP.d.mts → TruncatedText-sr9Fhm3N.d.mts} +1 -1
  218. package/dist/VersionHistory.d.mts +1 -1
  219. package/dist/{VersionHistoryItem-Px3ylMMq.d.mts → VersionHistoryItem-DnKlzuDe.d.mts} +1 -1
  220. package/dist/VersionHistoryItem.d.mts +1 -1
  221. package/dist/WizardModal.d.mts +2 -2
  222. package/dist/{accordionTitleTypography-Dlo2YyWd.d.mts → accordionTitleTypography-D7tOgRzj.d.mts} +2 -2
  223. package/dist/accordionTitleTypography.d.mts +1 -1
  224. package/dist/{chainTypes-aF5rWav-.d.mts → chainTypes-C5mXGz6T.d.mts} +4 -4
  225. package/dist/charting-C_WcP3tn.d.mts +16 -0
  226. package/dist/{clientFilterUtils-DDDG1g7e.d.mts → clientFilterUtils-scLlIuP_.d.mts} +2 -2
  227. package/dist/clientFilterUtils.d.mts +1 -1
  228. package/dist/{codec-D8ZKFLgs.d.mts → codec-BTVOuowZ.d.mts} +2 -2
  229. package/dist/codec.d.mts +1 -1
  230. package/dist/{color-Cy_0z4IY.d.mts → color-Db57Wms_.d.mts} +2 -2
  231. package/dist/complete-typography.d.mts +1 -1
  232. package/dist/components/Accordion/index.d.mts +1 -1
  233. package/dist/components/BottomPanel/index.mjs +67 -6
  234. package/dist/components/BottomPanel/index.mjs.map +1 -1
  235. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  236. package/dist/components/Button/index.d.mts +2 -2
  237. package/dist/components/Card/index.d.mts +2 -2
  238. package/dist/components/CardV2/index.d.mts +1 -1
  239. package/dist/components/Checkbox/index.d.mts +1 -1
  240. package/dist/components/Combobox/index.d.mts +2 -2
  241. package/dist/components/DataTable/TableControls/index.d.mts +21 -21
  242. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  243. package/dist/components/DataTable/index.d.mts +8 -8
  244. package/dist/components/DataTable/index.mjs +1 -1
  245. package/dist/components/DataTable/types.d.mts +1 -1
  246. package/dist/components/DatePicker/index.d.mts +5 -5
  247. package/dist/components/DropdownMenu/index.d.mts +1 -1
  248. package/dist/components/FloatingToolbar/index.d.mts +2 -0
  249. package/dist/components/FloatingToolbar/index.mjs +2 -0
  250. package/dist/components/FormControl/index.d.mts +2 -2
  251. package/dist/components/FormField/index.d.mts +5 -5
  252. package/dist/components/Grid/index.mjs +1 -1
  253. package/dist/components/Input/index.d.mts +1 -1
  254. package/dist/components/ListBox/index.d.mts +3 -3
  255. package/dist/components/Menu/index.d.mts +1 -1
  256. package/dist/components/Modal/index.d.mts +1 -1
  257. package/dist/components/Modal/index.mjs +1 -1
  258. package/dist/components/PageHeader/index.d.mts +1 -1
  259. package/dist/components/PageHeader/index.mjs +1 -1
  260. package/dist/components/Pagination/index.d.mts +3 -3
  261. package/dist/components/Pagination/index.mjs +1 -1
  262. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  263. package/dist/components/ProgressIndicator/index.mjs +1 -1
  264. package/dist/components/RadioGroup/index.d.mts +1 -1
  265. package/dist/components/RichTextEditor/index.d.mts +1 -2
  266. package/dist/components/RichTextEditor/index.mjs +21 -476
  267. package/dist/components/RichTextEditor/index.mjs.map +1 -1
  268. package/dist/components/SegmentedControl/index.d.mts +1 -1
  269. package/dist/components/Select/index.d.mts +1 -1
  270. package/dist/components/SmartTextInput/index.d.mts +2 -2
  271. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  272. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
  273. package/dist/components/Stack/index.d.mts +1 -1
  274. package/dist/components/StatusIndicator/index.mjs +1 -1
  275. package/dist/components/Sticker/index.d.mts +1 -1
  276. package/dist/components/Table/index.d.mts +8 -8
  277. package/dist/components/TableBox/index.d.mts +2 -2
  278. package/dist/components/Text/index.d.mts +1 -1
  279. package/dist/components/TextArea/index.d.mts +1 -1
  280. package/dist/components/Toggle/index.d.mts +1 -1
  281. package/dist/components/Tooltip/index.d.mts +3 -3
  282. package/dist/components/VersionHistory/index.d.mts +1 -1
  283. package/dist/components/VersionHistory/index.mjs +2 -2
  284. package/dist/compound-expression.d.mts +1 -1
  285. package/dist/{constants-CW1DRgwi.d.mts → constants-ByOakXpZ.d.mts} +1 -1
  286. package/dist/{constants-D1hoZ5LO.d.mts → constants-DMTL6rF3.d.mts} +1 -1
  287. package/dist/constants.d.mts +1 -1
  288. package/dist/constants2.d.mts +1 -1
  289. package/dist/{createPath-C4ZFkt93.d.mts → createPath-BgyL9FVF.d.mts} +2 -2
  290. package/dist/createPath.d.mts +1 -1
  291. package/dist/{date-range-rule-value-CrVBpQcf.d.mts → date-range-rule-value-ASr06ClE.d.mts} +2 -2
  292. package/dist/date-range-rule-value.d.mts +1 -1
  293. package/dist/{date-rule-intent-C1aptAoX.d.mts → date-rule-intent-DDDCA6kc.d.mts} +3 -3
  294. package/dist/date-rule-intent.d.mts +1 -1
  295. package/dist/display.d.mts +2 -2
  296. package/dist/fieldPickerOptions.d.mts +2 -2
  297. package/dist/{filter-size-context-CbT4pi3S.d.mts → filter-size-context-CmFyIPCm.d.mts} +2 -2
  298. package/dist/filter-size-context.d.mts +1 -1
  299. package/dist/{filters-CkAFU8LV.d.mts → filters-yfzOlqKx.d.mts} +2 -2
  300. package/dist/filters.d.mts +1 -1
  301. package/dist/{formatDateTime-BikGGrvq.d.mts → formatDateTime-Cj9XxTNy.d.mts} +1 -1
  302. package/dist/formatDateTime.d.mts +1 -1
  303. package/dist/{helpers-Dvvcz-hL.d.mts → helpers-BeCjgAeE.d.mts} +4 -4
  304. package/dist/helpers.d.mts +1 -1
  305. package/dist/{i18n-CKRi992F.mjs → i18n-DaOKaFc2.mjs} +3 -2
  306. package/dist/i18n-DaOKaFc2.mjs.map +1 -0
  307. package/dist/{index-B3A74_ew.d.mts → index-BEHNqAZa.d.mts} +3 -3
  308. package/dist/{index-BWAycP6L.d.mts → index-CLAjbq8g.d.mts} +1 -1
  309. package/dist/{index-D2YFHdsf.d.mts → index-aK04IR94.d.mts} +2 -2
  310. package/dist/{index-FgIOTuJ4.d.mts → index-kIon1vPp.d.mts} +2 -2
  311. package/dist/index2.d.mts +1 -1
  312. package/dist/index3.d.mts +1 -1
  313. package/dist/index4.d.mts +3 -3
  314. package/dist/index5.d.mts +1 -1
  315. package/dist/index6.d.mts +14 -14
  316. package/dist/{input-gtTnb9M8.d.mts → input-JDU1Goyr.d.mts} +3 -3
  317. package/dist/{inputFields-Dfpxi68z.d.mts → inputFields-BnCdmuBt.d.mts} +11 -11
  318. package/dist/inputFields.d.mts +1 -1
  319. package/dist/{jsonSchema-DUkfAip_.d.mts → jsonSchema-C4lfpDrt.d.mts} +1 -1
  320. package/dist/lib/PDSProvider.d.mts +3 -3
  321. package/dist/lib/PDSProvider.mjs +1 -1
  322. package/dist/lib/TruncatedText.d.mts +1 -1
  323. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  324. package/dist/lib/chainTypes.d.mts +1 -1
  325. package/dist/lib/color.d.mts +1 -1
  326. package/dist/lib/colorMode.d.mts +2 -2
  327. package/dist/lib/customFunctionSchema.d.mts +1 -1
  328. package/dist/lib/date-filter/index.d.mts +2 -2
  329. package/dist/lib/i18n/index.d.mts +3 -3
  330. package/dist/lib/i18n/index.mjs +1 -1
  331. package/dist/lib/jsonSchema.d.mts +1 -1
  332. package/dist/lib/jsonSchemaType.d.mts +1 -1
  333. package/dist/lib/message.d.mts +1 -1
  334. package/dist/lib/methodChain.d.mts +2 -2
  335. package/dist/lib/methodChainNormalize.d.mts +2 -2
  336. package/dist/lib/methodChainTypes.d.mts +1 -1
  337. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  338. package/dist/lib/platformObject.d.mts +1 -1
  339. package/dist/lib/pseudoClass.d.mts +1 -1
  340. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  341. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  342. package/dist/lib/router/index.d.mts +5 -5
  343. package/dist/lib/schemaOptions.d.mts +1 -1
  344. package/dist/lib/semanticColor.d.mts +2 -2
  345. package/dist/lib/semanticColor.mjs +8 -1
  346. package/dist/lib/semanticColor.mjs.map +1 -1
  347. package/dist/lib/useChain.d.mts +1 -1
  348. package/dist/lint/index.d.mts +1 -1
  349. package/dist/{listbox-options-CkwENvff.d.mts → listbox-options-CDAOiyUH.d.mts} +3 -3
  350. package/dist/listbox-options.d.mts +1 -1
  351. package/dist/{message-klSuXfNN.d.mts → message-BwRBPJXD.d.mts} +1 -1
  352. package/dist/{methodChain-CRYRDa1k.d.mts → methodChain-COb4t-sM.d.mts} +4 -4
  353. package/dist/{methodChainTypes-BtbYWrdP.d.mts → methodChainTypes-De6sHGyd.d.mts} +2 -2
  354. package/dist/min-copy-size.d.mts +1 -1
  355. package/dist/mixins/focus.d.mts +1 -1
  356. package/dist/mixins/hoverable.d.mts +2 -2
  357. package/dist/mixins/input.d.mts +1 -1
  358. package/dist/mixins/menuItem.d.mts +2 -2
  359. package/dist/mixins/scrollbar.d.mts +1 -1
  360. package/dist/mixins/text.d.mts +1 -1
  361. package/dist/no-raw-table.d.mts +1 -1
  362. package/dist/{operators-BrrJKENE.d.mts → operators-BHxKZcpD.d.mts} +3 -3
  363. package/dist/operators.d.mts +1 -1
  364. package/dist/{palette-C1gBbxLO.d.mts → palette-DzmqrF_5.d.mts} +3 -3
  365. package/dist/palette.d.mts +1 -1
  366. package/dist/patterns/CardGrouping/index.mjs +1 -1
  367. package/dist/patterns/IndexTableLayout/index.mjs +3 -3
  368. package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
  369. package/dist/patterns/PageLayout/index.d.mts +4 -4
  370. package/dist/patterns/PageLayout/index.mjs +1 -1
  371. package/dist/patterns/WizardModal/index.mjs +2 -2
  372. package/dist/reactRouterFallback.d.mts +1 -1
  373. package/dist/reduced-motion.d.mts +1 -1
  374. package/dist/relative-date-label.d.mts +1 -1
  375. package/dist/safe-parse.d.mts +1 -1
  376. package/dist/{schemaOptions-C_JM2-sg.d.mts → schemaOptions-DMq37JC5.d.mts} +3 -3
  377. package/dist/{semantic-BLaQSW1r.d.mts → semantic-BZbvb3LV.d.mts} +1 -1
  378. package/dist/semantic-color.d.mts +1 -1
  379. package/dist/{semanticColor-Bxufk3ZO.d.mts → semanticColor-BKbCliyl.d.mts} +15 -4
  380. package/dist/shared.d.mts +1 -1
  381. package/dist/{strings-BGXKl_m6.d.mts → strings-DQZIO-n7.d.mts} +3 -1
  382. package/dist/strings.d.mts +1 -1
  383. package/dist/{text-Csytfclh.d.mts → text-CKLxMlG4.d.mts} +1 -1
  384. package/dist/{theme-mQ4WkH90.d.mts → theme-CeA8jBRG.d.mts} +9 -5
  385. package/dist/theme.d.mts +1 -1
  386. package/dist/theme.mjs +7 -3
  387. package/dist/theme.mjs.map +1 -1
  388. package/dist/tone.d.mts +3 -3
  389. package/dist/tree.d.mts +1 -1
  390. package/dist/{types-XjJqUj-p.d.mts → types-02Ij0dgs.d.mts} +4 -4
  391. package/dist/{types-Dhz6VMKx.d.mts → types-BRYGqFVm.d.mts} +1 -1
  392. package/dist/{types-sUEmxsGM.d.mts → types-BXJ6qAGy.d.mts} +3 -3
  393. package/dist/{types-DoJubhWu.d.mts → types-BeFBvQ1c.d.mts} +3 -3
  394. package/dist/{types-6L0ptM6-.d.mts → types-CRymR_J9.d.mts} +1 -1
  395. package/dist/{types-B4KbdEDc.d.mts → types-CqcbWyUY.d.mts} +2 -2
  396. package/dist/{types-C2RhHxbE.d.mts → types-D9LBWGw5.d.mts} +1 -1
  397. package/dist/{types-DbOD5vE_.d.mts → types-DLnCkvTt.d.mts} +2 -2
  398. package/dist/{types-rDQg74j-.d.mts → types-DQVUNrrN.d.mts} +1 -1
  399. package/dist/{types-dmItSshr.d.mts → types-DeVO4sCM.d.mts} +2 -2
  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-CXUuK3_r.d.mts} +2 -2
  408. package/dist/url-state.d.mts +1 -1
  409. package/dist/{useChain-7ztbfujM.d.mts → useChain-B--KAtdN.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-DBpbxAEC.d.mts} +3 -3
  415. package/dist/useFilterStateV2.d.mts +1 -1
  416. package/dist/{useFormField-CmEJCqse.d.mts → useFormField-CTgW_8x0.d.mts} +2 -2
  417. package/dist/useFormField.d.mts +1 -1
  418. package/dist/{useLocationPathname-Cnqj8pf4.d.mts → useLocationPathname-CClZoIGm.d.mts} +1 -1
  419. package/dist/useLocationPathname.d.mts +1 -1
  420. package/dist/{useTableBoxDragAndDrop-8NS4JBuI.d.mts → useTableBoxDragAndDrop-MwbXWWDQ.d.mts} +1 -1
  421. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  422. package/dist/{useTableColumns-nPrbDfF_.d.mts → useTableColumns-DJFy0Gp8.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-BDkho6-f.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-Tgg3AhuP.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-XQbGCdsP.d.mts} +2 -2
  434. package/dist/value-control-resolver.d.mts +1 -1
  435. package/dist/variables/charting.d.mts +2 -0
  436. package/dist/variables/charting.mjs +134 -0
  437. package/dist/variables/charting.mjs.map +1 -0
  438. package/dist/variables/effect.d.mts +1 -1
  439. package/dist/variables/semantic.d.mts +1 -1
  440. package/llms.txt +1 -1
  441. package/package.json +16 -15
  442. package/skills/ui-authoring/COMPONENTS.md +1 -0
  443. package/skills/ui-authoring/TOKENS.md +5 -0
  444. package/dist/Modal-ziuzDCPN.mjs.map +0 -1
  445. package/dist/i18n-CKRi992F.mjs.map +0 -1
  446. /package/dist/{index-AnhM47-e2.d.mts → index-0-W_aPej.d.mts} +0 -0
  447. /package/dist/{index-B4woaFSm.d.mts → index-1-AkepUA.d.mts} +0 -0
  448. /package/dist/{index-BPiqSRRl.d.mts → index-B9SJORI12.d.mts} +0 -0
  449. /package/dist/{index-BTviwbFV.d.mts → index-BINnViIh.d.mts} +0 -0
  450. /package/dist/{index-Bo9LXG4r.d.mts → index-BRJ_6A42.d.mts} +0 -0
  451. /package/dist/{index-Bq9Ub6MB.d.mts → index-BsHUlSyF.d.mts} +0 -0
  452. /package/dist/{index-BrGZHEgX.d.mts → index-C6HcjJiY.d.mts} +0 -0
  453. /package/dist/{index-Bt4QNofW.d.mts → index-CCKHlTA4.d.mts} +0 -0
  454. /package/dist/{index-CFuHCx9T.d.mts → index-CCt0lwyI.d.mts} +0 -0
  455. /package/dist/{index-CLTQPxoD.d.mts → index-CIABef8t.d.mts} +0 -0
  456. /package/dist/{index-CjDodOH2.d.mts → index-CoUVmp_Q.d.mts} +0 -0
  457. /package/dist/{index-CjmAoxrR2.d.mts → index-CuYZJcK3.d.mts} +0 -0
  458. /package/dist/{index-CzItj62a.d.mts → index-CuheJfs-.d.mts} +0 -0
  459. /package/dist/{index-DBGd4WeR.d.mts → index-CzdAgLVp.d.mts} +0 -0
  460. /package/dist/{index-DW3xeuzq.d.mts → index-DG59sVPG2.d.mts} +0 -0
  461. /package/dist/{index-DZlqSwCF.d.mts → index-DeVKzGce.d.mts} +0 -0
  462. /package/dist/{index-De7MV8-j.d.mts → index-DedbSZMv.d.mts} +0 -0
  463. /package/dist/{index-DjG1RCY5.d.mts → index-Deol7ZWO.d.mts} +0 -0
  464. /package/dist/{index-Dlcv6Ku22.d.mts → index-Es5nKSSL.d.mts} +0 -0
  465. /package/dist/{index-DrK1_jKY.d.mts → index-KEHKKJEa.d.mts} +0 -0
  466. /package/dist/{index-DztUdPP_.d.mts → index-PQbV5sXG2.d.mts} +0 -0
  467. /package/dist/{index-NKYLt_R9.d.mts → index-dhjtMp5F.d.mts} +0 -0
  468. /package/dist/{index-VWno75SQ.d.mts → index-dzI_9J-Z.d.mts} +0 -0
  469. /package/dist/{index-uMNhmxEh.d.mts → index-lTcag11w.d.mts} +0 -0
@@ -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-BdVM37bV.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-4QGs7x-t.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-4QGs7x-t.mjs";
2
2
  export { PageLayoutChromeProps, PageLayoutFrame, PageLayoutWidth };
@@ -1,5 +1,5 @@
1
- import { n as HStackProps } from "./Stack-DrYxBkiF.mjs";
2
- import { t as PaginationParams } from "./types-6L0ptM6-.mjs";
1
+ import { n as HStackProps } from "./Stack-CODxfzhl.mjs";
2
+ import { t as PaginationParams } from "./types-CRymR_J9.mjs";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -33,4 +33,4 @@ declare function PageSelector({
33
33
  }: PageSelectorProps): _$react_jsx_runtime0.JSX.Element;
34
34
  //#endregion
35
35
  export { PageInput as n, PageSelector as r, PAGE_LIMIT_BEFORE_SCROLL_MODE as t };
36
- //# sourceMappingURL=PageSelector-BOe4EzbS.d.mts.map
36
+ //# sourceMappingURL=PageSelector-B5CcAzss.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as PageInput, r as PageSelector, t as PAGE_LIMIT_BEFORE_SCROLL_MODE } from "./PageSelector-BOe4EzbS.mjs";
1
+ import { n as PageInput, r as PageSelector, t as PAGE_LIMIT_BEFORE_SCROLL_MODE } from "./PageSelector-B5CcAzss.mjs";
2
2
  export { PAGE_LIMIT_BEFORE_SCROLL_MODE, PageInput, PageSelector as default };
@@ -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 } from "./lib/semanticColor.mjs";
4
4
  import { t as HStack } from "./Stack-Bzom2BTR.mjs";
5
5
  import { n as Button } from "./IconButton-DftINsp7.mjs";
@@ -198,4 +198,4 @@ var Pagination_default = Pagination;
198
198
  //#endregion
199
199
  export { MIN_PAGE_SIZE as a, DEFAULT_PAGE_SIZE_OPTIONS as i, PAGE_LIMIT_BEFORE_SCROLL_MODE as n, PageSelector as r, Pagination_default as t };
200
200
 
201
- //# sourceMappingURL=Pagination-Dpc6TadZ.mjs.map
201
+ //# sourceMappingURL=Pagination-C8hPOu0l.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination-Dpc6TadZ.mjs","names":[],"sources":["../src/components/Pagination/constants.ts","../src/components/Pagination/PageSelector.tsx","../src/components/Pagination/PageSizeSelector.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Pagination/index.ts"],"sourcesContent":["export const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100, 300];\nexport const MIN_PAGE_SIZE = 10;\n","import { debounce } from 'lodash-es';\nimport { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Button from '@persona/design-system/components/Button';\nimport { Input } from '@persona/design-system/components/Input';\nimport { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\n\nimport type { PaginationParams } from './types';\n\n// After a certain limit, it no longer makes sense for someone\n// to jump to the last page. Deep paging has performance limitations. A collection\n// with exactly this many pages still gets the page input: servers that cap paging\n// at this limit (Kaminari's max_pages) report every page up to it as reachable.\nexport const PAGE_LIMIT_BEFORE_SCROLL_MODE = 100;\n\nconst PageSelectorStack = styled(HStack).attrs({ justify: 'flex-end' })`\n padding: ${Spacing[2]};\n`;\n\nexport const PageInput = styled(HStack).attrs({ align: 'center' })`\n white-space: nowrap;\n`;\n\ninterface PageSelectorProps {\n paginationParams: PaginationParams;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n /**\n * Called with the new page number after the page changes (next, prev, or\n * typed input). Lets the consumer react to page changes -- e.g. scroll the\n * page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * `total-pages` is only a lower bound: render it as `13+` and keep Next enabled past it. See\n * `Pagination`'s prop of the same name.\n */\n totalIsLowerBound?: boolean;\n}\n\nexport default function PageSelector({\n paginationParams,\n handlePageLinkClick,\n isLoading,\n onPageChange,\n totalIsLowerBound = false,\n}: PageSelectorProps) {\n const strings = usePDSStrings();\n const {\n 'current-page': currentPage,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams ?? {};\n const [selectedPage, setSelectedPage] = useState<number | undefined>(currentPage);\n // Next stays enabled at the last page the totals know of when more may follow.\n const morePagesMayFollow = lowerBound || totalIsLowerBound;\n // Paged past a minimum page count, how many pages there are is no longer known.\n const totalUnknown = lowerBound || (totalIsLowerBound && currentPage > totalPages);\n\n // We don't use useDebounced to avoid function object reference issues.\n const handlePageLinkClickDebounced = useMemo(\n () => debounce(handlePageLinkClick, 500),\n [handlePageLinkClick],\n );\n\n // Keep input state synced to pagination state when other user action changes\n // pagination state.\n useEffect(() => {\n if (currentPage != null) {\n setSelectedPage(currentPage);\n }\n }, [currentPage]);\n\n if (!paginationParams) {\n return <div />;\n }\n\n return (\n <PageSelectorStack data-test='pagination__page-selector' id='pagination__page-selector'>\n <PageInput>\n {totalPages <= PAGE_LIMIT_BEFORE_SCROLL_MODE && !totalUnknown ? (\n <Input\n aria-label={strings.goToPageNumber}\n size='sm'\n inputSize={2}\n onChange={(e) => {\n const value = e.target.valueAsNumber;\n if (Number.isNaN(value)) {\n setSelectedPage(undefined);\n } else {\n // Setting unbounded value feels smoother as the value is not corrected until after the fetch via useEffect.\n setSelectedPage(value);\n const boundedValue = Math.min(Math.max(e.target.valueAsNumber, 1), totalPages);\n handlePageLinkClickDebounced(boundedValue);\n onPageChange?.(boundedValue);\n }\n }}\n onBlur={(e) => {\n // Fill blank value on blur.\n if (Number.isNaN(e.target.valueAsNumber)) {\n setSelectedPage(currentPage);\n }\n }}\n min={1}\n max={totalPages}\n type='number'\n disabled={isLoading}\n value={selectedPage ?? ''}\n />\n ) : (\n currentPage + ' '\n )}\n {strings.pageCount(\n currentPage,\n totalUnknown\n ? strings.many\n : totalIsLowerBound\n ? strings.atLeast(totalPages)\n : totalPages,\n )}\n </PageInput>\n <Button\n id='pagination__page-selector--left'\n disabled={currentPage === 1 || isLoading}\n onClick={() => {\n if (currentPage !== 1) {\n const prevPageNum = currentPage - 1;\n setSelectedPage(prevPageNum);\n handlePageLinkClick(prevPageNum);\n onPageChange?.(prevPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-left'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label={strings.previousPage}\n >\n {strings.previousShort}\n </Button>\n <Button\n id='pagination__page-selector--right'\n disabled={(currentPage === totalPages && !morePagesMayFollow) || isLoading}\n onClick={() => {\n if (currentPage !== totalPages || morePagesMayFollow) {\n const nextPageNum = currentPage + 1;\n setSelectedPage(nextPageNum);\n handlePageLinkClick(nextPageNum);\n onPageChange?.(nextPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-right'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label={strings.nextPage}\n >\n {strings.next}\n </Button>\n </PageSelectorStack>\n );\n}\n","import styled from 'styled-components';\n\nimport Select, { Option } from '@persona/design-system/components/Select';\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor } from '#src/lib/semanticColor';\n\nconst Selector = styled('div')`\n padding: ${Spacing[2]};\n display: flex;\n justify-content: flex-end;\n`;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: ${Spacing[2]};\n padding: ${Spacing[2]};\n`;\n\ninterface PageSizeOptionProps {\n currentPageSize: number;\n pageSizeOption: number;\n}\n\nexport const PageSizeOption = styled('div')<PageSizeOptionProps>`\n padding: 0 ${Spacing[1]};\n color: ${({ theme }) => semanticColor(theme, 'FgAccentStatic', Color.PrimaryPurple)};\n cursor: pointer;\n\n ${({ currentPageSize, pageSizeOption }) => {\n if (currentPageSize === pageSizeOption) {\n return `\n ${Typography.TextMediumBold};\n text-decoration: underline;\n `;\n }\n }};\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\ninterface PageSizeSelectorProps {\n pageSize: number;\n pageSizeOptions: number[];\n handlePageSizeClick: (pageSize: number) => void;\n /**\n * Element the options menu renders into. Pass a container inside the surrounding dialog when the\n * pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst PageSizeSelector = ({\n pageSize,\n pageSizeOptions,\n handlePageSizeClick,\n menuPortalContainer,\n}: PageSizeSelectorProps) => {\n const strings = usePDSStrings();\n // Add pageSize to selector just in case it isn't part of the options so UI doesn't look weird\n const pageSizes = [\n ...pageSizeOptions,\n ...(pageSizeOptions.includes(pageSize) ? [] : [pageSize]),\n ].sort((a, b) => a - b);\n\n return (\n <Selector data-test='pagination__page-size-selector'>\n <Label>\n {strings.itemsPerPage}\n <Select\n value={pageSize.toString()}\n onValueChange={(val) => handlePageSizeClick(Number(val))}\n size='sm'\n portal={menuPortalContainer != null}\n portalContainer={menuPortalContainer}\n >\n {pageSizes.map((size) => (\n <Option key={size} value={size.toString()}>\n {size}\n </Option>\n ))}\n </Select>\n </Label>\n </Selector>\n );\n};\n\nexport default PageSizeSelector;\n","import styled from 'styled-components';\n\nimport { Color, Typography } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor } from '#src/lib/semanticColor';\n\nimport { DEFAULT_PAGE_SIZE_OPTIONS } from './constants';\nimport PageSelector from './PageSelector';\nimport PageSizeSelector from './PageSizeSelector';\nimport type { PaginationParams } from './types';\n\n// NB: this is configured in config/initializers/kaminari.rb\nconst MAX_PAGES = 100;\n\nconst Container = styled('nav')`\n ${Typography.TextMedium};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const PaginationInfo = styled('div')`\n display: flex;\n align-items: center;\n\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n`;\n\ninterface PaginationProps {\n pageSize?: number;\n pageSizeOptions?: number[];\n paginationParams?: PaginationParams;\n handlePageSizeClick: (pageSize: number) => void;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n showPageSizeSelector?: boolean;\n /**\n * Called with the new page number after the page changes. Lets the consumer\n * react to page changes -- e.g. scroll the page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * Element the page-size menu renders into. Pass a container inside the surrounding dialog when\n * the pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n /**\n * The totals in `paginationParams` are only a lower bound: there are at least that many items\n * and pages, e.g. when the server counts a bounded number of pages ahead. They render as `650+`\n * and `13+`, any page up to `total-pages` can still be typed in, and Next stays enabled past it.\n * `lower-bound` in `paginationParams`, a total that is not known at all, takes precedence.\n */\n totalIsLowerBound?: boolean;\n}\n\nconst Pagination = ({\n pageSize,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n paginationParams,\n handlePageSizeClick,\n handlePageLinkClick,\n isLoading,\n showPageSizeSelector = true,\n onPageChange,\n menuPortalContainer,\n totalIsLowerBound = false,\n}: PaginationProps) => {\n const strings = usePDSStrings();\n\n if (!paginationParams || !pageSize) {\n return <div />;\n }\n\n const {\n 'current-page': currentPage,\n 'total-count': totalCount,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams;\n\n // If the total number of pages is the same as MAX_PAGES, we guess that the total number of\n // items might be limited by max pages, and that the total could change based on page size.\n // To limit user confusion here, we use 'many' instead of a specific number.\n // Paged past the minimum the totals give, how many there are is no longer known: render it like\n // `lower-bound` rather than an item range that ends before it starts.\n const pastKnownTotal = totalIsLowerBound && !lowerBound && currentPage > totalPages;\n const totalUnknown = lowerBound || pastKnownTotal;\n const totalAtLeast = totalIsLowerBound && !totalUnknown;\n const totalCountDisplay =\n totalUnknown || totalPages >= MAX_PAGES\n ? strings.many\n : totalAtLeast\n ? strings.atLeast(totalCount)\n : totalCount;\n\n const lastItemIndex = totalUnknown\n ? currentPage * pageSize\n : Math.min(currentPage * pageSize, totalCount);\n const firstItemIndex = pageSize * (currentPage - 1) + 1;\n\n return (\n <Container role='navigation' aria-label={strings.pagination}>\n {showPageSizeSelector && (\n <PageSizeSelector\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n handlePageSizeClick={handlePageSizeClick}\n menuPortalContainer={menuPortalContainer}\n />\n )}\n {totalCount > 0 && (\n <>\n <div>{strings.showingItems(firstItemIndex, lastItemIndex, totalCountDisplay)}</div>\n <PaginationInfo>\n <PageSelector\n paginationParams={paginationParams}\n handlePageLinkClick={handlePageLinkClick}\n isLoading={isLoading}\n onPageChange={onPageChange}\n totalIsLowerBound={totalIsLowerBound && !lowerBound}\n />\n </PaginationInfo>\n </>\n )}\n </Container>\n );\n};\n\nexport default Pagination;\n","import Pagination from './Pagination';\n\nexport { default as PageSelector, PAGE_LIMIT_BEFORE_SCROLL_MODE } from './PageSelector';\nexport * from './constants';\nexport default Pagination;\n"],"mappings":";;;;;;;;;;;;AAAA,MAAa,4BAA4B;CAAC;CAAI;CAAI;CAAI;CAAK;CAAI;AAC/D,MAAa,gBAAgB;;;ACgB7B,MAAa,gCAAgC;AAE7C,MAAM,oBAAoB,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,YAAY,CAAC;aAC1D,QAAQ,GAAG;;AAGxB,MAAa,YAAY,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC;;;AAqBlE,SAAwB,aAAa,EACnC,kBACA,qBACA,WACA,cACA,oBAAoB,SACA;CACpB,MAAM,UAAU,eAAe;CAC/B,MAAM,EACJ,gBAAgB,aAChB,eAAe,YACf,eAAe,eACb,oBAAoB,EAAE;CAC1B,MAAM,CAAC,cAAc,mBAAmB,SAA6B,YAAY;CAEjF,MAAM,qBAAqB,cAAc;CAEzC,MAAM,eAAe,cAAe,qBAAqB,cAAc;CAGvE,MAAM,+BAA+B,cAC7B,SAAS,qBAAqB,IAAI,EACxC,CAAC,oBAAoB,CACtB;AAID,iBAAgB;AACd,MAAI,eAAe,KACjB,iBAAgB,YAAY;IAE7B,CAAC,YAAY,CAAC;AAEjB,KAAI,CAAC,iBACH,QAAO,oBAAC,OAAD,EAAO,CAAA;AAGhB,QACE,qBAAC,mBAAD;EAAmB,aAAU;EAA4B,IAAG;YAA5D;GACE,qBAAC,WAAD,EAAA,UAAA,CACG,cAAA,OAA+C,CAAC,eAC/C,oBAAC,OAAD;IACE,cAAY,QAAQ;IACpB,MAAK;IACL,WAAW;IACX,WAAW,MAAM;KACf,MAAM,QAAQ,EAAE,OAAO;AACvB,SAAI,OAAO,MAAM,MAAM,CACrB,iBAAgB,KAAA,EAAU;UACrB;AAEL,sBAAgB,MAAM;MACtB,MAAM,eAAe,KAAK,IAAI,KAAK,IAAI,EAAE,OAAO,eAAe,EAAE,EAAE,WAAW;AAC9E,mCAA6B,aAAa;AAC1C,qBAAe,aAAa;;;IAGhC,SAAS,MAAM;AAEb,SAAI,OAAO,MAAM,EAAE,OAAO,cAAc,CACtC,iBAAgB,YAAY;;IAGhC,KAAK;IACL,KAAK;IACL,MAAK;IACL,UAAU;IACV,OAAO,gBAAgB;IACvB,CAAA,GAEF,cAAc,KAEf,QAAQ,UACP,aACA,eACI,QAAQ,OACR,oBACE,QAAQ,QAAQ,WAAW,GAC3B,WACP,CACS,EAAA,CAAA;GACZ,oBAAC,QAAD;IACE,IAAG;IACH,UAAU,gBAAgB,KAAK;IAC/B,eAAe;AACb,SAAI,gBAAgB,GAAG;MACrB,MAAM,cAAc,cAAc;AAClC,sBAAgB,YAAY;AAC5B,0BAAoB,YAAY;AAChC,qBAAe,YAAY;;;IAG/B,aAAU;IACV,SAAQ;IACR,MAAK;IACL,OAAM;IACN,cAAY,QAAQ;cAEnB,QAAQ;IACF,CAAA;GACT,oBAAC,QAAD;IACE,IAAG;IACH,UAAW,gBAAgB,cAAc,CAAC,sBAAuB;IACjE,eAAe;AACb,SAAI,gBAAgB,cAAc,oBAAoB;MACpD,MAAM,cAAc,cAAc;AAClC,sBAAgB,YAAY;AAC5B,0BAAoB,YAAY;AAChC,qBAAe,YAAY;;;IAG/B,aAAU;IACV,SAAQ;IACR,MAAK;IACL,OAAM;IACN,cAAY,QAAQ;cAEnB,QAAQ;IACF,CAAA;GACS;;;;;AC3JxB,MAAM,WAAW,OAAO,MAAM;aACjB,QAAQ,GAAG;;;;AAKxB,MAAM,QAAQ,OAAO,KAAK;;;;SAIjB,QAAQ,GAAG;aACP,QAAQ,GAAG;;AAQM,OAAO,MAAM;eAC5B,QAAQ,GAAG;YACd,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,cAAc,CAAC;;;KAGjF,EAAE,iBAAiB,qBAAqB;AACzC,KAAI,oBAAoB,eACtB,QAAO;UACH,WAAW,eAAe;;;EAIhC;;;;;;AAkBJ,MAAM,oBAAoB,EACxB,UACA,iBACA,qBACA,0BAC2B;CAC3B,MAAM,UAAU,eAAe;CAE/B,MAAM,YAAY,CAChB,GAAG,iBACH,GAAI,gBAAgB,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,CACzD,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE;AAEvB,QACE,oBAAC,UAAD;EAAU,aAAU;YAClB,qBAAC,OAAD,EAAA,UAAA,CACG,QAAQ,cACT,oBAAC,QAAD;GACE,OAAO,SAAS,UAAU;GAC1B,gBAAgB,QAAQ,oBAAoB,OAAO,IAAI,CAAC;GACxD,MAAK;GACL,QAAQ,uBAAuB;GAC/B,iBAAiB;aAEhB,UAAU,KAAK,SACd,oBAAC,QAAD;IAAmB,OAAO,KAAK,UAAU;cACtC;IACM,EAFI,KAEJ,CACT;GACK,CAAA,CACH,EAAA,CAAA;EACC,CAAA;;;;AC3Ef,MAAM,YAAY;AAElB,MAAM,YAAY,OAAO,MAAM;IAC3B,WAAW,WAAW;;;;;AAM1B,MAAa,iBAAiB,OAAO,MAAM;;;;YAI/B,EAAE,YAAY,cAAc,OAAO,aAAa,MAAM,YAAY,CAAC;;AA8B/E,MAAM,cAAc,EAClB,UACA,kBAAkB,2BAClB,kBACA,qBACA,qBACA,WACA,uBAAuB,MACvB,cACA,qBACA,oBAAoB,YACC;CACrB,MAAM,UAAU,eAAe;AAE/B,KAAI,CAAC,oBAAoB,CAAC,SACxB,QAAO,oBAAC,OAAD,EAAO,CAAA;CAGhB,MAAM,EACJ,gBAAgB,aAChB,eAAe,YACf,eAAe,YACf,eAAe,eACb;CAQJ,MAAM,eAAe,cADE,qBAAqB,CAAC,cAAc,cAAc;CAGzE,MAAM,oBACJ,gBAAgB,cAAc,YAC1B,QAAQ,OAHO,qBAAqB,CAAC,eAKnC,QAAQ,QAAQ,WAAW,GAC3B;CAER,MAAM,gBAAgB,eAClB,cAAc,WACd,KAAK,IAAI,cAAc,UAAU,WAAW;CAChD,MAAM,iBAAiB,YAAY,cAAc,KAAK;AAEtD,QACE,qBAAC,WAAD;EAAW,MAAK;EAAa,cAAY,QAAQ;YAAjD,CACG,wBACC,oBAAC,kBAAD;GACY;GACO;GACI;GACA;GACrB,CAAA,EAEH,aAAa,KACZ,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,OAAD,EAAA,UAAM,QAAQ,aAAa,gBAAgB,eAAe,kBAAkB,EAAO,CAAA,EACnF,oBAAC,gBAAD,EAAA,UACE,oBAAC,cAAD;GACoB;GACG;GACV;GACG;GACd,mBAAmB,qBAAqB,CAAC;GACzC,CAAA,EACa,CAAA,CAChB,EAAA,CAAA,CAEK;;;;;ACzHhB,IAAA,qBAAe"}
1
+ {"version":3,"file":"Pagination-C8hPOu0l.mjs","names":[],"sources":["../src/components/Pagination/constants.ts","../src/components/Pagination/PageSelector.tsx","../src/components/Pagination/PageSizeSelector.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Pagination/index.ts"],"sourcesContent":["export const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100, 300];\nexport const MIN_PAGE_SIZE = 10;\n","import { debounce } from 'lodash-es';\nimport { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Button from '@persona/design-system/components/Button';\nimport { Input } from '@persona/design-system/components/Input';\nimport { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\n\nimport type { PaginationParams } from './types';\n\n// After a certain limit, it no longer makes sense for someone\n// to jump to the last page. Deep paging has performance limitations. A collection\n// with exactly this many pages still gets the page input: servers that cap paging\n// at this limit (Kaminari's max_pages) report every page up to it as reachable.\nexport const PAGE_LIMIT_BEFORE_SCROLL_MODE = 100;\n\nconst PageSelectorStack = styled(HStack).attrs({ justify: 'flex-end' })`\n padding: ${Spacing[2]};\n`;\n\nexport const PageInput = styled(HStack).attrs({ align: 'center' })`\n white-space: nowrap;\n`;\n\ninterface PageSelectorProps {\n paginationParams: PaginationParams;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n /**\n * Called with the new page number after the page changes (next, prev, or\n * typed input). Lets the consumer react to page changes -- e.g. scroll the\n * page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * `total-pages` is only a lower bound: render it as `13+` and keep Next enabled past it. See\n * `Pagination`'s prop of the same name.\n */\n totalIsLowerBound?: boolean;\n}\n\nexport default function PageSelector({\n paginationParams,\n handlePageLinkClick,\n isLoading,\n onPageChange,\n totalIsLowerBound = false,\n}: PageSelectorProps) {\n const strings = usePDSStrings();\n const {\n 'current-page': currentPage,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams ?? {};\n const [selectedPage, setSelectedPage] = useState<number | undefined>(currentPage);\n // Next stays enabled at the last page the totals know of when more may follow.\n const morePagesMayFollow = lowerBound || totalIsLowerBound;\n // Paged past a minimum page count, how many pages there are is no longer known.\n const totalUnknown = lowerBound || (totalIsLowerBound && currentPage > totalPages);\n\n // We don't use useDebounced to avoid function object reference issues.\n const handlePageLinkClickDebounced = useMemo(\n () => debounce(handlePageLinkClick, 500),\n [handlePageLinkClick],\n );\n\n // Keep input state synced to pagination state when other user action changes\n // pagination state.\n useEffect(() => {\n if (currentPage != null) {\n setSelectedPage(currentPage);\n }\n }, [currentPage]);\n\n if (!paginationParams) {\n return <div />;\n }\n\n return (\n <PageSelectorStack data-test='pagination__page-selector' id='pagination__page-selector'>\n <PageInput>\n {totalPages <= PAGE_LIMIT_BEFORE_SCROLL_MODE && !totalUnknown ? (\n <Input\n aria-label={strings.goToPageNumber}\n size='sm'\n inputSize={2}\n onChange={(e) => {\n const value = e.target.valueAsNumber;\n if (Number.isNaN(value)) {\n setSelectedPage(undefined);\n } else {\n // Setting unbounded value feels smoother as the value is not corrected until after the fetch via useEffect.\n setSelectedPage(value);\n const boundedValue = Math.min(Math.max(e.target.valueAsNumber, 1), totalPages);\n handlePageLinkClickDebounced(boundedValue);\n onPageChange?.(boundedValue);\n }\n }}\n onBlur={(e) => {\n // Fill blank value on blur.\n if (Number.isNaN(e.target.valueAsNumber)) {\n setSelectedPage(currentPage);\n }\n }}\n min={1}\n max={totalPages}\n type='number'\n disabled={isLoading}\n value={selectedPage ?? ''}\n />\n ) : (\n currentPage + ' '\n )}\n {strings.pageCount(\n currentPage,\n totalUnknown\n ? strings.many\n : totalIsLowerBound\n ? strings.atLeast(totalPages)\n : totalPages,\n )}\n </PageInput>\n <Button\n id='pagination__page-selector--left'\n disabled={currentPage === 1 || isLoading}\n onClick={() => {\n if (currentPage !== 1) {\n const prevPageNum = currentPage - 1;\n setSelectedPage(prevPageNum);\n handlePageLinkClick(prevPageNum);\n onPageChange?.(prevPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-left'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label={strings.previousPage}\n >\n {strings.previousShort}\n </Button>\n <Button\n id='pagination__page-selector--right'\n disabled={(currentPage === totalPages && !morePagesMayFollow) || isLoading}\n onClick={() => {\n if (currentPage !== totalPages || morePagesMayFollow) {\n const nextPageNum = currentPage + 1;\n setSelectedPage(nextPageNum);\n handlePageLinkClick(nextPageNum);\n onPageChange?.(nextPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-right'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label={strings.nextPage}\n >\n {strings.next}\n </Button>\n </PageSelectorStack>\n );\n}\n","import styled from 'styled-components';\n\nimport Select, { Option } from '@persona/design-system/components/Select';\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor } from '#src/lib/semanticColor';\n\nconst Selector = styled('div')`\n padding: ${Spacing[2]};\n display: flex;\n justify-content: flex-end;\n`;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: ${Spacing[2]};\n padding: ${Spacing[2]};\n`;\n\ninterface PageSizeOptionProps {\n currentPageSize: number;\n pageSizeOption: number;\n}\n\nexport const PageSizeOption = styled('div')<PageSizeOptionProps>`\n padding: 0 ${Spacing[1]};\n color: ${({ theme }) => semanticColor(theme, 'FgAccentStatic', Color.PrimaryPurple)};\n cursor: pointer;\n\n ${({ currentPageSize, pageSizeOption }) => {\n if (currentPageSize === pageSizeOption) {\n return `\n ${Typography.TextMediumBold};\n text-decoration: underline;\n `;\n }\n }};\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\ninterface PageSizeSelectorProps {\n pageSize: number;\n pageSizeOptions: number[];\n handlePageSizeClick: (pageSize: number) => void;\n /**\n * Element the options menu renders into. Pass a container inside the surrounding dialog when the\n * pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst PageSizeSelector = ({\n pageSize,\n pageSizeOptions,\n handlePageSizeClick,\n menuPortalContainer,\n}: PageSizeSelectorProps) => {\n const strings = usePDSStrings();\n // Add pageSize to selector just in case it isn't part of the options so UI doesn't look weird\n const pageSizes = [\n ...pageSizeOptions,\n ...(pageSizeOptions.includes(pageSize) ? [] : [pageSize]),\n ].sort((a, b) => a - b);\n\n return (\n <Selector data-test='pagination__page-size-selector'>\n <Label>\n {strings.itemsPerPage}\n <Select\n value={pageSize.toString()}\n onValueChange={(val) => handlePageSizeClick(Number(val))}\n size='sm'\n portal={menuPortalContainer != null}\n portalContainer={menuPortalContainer}\n >\n {pageSizes.map((size) => (\n <Option key={size} value={size.toString()}>\n {size}\n </Option>\n ))}\n </Select>\n </Label>\n </Selector>\n );\n};\n\nexport default PageSizeSelector;\n","import styled from 'styled-components';\n\nimport { Color, Typography } from '@persona/design-tokens';\n\nimport { usePDSStrings } from '#src/lib/i18n';\nimport { semanticColor } from '#src/lib/semanticColor';\n\nimport { DEFAULT_PAGE_SIZE_OPTIONS } from './constants';\nimport PageSelector from './PageSelector';\nimport PageSizeSelector from './PageSizeSelector';\nimport type { PaginationParams } from './types';\n\n// NB: this is configured in config/initializers/kaminari.rb\nconst MAX_PAGES = 100;\n\nconst Container = styled('nav')`\n ${Typography.TextMedium};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const PaginationInfo = styled('div')`\n display: flex;\n align-items: center;\n\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n`;\n\ninterface PaginationProps {\n pageSize?: number;\n pageSizeOptions?: number[];\n paginationParams?: PaginationParams;\n handlePageSizeClick: (pageSize: number) => void;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n showPageSizeSelector?: boolean;\n /**\n * Called with the new page number after the page changes. Lets the consumer\n * react to page changes -- e.g. scroll the page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * Element the page-size menu renders into. Pass a container inside the surrounding dialog when\n * the pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n /**\n * The totals in `paginationParams` are only a lower bound: there are at least that many items\n * and pages, e.g. when the server counts a bounded number of pages ahead. They render as `650+`\n * and `13+`, any page up to `total-pages` can still be typed in, and Next stays enabled past it.\n * `lower-bound` in `paginationParams`, a total that is not known at all, takes precedence.\n */\n totalIsLowerBound?: boolean;\n}\n\nconst Pagination = ({\n pageSize,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n paginationParams,\n handlePageSizeClick,\n handlePageLinkClick,\n isLoading,\n showPageSizeSelector = true,\n onPageChange,\n menuPortalContainer,\n totalIsLowerBound = false,\n}: PaginationProps) => {\n const strings = usePDSStrings();\n\n if (!paginationParams || !pageSize) {\n return <div />;\n }\n\n const {\n 'current-page': currentPage,\n 'total-count': totalCount,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams;\n\n // If the total number of pages is the same as MAX_PAGES, we guess that the total number of\n // items might be limited by max pages, and that the total could change based on page size.\n // To limit user confusion here, we use 'many' instead of a specific number.\n // Paged past the minimum the totals give, how many there are is no longer known: render it like\n // `lower-bound` rather than an item range that ends before it starts.\n const pastKnownTotal = totalIsLowerBound && !lowerBound && currentPage > totalPages;\n const totalUnknown = lowerBound || pastKnownTotal;\n const totalAtLeast = totalIsLowerBound && !totalUnknown;\n const totalCountDisplay =\n totalUnknown || totalPages >= MAX_PAGES\n ? strings.many\n : totalAtLeast\n ? strings.atLeast(totalCount)\n : totalCount;\n\n const lastItemIndex = totalUnknown\n ? currentPage * pageSize\n : Math.min(currentPage * pageSize, totalCount);\n const firstItemIndex = pageSize * (currentPage - 1) + 1;\n\n return (\n <Container role='navigation' aria-label={strings.pagination}>\n {showPageSizeSelector && (\n <PageSizeSelector\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n handlePageSizeClick={handlePageSizeClick}\n menuPortalContainer={menuPortalContainer}\n />\n )}\n {totalCount > 0 && (\n <>\n <div>{strings.showingItems(firstItemIndex, lastItemIndex, totalCountDisplay)}</div>\n <PaginationInfo>\n <PageSelector\n paginationParams={paginationParams}\n handlePageLinkClick={handlePageLinkClick}\n isLoading={isLoading}\n onPageChange={onPageChange}\n totalIsLowerBound={totalIsLowerBound && !lowerBound}\n />\n </PaginationInfo>\n </>\n )}\n </Container>\n );\n};\n\nexport default Pagination;\n","import Pagination from './Pagination';\n\nexport { default as PageSelector, PAGE_LIMIT_BEFORE_SCROLL_MODE } from './PageSelector';\nexport * from './constants';\nexport default Pagination;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as PaginationParams } from "./types-6L0ptM6-.mjs";
1
+ import { t as PaginationParams } from "./types-CRymR_J9.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -44,4 +44,4 @@ declare const Pagination: ({
44
44
  }: PaginationProps) => _$react_jsx_runtime0.JSX.Element;
45
45
  //#endregion
46
46
  export { PaginationInfo as n, Pagination as t };
47
- //# sourceMappingURL=Pagination-Dy-OSH0Y.d.mts.map
47
+ //# sourceMappingURL=Pagination-CCKuudiz.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as PaginationInfo, t as Pagination } from "./Pagination-Dy-OSH0Y.mjs";
1
+ import { n as PaginationInfo, t as Pagination } from "./Pagination-CCKuudiz.mjs";
2
2
  export { PaginationInfo, Pagination as default };
@@ -1,4 +1,4 @@
1
- import { p as FilterSize } from "./types-DbOD5vE_.mjs";
1
+ import { p as FilterSize } from "./types-DLnCkvTt.mjs";
2
2
  import * as _$react from "react";
3
3
  import { HTMLAttributes, ReactNode } from "react";
4
4
 
@@ -82,4 +82,4 @@ interface PillShellProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onClick'
82
82
  declare const PillShell: _$react.ForwardRefExoticComponent<PillShellProps & _$react.RefAttributes<HTMLSpanElement>>;
83
83
  //#endregion
84
84
  export { PillShellProps as n, PillShell as t };
85
- //# sourceMappingURL=PillShell-B35z66jZ.d.mts.map
85
+ //# sourceMappingURL=PillShell-B7Bm-dsE.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as PillShellProps, t as PillShell } from "./PillShell-B35z66jZ.mjs";
1
+ import { n as PillShellProps, t as PillShell } from "./PillShell-B7Bm-dsE.mjs";
2
2
  export { PillShellProps, PillShell as default };
@@ -63,4 +63,4 @@ declare const ProgressIndicator: ({
63
63
  }: ProgressIndicatorProps) => _$react_jsx_runtime0.JSX.Element;
64
64
  //#endregion
65
65
  export { StepStatus as i, ProgressIndicatorProps as n, ProgressIndicatorStep as r, ProgressIndicator as t };
66
- //# sourceMappingURL=ProgressIndicator-COCwRZfK.d.mts.map
66
+ //# sourceMappingURL=ProgressIndicator-BoB5JOfV.d.mts.map
@@ -185,4 +185,4 @@ const ProgressIndicator = ({ steps, activeStepId, layout = "vertical", onStepCli
185
185
  //#endregion
186
186
  export { ProgressIndicator as t };
187
187
 
188
- //# sourceMappingURL=ProgressIndicator-ISARECzW.mjs.map
188
+ //# sourceMappingURL=ProgressIndicator-zt3ndT9U.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicator-ISARECzW.mjs","names":[],"sources":["../src/components/ProgressIndicator/ProgressIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css, useTheme } from 'styled-components';\n\nimport { focusOutline } from '@persona/design-system/mixins/focus';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleNullIcon,\n CircleWarningFillIcon,\n WarningFillIcon,\n} from '@persona/icons';\nimport type { PDSIconComponent } from '@persona/icons/types';\n\nimport { withAlpha } from '#src/lib/color';\nimport { type MaybeSemanticTheme, semanticColor, semanticTokens } from '#src/lib/semanticColor';\n\nexport type StepStatus = 'uncompleted' | 'completed' | 'warning' | 'error';\n\nexport interface ProgressIndicatorStep {\n id: string;\n label: string;\n /** @default 'uncompleted' */\n status?: StepStatus;\n disabled?: boolean;\n}\n\nexport interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {\n steps: ProgressIndicatorStep[];\n /** id of the step that should receive the active visual state */\n activeStepId?: string;\n /** @default 'vertical' */\n layout?: 'vertical' | 'horizontal';\n /**\n * Called when a clickable step is activated via click or keyboard.\n *\n * Clickability rules:\n * - `completed`, `warning`, and `error` steps are clickable (navigate back to review/edit)\n * - The active step is not clickable (user is already there)\n * - Upcoming `uncompleted` steps are not clickable (sequential progression required)\n */\n onStepClick?: (stepId: string) => void;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Completed, warning, and error steps can be navigated back to.\n * The current step (first uncompleted or error) is also clickable so the user can\n * return to it after navigating back to an earlier step.\n * Active and upcoming steps (beyond the current) are not clickable.\n */\nfunction resolveClickable(\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n isCurrent: boolean,\n): boolean {\n if (isDisabled || isActive) {\n return false;\n }\n return status === 'completed' || status === 'warning' || status === 'error' || isCurrent;\n}\n\nfunction resolveIcon(status: StepStatus, isCurrent: boolean): PDSIconComponent {\n if (status === 'completed') {\n return CircleCheckFillIcon;\n }\n if (status === 'warning') {\n return WarningFillIcon;\n }\n if (status === 'error') {\n return CircleWarningFillIcon;\n }\n if (isCurrent) {\n return CircleFillIcon;\n }\n return CircleNullIcon;\n}\n\nfunction resolveIconColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled);\n }\n if (status === 'completed') {\n return semanticColor(theme, 'StatusSuccess3', Color.BorderIconSuccess);\n }\n if (status === 'warning') {\n return semanticColor(theme, 'FgWarning1', Color.BorderIconWarning);\n }\n if (status === 'error') {\n return semanticColor(theme, 'StatusDanger4', Color.BorderIconDanger);\n }\n return isActive\n ? semanticColor(theme, 'FgAccent', Color.BorderIconActive)\n : semanticColor(theme, 'FgSecondary', Color.BorderIconSecondary);\n}\n\nfunction resolveTextColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.TextDisabled);\n }\n if (isActive) {\n return semanticColor(theme, 'FgAccent', Color.TextActive);\n }\n if (status === 'uncompleted') {\n return semanticColor(theme, 'FgSecondary', Color.TextSecondary);\n }\n return semanticColor(theme, 'FgPrimary', Color.TextPrimary);\n}\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst StepList = styled.ol<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n flex-direction: ${({ $layout }) => ($layout === 'horizontal' ? 'row' : 'column')};\n gap: ${({ $layout }) => ($layout === 'horizontal' ? Spacing[2] : '0px')};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst StepItem = styled.li<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n align-items: center;\n\n ${({ $layout }) =>\n $layout === 'horizontal' &&\n css`\n width: fit-content;\n white-space: nowrap;\n `}\n`;\n\nconst StepContent = styled.button<{\n $isActive: boolean;\n $isClickable: boolean;\n $interactive: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n width: 100%;\n padding: ${Spacing[2]};\n border-radius: ${BorderRadius.Md};\n border: none;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n outline: none;\n cursor: ${({ $isClickable, $interactive }) => ($interactive && $isClickable ? 'pointer' : 'default')};\n\n ${({ theme, $isActive, $isClickable, $interactive }) => {\n const tokens = semanticTokens(theme);\n if ($isActive) {\n return css`\n background-color: ${\n tokens\n ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25)\n : Color.BackgroundInteractiveActive\n };\n `;\n }\n if ($interactive && $isClickable) {\n return css`\n background-color: ${tokens ? 'transparent' : Color.BackgroundInteractiveDefault};\n &:hover {\n background-color: ${semanticColor(theme, 'SurfaceSecondary', Color.BackgroundInteractiveHover)};\n }\n `;\n }\n return css`\n background-color: transparent;\n `;\n }}\n\n ${focusOutline}\n\n &:focus-visible {\n position: relative;\n z-index: 1;\n }\n`;\n\nconst IconWrapper = styled.span<{ $color: string }>`\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: ${({ $color }) => $color};\n line-height: 0;\n`;\n\nconst StepLabel = styled.span<{ $isActive: boolean; $color: string }>`\n ${({ $isActive }) => ($isActive ? paragraphMixins.mdBold : paragraphMixins.md)};\n color: ${({ $color }) => $color};\n`;\n\n// ─── Step ─────────────────────────────────────────────────────────────────────\n\ninterface StepProps {\n step: ProgressIndicatorStep;\n isActive: boolean;\n isCurrent: boolean;\n layout: 'vertical' | 'horizontal';\n onStepClick?: (stepId: string) => void;\n}\n\nconst Step = ({ step, isActive, isCurrent, layout, onStepClick }: StepProps) => {\n const { id, label, status = 'uncompleted', disabled = false } = step;\n\n const interactive = Boolean(onStepClick);\n const isClickable = resolveClickable(status, isActive, disabled, isCurrent);\n const isInteractionDisabled = disabled || (!isActive && !isCurrent && status === 'uncompleted');\n const theme = useTheme();\n const iconColor = resolveIconColor(theme, status, isActive, disabled);\n const textColor = resolveTextColor(theme, status, isActive, disabled);\n\n const Icon = resolveIcon(status, isCurrent);\n\n return (\n <StepItem\n $layout={layout}\n aria-current={!interactive && isActive ? 'step' : undefined}\n aria-disabled={!interactive && isInteractionDisabled ? true : undefined}\n >\n <StepContent\n {...(interactive && isClickable\n ? { type: 'button' as const, onClick: () => onStepClick?.(id) }\n : { as: 'div' as const })}\n aria-current={interactive && isActive ? 'step' : undefined}\n aria-disabled={interactive && isInteractionDisabled ? true : undefined}\n $isActive={isActive}\n $isClickable={isClickable}\n $interactive={interactive}\n >\n <IconWrapper $color={iconColor} aria-hidden='true'>\n <Icon />\n </IconWrapper>\n <StepLabel $isActive={isActive} $color={textColor}>\n {label}\n </StepLabel>\n </StepContent>\n </StepItem>\n );\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * ProgressIndicator guides users through a sequence of steps.\n *\n * Interaction rules:\n * - **Completed / warning / error** steps are clickable — navigate back to review or fix.\n * - **Warning** does not block forward progression; later uncompleted steps remain reachable.\n * - **Error** blocks forward progression — treat it as the terminal step in the sequence.\n * - **Active** step is not clickable — the user is already there.\n * - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.\n *\n * Navigation does not clear later steps. If a change on an earlier step\n * invalidates later data, the affected steps should be flagged and require\n * re-confirmation before submission — this logic lives in the consuming component.\n *\n * @example\n * ```tsx\n * <ProgressIndicator\n * steps={[\n * { id: 'identity', label: 'Identity', status: 'completed' },\n * { id: 'address', label: 'Address', status: 'uncompleted' },\n * { id: 'review', label: 'Review', status: 'uncompleted' },\n * ]}\n * activeStepId=\"address\"\n * onStepClick={(id) => navigate(id)}\n * />\n * ```\n */\nexport const ProgressIndicator = ({\n steps,\n activeStepId,\n layout = 'vertical',\n onStepClick,\n 'aria-label': ariaLabel = 'Progress',\n ...rest\n}: ProgressIndicatorProps) => {\n // The \"current\" step is the first uncompleted or error step — where the user should work next.\n // Warning steps are skipped so forward progression is not blocked.\n // This is independent of activeStepId, which only controls the visual highlight.\n const currentStepId = steps.find(\n ({ status = 'uncompleted' }) => status === 'uncompleted' || status === 'error',\n )?.id;\n\n return (\n <StepList $layout={layout} role='list' aria-label={ariaLabel} {...rest}>\n {steps.map((step) => (\n <Step\n key={step.id}\n step={step}\n isActive={step.id === activeStepId}\n isCurrent={step.id === currentStepId}\n layout={layout}\n onStepClick={onStepClick}\n />\n ))}\n </StepList>\n );\n};\n\nexport default ProgressIndicator;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicator-zt3ndT9U.mjs","names":[],"sources":["../src/components/ProgressIndicator/ProgressIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css, useTheme } from 'styled-components';\n\nimport { focusOutline } from '@persona/design-system/mixins/focus';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleNullIcon,\n CircleWarningFillIcon,\n WarningFillIcon,\n} from '@persona/icons';\nimport type { PDSIconComponent } from '@persona/icons/types';\n\nimport { withAlpha } from '#src/lib/color';\nimport { type MaybeSemanticTheme, semanticColor, semanticTokens } from '#src/lib/semanticColor';\n\nexport type StepStatus = 'uncompleted' | 'completed' | 'warning' | 'error';\n\nexport interface ProgressIndicatorStep {\n id: string;\n label: string;\n /** @default 'uncompleted' */\n status?: StepStatus;\n disabled?: boolean;\n}\n\nexport interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {\n steps: ProgressIndicatorStep[];\n /** id of the step that should receive the active visual state */\n activeStepId?: string;\n /** @default 'vertical' */\n layout?: 'vertical' | 'horizontal';\n /**\n * Called when a clickable step is activated via click or keyboard.\n *\n * Clickability rules:\n * - `completed`, `warning`, and `error` steps are clickable (navigate back to review/edit)\n * - The active step is not clickable (user is already there)\n * - Upcoming `uncompleted` steps are not clickable (sequential progression required)\n */\n onStepClick?: (stepId: string) => void;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Completed, warning, and error steps can be navigated back to.\n * The current step (first uncompleted or error) is also clickable so the user can\n * return to it after navigating back to an earlier step.\n * Active and upcoming steps (beyond the current) are not clickable.\n */\nfunction resolveClickable(\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n isCurrent: boolean,\n): boolean {\n if (isDisabled || isActive) {\n return false;\n }\n return status === 'completed' || status === 'warning' || status === 'error' || isCurrent;\n}\n\nfunction resolveIcon(status: StepStatus, isCurrent: boolean): PDSIconComponent {\n if (status === 'completed') {\n return CircleCheckFillIcon;\n }\n if (status === 'warning') {\n return WarningFillIcon;\n }\n if (status === 'error') {\n return CircleWarningFillIcon;\n }\n if (isCurrent) {\n return CircleFillIcon;\n }\n return CircleNullIcon;\n}\n\nfunction resolveIconColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled);\n }\n if (status === 'completed') {\n return semanticColor(theme, 'StatusSuccess3', Color.BorderIconSuccess);\n }\n if (status === 'warning') {\n return semanticColor(theme, 'FgWarning1', Color.BorderIconWarning);\n }\n if (status === 'error') {\n return semanticColor(theme, 'StatusDanger4', Color.BorderIconDanger);\n }\n return isActive\n ? semanticColor(theme, 'FgAccent', Color.BorderIconActive)\n : semanticColor(theme, 'FgSecondary', Color.BorderIconSecondary);\n}\n\nfunction resolveTextColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.TextDisabled);\n }\n if (isActive) {\n return semanticColor(theme, 'FgAccent', Color.TextActive);\n }\n if (status === 'uncompleted') {\n return semanticColor(theme, 'FgSecondary', Color.TextSecondary);\n }\n return semanticColor(theme, 'FgPrimary', Color.TextPrimary);\n}\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst StepList = styled.ol<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n flex-direction: ${({ $layout }) => ($layout === 'horizontal' ? 'row' : 'column')};\n gap: ${({ $layout }) => ($layout === 'horizontal' ? Spacing[2] : '0px')};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst StepItem = styled.li<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n align-items: center;\n\n ${({ $layout }) =>\n $layout === 'horizontal' &&\n css`\n width: fit-content;\n white-space: nowrap;\n `}\n`;\n\nconst StepContent = styled.button<{\n $isActive: boolean;\n $isClickable: boolean;\n $interactive: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n width: 100%;\n padding: ${Spacing[2]};\n border-radius: ${BorderRadius.Md};\n border: none;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n outline: none;\n cursor: ${({ $isClickable, $interactive }) => ($interactive && $isClickable ? 'pointer' : 'default')};\n\n ${({ theme, $isActive, $isClickable, $interactive }) => {\n const tokens = semanticTokens(theme);\n if ($isActive) {\n return css`\n background-color: ${\n tokens\n ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25)\n : Color.BackgroundInteractiveActive\n };\n `;\n }\n if ($interactive && $isClickable) {\n return css`\n background-color: ${tokens ? 'transparent' : Color.BackgroundInteractiveDefault};\n &:hover {\n background-color: ${semanticColor(theme, 'SurfaceSecondary', Color.BackgroundInteractiveHover)};\n }\n `;\n }\n return css`\n background-color: transparent;\n `;\n }}\n\n ${focusOutline}\n\n &:focus-visible {\n position: relative;\n z-index: 1;\n }\n`;\n\nconst IconWrapper = styled.span<{ $color: string }>`\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: ${({ $color }) => $color};\n line-height: 0;\n`;\n\nconst StepLabel = styled.span<{ $isActive: boolean; $color: string }>`\n ${({ $isActive }) => ($isActive ? paragraphMixins.mdBold : paragraphMixins.md)};\n color: ${({ $color }) => $color};\n`;\n\n// ─── Step ─────────────────────────────────────────────────────────────────────\n\ninterface StepProps {\n step: ProgressIndicatorStep;\n isActive: boolean;\n isCurrent: boolean;\n layout: 'vertical' | 'horizontal';\n onStepClick?: (stepId: string) => void;\n}\n\nconst Step = ({ step, isActive, isCurrent, layout, onStepClick }: StepProps) => {\n const { id, label, status = 'uncompleted', disabled = false } = step;\n\n const interactive = Boolean(onStepClick);\n const isClickable = resolveClickable(status, isActive, disabled, isCurrent);\n const isInteractionDisabled = disabled || (!isActive && !isCurrent && status === 'uncompleted');\n const theme = useTheme();\n const iconColor = resolveIconColor(theme, status, isActive, disabled);\n const textColor = resolveTextColor(theme, status, isActive, disabled);\n\n const Icon = resolveIcon(status, isCurrent);\n\n return (\n <StepItem\n $layout={layout}\n aria-current={!interactive && isActive ? 'step' : undefined}\n aria-disabled={!interactive && isInteractionDisabled ? true : undefined}\n >\n <StepContent\n {...(interactive && isClickable\n ? { type: 'button' as const, onClick: () => onStepClick?.(id) }\n : { as: 'div' as const })}\n aria-current={interactive && isActive ? 'step' : undefined}\n aria-disabled={interactive && isInteractionDisabled ? true : undefined}\n $isActive={isActive}\n $isClickable={isClickable}\n $interactive={interactive}\n >\n <IconWrapper $color={iconColor} aria-hidden='true'>\n <Icon />\n </IconWrapper>\n <StepLabel $isActive={isActive} $color={textColor}>\n {label}\n </StepLabel>\n </StepContent>\n </StepItem>\n );\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * ProgressIndicator guides users through a sequence of steps.\n *\n * Interaction rules:\n * - **Completed / warning / error** steps are clickable — navigate back to review or fix.\n * - **Warning** does not block forward progression; later uncompleted steps remain reachable.\n * - **Error** blocks forward progression — treat it as the terminal step in the sequence.\n * - **Active** step is not clickable — the user is already there.\n * - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.\n *\n * Navigation does not clear later steps. If a change on an earlier step\n * invalidates later data, the affected steps should be flagged and require\n * re-confirmation before submission — this logic lives in the consuming component.\n *\n * @example\n * ```tsx\n * <ProgressIndicator\n * steps={[\n * { id: 'identity', label: 'Identity', status: 'completed' },\n * { id: 'address', label: 'Address', status: 'uncompleted' },\n * { id: 'review', label: 'Review', status: 'uncompleted' },\n * ]}\n * activeStepId=\"address\"\n * onStepClick={(id) => navigate(id)}\n * />\n * ```\n */\nexport const ProgressIndicator = ({\n steps,\n activeStepId,\n layout = 'vertical',\n onStepClick,\n 'aria-label': ariaLabel = 'Progress',\n ...rest\n}: ProgressIndicatorProps) => {\n // The \"current\" step is the first uncompleted or error step — where the user should work next.\n // Warning steps are skipped so forward progression is not blocked.\n // This is independent of activeStepId, which only controls the visual highlight.\n const currentStepId = steps.find(\n ({ status = 'uncompleted' }) => status === 'uncompleted' || status === 'error',\n )?.id;\n\n return (\n <StepList $layout={layout} role='list' aria-label={ariaLabel} {...rest}>\n {steps.map((step) => (\n <Step\n key={step.id}\n step={step}\n isActive={step.id === activeStepId}\n isCurrent={step.id === currentStepId}\n layout={layout}\n onStepClick={onStepClick}\n />\n ))}\n </StepList>\n );\n};\n\nexport default ProgressIndicator;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { i as StepStatus, n as ProgressIndicatorProps, r as ProgressIndicatorStep, t as ProgressIndicator } from "./ProgressIndicator-COCwRZfK.mjs";
1
+ import { i as StepStatus, n as ProgressIndicatorProps, r as ProgressIndicatorStep, t as ProgressIndicator } from "./ProgressIndicator-BoB5JOfV.mjs";
2
2
  export { ProgressIndicator, ProgressIndicator as default, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus };
@@ -9,4 +9,4 @@ interface PseudoClassProps {
9
9
  }
10
10
  //#endregion
11
11
  export { PseudoClassProps as t };
12
- //# sourceMappingURL=PseudoClassProps-D_f-JUT1.d.mts.map
12
+ //# sourceMappingURL=PseudoClassProps-CIuO49a4.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as PseudoClassProps } from "./PseudoClassProps-D_f-JUT1.mjs";
1
+ import { t as PseudoClassProps } from "./PseudoClassProps-CIuO49a4.mjs";
2
2
  export { PseudoClassProps as default };
@@ -18,4 +18,4 @@ interface RadioGroupProps extends ComponentPropsWithoutRef<'div'> {
18
18
  declare const RadioGroup: VFC<RadioGroupProps>;
19
19
  //#endregion
20
20
  export { RadioGroupProps as n, RadioGroup as t };
21
- //# sourceMappingURL=RadioGroup-pyGpWhhj.d.mts.map
21
+ //# sourceMappingURL=RadioGroup-D_z37ZOU.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as RadioGroupProps, t as RadioGroup } from "./RadioGroup-pyGpWhhj.mjs";
1
+ import { n as RadioGroupProps, t as RadioGroup } from "./RadioGroup-D_z37ZOU.mjs";
2
2
  export { RadioGroup, RadioGroup as default, RadioGroupProps };
@@ -1,4 +1,4 @@
1
- import { a as DateFilterPreset } from "./types-rDQg74j-.mjs";
1
+ import { a as DateFilterPreset } from "./types-DQVUNrrN.mjs";
2
2
  import { Ref } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { DateRange, RangeCalendarProps } from "react-aria";
@@ -37,4 +37,4 @@ declare const RangeCalendar: ({
37
37
  }: RangeCalendarProps$1) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { RangeCalendarProps$1 as n, RangeCalendar as t };
40
- //# sourceMappingURL=RangeCalendar-BiugsdSP.d.mts.map
40
+ //# sourceMappingURL=RangeCalendar-CLCp70w6.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as RangeCalendarProps, t as RangeCalendar } from "./RangeCalendar-BiugsdSP.mjs";
1
+ import { n as RangeCalendarProps, t as RangeCalendar } from "./RangeCalendar-CLCp70w6.mjs";
2
2
  export { RangeCalendarProps, RangeCalendar as default };
@@ -1,4 +1,4 @@
1
- import { a as DateFilterPreset } from "./types-rDQg74j-.mjs";
1
+ import { a as DateFilterPreset } from "./types-DQVUNrrN.mjs";
2
2
  import * as _$react from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { RangeCalendarState } from "react-stately";
@@ -1,4 +1,4 @@
1
- import { n as RouterAdapter } from "./types-Dhz6VMKx.mjs";
1
+ import { n as RouterAdapter } from "./types-BRYGqFVm.mjs";
2
2
  import * as _$react from "react";
3
3
  import { FC, PropsWithChildren } from "react";
4
4
 
@@ -8,4 +8,4 @@ declare const RouterProvider: FC<PropsWithChildren<RouterAdapter>>;
8
8
  declare const useRouter: () => RouterAdapter | null;
9
9
  //#endregion
10
10
  export { RouterProvider as n, useRouter as r, RouterContext as t };
11
- //# sourceMappingURL=RouterContext-BUdfr1it.d.mts.map
11
+ //# sourceMappingURL=RouterContext-DchdVyIX.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as RouterProvider, r as useRouter, t as RouterContext } from "./RouterContext-BUdfr1it.mjs";
1
+ import { n as RouterProvider, r as useRouter, t as RouterContext } from "./RouterContext-DchdVyIX.mjs";
2
2
  export { RouterContext, RouterProvider, useRouter };
@@ -1,8 +1,8 @@
1
- import { r as RouterLinkComponentProps } from "./types-Dhz6VMKx.mjs";
1
+ import { r as RouterLinkComponentProps } from "./types-BRYGqFVm.mjs";
2
2
  import * as _$react from "react";
3
3
 
4
4
  //#region src/lib/router/RouterLink.d.ts
5
5
  declare const RouterLink: _$react.ForwardRefExoticComponent<Omit<RouterLinkComponentProps, "ref"> & _$react.RefAttributes<HTMLAnchorElement>>;
6
6
  //#endregion
7
7
  export { RouterLink as t };
8
- //# sourceMappingURL=RouterLink-BKbfvJcM.d.mts.map
8
+ //# sourceMappingURL=RouterLink-B6ikC5Kq.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as RouterLink } from "./RouterLink-BKbfvJcM.mjs";
1
+ import { t as RouterLink } from "./RouterLink-B6ikC5Kq.mjs";
2
2
  export { RouterLink as default };
@@ -1,5 +1,5 @@
1
- import { d as FilterRuleValue, f as FilterRuleValueChange, l as FilterOperator, o as FilterField, p as FilterSize, u as FilterRule } from "./types-DbOD5vE_.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-a44G08fS.mjs";
1
+ import { d as FilterRuleValue, f as FilterRuleValueChange, l as FilterOperator, o as FilterField, p as FilterSize, u as FilterRule } from "./types-DLnCkvTt.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-C2NVPhMO.mjs";
3
3
  import { ReactNode } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -1,4 +1,4 @@
1
- import { n as CompoundExpression, p as FilterSize } from "./types-DbOD5vE_.mjs";
1
+ import { n as CompoundExpression, p as FilterSize } from "./types-DLnCkvTt.mjs";
2
2
  import * as _$react from "react";
3
3
  import { HTMLAttributes } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- import { n as InputSizes } from "./input-gtTnb9M8.mjs";
1
+ import { n as InputSizes } from "./input-JDU1Goyr.mjs";
2
2
  import { FocusEventHandler, ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -50,4 +50,4 @@ declare const SearchInput: ({
50
50
  }: OmniSearchProps) => _$react_jsx_runtime0.JSX.Element;
51
51
  //#endregion
52
52
  export { SearchInput as n, OmniSearchProps as t };
53
- //# sourceMappingURL=SearchInput-BejaiGsS.d.mts.map
53
+ //# sourceMappingURL=SearchInput-D42v7MLp.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as SearchInput, t as OmniSearchProps } from "./SearchInput-BejaiGsS.mjs";
1
+ import { n as SearchInput, t as OmniSearchProps } from "./SearchInput-D42v7MLp.mjs";
2
2
  export { OmniSearchProps, SearchInput as default };
@@ -1,4 +1,4 @@
1
- import { i as TextAction, n as IconAction, r as MenuAction } from "./Action-Bmo8B-Q3.mjs";
1
+ import { i as TextAction, n as IconAction, r as MenuAction } from "./Action-CHWYwpYR.mjs";
2
2
  import { ComponentPropsWithoutRef, FC, ReactElement, ReactNode } from "react";
3
3
 
4
4
  //#region src/components/CardV2/SectionHeading.d.ts
@@ -57,4 +57,4 @@ interface SegmentedControlItemProps extends Omit<ToggleButtonProps, 'isDisabled'
57
57
  declare const SegmentedControlItem: _$react.ForwardRefExoticComponent<SegmentedControlItemProps & _$react.RefAttributes<HTMLButtonElement>>;
58
58
  //#endregion
59
59
  export { SegmentedControlProps as i, SegmentedControlItem as n, SegmentedControlItemProps as r, SegmentedControl as t };
60
- //# sourceMappingURL=SegmentedControl-UV03Ujqn.d.mts.map
60
+ //# sourceMappingURL=SegmentedControl-yVK6kkcx.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as SegmentedControlProps, n as SegmentedControlItem, r as SegmentedControlItemProps, t as SegmentedControl } from "./SegmentedControl-UV03Ujqn.mjs";
1
+ import { i as SegmentedControlProps, n as SegmentedControlItem, r as SegmentedControlItemProps, t as SegmentedControl } from "./SegmentedControl-yVK6kkcx.mjs";
2
2
  export { SegmentedControl, SegmentedControl as default, SegmentedControlItem, SegmentedControlItemProps, SegmentedControlProps };
@@ -1,5 +1,5 @@
1
- import { l as MenuItemProps } from "./Menu-ByYFNvgS.mjs";
2
- import { n as InputSizes, t as InputMixinProps } from "./input-gtTnb9M8.mjs";
1
+ import { l as MenuItemProps } from "./Menu-BfjvH8mr.mjs";
2
+ import { n as InputSizes, t as InputMixinProps } from "./input-JDU1Goyr.mjs";
3
3
  import * as _$react from "react";
4
4
  import { ReactNode } from "react";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -80,4 +80,4 @@ declare const Select: _$react.ForwardRefExoticComponent<SelectProps & _$react.Re
80
80
  declare const Option: _$react.ForwardRefExoticComponent<SelectPrimitive.SelectItemProps & MenuItemProps<"div"> & _$react.RefAttributes<HTMLDivElement>>;
81
81
  //#endregion
82
82
  export { SelectProps as i, Select as n, SelectHeader as r, Option as t };
83
- //# sourceMappingURL=Select-BLqHxJUz.d.mts.map
83
+ //# sourceMappingURL=Select-CaG6OQi1.d.mts.map
package/dist/Select.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-BLqHxJUz.mjs";
1
+ import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-CaG6OQi1.mjs";
2
2
  export { Option, Select, Select as default, SelectHeader, SelectProps };
@@ -1,4 +1,4 @@
1
- import { t as PageLayoutChromeProps } from "./PageLayoutFrame-CQLREOBH.mjs";
1
+ import { t as PageLayoutChromeProps } from "./PageLayoutFrame-4QGs7x-t.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -13,4 +13,4 @@ declare const SingleColumnLayout: ({
13
13
  }: SingleColumnLayoutProps) => _$react_jsx_runtime0.JSX.Element;
14
14
  //#endregion
15
15
  export { SingleColumnLayoutProps as n, SingleColumnLayout as t };
16
- //# sourceMappingURL=SingleColumnLayout-DBo35psH.d.mts.map
16
+ //# sourceMappingURL=SingleColumnLayout-D2bpX7X1.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as SingleColumnLayoutProps, t as SingleColumnLayout } from "./SingleColumnLayout-DBo35psH.mjs";
1
+ import { n as SingleColumnLayoutProps, t as SingleColumnLayout } from "./SingleColumnLayout-D2bpX7X1.mjs";
2
2
  export { SingleColumnLayout, SingleColumnLayoutProps };
@@ -1,9 +1,9 @@
1
- import { t as ASTNode } from "./types-dmItSshr.mjs";
2
- import { dt as ObjectSchemaMap, n as JsonSchema, st as FunctionJsonSchema } from "./jsonSchema-DUkfAip_.mjs";
3
- import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-aF5rWav-.mjs";
4
- import { a as Mode, i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, s as PopoverFooterRenderer, t as CodeChainFunctionPanelRenderProps, u as ValueType } from "./types-XjJqUj-p.mjs";
5
- import { n as useChain } from "./useChain-7ztbfujM.mjs";
6
- import { t as ContextMenuExamples } from "./listbox-options-CkwENvff.mjs";
1
+ import { t as ASTNode } from "./types-DeVO4sCM.mjs";
2
+ import { dt as ObjectSchemaMap, n as JsonSchema, st as FunctionJsonSchema } from "./jsonSchema-C4lfpDrt.mjs";
3
+ import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-C5mXGz6T.mjs";
4
+ import { a as Mode, i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, s as PopoverFooterRenderer, t as CodeChainFunctionPanelRenderProps, u as ValueType } from "./types-02Ij0dgs.mjs";
5
+ import { n as useChain } from "./useChain-B--KAtdN.mjs";
6
+ import { t as ContextMenuExamples } from "./listbox-options-CDAOiyUH.mjs";
7
7
  import { ReactNode } from "react";
8
8
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
9
9
 
@@ -1,5 +1,5 @@
1
- import { o as ImplementsFormField } from "./inputFields-Dfpxi68z.mjs";
2
- import { n as TableBoxField } from "./TableBoxField-C7MGSie9.mjs";
1
+ import { o as ImplementsFormField } from "./inputFields-BnCdmuBt.mjs";
2
+ import { n as TableBoxField } from "./TableBoxField-0uIGzBhF.mjs";
3
3
  import SmartTextInput from "./SmartTextInput.mjs";
4
4
  import { CSSProperties, ComponentProps } from "react";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
- import { i as StackProps } from "./Stack-DrYxBkiF.mjs";
2
- import { s as MethodChainNode } from "./methodChainTypes-BtbYWrdP.mjs";
3
- import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-aF5rWav-.mjs";
4
- import { i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, o as OpenCodeChainFunctionPanel, r as FunctionAtCursor } from "./types-XjJqUj-p.mjs";
1
+ import { i as StackProps } from "./Stack-CODxfzhl.mjs";
2
+ import { s as MethodChainNode } from "./methodChainTypes-De6sHGyd.mjs";
3
+ import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-C5mXGz6T.mjs";
4
+ import { i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, o as OpenCodeChainFunctionPanel, r as FunctionAtCursor } from "./types-02Ij0dgs.mjs";
5
5
  import * as _$styled_components0 from "styled-components";
6
6
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
7
 
@@ -1,5 +1,5 @@
1
- import { a as Mode } from "./types-XjJqUj-p.mjs";
2
- import { a as SmartTextInputOption } from "./listbox-options-CkwENvff.mjs";
1
+ import { a as Mode } from "./types-02Ij0dgs.mjs";
2
+ import { a as SmartTextInputOption } from "./listbox-options-CDAOiyUH.mjs";
3
3
  import { ListBoxProps } from "react-aria-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { ComboBoxState } from "react-stately";
@@ -1,4 +1,4 @@
1
- import { a as SmartTextInputOption } from "./listbox-options-CkwENvff.mjs";
1
+ import { a as SmartTextInputOption } from "./listbox-options-CDAOiyUH.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";
@@ -1,4 +1,4 @@
1
- import { t as PageLayoutChromeProps } from "./PageLayoutFrame-CQLREOBH.mjs";
1
+ import { t as PageLayoutChromeProps } from "./PageLayoutFrame-4QGs7x-t.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -16,4 +16,4 @@ declare const SplitColumnLayout: ({
16
16
  }: SplitColumnLayoutProps) => _$react_jsx_runtime0.JSX.Element;
17
17
  //#endregion
18
18
  export { SplitColumnLayoutProps as n, SplitColumnLayout as t };
19
- //# sourceMappingURL=SplitColumnLayout-C6m_mwdf.d.mts.map
19
+ //# sourceMappingURL=SplitColumnLayout-CRDSDHHm.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as SplitColumnLayoutProps, t as SplitColumnLayout } from "./SplitColumnLayout-C6m_mwdf.mjs";
1
+ import { n as SplitColumnLayoutProps, t as SplitColumnLayout } from "./SplitColumnLayout-CRDSDHHm.mjs";
2
2
  export { SplitColumnLayout, SplitColumnLayoutProps };
@@ -44,4 +44,4 @@ type HStackProps = ComponentPropsWithoutRef<'div'> & StackProps;
44
44
  declare const HStack: (props: HStackProps) => _$react_jsx_runtime0.JSX.Element;
45
45
  //#endregion
46
46
  export { StackProps as i, HStackProps as n, Stack as r, HStack as t };
47
- //# sourceMappingURL=Stack-DrYxBkiF.d.mts.map
47
+ //# sourceMappingURL=Stack-CODxfzhl.d.mts.map
package/dist/Stack.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { i as StackProps, n as HStackProps, r as Stack, t as HStack } from "./Stack-DrYxBkiF.mjs";
1
+ import { i as StackProps, n as HStackProps, r as Stack, t as HStack } from "./Stack-CODxfzhl.mjs";
2
2
  export { HStack, HStackProps, Stack, Stack as default, StackProps };
@@ -312,4 +312,4 @@ const StatusIndicator = ({ status, type, background = "filled", showIcon = true,
312
312
  //#endregion
313
313
  export { StatusIndicator as n, STATUSES as t };
314
314
 
315
- //# sourceMappingURL=StatusIndicator-pWl1-FLb.mjs.map
315
+ //# sourceMappingURL=StatusIndicator-Zf75KK3O.mjs.map