@persona/design-system 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +9 -9
  3. package/dist/Accordion.d.mts +38 -0
  4. package/dist/AccordionItem.d.mts +31 -0
  5. package/dist/{Action-C7INft7X.d.mts → Action-B-AiHknZ.d.mts} +3 -3
  6. package/dist/Action.d.mts +1 -1
  7. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  8. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  9. package/dist/ArrayValueControl.d.mts +1 -1
  10. package/dist/Attribute.d.mts +3 -3
  11. package/dist/{Badge-BD0Ut46g.mjs → Badge-COqUjFQu.mjs} +2 -2
  12. package/dist/{Badge-BD0Ut46g.mjs.map → Badge-COqUjFQu.mjs.map} +1 -1
  13. package/dist/BooleanValueControl.d.mts +1 -1
  14. package/dist/{Breadcrumb-DtW1R9xW.d.mts → Breadcrumb-DRFY46ZW.d.mts} +1 -1
  15. package/dist/Breadcrumb.d.mts +1 -1
  16. package/dist/{Breadcrumbs-B6JyoS8n.d.mts → Breadcrumbs-DUSbT1I7.d.mts} +2 -2
  17. package/dist/{Breadcrumbs-CrXfUK1V.mjs → Breadcrumbs-DXS7rU7_.mjs} +5 -5
  18. package/dist/{Breadcrumbs-CrXfUK1V.mjs.map → Breadcrumbs-DXS7rU7_.mjs.map} +1 -1
  19. package/dist/Breadcrumbs.d.mts +1 -1
  20. package/dist/{Button-HodDf_bB.d.mts → Button-xZ6DC5XC.d.mts} +4 -4
  21. package/dist/Button.d.mts +1 -1
  22. package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-dPmo2dkj.d.mts} +1 -1
  23. package/dist/Calendar.d.mts +1 -1
  24. package/dist/CalendarBase.d.mts +1 -1
  25. package/dist/{Card-CpDwATnX.d.mts → Card-CUeM8Lh8.d.mts} +3 -3
  26. package/dist/Card.d.mts +1 -1
  27. package/dist/{CardV2-M3o4BELp.mjs → CardV2-D9p7D7jX.mjs} +9 -7
  28. package/dist/{CardV2-M3o4BELp.mjs.map → CardV2-D9p7D7jX.mjs.map} +1 -1
  29. package/dist/{Checkbox-CyWXhuby.mjs → Checkbox-DQynkc_I.mjs} +3 -3
  30. package/dist/{Checkbox-CyWXhuby.mjs.map → Checkbox-DQynkc_I.mjs.map} +1 -1
  31. package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-DoJpxPEz.d.mts} +1 -1
  32. package/dist/Checkbox.d.mts +1 -1
  33. package/dist/CheckboxGroupField.d.mts +1 -1
  34. package/dist/ChoicesValueControl.d.mts +1 -1
  35. package/dist/{Combobox-1M6EwVmq.mjs → Combobox-C_kCY3P3.mjs} +28 -12
  36. package/dist/Combobox-C_kCY3P3.mjs.map +1 -0
  37. package/dist/{Combobox-DyNllwt8.d.mts → Combobox-D7hyf-jA.d.mts} +3 -3
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-B3YqkjQp.d.mts → ComboboxBase-BMCY6O7Y.d.mts} +10 -5
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-BuwVssvZ.d.mts → ComboboxMultiSelect-L0KYMkmm.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-gJC4v7ER.d.mts → ComboboxSingleSelect-v5oNrJ7M.d.mts} +4 -4
  44. package/dist/ComboboxSingleSelect.d.mts +1 -1
  45. package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-DjFaUAsN.d.mts} +4 -4
  46. package/dist/CompactBar.d.mts +1 -1
  47. package/dist/{ConfigFormGroup-Cz7GeTYd.mjs → ConfigFormGroup-DLOZOuLf.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-Cz7GeTYd.mjs.map → ConfigFormGroup-DLOZOuLf.mjs.map} +1 -1
  49. package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-Cegjxa6-.d.mts} +7 -2
  50. package/dist/ControlBar.d.mts +1 -1
  51. package/dist/DataTable.d.mts +4 -3
  52. package/dist/{DateField-2aigfD4u.d.mts → DateField-Dk5ykLdr.d.mts} +2 -2
  53. package/dist/DateField.d.mts +1 -1
  54. package/dist/{DatePicker-D9JurBBj.mjs → DatePicker-C7z1yodK.mjs} +77 -42
  55. package/dist/DatePicker-C7z1yodK.mjs.map +1 -0
  56. package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-Dtvv0V45.d.mts} +2 -2
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-HPYsa4wC.d.mts} +3 -3
  59. package/dist/DateRangePicker.d.mts +1 -1
  60. package/dist/DateRangeValueControl.d.mts +5 -3
  61. package/dist/DateValueControl.d.mts +8 -5
  62. package/dist/{DropdownButton-BWiXLMfD.mjs → DropdownButton-CQrFHOIW.mjs} +3 -3
  63. package/dist/{DropdownButton-BWiXLMfD.mjs.map → DropdownButton-CQrFHOIW.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-Xl1BYXsY.d.mts → DropdownMenu-D1qvgGTZ.d.mts} +2 -2
  66. package/dist/{DropdownMenu-CuKSNxc9.mjs → DropdownMenu-rm9Nnxn7.mjs} +7 -2
  67. package/dist/DropdownMenu-rm9Nnxn7.mjs.map +1 -0
  68. package/dist/DropdownMenu.d.mts +1 -1
  69. package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-B8-Mqf1W.d.mts} +1 -1
  70. package/dist/ErrorProps.d.mts +1 -1
  71. package/dist/{FieldRegistry-BdtxI1N2.d.mts → FieldRegistry-0LmSQ-jc.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-jYjPeD7F.d.mts → FilterBar-BMM4Swbt.d.mts} +11 -4
  74. package/dist/FilterBar.d.mts +1 -1
  75. package/dist/FilterPickerMenu.d.mts +2 -2
  76. package/dist/FilterPill.d.mts +1 -1
  77. package/dist/FilterPopover.d.mts +1 -1
  78. package/dist/FloatValueControl.d.mts +1 -1
  79. package/dist/{FormControl-BEk4F1EV.mjs → FormControl-DXrxoJLl.mjs} +26 -11
  80. package/dist/FormControl-DXrxoJLl.mjs.map +1 -0
  81. package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-Dg8doZq2.d.mts} +6 -2
  82. package/dist/FormControl.d.mts +1 -1
  83. package/dist/FormControlLabel.d.mts +1 -1
  84. package/dist/{FormField-CK8o1sMB.d.mts → FormField-BeLigf9j.d.mts} +4 -2
  85. package/dist/{FormField-ByT0avVx.mjs → FormField-Crp3F-hv.mjs} +31 -21
  86. package/dist/FormField-Crp3F-hv.mjs.map +1 -0
  87. package/dist/FormField.d.mts +1 -1
  88. package/dist/Grid-eMLuyRzV.mjs +92 -0
  89. package/dist/Grid-eMLuyRzV.mjs.map +1 -0
  90. package/dist/Grid.d.mts +4 -1
  91. package/dist/{Header-ZnHGm8fs.d.mts → Header-DxJ6TfPw.d.mts} +1 -1
  92. package/dist/Header.d.mts +1 -1
  93. package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-DcyrpEZI.d.mts} +2 -2
  94. package/dist/HelperTooltip.d.mts +1 -1
  95. package/dist/{HoverCopyableField-CN3gl0ny.mjs → HoverCopyableField-12bBuG-d.mjs} +3 -3
  96. package/dist/{HoverCopyableField-CN3gl0ny.mjs.map → HoverCopyableField-12bBuG-d.mjs.map} +1 -1
  97. package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-BUMMN-gH.d.mts} +2 -2
  98. package/dist/{IconButton-CqTPMhjV.mjs → IconButton-CCLMYWVN.mjs} +1 -1
  99. package/dist/{IconButton-CqTPMhjV.mjs.map → IconButton-CCLMYWVN.mjs.map} +1 -1
  100. package/dist/IconButton.d.mts +1 -1
  101. package/dist/ImageTile.d.mts +1 -1
  102. package/dist/InlineCombobox.d.mts +1 -1
  103. package/dist/InlineInput.d.mts +1 -1
  104. package/dist/{Input-Ce8FvSYf.d.mts → Input-2N2e5JCf.d.mts} +3 -3
  105. package/dist/{Input-Bc2yWH3j.mjs → Input-Cl4o41k4.mjs} +7 -3
  106. package/dist/Input-Cl4o41k4.mjs.map +1 -0
  107. package/dist/Input.d.mts +1 -1
  108. package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-TWzig3QO.d.mts} +2 -2
  109. package/dist/InputProps.d.mts +1 -1
  110. package/dist/IntegerValueControl.d.mts +1 -1
  111. package/dist/Link-I9Bklen-.mjs +79 -0
  112. package/dist/Link-I9Bklen-.mjs.map +1 -0
  113. package/dist/Link.d.mts +1 -1
  114. package/dist/{ListBox-D-8iwYVj.d.mts → ListBox-BcoXOt73.d.mts} +3 -3
  115. package/dist/{ListBox-CFBhILRy.mjs → ListBox-sqeLBiKS.mjs} +33 -16
  116. package/dist/ListBox-sqeLBiKS.mjs.map +1 -0
  117. package/dist/ListBox.d.mts +1 -1
  118. package/dist/ListBoxField.d.mts +3 -2
  119. package/dist/{LoadingShimmer-Dizk2sZu.mjs → LoadingShimmer-dRSkdlqD.mjs} +13 -8
  120. package/dist/LoadingShimmer-dRSkdlqD.mjs.map +1 -0
  121. package/dist/LoadingShimmer.d.mts +1 -1
  122. package/dist/{LogicRow-CgPds2tq.d.mts → LogicRow-DXywXdYt.d.mts} +3 -3
  123. package/dist/LogicRow.d.mts +1 -1
  124. package/dist/MaskedInput.d.mts +2 -2
  125. package/dist/{Menu-CSwzFqdv.d.mts → Menu-BekLwm8w.d.mts} +3 -3
  126. package/dist/{Menu-Cd6oxjAe.mjs → Menu-CwlI7BMN.mjs} +1 -1
  127. package/dist/{Menu-Cd6oxjAe.mjs.map → Menu-CwlI7BMN.mjs.map} +1 -1
  128. package/dist/Menu.d.mts +1 -1
  129. package/dist/Modal-CMiFcXC9.mjs +260 -0
  130. package/dist/Modal-CMiFcXC9.mjs.map +1 -0
  131. package/dist/Modal-ymxlGYKt.d.mts +145 -0
  132. package/dist/Modal.d.mts +2 -145
  133. package/dist/{PageHeader-DJOlcAiW.mjs → PageHeader-D_0p7UK_.mjs} +2 -2
  134. package/dist/{PageHeader-DJOlcAiW.mjs.map → PageHeader-D_0p7UK_.mjs.map} +1 -1
  135. package/dist/PageHeader.d.mts +1 -1
  136. package/dist/PageLayoutFrame.d.mts +28 -0
  137. package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-Bxulu6vU.d.mts} +3 -3
  138. package/dist/PageSelector.d.mts +1 -1
  139. package/dist/{Pagination-B1u203DE.mjs → Pagination-Co9CfyFQ.mjs} +5 -5
  140. package/dist/{Pagination-B1u203DE.mjs.map → Pagination-Co9CfyFQ.mjs.map} +1 -1
  141. package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-Dg-4O7F7.d.mts} +2 -2
  142. package/dist/Pagination.d.mts +1 -1
  143. package/dist/{Pii-Dz4woKd8.mjs → Pii-JGV9gP95.mjs} +2 -2
  144. package/dist/{Pii-Dz4woKd8.mjs.map → Pii-JGV9gP95.mjs.map} +1 -1
  145. package/dist/{PillShell-ChTB_koa.d.mts → PillShell-BA7KK1zS.d.mts} +2 -2
  146. package/dist/PillShell.d.mts +1 -1
  147. package/dist/{Popover-opVa9Xhc.mjs → Popover-ZAj03lws.mjs} +15 -2
  148. package/dist/Popover-ZAj03lws.mjs.map +1 -0
  149. package/dist/ProgressIndicator-CQg08vuA.mjs +188 -0
  150. package/dist/ProgressIndicator-CQg08vuA.mjs.map +1 -0
  151. package/dist/ProgressIndicator-D85HQGSx.d.mts +66 -0
  152. package/dist/ProgressIndicator.d.mts +2 -66
  153. package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-BHs8TX_3.d.mts} +1 -1
  154. package/dist/PseudoClassProps.d.mts +1 -1
  155. package/dist/{Radio-Ds1pODKw.mjs → Radio-CYV290JI.mjs} +2 -2
  156. package/dist/{Radio-Ds1pODKw.mjs.map → Radio-CYV290JI.mjs.map} +1 -1
  157. package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-Cq3KV1TN.d.mts} +1 -1
  158. package/dist/{RadioGroup-HIC9V2hO.mjs → RadioGroup-lWMMtu9V.mjs} +2 -2
  159. package/dist/{RadioGroup-HIC9V2hO.mjs.map → RadioGroup-lWMMtu9V.mjs.map} +1 -1
  160. package/dist/RadioGroup.d.mts +1 -1
  161. package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-Mh7h74Tp.d.mts} +2 -2
  162. package/dist/RangeCalendar.d.mts +1 -1
  163. package/dist/RangeCalendarPresets.d.mts +1 -1
  164. package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-B3IU1jb0.d.mts} +2 -2
  165. package/dist/RouterContext.d.mts +1 -1
  166. package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-CwAqTLC2.d.mts} +2 -2
  167. package/dist/RouterLink.d.mts +1 -1
  168. package/dist/RuleEditorFields.d.mts +2 -2
  169. package/dist/RulesPill.d.mts +1 -1
  170. package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-BGyUUcoz.d.mts} +2 -2
  171. package/dist/SearchInput.d.mts +1 -1
  172. package/dist/SectionHeading.d.mts +1 -1
  173. package/dist/{SegmentedControl-OHrfJiw0.mjs → SegmentedControl-BEbIcV3g.mjs} +13 -6
  174. package/dist/SegmentedControl-BEbIcV3g.mjs.map +1 -0
  175. package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-DgDabSgr.d.mts} +2 -1
  176. package/dist/SegmentedControl.d.mts +1 -1
  177. package/dist/{Select-sQb4dQwT.d.mts → Select-wqTtGyga.d.mts} +3 -3
  178. package/dist/{Select-DE7uv9C8.mjs → Select-yC2t_gZb.mjs} +10 -8
  179. package/dist/Select-yC2t_gZb.mjs.map +1 -0
  180. package/dist/Select.d.mts +1 -1
  181. package/dist/SingleColumnLayout.d.mts +16 -0
  182. package/dist/{Spinner-DplDSBqf.mjs → Spinner-BlAg8_OX.mjs} +1 -1
  183. package/dist/{Spinner-DplDSBqf.mjs.map → Spinner-BlAg8_OX.mjs.map} +1 -1
  184. package/dist/SplitColumnLayout.d.mts +19 -0
  185. package/dist/{Stack-ChsImaEY.mjs → Stack-Bkn0TUDe.mjs} +1 -1
  186. package/dist/{Stack-ChsImaEY.mjs.map → Stack-Bkn0TUDe.mjs.map} +1 -1
  187. package/dist/{Stack-8KGPQp0u.d.mts → Stack-CYqjBXe8.d.mts} +1 -1
  188. package/dist/Stack.d.mts +1 -1
  189. package/dist/StatusIndicator-DT2zNbkp.mjs +315 -0
  190. package/dist/StatusIndicator-DT2zNbkp.mjs.map +1 -0
  191. package/dist/{Sticker-C3Eb13OQ.mjs → Sticker-BLbgJxcH.mjs} +5 -8
  192. package/dist/Sticker-BLbgJxcH.mjs.map +1 -0
  193. package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BmyKaxwx.d.mts} +4 -4
  194. package/dist/Sticker.d.mts +1 -1
  195. package/dist/StringValueControl.d.mts +1 -1
  196. package/dist/Tab.d.mts +1 -1
  197. package/dist/{TabBar-BepWbJHz.mjs → TabBar-Bj84q1Mr.mjs} +4 -7
  198. package/dist/{TabBar-BepWbJHz.mjs.map → TabBar-Bj84q1Mr.mjs.map} +1 -1
  199. package/dist/{Table-BefytM6w.d.mts → Table-DhdHUQ8V.d.mts} +1 -1
  200. package/dist/{Table-B1gRr2XT.mjs → Table-WqNfjasd.mjs} +22 -3
  201. package/dist/Table-WqNfjasd.mjs.map +1 -0
  202. package/dist/Table.d.mts +1 -1
  203. package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-qoSvQDds.d.mts} +1 -1
  204. package/dist/TableBody.d.mts +1 -1
  205. package/dist/{TableBox-NP6bhtKb.mjs → TableBox-obl64W5Y.mjs} +22 -17
  206. package/dist/TableBox-obl64W5Y.mjs.map +1 -0
  207. package/dist/TableBox.d.mts +2 -2
  208. package/dist/{TableBoxCell-CHGw9HVj.d.mts → TableBoxCell-DzYMx4Ju.d.mts} +6 -6
  209. package/dist/TableBoxCell.d.mts +1 -1
  210. package/dist/TableBoxField.d.mts +4 -3
  211. package/dist/{TableBoxRow-BljsXKrL.d.mts → TableBoxRow-B4rFCvWK.d.mts} +3 -3
  212. package/dist/TableBoxRow.d.mts +1 -1
  213. package/dist/{TableBoxRowActions-h6HNEv9F.d.mts → TableBoxRowActions-qMKcVuTL.d.mts} +2 -2
  214. package/dist/TableBoxRowActions.d.mts +1 -1
  215. package/dist/{TableCell-DorRxyke.d.mts → TableCell-CGPQRc5g.d.mts} +2 -2
  216. package/dist/TableCell.d.mts +1 -1
  217. package/dist/{TableControls-CYTpBlQN.mjs → TableControls-RS_ozBsI.mjs} +219 -70
  218. package/dist/TableControls-RS_ozBsI.mjs.map +1 -0
  219. package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-WP78qtET.d.mts} +4 -3
  220. package/dist/TableControls.d.mts +1 -1
  221. package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-DZIZSyfX.d.mts} +2 -2
  222. package/dist/TableControlsContext.d.mts +1 -1
  223. package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-36j-_oyn.d.mts} +1 -1
  224. package/dist/TableHead.d.mts +1 -1
  225. package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-C7gp9j1X.d.mts} +1 -1
  226. package/dist/TableHeaderCell.d.mts +1 -1
  227. package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CQqIV0vj.d.mts} +1 -1
  228. package/dist/TableLayout.d.mts +1 -1
  229. package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-BJZM8I8i.d.mts} +2 -2
  230. package/dist/TableRow.d.mts +1 -1
  231. package/dist/TableTH.d.mts +1 -1
  232. package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-Dwy_9FBz.d.mts} +2 -2
  233. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  234. package/dist/{TechnicalSticker-_LtE-PRY.mjs → TechnicalSticker-CL0zkOAj.mjs} +1 -1
  235. package/dist/{TechnicalSticker-_LtE-PRY.mjs.map → TechnicalSticker-CL0zkOAj.mjs.map} +1 -1
  236. package/dist/{Text-DD_W_ixb.d.mts → Text-DbtTa83E.d.mts} +3 -3
  237. package/dist/Text.d.mts +1 -1
  238. package/dist/{TextArea-DOofaXJi.d.mts → TextArea-CbxF6u7z.d.mts} +2 -2
  239. package/dist/{TextArea-8TuVvmvj.mjs → TextArea-CfZr5Sk4.mjs} +2 -2
  240. package/dist/{TextArea-8TuVvmvj.mjs.map → TextArea-CfZr5Sk4.mjs.map} +1 -1
  241. package/dist/TextArea.d.mts +1 -1
  242. package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-BgLQuK38.d.mts} +2 -2
  243. package/dist/TextUnderlineTooltip.d.mts +1 -1
  244. package/dist/Tile.d.mts +1 -1
  245. package/dist/Toast.d.mts +1 -1
  246. package/dist/{Toggle-2nrUX591.d.mts → Toggle-BYMLrPXk.d.mts} +3 -1
  247. package/dist/{Toggle-Dcn2Rqgm.mjs → Toggle-D4ZaUcVt.mjs} +11 -5
  248. package/dist/Toggle-D4ZaUcVt.mjs.map +1 -0
  249. package/dist/Toggle.d.mts +1 -1
  250. package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-4pshzB_i.d.mts} +2 -2
  251. package/dist/Tooltip.d.mts +1 -1
  252. package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-O7hE3w0O.d.mts} +1 -1
  253. package/dist/VersionHistory.d.mts +23 -0
  254. package/dist/VersionHistoryItem-CIcEgl0K.d.mts +54 -0
  255. package/dist/VersionHistoryItem.d.mts +2 -0
  256. package/dist/WizardModal.d.mts +41 -0
  257. package/dist/accordionTitleTypography-CNB1w3kn.d.mts +17 -0
  258. package/dist/accordionTitleTypography.d.mts +2 -0
  259. package/dist/assertNever.d.mts +5 -0
  260. package/dist/{codec-CoX6LfOY.d.mts → codec-BXVBsB8Y.d.mts} +2 -2
  261. package/dist/codec.d.mts +1 -1
  262. package/dist/{color-Bt0Lv1e3.d.mts → color-3UO63ocQ.d.mts} +9 -4
  263. package/dist/components/Accordion/index.d.mts +4 -0
  264. package/dist/components/Accordion/index.mjs +330 -0
  265. package/dist/components/Accordion/index.mjs.map +1 -0
  266. package/dist/components/Attribute/index.mjs +2 -2
  267. package/dist/components/Badge/index.mjs +1 -1
  268. package/dist/components/Banner/index.mjs +1 -1
  269. package/dist/components/BottomPanel/index.mjs +5 -3
  270. package/dist/components/BottomPanel/index.mjs.map +1 -1
  271. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  272. package/dist/components/Breadcrumbs/index.mjs +1 -1
  273. package/dist/components/Button/index.d.mts +2 -2
  274. package/dist/components/Button/index.mjs +1 -1
  275. package/dist/components/ButtonGroup/index.mjs +2 -2
  276. package/dist/components/Card/index.d.mts +2 -2
  277. package/dist/components/CardV2/index.d.mts +1 -1
  278. package/dist/components/CardV2/index.mjs +1 -1
  279. package/dist/components/Checkbox/index.d.mts +1 -1
  280. package/dist/components/Checkbox/index.mjs +1 -1
  281. package/dist/components/CodeHighlight/index.mjs +3 -1
  282. package/dist/components/CodeHighlight/index.mjs.map +1 -1
  283. package/dist/components/Combobox/index.d.mts +2 -2
  284. package/dist/components/Combobox/index.mjs +1 -1
  285. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  286. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  287. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  288. package/dist/components/DataTable/index.mjs +27 -16
  289. package/dist/components/DataTable/index.mjs.map +1 -1
  290. package/dist/components/DataTable/types.d.mts +2 -2
  291. package/dist/components/DatePicker/index.d.mts +5 -5
  292. package/dist/components/DatePicker/index.mjs +1 -1
  293. package/dist/components/DropdownButton/index.mjs +1 -1
  294. package/dist/components/DropdownMenu/index.d.mts +1 -1
  295. package/dist/components/DropdownMenu/index.mjs +1 -1
  296. package/dist/components/FloatingPanel/index.mjs +10 -7
  297. package/dist/components/FloatingPanel/index.mjs.map +1 -1
  298. package/dist/components/FormControl/index.d.mts +2 -2
  299. package/dist/components/FormControl/index.mjs +2 -2
  300. package/dist/components/FormField/index.d.mts +1 -1
  301. package/dist/components/FormField/index.mjs +1 -1
  302. package/dist/components/Grid/index.d.mts +2 -2
  303. package/dist/components/Grid/index.mjs +2 -85
  304. package/dist/components/HoverCopyableField/index.mjs +1 -1
  305. package/dist/components/ImageTile/index.mjs +13 -9
  306. package/dist/components/ImageTile/index.mjs.map +1 -1
  307. package/dist/components/Input/index.d.mts +1 -1
  308. package/dist/components/Input/index.mjs +1 -1
  309. package/dist/components/Link/index.mjs +1 -78
  310. package/dist/components/ListBox/index.d.mts +3 -3
  311. package/dist/components/ListBox/index.mjs +1 -1
  312. package/dist/components/LoadingShimmer/index.mjs +1 -1
  313. package/dist/components/MaskedInput/index.mjs +1 -1
  314. package/dist/components/Menu/index.d.mts +1 -1
  315. package/dist/components/Menu/index.mjs +1 -1
  316. package/dist/components/Modal/index.d.mts +1 -1
  317. package/dist/components/Modal/index.mjs +1 -257
  318. package/dist/components/PageHeader/index.mjs +1 -1
  319. package/dist/components/Pagination/index.d.mts +3 -3
  320. package/dist/components/Pagination/index.mjs +1 -1
  321. package/dist/components/Pii/index.mjs +1 -1
  322. package/dist/components/Popover/index.mjs +1 -1
  323. package/dist/components/ProgressBar/index.mjs +1 -2
  324. package/dist/components/ProgressBar/index.mjs.map +1 -1
  325. package/dist/components/ProgressIndicator/index.d.mts +2 -2
  326. package/dist/components/ProgressIndicator/index.mjs +1 -187
  327. package/dist/components/Radio/index.mjs +1 -1
  328. package/dist/components/RadioGroup/index.d.mts +1 -1
  329. package/dist/components/RadioGroup/index.mjs +1 -1
  330. package/dist/components/RightPanel/index.mjs +10 -7
  331. package/dist/components/RightPanel/index.mjs.map +1 -1
  332. package/dist/components/SegmentedControl/index.d.mts +1 -1
  333. package/dist/components/SegmentedControl/index.mjs +1 -1
  334. package/dist/components/Select/index.d.mts +1 -1
  335. package/dist/components/Select/index.mjs +1 -1
  336. package/dist/components/Slider/index.mjs +1 -1
  337. package/dist/components/Slider/index.mjs.map +1 -1
  338. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +2 -105
  339. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +1 -1
  340. package/dist/components/Spinner/index.mjs +1 -1
  341. package/dist/components/Stack/index.d.mts +1 -1
  342. package/dist/components/Stack/index.mjs +1 -1
  343. package/dist/components/StatusIndicator/index.mjs +1 -314
  344. package/dist/components/Sticker/index.d.mts +1 -1
  345. package/dist/components/Sticker/index.mjs +1 -1
  346. package/dist/components/TabBar/index.mjs +1 -1
  347. package/dist/components/Table/index.d.mts +8 -8
  348. package/dist/components/Table/index.mjs +1 -1
  349. package/dist/components/TableBox/index.d.mts +2 -2
  350. package/dist/components/TableBox/index.mjs +1 -1
  351. package/dist/components/TechnicalSticker/index.mjs +1 -1
  352. package/dist/components/Text/index.d.mts +1 -1
  353. package/dist/components/TextArea/index.d.mts +1 -1
  354. package/dist/components/TextArea/index.mjs +1 -1
  355. package/dist/components/Tile/index.mjs +2 -2
  356. package/dist/components/Toast/index.mjs +2 -2
  357. package/dist/components/Toast/index.mjs.map +1 -1
  358. package/dist/components/Toggle/index.d.mts +1 -1
  359. package/dist/components/Toggle/index.mjs +1 -1
  360. package/dist/components/Tooltip/index.d.mts +3 -3
  361. package/dist/components/VersionHistory/index.d.mts +3 -0
  362. package/dist/components/VersionHistory/index.mjs +389 -0
  363. package/dist/components/VersionHistory/index.mjs.map +1 -0
  364. package/dist/components/WizardModal/index.d.mts +2 -0
  365. package/dist/components/WizardModal/index.mjs +106 -0
  366. package/dist/components/WizardModal/index.mjs.map +1 -0
  367. package/dist/compound-expression.d.mts +1 -1
  368. package/dist/{constants-D8bzZ-7B.d.mts → constants-BOxzLX-O.d.mts} +1 -1
  369. package/dist/constants.d.mts +1 -1
  370. package/dist/{createPath-BDYRvl57.d.mts → createPath-OeTC9kvS.d.mts} +2 -2
  371. package/dist/createPath.d.mts +1 -1
  372. package/dist/{date-filter-CZeChs9T.mjs → date-filter-BnzR6NxT.mjs} +1 -1
  373. package/dist/{date-filter-CZeChs9T.mjs.map → date-filter-BnzR6NxT.mjs.map} +1 -1
  374. package/dist/{date-range-rule-value-jZAHuxZJ.d.mts → date-range-rule-value-BRp5Bi7R.d.mts} +2 -2
  375. package/dist/date-range-rule-value.d.mts +1 -1
  376. package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-CDBtV0ET.d.mts} +3 -3
  377. package/dist/date-rule-intent.d.mts +1 -1
  378. package/dist/display.d.mts +2 -2
  379. package/dist/fieldPickerOptions.d.mts +2 -2
  380. package/dist/{filter-size-context-BGczB5R9.d.mts → filter-size-context-CqvQ190x.d.mts} +2 -2
  381. package/dist/filter-size-context.d.mts +1 -1
  382. package/dist/format-date-value.d.mts +5 -0
  383. package/dist/helpers.d.mts +1 -1
  384. package/dist/{index-DalP_w0c.d.mts → index-BXSe73Xn.d.mts} +2 -2
  385. package/dist/{index-BRKXhLGa.d.mts → index-CyAok7As.d.mts} +2 -2
  386. package/dist/index-gVcIuWLd.d.mts +1 -0
  387. package/dist/{index-BZmGEbsA.d.mts → index-wKK9f9La.d.mts} +3 -3
  388. package/dist/index-zeAhjge4.d.mts +1 -0
  389. package/dist/index.d.mts +1 -1
  390. package/dist/index2.d.mts +1 -1
  391. package/dist/index3.d.mts +3 -3
  392. package/dist/index4.d.mts +1 -1
  393. package/dist/index5.d.mts +14 -14
  394. package/dist/{input-DCJivcWf.d.mts → input-C6cyiqm2.d.mts} +3 -3
  395. package/dist/inputFields.d.mts +14 -12
  396. package/dist/{intersperse-Bxcrxj2Q.mjs → intersperse-Df9zw7Bk.mjs} +1 -1
  397. package/dist/{intersperse-Bxcrxj2Q.mjs.map → intersperse-Df9zw7Bk.mjs.map} +1 -1
  398. package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-CfGi1bzI.d.mts} +67 -11
  399. package/dist/lib/PDSProvider.d.mts +2 -2
  400. package/dist/lib/TruncatedText.d.mts +1 -1
  401. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  402. package/dist/lib/chainTypes.d.mts +17 -0
  403. package/dist/lib/chainTypes.mjs +0 -0
  404. package/dist/lib/color.d.mts +2 -2
  405. package/dist/lib/color.mjs +18 -11
  406. package/dist/lib/color.mjs.map +1 -1
  407. package/dist/lib/customFunctionSchema.d.mts +49 -0
  408. package/dist/lib/customFunctionSchema.mjs +299 -0
  409. package/dist/lib/customFunctionSchema.mjs.map +1 -0
  410. package/dist/lib/date-filter/index.d.mts +2 -2
  411. package/dist/lib/date-filter/index.mjs +1 -1
  412. package/dist/lib/jsonSchema.d.mts +2 -2
  413. package/dist/lib/jsonSchema.mjs +36 -11
  414. package/dist/lib/jsonSchema.mjs.map +1 -1
  415. package/dist/lib/jsonSchemaType.d.mts +7 -0
  416. package/dist/lib/jsonSchemaType.mjs +31 -0
  417. package/dist/lib/jsonSchemaType.mjs.map +1 -0
  418. package/dist/lib/letPointerDownReachDocument.d.mts +22 -0
  419. package/dist/lib/letPointerDownReachDocument.mjs +25 -0
  420. package/dist/lib/letPointerDownReachDocument.mjs.map +1 -0
  421. package/dist/lib/message.d.mts +1 -1
  422. package/dist/lib/methodChain.d.mts +3 -66
  423. package/dist/lib/methodChain.mjs +1 -237
  424. package/dist/lib/methodChainNormalize.d.mts +2 -2
  425. package/dist/lib/methodChainTypes.d.mts +2 -23
  426. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  427. package/dist/lib/platformObject.d.mts +38 -0
  428. package/dist/lib/platformObject.mjs +79 -0
  429. package/dist/lib/platformObject.mjs.map +1 -0
  430. package/dist/lib/pseudoClass.d.mts +1 -1
  431. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  432. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  433. package/dist/lib/router/index.d.mts +5 -5
  434. package/dist/lib/schemaOptions.d.mts +173 -0
  435. package/dist/lib/schemaOptions.mjs +481 -0
  436. package/dist/lib/schemaOptions.mjs.map +1 -0
  437. package/dist/lib/semanticColor.d.mts +1 -1
  438. package/dist/lib/snakifyPath.d.mts +5 -0
  439. package/dist/lib/snakifyPath.mjs +11 -0
  440. package/dist/lib/snakifyPath.mjs.map +1 -0
  441. package/dist/{message-CjIHdhX1.d.mts → message-CblP0EjG.d.mts} +1 -1
  442. package/dist/methodChain-DAQxLgxt.mjs +241 -0
  443. package/dist/methodChain-DAQxLgxt.mjs.map +1 -0
  444. package/dist/methodChain-Pk1C3i_E.d.mts +66 -0
  445. package/dist/methodChainTypes-CqWzfx0M.d.mts +23 -0
  446. package/dist/mixins/focus.d.mts +1 -1
  447. package/dist/mixins/hoverable.d.mts +2 -2
  448. package/dist/mixins/input.d.mts +1 -1
  449. package/dist/mixins/input.mjs +6 -14
  450. package/dist/mixins/input.mjs.map +1 -1
  451. package/dist/mixins/menuItem.d.mts +2 -2
  452. package/dist/mixins/scrollbar.d.mts +10 -0
  453. package/dist/mixins/scrollbar.mjs +31 -0
  454. package/dist/mixins/scrollbar.mjs.map +1 -0
  455. package/dist/mixins/text.d.mts +1 -1
  456. package/dist/{operators-x_ZENhrT.d.mts → operators-CoXL5Hv6.d.mts} +2 -2
  457. package/dist/operators.d.mts +1 -1
  458. package/dist/{palette-qgPRWgUN.d.mts → palette-CxXUs1Fu.d.mts} +3 -3
  459. package/dist/palette.d.mts +1 -1
  460. package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
  461. package/dist/patterns/PageLayout/index.d.mts +4 -1
  462. package/dist/patterns/PageLayout/index.mjs +99 -2
  463. package/dist/patterns/PageLayout/index.mjs.map +1 -1
  464. package/dist/reactRouterFallback.d.mts +1 -1
  465. package/dist/relative-date-label.d.mts +1 -1
  466. package/dist/scrollExpandedItemIntoView.d.mts +12 -0
  467. package/dist/{semantic-DUctmpu_.d.mts → semantic-CFMBsuiJ.d.mts} +2 -2
  468. package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-DuJCmDrH.d.mts} +3 -3
  469. package/dist/{text-DjTGRUM1.d.mts → text-D8HPjiEX.d.mts} +1 -1
  470. package/dist/{theme-DKiszVRN.d.mts → theme-BcaR-Au5.d.mts} +3 -3
  471. package/dist/theme.d.mts +1 -1
  472. package/dist/time-range.d.mts +7 -0
  473. package/dist/tone.d.mts +3 -3
  474. package/dist/{types-CcZbBH0e.d.mts → types-BCiq4hGv.d.mts} +1 -1
  475. package/dist/types-BGMmkUpy.d.mts +105 -0
  476. package/dist/{types-N8PYonjD.d.mts → types-C4WUSW3e.d.mts} +7 -2
  477. package/dist/{types-CuQSgl1F.d.mts → types-CkpixGWr.d.mts} +1 -1
  478. package/dist/{types-D8rWSj3z.d.mts → types-Cl-w8tYc.d.mts} +1 -1
  479. package/dist/{types-gnF3MPfk2.d.mts → types-CoVZwrMW.d.mts} +2 -2
  480. package/dist/{types-RWjW1d9I.d.mts → types-DgyGecdM.d.mts} +1 -1
  481. package/dist/types.d.mts +1 -1
  482. package/dist/types2.d.mts +1 -1
  483. package/dist/types3.d.mts +1 -1
  484. package/dist/types4.d.mts +1 -1
  485. package/dist/types5.d.mts +1 -1
  486. package/dist/types6.d.mts +1 -1
  487. package/dist/{url-state-C2gl07_y.d.mts → url-state-8j_ef8Uf.d.mts} +2 -2
  488. package/dist/url-state.d.mts +1 -1
  489. package/dist/useComboboxFooterAction.d.mts +1 -1
  490. package/dist/{useFilterStateV2-BQYcAdKR.d.mts → useFilterStateV2-CW6eght1.d.mts} +3 -3
  491. package/dist/useFilterStateV2.d.mts +1 -1
  492. package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-CLRZkUZt.d.mts} +4 -2
  493. package/dist/{useFormField-DsvC5dOb.mjs → useFormField-XezSxho_.mjs} +3 -2
  494. package/dist/useFormField-XezSxho_.mjs.map +1 -0
  495. package/dist/useFormField.d.mts +1 -1
  496. package/dist/{useFormGroup-CH3kiXoa.mjs → useFormGroup-C7Cax8zO.mjs} +1 -1
  497. package/dist/{useFormGroup-CH3kiXoa.mjs.map → useFormGroup-C7Cax8zO.mjs.map} +1 -1
  498. package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-DH5Tdq5X.d.mts} +1 -1
  499. package/dist/useLocationPathname.d.mts +1 -1
  500. package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-Da4TiYBT.d.mts} +1 -1
  501. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  502. package/dist/useTruncation.d.mts +1 -1
  503. package/dist/{utilities-D0EhDri-.d.mts → utilities-DcsbI71T.d.mts} +1 -1
  504. package/dist/utilities.d.mts +1 -1
  505. package/dist/utils/storybook.mjs +1 -1
  506. package/dist/utils/testing.d.mts +1 -1
  507. package/dist/utils/testing.mjs.map +1 -1
  508. package/dist/utils.d.mts +1 -1
  509. package/dist/{validation-CMtfUd-R.d.mts → validation-BgwNghi2.d.mts} +3 -3
  510. package/dist/validation.d.mts +1 -1
  511. package/dist/{value-control-resolver-Au9JNS5z.d.mts → value-control-resolver-B0HDRxRN.d.mts} +3 -2
  512. package/dist/value-control-resolver.d.mts +1 -1
  513. package/dist/variables/effect.d.mts +1 -1
  514. package/dist/variables/semantic.d.mts +1 -1
  515. package/dist/variables/semantic.mjs +15 -18
  516. package/dist/variables/semantic.mjs.map +1 -1
  517. package/llms.txt +10 -1
  518. package/package.json +27 -6
  519. package/skills/ui-authoring/COMPONENTS.md +6 -1
  520. package/skills/ui-authoring/PATTERNS.md +74 -115
  521. package/dist/Combobox-1M6EwVmq.mjs.map +0 -1
  522. package/dist/DatePicker-D9JurBBj.mjs.map +0 -1
  523. package/dist/DropdownMenu-CuKSNxc9.mjs.map +0 -1
  524. package/dist/FormControl-BEk4F1EV.mjs.map +0 -1
  525. package/dist/FormField-ByT0avVx.mjs.map +0 -1
  526. package/dist/Input-Bc2yWH3j.mjs.map +0 -1
  527. package/dist/ListBox-CFBhILRy.mjs.map +0 -1
  528. package/dist/LoadingShimmer-Dizk2sZu.mjs.map +0 -1
  529. package/dist/Popover-opVa9Xhc.mjs.map +0 -1
  530. package/dist/SegmentedControl-OHrfJiw0.mjs.map +0 -1
  531. package/dist/Select-DE7uv9C8.mjs.map +0 -1
  532. package/dist/Sticker-C3Eb13OQ.mjs.map +0 -1
  533. package/dist/Table-B1gRr2XT.mjs.map +0 -1
  534. package/dist/TableBox-NP6bhtKb.mjs.map +0 -1
  535. package/dist/TableControls-CYTpBlQN.mjs.map +0 -1
  536. package/dist/Toggle-Dcn2Rqgm.mjs.map +0 -1
  537. package/dist/components/Grid/index.mjs.map +0 -1
  538. package/dist/components/Link/index.mjs.map +0 -1
  539. package/dist/components/Modal/index.mjs.map +0 -1
  540. package/dist/components/ProgressIndicator/index.mjs.map +0 -1
  541. package/dist/components/StatusIndicator/index.mjs.map +0 -1
  542. package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
  543. package/dist/lib/fieldSchemaTypes.d.mts +0 -2
  544. package/dist/lib/fieldSchemaTypes.mjs +0 -41
  545. package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
  546. package/dist/lib/methodChain.mjs.map +0 -1
  547. package/dist/useFormField-DsvC5dOb.mjs.map +0 -1
  548. /package/dist/{index--p6oQT9I.d.mts → index-B24gUwOx.d.mts} +0 -0
  549. /package/dist/{index-B33elXxm.d.mts → index-BFnNtGdX.d.mts} +0 -0
  550. /package/dist/{index-BO_854F2.d.mts → index-BNRXMhlr.d.mts} +0 -0
  551. /package/dist/{index-BrGZHEgX.d.mts → index-BPiqSRRl.d.mts} +0 -0
  552. /package/dist/{index-BwAfCVZH2.d.mts → index-BYd3Btr1.d.mts} +0 -0
  553. /package/dist/{index-CRo77wc3.d.mts → index-Bt4QNofW.d.mts} +0 -0
  554. /package/dist/{index-CX869wwk.d.mts → index-CEqOS-7M.d.mts} +0 -0
  555. /package/dist/{index-CsuikFeJ.d.mts → index-CIABef8t.d.mts} +0 -0
  556. /package/dist/{index-CuYZJcK3.d.mts → index-CTHojwxd.d.mts} +0 -0
  557. /package/dist/{index-CzItj62a.d.mts → index-Cm-1i165.d.mts} +0 -0
  558. /package/dist/{index-D13oYj4_.d.mts → index-DB7t8whN.d.mts} +0 -0
  559. /package/dist/{index-D4DUvwPf.d.mts → index-DBGd4WeR.d.mts} +0 -0
  560. /package/dist/{index-DMRtRo7y.d.mts → index-DGsJdI5l.d.mts} +0 -0
  561. /package/dist/{index-DXJd7-2Z.d.mts → index-DWfPppPU.d.mts} +0 -0
  562. /package/dist/{index-DZlqSwCF.d.mts → index-DedbSZMv.d.mts} +0 -0
  563. /package/dist/{index-Dflz2i1X.d.mts → index-Jh0C5PIG.d.mts} +0 -0
  564. /package/dist/{index-DkrC-i1D.d.mts → index-NKYLt_R9.d.mts} +0 -0
  565. /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
  566. /package/dist/{index-Rvd9MEUQ.d.mts → index-VWno75SQ.d.mts} +0 -0
  567. /package/dist/{index-bHnO4ZKt.d.mts → index-fxXoW-qc.d.mts} +0 -0
@@ -1,2 +1,2 @@
1
- import { n as RawFieldInfo, r as buildFieldRegistry, t as FieldRegistry } from "./FieldRegistry-BdtxI1N2.mjs";
1
+ import { n as RawFieldInfo, r as buildFieldRegistry, t as FieldRegistry } from "./FieldRegistry-0LmSQ-jc.mjs";
2
2
  export { FieldRegistry, RawFieldInfo, buildFieldRegistry };
@@ -1,6 +1,6 @@
1
- import { f as FilterSize, p as FilterStateV2 } from "./types-N8PYonjD.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-BdtxI1N2.mjs";
3
- import { n as ValueControlResolver } from "./value-control-resolver-Au9JNS5z.mjs";
1
+ import { f as FilterSize, p as FilterStateV2 } from "./types-C4WUSW3e.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-0LmSQ-jc.mjs";
3
+ import { n as ValueControlResolver } from "./value-control-resolver-B0HDRxRN.mjs";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
6
6
  //#region components/DataTable/TableControls/FiltersV2/FilterBar/FilterBar.d.ts
@@ -61,6 +61,12 @@ interface FilterBarProps {
61
61
  * metadata is always read and resolved regardless of this value.
62
62
  */
63
63
  relativeDatesEnabled?: boolean;
64
+ /**
65
+ * Enables minute-precision pickers for fields whose metadata supports them.
66
+ *
67
+ * @defaultValue `false`
68
+ */
69
+ dateTimesEnabled?: boolean;
64
70
  /**
65
71
  * Keeps the Add-filter picker from building a second top-level pill on a
66
72
  * field that already has one: a field in use drops out of the picker, and
@@ -100,10 +106,11 @@ declare function FilterBar({
100
106
  onChange,
101
107
  advancedRulesEnabled,
102
108
  relativeDatesEnabled,
109
+ dateTimesEnabled,
103
110
  singleUseFields,
104
111
  size,
105
112
  valueControlResolver
106
113
  }: FilterBarProps): _$react_jsx_runtime0.JSX.Element;
107
114
  //#endregion
108
115
  export { FilterBarProps as n, FilterBar as t };
109
- //# sourceMappingURL=FilterBar-jYjPeD7F.d.mts.map
116
+ //# sourceMappingURL=FilterBar-BMM4Swbt.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as FilterBarProps, t as FilterBar } from "./FilterBar-jYjPeD7F.mjs";
1
+ import { n as FilterBarProps, t as FilterBar } from "./FilterBar-BMM4Swbt.mjs";
2
2
  export { FilterBarProps, FilterBar as default };
@@ -1,5 +1,5 @@
1
- import { a as FilterField, f as FilterSize } from "./types-N8PYonjD.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-BdtxI1N2.mjs";
1
+ import { a as FilterField, f as FilterSize } from "./types-C4WUSW3e.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-0LmSQ-jc.mjs";
3
3
  import { HTMLAttributes } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -1,4 +1,4 @@
1
- import { a as FilterField, f as FilterSize, l as FilterRule } from "./types-N8PYonjD.mjs";
1
+ import { a as FilterField, f as FilterSize, l as FilterRule } from "./types-C4WUSW3e.mjs";
2
2
  import * as _$react from "react";
3
3
  import { HTMLAttributes } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as FilterField, c as FilterOperator, f as FilterSize } from "./types-N8PYonjD.mjs";
1
+ import { a as FilterField, c as FilterOperator, f as FilterSize } from "./types-C4WUSW3e.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- import { t as ValueControlProps } from "./types-gnF3MPfk2.mjs";
1
+ import { t as ValueControlProps } from "./types-CoVZwrMW.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/value-controls/FloatValueControl/FloatValueControl.d.ts
@@ -1,11 +1,11 @@
1
1
  import { a as styled, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
2
2
  import { semanticColor } from "./lib/semanticColor.mjs";
3
3
  import { a as Tooltip, n as TextWithDashedUnderline } from "./Tooltip-C0FuZS1C.mjs";
4
- import { n as useFormGroup } from "./useFormGroup-CH3kiXoa.mjs";
5
- import { n as useFormField, t as FormControlContext } from "./useFormField-DsvC5dOb.mjs";
4
+ import { n as useFormGroup } from "./useFormGroup-C7Cax8zO.mjs";
5
+ import { n as useFormField, t as FormControlContext } from "./useFormField-XezSxho_.mjs";
6
6
  import { Color, Spacing, Typography } from "@persona/design-tokens";
7
7
  import { Children, forwardRef, isValidElement, useMemo } from "react";
8
- import { jsx } from "react/jsx-runtime";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { uniqueId } from "lodash-es";
10
10
  import { Root } from "@radix-ui/react-label";
11
11
  //#region components/FormControl/FormControl.tsx
@@ -24,8 +24,16 @@ const LabelBase = styled(Root)`
24
24
 
25
25
  color: ${({ theme }) => semanticColor(theme, "FgPrimary", theme.color.text.primary)};
26
26
  `;
27
- const FormLabel = ({ tooltip, side, size, children, labelTooltipZIndex, ...props }) => {
28
- const field = useFormField({ labelId: props.id });
27
+ const RequiredIndicator = styled.span`
28
+ margin-left: ${Spacing[1]};
29
+ vertical-align: top;
30
+ color: ${({ theme }) => semanticColor(theme, "FgDanger1", theme.color.variants.danger.default)};
31
+ `;
32
+ const FormLabel = ({ tooltip, side, size, children, labelTooltipZIndex, required, ...props }) => {
33
+ const field = useFormField({
34
+ labelId: props.id,
35
+ required
36
+ });
29
37
  const formGroup = useFormGroup();
30
38
  const labelProps = {
31
39
  id: field.labelId,
@@ -35,19 +43,25 @@ const FormLabel = ({ tooltip, side, size, children, labelTooltipZIndex, ...props
35
43
  const effectivelabelTooltipZIndex = labelTooltipZIndex ?? formGroup.labelTooltipZIndex;
36
44
  if (tooltip) return /* @__PURE__ */ jsx(Tooltip, {
37
45
  size,
38
- trigger: /* @__PURE__ */ jsx(LabelBase, {
46
+ trigger: /* @__PURE__ */ jsxs(LabelBase, {
39
47
  ...labelProps,
40
48
  $size: size,
41
- children: /* @__PURE__ */ jsx(TextWithDashedUnderline, { children })
49
+ children: [/* @__PURE__ */ jsx(TextWithDashedUnderline, { children }), field.required && /* @__PURE__ */ jsx(RequiredIndicator, {
50
+ "aria-hidden": true,
51
+ children: "*"
52
+ })]
42
53
  }),
43
54
  side,
44
55
  ...effectivelabelTooltipZIndex != null && { zIndex: effectivelabelTooltipZIndex },
45
56
  children: tooltip
46
57
  });
47
- return /* @__PURE__ */ jsx(LabelBase, {
58
+ return /* @__PURE__ */ jsxs(LabelBase, {
48
59
  ...labelProps,
49
60
  $size: size,
50
- children
61
+ children: [children, field.required && /* @__PURE__ */ jsx(RequiredIndicator, {
62
+ "aria-hidden": true,
63
+ children: "*"
64
+ })]
51
65
  });
52
66
  };
53
67
  /**
@@ -125,12 +139,13 @@ const Container = styled.div`
125
139
  margin-top: ${Spacing[1]};
126
140
  }
127
141
  `;
128
- const FormControl = forwardRef(function FormControl({ children, hasError, hasWarning, inputId, disabled, configField, hasRightActions, configFieldInputWidth, ...props }, ref) {
142
+ const FormControl = forwardRef(function FormControl({ children, hasError, hasWarning, inputId, disabled, required, configField, hasRightActions, configFieldInputWidth, ...props }, ref) {
129
143
  const generatedId = useMemo(() => uniqueId("pds_form_control__"), []);
130
144
  const initFormField = {
131
145
  hasError,
132
146
  hasWarning,
133
147
  disabled,
148
+ required: required ?? false,
134
149
  inputId: inputId ?? generatedId,
135
150
  configField
136
151
  };
@@ -166,4 +181,4 @@ const FormControl = forwardRef(function FormControl({ children, hasError, hasWar
166
181
  //#endregion
167
182
  export { FormLabel as a, FormInputContainer as i, ErrorText as n, HelperText as o, FormControl as r, WarningText as s, Container as t };
168
183
 
169
- //# sourceMappingURL=FormControl-BEk4F1EV.mjs.map
184
+ //# sourceMappingURL=FormControl-DXrxoJLl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormControl-DXrxoJLl.mjs","names":[],"sources":["../components/FormControl/FormControl.tsx"],"sourcesContent":["import { Root } from '@radix-ui/react-label';\nimport { uniqueId } from 'lodash-es';\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n isValidElement,\n type ReactNode,\n useMemo,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport useFormField, {\n FormControlContext,\n type FormControlContextProps,\n} from 'design-system/components/FormControl/useFormField';\nimport Tooltip, { TextWithDashedUnderline } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\ntype LabelSizes = 'md' | 'sm';\n\ninterface StyledLabelProps {\n $size?: LabelSizes;\n}\n\nconst LabelBase = styled(Root)<StyledLabelProps>`\n ${({ $size }) => {\n switch ($size) {\n default:\n case 'md':\n return css`\n ${Typography.TextMedium};\n `;\n case 'sm':\n return css`\n ${Typography.TextSmall};\n `;\n }\n }}\n\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n`;\n\nexport interface FormLabelProps extends ComponentPropsWithoutRef<typeof Root> {\n tooltip?: ReactNode;\n size?: LabelSizes;\n side?: 'top' | 'right' | 'bottom' | 'left';\n labelTooltipZIndex?: number;\n required?: boolean;\n}\n\nconst RequiredIndicator = styled.span`\n margin-left: ${Spacing[1]};\n vertical-align: top;\n color: ${({ theme }) => semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)};\n`;\n\nexport const FormLabel = ({\n tooltip,\n side,\n size,\n children,\n labelTooltipZIndex,\n required,\n ...props\n}: FormLabelProps) => {\n const field = useFormField({ labelId: props.id, required });\n const formGroup = useFormGroup();\n const labelProps = {\n id: field.labelId,\n htmlFor: field.inputId,\n ...props,\n };\n\n // Use labelTooltipZIndex from props, then from form group context\n const effectivelabelTooltipZIndex = labelTooltipZIndex ?? formGroup.labelTooltipZIndex;\n\n if (tooltip) {\n return (\n <Tooltip\n size={size}\n trigger={\n <LabelBase {...labelProps} $size={size}>\n <TextWithDashedUnderline>{children}</TextWithDashedUnderline>\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n }\n side={side}\n {...(effectivelabelTooltipZIndex != null && { zIndex: effectivelabelTooltipZIndex })}\n >\n {tooltip}\n </Tooltip>\n );\n }\n\n return (\n <LabelBase {...labelProps} $size={size}>\n {children}\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n );\n};\n\n/**\n * Used to target an input field within a FormControl.\n */\nexport const FormInputContainer = styled.div``;\n\nconst HelperTextBase = styled.div<ErrorProps>`\n ${Typography.TextSmall};\n line-height: 1;\n color: ${({ theme, hasWarning, hasError }) =>\n hasError\n ? semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)\n : hasWarning\n ? semanticColor(theme, 'FgWarning1', Color.CoreOrange900)\n : semanticColor(theme, 'FgSecondary', theme.color.text.secondary)};\n`;\n\ninterface HelperTextProps extends ComponentPropsWithoutRef<'div'>, ErrorProps {}\n\nexport const HelperText = forwardRef<HTMLDivElement, HelperTextProps>(\n function HelperText(props, ref) {\n const field = useFormField({ helperTextId: props.id });\n return (\n <HelperTextBase\n hasError={field.hasError}\n hasWarning={field.hasWarning}\n id={field.helperTextId}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nexport const ErrorText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function ErrorText(props, ref) {\n const field = useFormField({ errorTextId: props.id });\n return <HelperTextBase hasError id={field.errorTextId} ref={ref} {...props} />;\n },\n);\n\nexport const WarningText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function WarningText(props, ref) {\n const field = useFormField({ warningTextId: props.id });\n return <HelperTextBase hasWarning id={field.warningTextId} ref={ref} {...props} />;\n },\n);\n\nexport const Container = styled.div<{\n $configField?: boolean;\n $hasRightActions?: boolean;\n $configFieldInputWidth?: string;\n}>`\n display: flex;\n ${({ $configField, $hasRightActions, $configFieldInputWidth }) =>\n $configField\n ? $hasRightActions\n ? css`\n flex-direction: column;\n `\n : css`\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: ${Spacing[4]};\n min-width: 288px;\n\n > ${FormInputContainer} {\n display: flex;\n flex-direction: row-reverse;\n width: ${$configFieldInputWidth ?? '50%'};\n min-width: 180px;\n }\n\n &:has(textarea) {\n flex-direction: column;\n align-items: flex-start;\n gap: ${Spacing[1]};\n\n > ${FormInputContainer} {\n width: 100%;\n }\n }\n `\n : css`\n flex-direction: column;\n margin-bottom: ${Spacing[3]};\n `}\n\n > *:not(:first-child) {\n margin-top: ${({ $configField, $hasRightActions }) =>\n $hasRightActions ? Spacing[1] : $configField ? Spacing[0] : Spacing[2]};\n }\n\n > ${HelperTextBase} {\n margin-top: ${Spacing[1]};\n }\n`;\n\nexport interface FormControlBaseProps extends ErrorProps {\n inputId?: string;\n disabled?: boolean;\n /** Marks the field as required. `FormLabel` renders an asterisk. */\n required?: boolean;\n /**\n * Whether to render the form field as a config field.\n * This will remove the label and helper text.\n */\n configField?: boolean;\n /**\n * Whether the form field has right actions.\n */\n hasRightActions?: boolean;\n /**\n * Override the width of the form input container when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n}\n\nexport interface FormControlProps extends ComponentPropsWithoutRef<'div'>, FormControlBaseProps {}\n\nexport const FormControl = forwardRef<HTMLDivElement, FormControlProps>(function FormControl(\n {\n children,\n hasError,\n hasWarning,\n inputId,\n disabled,\n required,\n configField,\n hasRightActions,\n configFieldInputWidth,\n ...props\n }: FormControlProps,\n ref,\n) {\n const generatedId = useMemo(() => uniqueId('pds_form_control__'), []);\n\n const initFormField: FormControlContextProps = {\n hasError,\n hasWarning,\n disabled,\n required: required ?? false,\n inputId: inputId ?? generatedId,\n configField,\n };\n\n Children.map(children, (child: ReactNode) => {\n if (isValidElement(child)) {\n switch (child.type) {\n case FormLabel: {\n initFormField.labelId = child.props.id ?? `${initFormField.inputId}-label`;\n break;\n }\n case HelperText: {\n initFormField.helperTextId = child.props.id ?? `${initFormField.inputId}-help-text`;\n break;\n }\n case ErrorText: {\n initFormField.errorTextId = child.props.id ?? `${initFormField.inputId}-error-text`;\n break;\n }\n case WarningText: {\n initFormField.warningTextId = child.props.id ?? `${initFormField.inputId}-warning-text`;\n break;\n }\n }\n }\n });\n\n const field = useFormField(initFormField);\n\n return (\n <FormControlContext.Provider value={field}>\n <Container\n ref={ref}\n $configField={field.configField}\n $hasRightActions={hasRightActions}\n $configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {children}\n </Container>\n </FormControlContext.Provider>\n );\n});\n\nexport default FormControl;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as ErrorProps } from "./ErrorProps-Dgu98PkH.mjs";
1
+ import { t as ErrorProps } from "./ErrorProps-B8-Mqf1W.mjs";
2
2
  import * as _$react from "react";
3
3
  import { ComponentPropsWithoutRef, ReactNode } from "react";
4
4
  import * as _$styled_components0 from "styled-components";
@@ -12,6 +12,7 @@ interface FormLabelProps extends ComponentPropsWithoutRef<typeof Root> {
12
12
  size?: LabelSizes;
13
13
  side?: 'top' | 'right' | 'bottom' | 'left';
14
14
  labelTooltipZIndex?: number;
15
+ required?: boolean;
15
16
  }
16
17
  declare const FormLabel: ({
17
18
  tooltip,
@@ -19,6 +20,7 @@ declare const FormLabel: ({
19
20
  size,
20
21
  children,
21
22
  labelTooltipZIndex,
23
+ required,
22
24
  ...props
23
25
  }: FormLabelProps) => _$react_jsx_runtime0.JSX.Element;
24
26
  /**
@@ -37,6 +39,8 @@ declare const Container: _$styled_components0.StyledComponent<"div", any, {
37
39
  interface FormControlBaseProps extends ErrorProps {
38
40
  inputId?: string;
39
41
  disabled?: boolean;
42
+ /** Marks the field as required. `FormLabel` renders an asterisk. */
43
+ required?: boolean;
40
44
  /**
41
45
  * Whether to render the form field as a config field.
42
46
  * This will remove the label and helper text.
@@ -57,4 +61,4 @@ interface FormControlProps extends ComponentPropsWithoutRef<'div'>, FormControlB
57
61
  declare const FormControl: _$react.ForwardRefExoticComponent<FormControlProps & _$react.RefAttributes<HTMLDivElement>>;
58
62
  //#endregion
59
63
  export { FormControlProps as a, FormLabelProps as c, FormControlBaseProps as i, HelperText as l, ErrorText as n, FormInputContainer as o, FormControl as r, FormLabel as s, Container as t, WarningText as u };
60
- //# sourceMappingURL=FormControl-CJfYdgZF.d.mts.map
64
+ //# sourceMappingURL=FormControl-Dg8doZq2.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as FormControlProps, c as FormLabelProps, i as FormControlBaseProps, l as HelperText, n as ErrorText, o as FormInputContainer, r as FormControl, s as FormLabel, t as Container, u as WarningText } from "./FormControl-CJfYdgZF.mjs";
1
+ import { a as FormControlProps, c as FormLabelProps, i as FormControlBaseProps, l as HelperText, n as ErrorText, o as FormInputContainer, r as FormControl, s as FormLabel, t as Container, u as WarningText } from "./FormControl-Dg8doZq2.mjs";
2
2
  export { Container, ErrorText, FormControl, FormControl as default, FormControlBaseProps, FormControlProps, FormInputContainer, FormLabel, FormLabelProps, HelperText, WarningText };
@@ -1,4 +1,4 @@
1
- import { c as ParagraphProps, o as LabelProps, u as SpanProps } from "./Text-DD_W_ixb.mjs";
1
+ import { c as ParagraphProps, o as LabelProps, u as SpanProps } from "./Text-DbtTa83E.mjs";
2
2
  import * as _$react from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as FormControlProps, l as HelperText, n as ErrorText, s as FormLabel, u as WarningText } from "./FormControl-CJfYdgZF.mjs";
1
+ import { a as FormControlProps, l as HelperText, n as ErrorText, s as FormLabel, u as WarningText } from "./FormControl-Dg8doZq2.mjs";
2
2
  import * as _$react from "react";
3
3
  import { ComponentPropsWithRef, ReactElement, ReactNode } from "react";
4
4
 
@@ -12,6 +12,8 @@ interface FormFieldBaseProps {
12
12
  * ID of the input element. Providing this will automatically link the label to the input.
13
13
  */
14
14
  inputId?: string;
15
+ /** Marks the field as required. The label renders an asterisk; composed fields also forward `required` to their input. */
16
+ required?: boolean;
15
17
  /**
16
18
  * Renders `<HelperText>` below input
17
19
  */
@@ -65,4 +67,4 @@ interface FormFieldProps extends Omit<FormControlProps, 'children'>, FormFieldBa
65
67
  declare const FormField: _$react.ForwardRefExoticComponent<FormFieldProps & _$react.RefAttributes<HTMLDivElement>>;
66
68
  //#endregion
67
69
  export { FormFieldBaseProps as n, FormFieldProps as r, FormField as t };
68
- //# sourceMappingURL=FormField-CK8o1sMB.d.mts.map
70
+ //# sourceMappingURL=FormField-BeLigf9j.d.mts.map
@@ -1,19 +1,19 @@
1
- import { t as HStack } from "./Stack-ChsImaEY.mjs";
2
- import { t as IconButton } from "./IconButton-CqTPMhjV.mjs";
3
- import { n as useFormGroup } from "./useFormGroup-CH3kiXoa.mjs";
4
- import { t as FormControlContext } from "./useFormField-DsvC5dOb.mjs";
1
+ import { t as HStack } from "./Stack-Bkn0TUDe.mjs";
2
+ import { t as IconButton } from "./IconButton-CCLMYWVN.mjs";
3
+ import { n as useFormGroup } from "./useFormGroup-C7Cax8zO.mjs";
4
+ import { t as FormControlContext } from "./useFormField-XezSxho_.mjs";
5
5
  import Input_default from "./components/Input/index.mjs";
6
- import { n as DropdownMenu_default } from "./DropdownMenu-CuKSNxc9.mjs";
7
- import { t as Checkbox } from "./Checkbox-CyWXhuby.mjs";
8
- import { t as Combobox } from "./Combobox-1M6EwVmq.mjs";
9
- import { n as Select } from "./Select-DE7uv9C8.mjs";
10
- import { t as Toggle } from "./Toggle-Dcn2Rqgm.mjs";
11
- import { a as FormLabel, i as FormInputContainer, n as ErrorText, o as HelperText, r as FormControl, s as WarningText } from "./FormControl-BEk4F1EV.mjs";
12
- import { t as ListBox } from "./ListBox-CFBhILRy.mjs";
13
- import { t as RadioGroup } from "./RadioGroup-HIC9V2hO.mjs";
14
- import { t as SegmentedControl } from "./SegmentedControl-OHrfJiw0.mjs";
15
- import { t as TextAreaWithStyle } from "./TextArea-8TuVvmvj.mjs";
16
- import { t as TableBox } from "./TableBox-NP6bhtKb.mjs";
6
+ import { n as DropdownMenu_default } from "./DropdownMenu-rm9Nnxn7.mjs";
7
+ import { t as Checkbox } from "./Checkbox-DQynkc_I.mjs";
8
+ import { t as Combobox } from "./Combobox-C_kCY3P3.mjs";
9
+ import { n as Select } from "./Select-yC2t_gZb.mjs";
10
+ import { t as Toggle } from "./Toggle-D4ZaUcVt.mjs";
11
+ import { a as FormLabel, i as FormInputContainer, n as ErrorText, o as HelperText, r as FormControl, s as WarningText } from "./FormControl-DXrxoJLl.mjs";
12
+ import { t as ListBox } from "./ListBox-sqeLBiKS.mjs";
13
+ import { t as RadioGroup } from "./RadioGroup-lWMMtu9V.mjs";
14
+ import { t as SegmentedControl } from "./SegmentedControl-BEbIcV3g.mjs";
15
+ import { t as TextAreaWithStyle } from "./TextArea-CfZr5Sk4.mjs";
16
+ import { t as TableBox } from "./TableBox-obl64W5Y.mjs";
17
17
  import { Spacing } from "@persona/design-tokens";
18
18
  import { Children, Fragment, cloneElement, createContext, forwardRef, useContext, useMemo, useRef, useState } from "react";
19
19
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -89,6 +89,7 @@ const splitOutFormFieldProps = (props) => {
89
89
  formFieldProps: {
90
90
  label,
91
91
  inputId,
92
+ required: props.required,
92
93
  helperText,
93
94
  errorText,
94
95
  warningText,
@@ -153,19 +154,21 @@ const SelectField = ({ id, children, ...props }) => {
153
154
  })
154
155
  });
155
156
  };
156
- const RadioGroupField = ({ label, helperText, errorText, warningText, children, ...props }) => {
157
+ const RadioGroupField = ({ label, helperText, errorText, warningText, required, children, ...props }) => {
157
158
  return /* @__PURE__ */ jsx(FormField, {
158
159
  label,
159
160
  helperText,
160
161
  warningText,
161
162
  errorText,
163
+ required,
162
164
  children: /* @__PURE__ */ jsx(RadioGroup, {
163
165
  ...props,
166
+ "aria-required": required,
164
167
  children
165
168
  })
166
169
  });
167
170
  };
168
- const CheckboxField = ({ label, helperText, errorText, warningText, checkboxLabel, configField, labelProps, ...props }) => {
171
+ const CheckboxField = ({ label, helperText, errorText, warningText, checkboxLabel, configField, labelProps, required, ...props }) => {
169
172
  return /* @__PURE__ */ jsx(FormField, {
170
173
  label,
171
174
  helperText,
@@ -173,8 +176,10 @@ const CheckboxField = ({ label, helperText, errorText, warningText, checkboxLabe
173
176
  errorText,
174
177
  configField,
175
178
  labelProps,
179
+ required,
176
180
  children: /* @__PURE__ */ jsx(Checkbox, {
177
181
  label: checkboxLabel,
182
+ required,
178
183
  ...props
179
184
  })
180
185
  });
@@ -193,7 +198,7 @@ const ToggleField = forwardRef(function ToggleField(props, ref) {
193
198
  })
194
199
  });
195
200
  });
196
- const SegmentedControlField = forwardRef(function SegmentedControlField({ label, helperText, errorText, warningText, configField, children, labelProps, ...props }, ref) {
201
+ const SegmentedControlField = forwardRef(function SegmentedControlField({ label, helperText, errorText, warningText, configField, required, children, labelProps, ...props }, ref) {
197
202
  return /* @__PURE__ */ jsx(FormField, {
198
203
  label,
199
204
  helperText,
@@ -201,9 +206,11 @@ const SegmentedControlField = forwardRef(function SegmentedControlField({ label,
201
206
  errorText,
202
207
  configField,
203
208
  labelProps,
209
+ required,
204
210
  children: /* @__PURE__ */ jsx(SegmentedControl, {
205
211
  fullWidth: true,
206
212
  ...props,
213
+ "aria-required": required,
207
214
  ref,
208
215
  children
209
216
  })
@@ -278,6 +285,7 @@ const CheckboxGroupField = ({ children, name, onChange, disabled, readOnly, requ
278
285
  helperProps: descriptionProps,
279
286
  errorProps: errorMessageProps,
280
287
  disabled,
288
+ required,
281
289
  ...groupProps,
282
290
  ...props,
283
291
  children: /* @__PURE__ */ jsx(ClearGroupInputId, { children: /* @__PURE__ */ jsx(CheckboxGroupContext.Provider, {
@@ -288,7 +296,7 @@ const CheckboxGroupField = ({ children, name, onChange, disabled, readOnly, requ
288
296
  };
289
297
  //#endregion
290
298
  //#region components/FormField/ListBoxField.tsx
291
- const ListBoxField = ({ label, helperText, errorText, warningText, labelProps, helperProps, errorProps, warningProps, inputId, onAdd, onDelete, deleteDisabled, configField: configFieldProp, size = "md", actions = [], addDropdownConfig, addDisabled, selectedKeys: selectedKeysProp, onSelectionChange, defaultSelectedKeys, ...props }) => {
299
+ const ListBoxField = ({ label, helperText, errorText, warningText, labelProps, helperProps, errorProps, warningProps, inputId, required, onAdd, onDelete, deleteDisabled, configField: configFieldProp, size = "md", actions = [], addDropdownConfig, addDisabled, selectedKeys: selectedKeysProp, onSelectionChange, defaultSelectedKeys, ...props }) => {
292
300
  const { configField } = useFormGroup({ configField: configFieldProp });
293
301
  const menuActions = [...actions];
294
302
  const [selectedKeysState, setSelectedKeys] = useState(defaultSelectedKeys);
@@ -316,6 +324,7 @@ const ListBoxField = ({ label, helperText, errorText, warningText, labelProps, h
316
324
  errorProps,
317
325
  warningProps,
318
326
  inputId,
327
+ required,
319
328
  configField,
320
329
  rightActions: configField && /* @__PURE__ */ jsxs(Fragment$1, { children: [
321
330
  menuActions.length > 0 && /* @__PURE__ */ jsx(DropdownMenu_default, {
@@ -365,7 +374,7 @@ const ListBoxField = ({ label, helperText, errorText, warningText, labelProps, h
365
374
  * button (e.g. popover toggle guards) should import this rather than redefining it. */
366
375
  const TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL = "Add item to table";
367
376
  const isActionGroup = (action) => "type" in action && action.type === "group";
368
- const TableBoxField = ({ label, helperText, errorText, warningText, labelProps: labelPropsProp, helperProps, errorProps, warningProps, inputId, onAdd, onDelete, deleteDisabled, configField: configFieldProp = true, actions = [], addDropdownConfig, selectedKey: selectedKeyProp, onSelectionChange, defaultSelectedKey, selectionMode, disabled, createNewRow, children, emptyText = "No data", ...props }) => {
377
+ const TableBoxField = ({ label, helperText, errorText, warningText, labelProps: labelPropsProp, helperProps, errorProps, warningProps, inputId, required, onAdd, onDelete, deleteDisabled, configField: configFieldProp = true, actions = [], addDropdownConfig, selectedKey: selectedKeyProp, onSelectionChange, defaultSelectedKey, selectionMode, disabled, createNewRow, children, emptyText = "No data", ...props }) => {
369
378
  const { configField } = useFormGroup({ configField: configFieldProp });
370
379
  const menuActions = [...actions];
371
380
  const [selectedKeyState, setSelectedKey] = useState(defaultSelectedKey);
@@ -405,6 +414,7 @@ const TableBoxField = ({ label, helperText, errorText, warningText, labelProps:
405
414
  errorProps,
406
415
  warningProps,
407
416
  inputId,
417
+ required,
408
418
  rightActions: configField && /* @__PURE__ */ jsxs(Fragment$1, { children: [
409
419
  visibleMenuActions.length > 0 && /* @__PURE__ */ jsx(DropdownMenu_default, {
410
420
  trigger: /* @__PURE__ */ jsx(IconButton, {
@@ -473,4 +483,4 @@ TableBoxField.Cell = TableBox.Cell;
473
483
  //#endregion
474
484
  export { CheckboxField as a, SegmentedControlField as c, TextField as d, ToggleField as f, CheckboxGroupField as i, SelectField as l, FormField as m, TableBoxField as n, ComboboxField as o, splitOutFormFieldProps as p, ListBoxField as r, RadioGroupField as s, TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL as t, TextAreaField as u };
475
485
 
476
- //# sourceMappingURL=FormField-ByT0avVx.mjs.map
486
+ //# sourceMappingURL=FormField-Crp3F-hv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField-Crp3F-hv.mjs","names":["Input","TextArea","DropdownMenu","DropdownMenu"],"sources":["../components/FormField/FormField.tsx","../components/FormField/inputFields.tsx","../components/FormField/CheckboxGroupField.tsx","../components/FormField/ListBoxField.tsx","../components/FormField/TableBoxField.tsx"],"sourcesContent":["import { type ComponentPropsWithRef, forwardRef, type ReactElement, type ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport FormControl, {\n ErrorText,\n type FormControlProps,\n FormInputContainer,\n FormLabel,\n HelperText,\n WarningText,\n} from 'design-system/components/FormControl';\nimport { HStack } from 'design-system/components/Stack';\n\nexport interface FormFieldBaseProps {\n /**\n * Renders `<Label>` above input\n */\n label?: ReactNode;\n\n /**\n * ID of the input element. Providing this will automatically link the label to the input.\n */\n inputId?: string;\n\n /** Marks the field as required. The label renders an asterisk; composed fields also forward `required` to their input. */\n required?: boolean;\n\n /**\n * Renders `<HelperText>` below input\n */\n helperText?: ReactNode;\n\n /**\n * Renders `<ErrorText>` below input and helper text.\n */\n errorText?: ReactNode;\n\n /**\n * Renders `<WarningText>` below input and helper text.\n */\n warningText?: ReactNode;\n\n /**\n * Should be an input of some sort\n */\n children?: ReactElement;\n\n labelProps?: ComponentPropsWithRef<typeof FormLabel>;\n helperProps?: ComponentPropsWithRef<typeof HelperText>;\n warningProps?: ComponentPropsWithRef<typeof WarningText>;\n errorProps?: ComponentPropsWithRef<typeof ErrorText>;\n\n /**\n * Whether to render the form field as a config field.\n * This will render the helper text as a tooltip.\n */\n configField?: boolean;\n\n /**\n * Override the width of the input area when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n\n /**\n * Renders actions to the right of the label.\n */\n rightActions?: ReactNode;\n}\n\nexport interface FormFieldProps extends Omit<FormControlProps, 'children'>, FormFieldBaseProps {}\n\n/**\n * Helper component with preset slots for label, input, and helper texts.\n *\n * Prefer a composed field component, such as `<TextField>`, `<SelectField>`, or\n * `<CheckboxField>`, when one is available for the input type. Use `<FormField>` directly\n * when composing a custom control or layout.\n *\n * ## Usage\n *\n * ```tsx\n * import FormField from 'design-system/components/FormField';\n * ```\n */\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(function FormField(\n {\n label,\n children,\n helperText,\n warningText,\n errorText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField: configFieldProp,\n configFieldInputWidth,\n rightActions,\n ...props\n }: FormFieldProps,\n ref,\n) {\n const { configField: configFieldFormGroup } = useFormGroup();\n const configField = configFieldProp ?? configFieldFormGroup;\n\n const labelElement = label ? (\n <FormLabel tooltip={configField && helperText ? helperText : undefined} {...labelProps}>\n {label}\n </FormLabel>\n ) : null;\n\n return (\n <FormControl\n hasError={!!errorText}\n hasWarning={!!warningText}\n ref={ref}\n configField={configField}\n hasRightActions={!!rightActions}\n configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {rightActions ? (\n <HStack justify='space-between' align='center'>\n {labelElement}\n <HStack spacing={Spacing[1]}>{rightActions}</HStack>\n </HStack>\n ) : (\n labelElement\n )}\n <FormInputContainer>{children}</FormInputContainer>\n {!configField && helperText && <HelperText {...helperProps}>{helperText}</HelperText>}\n {!configField && warningText && <WarningText {...warningProps}>{warningText}</WarningText>}\n {!configField && errorText && <ErrorText {...errorProps}>{errorText}</ErrorText>}\n </FormControl>\n );\n});\n\nexport default FormField;\n","import { uniqueId } from 'lodash-es';\nimport { forwardRef, useMemo } from 'react';\n\nimport Checkbox, { type CheckboxProps } from 'design-system/components/Checkbox';\nimport Combobox from 'design-system/components/Combobox';\nimport type { ComboboxMultiSelectProps } from 'design-system/components/Combobox/ComboboxMultiSelect';\nimport type { ComboboxSingleSelectProps } from 'design-system/components/Combobox/ComboboxSingleSelect';\nimport FormField, { type FormFieldBaseProps } from 'design-system/components/FormField/FormField';\nimport Input, { type InputProps } from 'design-system/components/Input';\nimport RadioGroup, { type RadioGroupProps } from 'design-system/components/RadioGroup';\nimport SegmentedControl, {\n type SegmentedControlProps,\n} from 'design-system/components/SegmentedControl';\nimport Select, { type SelectProps } from 'design-system/components/Select';\nimport TextArea, { type TextAreaProps } from 'design-system/components/TextArea';\nimport Toggle, { type ToggleProps } from 'design-system/components/Toggle';\n\nexport type ImplementsFormField = Omit<FormFieldBaseProps, 'children'>;\n\ntype ExtractFormFieldProps<T extends ImplementsFormField> = Pick<\n T,\n | 'label'\n | 'inputId'\n | 'required'\n | 'helperText'\n | 'errorText'\n | 'warningText'\n | 'labelProps'\n | 'helperProps'\n | 'warningProps'\n | 'errorProps'\n | 'configField'\n | 'configFieldInputWidth'\n | 'rightActions'\n>;\ntype OmitFormFieldProps<T extends ImplementsFormField> = Omit<\n T,\n Exclude<keyof ExtractFormFieldProps<T>, 'required'>\n>;\n\n/**\n * Helper to split out props that are sent to the FormField component from props sent\n * to the underlying input component.\n */\nexport const splitOutFormFieldProps = <T extends ImplementsFormField>(\n props: T,\n): {\n formFieldProps: ExtractFormFieldProps<T>;\n inputProps: OmitFormFieldProps<T>;\n} => {\n const {\n label,\n inputId,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n ...inputProps\n } = props;\n\n return {\n formFieldProps: {\n label,\n inputId,\n required: props.required,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n },\n inputProps,\n };\n};\n\nexport interface TextFieldProps extends ImplementsFormField, InputProps {}\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <Input {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface TextAreaFieldProps extends ImplementsFormField, TextAreaProps {}\n\nexport const TextAreaField = forwardRef<HTMLTextAreaElement, TextAreaFieldProps>(\n function TextAreaField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <TextArea {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SelectFieldProps extends ImplementsFormField, SelectProps {}\n\nexport const SelectField = ({ id, children, ...props }: SelectFieldProps) => {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const linkedId = useMemo(\n () => formFieldProps.inputId ?? id ?? uniqueId('pds-form-field-input-fields-select__'),\n [formFieldProps.inputId, id],\n );\n\n return (\n <FormField\n {...formFieldProps}\n inputId={linkedId}\n labelProps={{ htmlFor: linkedId, size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Select {...inputProps} id={linkedId}>\n {children}\n </Select>\n </FormField>\n );\n};\n\nexport interface RadioGroupFieldProps\n extends Omit<ImplementsFormField, 'configField'>, RadioGroupProps {}\n\nexport const RadioGroupField = ({\n label,\n helperText,\n errorText,\n warningText,\n required,\n children,\n ...props\n}: RadioGroupFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n required={required}\n >\n <RadioGroup {...props} aria-required={required}>\n {children}\n </RadioGroup>\n </FormField>\n );\n};\n\nexport interface CheckboxFieldProps extends ImplementsFormField, CheckboxProps {\n checkboxLabel?: CheckboxProps['label'];\n}\n\nexport const CheckboxField = ({\n label,\n helperText,\n errorText,\n warningText,\n checkboxLabel,\n configField,\n labelProps,\n required,\n ...props\n}: CheckboxFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <Checkbox label={checkboxLabel} required={required} {...props} />\n </FormField>\n );\n};\n\nexport interface ToggleFieldProps extends ImplementsFormField, ToggleProps {}\n\nexport const ToggleField = forwardRef<HTMLDivElement, ToggleFieldProps>(\n function ToggleField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Toggle {...inputProps} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SegmentedControlFieldProps\n extends ImplementsFormField, Omit<SegmentedControlProps, 'children'> {\n children?: SegmentedControlProps['children'];\n}\n\nexport const SegmentedControlField = forwardRef<HTMLDivElement, SegmentedControlFieldProps>(\n function SegmentedControlField(\n {\n label,\n helperText,\n errorText,\n warningText,\n configField,\n required,\n children,\n labelProps,\n ...props\n },\n ref,\n ) {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <SegmentedControl fullWidth {...props} aria-required={required} ref={ref}>\n {children}\n </SegmentedControl>\n </FormField>\n );\n },\n);\n\nexport type ComboboxSingleSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxSingleSelectProps<T>;\nexport type ComboboxMultiSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxMultiSelectProps<T>;\n\nexport const ComboboxField = (\n props: ComboboxSingleSelectFieldProps | ComboboxMultiSelectFieldProps,\n) => {\n // `Combobox` registers its own id with the surrounding `FormControl`, which is what links the\n // label to it, so the field only forwards an explicit `inputId` when one is given. Each mode is\n // split separately: `multiple` discriminates the two, and a union split at once loses that.\n if (props.multiple) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n }\n\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n};\n","import {\n Children,\n cloneElement,\n type ComponentPropsWithRef,\n createContext,\n type ReactElement,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\nimport {\n type AriaCheckboxGroupProps,\n mergeProps,\n useCheckboxGroup,\n useCheckboxGroupItem,\n} from 'react-aria';\nimport innerText from 'react-innertext';\nimport { type CheckboxGroupState, useCheckboxGroupState } from 'react-stately';\n\nimport type { CheckboxProps } from 'design-system/components/Checkbox';\nimport type Checkbox from 'design-system/components/Checkbox';\nimport { FormControlContext } from 'design-system/components/FormControl/useFormField';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\n\n/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\nconst CheckboxGroupContext = createContext<CheckboxGroupState>(null);\n\n/** Preserves the parent FormControl context (disabled, hasError, etc.) but clears\n * inputId so each Checkbox inside the group generates its own unique id. */\nconst ClearGroupInputId = ({ children }: { children: ReactNode }) => {\n const parentContext = useContext(FormControlContext);\n return (\n <FormControlContext.Provider value={{ ...parentContext, inputId: undefined }}>\n {children}\n </FormControlContext.Provider>\n );\n};\n\ninterface CheckboxGroupItemProps {\n children: ReactElement<ComponentPropsWithRef<typeof Checkbox>>;\n}\n\nconst CheckboxGroupItem = (props: CheckboxGroupItemProps) => {\n const { children } = props;\n const checkboxProps = children.props;\n\n const state = useContext(CheckboxGroupContext);\n const ref = useRef();\n const { inputProps } = useCheckboxGroupItem(\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n {\n ...checkboxProps,\n onChange: undefined,\n isDisabled: checkboxProps.disabled,\n isReadOnly: checkboxProps.readOnly,\n isRequired: checkboxProps.required,\n isIndeterminate: checkboxProps.indeterminate,\n value: String(children.props.value),\n 'aria-label': innerText(checkboxProps.label),\n },\n state,\n ref,\n );\n\n return cloneElement(\n children,\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n mergeProps(inputProps, {\n onChange: checkboxProps.onChange,\n disabled: state.isDisabled || checkboxProps.disabled,\n checked: state.isSelected(String(inputProps.value)),\n ref,\n } as ComponentPropsWithRef<typeof Checkbox>),\n );\n};\n\ninterface CheckboxGroupFieldProps\n extends\n Omit<ImplementsFormField, 'configField'>,\n Omit<\n AriaCheckboxGroupProps,\n 'description' | 'disabled' | 'isReadOnly' | 'isRequired' | 'errorMessage'\n > {\n children?: ReactElement<CheckboxProps>[];\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n}\n\nconst CheckboxGroupField = ({\n children,\n name,\n onChange,\n disabled,\n readOnly,\n required,\n ...props\n}: CheckboxGroupFieldProps) => {\n const reactAriaProps = {\n ...props,\n description: props.helperText,\n errorMessage: props.errorText,\n onChange,\n name,\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n };\n const state = useCheckboxGroupState(reactAriaProps);\n const { groupProps, labelProps, descriptionProps, errorMessageProps } = useCheckboxGroup(\n reactAriaProps,\n state,\n );\n\n return (\n <FormField\n labelProps={labelProps}\n helperProps={descriptionProps}\n errorProps={errorMessageProps}\n disabled={disabled}\n required={required}\n {...groupProps}\n {...props}\n >\n <ClearGroupInputId>\n <CheckboxGroupContext.Provider value={state}>\n {Children.map(children, (checkbox) => (\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n <CheckboxGroupItem>{checkbox}</CheckboxGroupItem>\n ))}\n </CheckboxGroupContext.Provider>\n </ClearGroupInputId>\n </FormField>\n );\n};\n\nexport default CheckboxGroupField;\n","import { type ReactNode, useState } from 'react';\n\nimport { MoreIcon, PlusIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\nimport ListBox, { type ListBoxProps } from 'design-system/components/ListBox';\nimport type { MenuItemProps } from 'design-system/components/Menu';\n\ninterface ListBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKeys: ListBoxProps<any>['selectedKeys']) => void;\n}\n\ninterface AddDropdownConfig {\n options: ({ label: ReactNode; value: string } & Omit<MenuItemProps, 'children'>)[];\n onSelection: (value: string) => void;\n}\n\ninterface ListBoxFieldProps<T extends object> extends ImplementsFormField, ListBoxProps<T> {\n actions?: ListBoxFieldAction[];\n addDropdownConfig?: AddDropdownConfig;\n /** Disables the add button, e.g. while the list is read-only. */\n addDisabled?: boolean;\n}\n\nconst ListBoxField = <T extends object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp,\n size = 'md',\n actions = [],\n addDropdownConfig,\n addDisabled,\n selectedKeys: selectedKeysProp,\n onSelectionChange,\n defaultSelectedKeys,\n ...props\n}: ListBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: ListBoxFieldAction[] = [...actions];\n const [selectedKeysState, setSelectedKeys] = useState(defaultSelectedKeys);\n const selectedKeys = selectedKeysProp ?? selectedKeysState;\n const effectiveSize = configField ? 'sm' : size;\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => onDelete(selectedKeys),\n disabled:\n deleteDisabled ||\n selectedKeys == null ||\n (typeof selectedKeys === 'object' && [...selectedKeys].length === 0),\n });\n }\n\n const addButton = (\n <IconButton size='sm' onClick={onAdd} aria-label='Add item to list' disabled={addDisabled}>\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n configField={configField}\n rightActions={\n configField && (\n <>\n {menuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm'>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {menuActions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n onClick={() => action.onClick(selectedKeys)}\n size={effectiveSize}\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n {onAdd && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} align='start' portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size={effectiveSize}\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <ListBox\n id={inputId}\n fullWidth={configField}\n size={effectiveSize}\n deleteDisabled={deleteDisabled}\n // We have to control the keys so we can power the `rightActions`\n selectedKeys={selectedKeys}\n onSelectionChange={(keys) => {\n onSelectionChange?.(keys);\n setSelectedKeys(keys);\n }}\n {...props}\n />\n </FormField>\n );\n};\n\nexport default ListBoxField;\n","import { Fragment, type MouseEvent, type ReactNode, useState } from 'react';\n\nimport { IconButton } from '@persona/design-system/components/Button';\nimport { useFormGroup } from '@persona/design-system/components/ConfigFormGroup';\nimport DropdownMenu from '@persona/design-system/components/DropdownMenu';\nimport type { FormLabelProps } from '@persona/design-system/components/FormControl';\nimport type { MenuItemProps } from '@persona/design-system/components/Menu';\nimport TableBox, { type TableBoxProps } from '@persona/design-system/components/TableBox';\nimport { MoreIcon, PlusIcon } from '@persona/icons';\n\nimport FormField from './FormField';\nimport type { ImplementsFormField } from './inputFields';\n\nexport interface TableBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKey: TableBoxProps['selectedKey']) => void;\n}\n\nexport interface TableBoxFieldActionGroup {\n type: 'group';\n heading: string;\n actions: TableBoxFieldAction[];\n}\n\nexport type TableBoxFieldActionEntry = TableBoxFieldAction | TableBoxFieldActionGroup;\n\n/** Aria-label on TableBoxField's + button. Consumers that style or detect that\n * button (e.g. popover toggle guards) should import this rather than redefining it. */\nexport const TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL = 'Add item to table';\n\nconst isActionGroup = (action: TableBoxFieldActionEntry): action is TableBoxFieldActionGroup =>\n 'type' in action && action.type === 'group';\n\ninterface AddDropdownConfig {\n options: Array<{ label: string; value: string }>;\n onSelection: (value: string) => void;\n}\n\ninterface TableBoxFieldProps<T extends object = object>\n extends ImplementsFormField, Omit<TableBoxProps<T>, 'aria-label' | 'onCreateNewRow'> {\n onAdd?: (e: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: (selectedKey: string | null) => void;\n deleteDisabled?: boolean;\n /** Actions and labeled action groups rendered in order. Empty groups are omitted. */\n actions?: TableBoxFieldActionEntry[];\n addDropdownConfig?: AddDropdownConfig;\n\n /**\n * Callback to create a new row and add it to the rows array\n * Should return the id of the newly created row\n */\n createNewRow?: () => string;\n children?: ReactNode;\n}\n\nconst TableBoxField = <T extends object = object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps: labelPropsProp,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp = true,\n actions = [],\n addDropdownConfig,\n selectedKey: selectedKeyProp,\n onSelectionChange,\n defaultSelectedKey,\n selectionMode,\n disabled,\n createNewRow,\n children,\n emptyText = 'No data',\n ...props\n}: TableBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: TableBoxFieldActionEntry[] = [...actions];\n const [selectedKeyState, setSelectedKey] = useState(defaultSelectedKey);\n const selectedKey = selectedKeyProp ?? selectedKeyState;\n const [newRowId, setNewRowId] = useState<string | null>(null);\n const labelProps: FormLabelProps = { size: 'sm', ...labelPropsProp };\n\n const handleCreateNewRow = () => {\n if (createNewRow) {\n setNewRowId(createNewRow());\n }\n };\n\n // Handle add button click\n const handleAddClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (createNewRow) {\n handleCreateNewRow();\n } else if (onAdd) {\n onAdd(e);\n }\n };\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => selectedKey && onDelete(selectedKey),\n disabled: deleteDisabled || selectedKey == null,\n });\n }\n const visibleMenuActions = menuActions.filter(\n (action) => !isActionGroup(action) || action.actions.length > 0,\n );\n\n const addButton = (\n <IconButton\n size='sm'\n onClick={handleAddClick}\n aria-label={TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL}\n disabled={disabled}\n >\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n rightActions={\n configField && (\n <>\n {visibleMenuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm' disabled={disabled}>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {visibleMenuActions.map((entry, entryIndex) => {\n const previousEntry = visibleMenuActions[entryIndex - 1];\n if (isActionGroup(entry)) {\n return (\n <Fragment key={`${entry.heading}-${entryIndex}`}>\n {entryIndex > 0 && <DropdownMenu.Divider />}\n <DropdownMenu.Heading size='sm'>{entry.heading}</DropdownMenu.Heading>\n {entry.actions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n disabled={disabled || action.disabled}\n onClick={() => action.onClick(selectedKey)}\n size='sm'\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`${entry.label}-${entryIndex}`}>\n {previousEntry && isActionGroup(previousEntry) && <DropdownMenu.Divider />}\n <DropdownMenu.Item\n {...entry}\n disabled={disabled || entry.disabled}\n onClick={() => entry.onClick(selectedKey)}\n size='sm'\n >\n {entry.label}\n </DropdownMenu.Item>\n </Fragment>\n );\n })}\n </DropdownMenu>\n )}\n {(onAdd || createNewRow) && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size='sm'\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <TableBox\n aria-label={`${label} table`}\n // We have to control the keys so we can power the `rightActions`\n selectedKey={selectedKey}\n onSelectionChange={(key) => {\n onSelectionChange?.(key);\n setSelectedKey(key);\n }}\n selectionMode={selectionMode}\n newRowId={newRowId}\n onCreateNewRow={createNewRow ? handleCreateNewRow : undefined}\n emptyText={emptyText}\n disabled={disabled}\n {...props}\n >\n {children}\n </TableBox>\n </FormField>\n );\n};\n\n// Attach subcomponents to TableBoxField\nTableBoxField.Row = TableBox.Row;\nTableBoxField.Cell = TableBox.Cell;\n\nexport default TableBoxField;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as FormFieldBaseProps, r as FormFieldProps, t as FormField } from "./FormField-CK8o1sMB.mjs";
1
+ import { n as FormFieldBaseProps, r as FormFieldProps, t as FormField } from "./FormField-BeLigf9j.mjs";
2
2
  export { FormField, FormField as default, FormFieldBaseProps, FormFieldProps };
@@ -0,0 +1,92 @@
1
+ import { a as styled, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
2
+ import { Spacing } from "@persona/design-tokens";
3
+ import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region components/Grid/Grid.tsx
6
+ const GRID_BREAKPOINTS = {
7
+ sm: 768,
8
+ md: 1024,
9
+ lg: 1408
10
+ };
11
+ const GridBreakpointContext = createContext("md");
12
+ /** Breakpoint of the nearest `Grid`, measured from that grid's width. */
13
+ const useGridBreakpoint = () => useContext(GridBreakpointContext);
14
+ const getBreakpoint = (width) => {
15
+ if (width >= GRID_BREAKPOINTS.lg) return "lg";
16
+ if (width >= GRID_BREAKPOINTS.md) return "md";
17
+ if (width >= GRID_BREAKPOINTS.sm) return "sm";
18
+ return "xs";
19
+ };
20
+ const useMeasuredGridBreakpoint = (ref) => {
21
+ const [breakpoint, setBreakpoint] = useState("md");
22
+ useLayoutEffect(() => {
23
+ const node = ref.current;
24
+ if (!node) return;
25
+ const update = () => setBreakpoint(getBreakpoint(node.offsetWidth));
26
+ update();
27
+ const observer = new ResizeObserver(update);
28
+ observer.observe(node);
29
+ return () => observer.disconnect();
30
+ }, [ref]);
31
+ return breakpoint;
32
+ };
33
+ const Root = styled.div`
34
+ display: grid;
35
+ width: 100%;
36
+ grid-template-columns: repeat(12, minmax(0, 1fr));
37
+ box-sizing: border-box;
38
+
39
+ ${({ $breakpoint }) => $breakpoint === "xs" && css`
40
+ min-width: ${GRID_BREAKPOINTS.sm - 1}px;
41
+ `}
42
+
43
+ ${({ $breakpoint }) => $breakpoint === "xs" || $breakpoint === "sm" ? css`
44
+ gap: ${Spacing[3]};
45
+ padding-inline: ${Spacing[5]};
46
+ ` : css`
47
+ gap: ${Spacing[4]};
48
+ padding-inline: ${Spacing[6]};
49
+ `}
50
+
51
+ // max-width equals the lg threshold; offsetWidth reads the clamped border-box width and getBreakpoint uses >=, so the clamp stays 'lg'
52
+ ${({ $mode, $breakpoint }) => $mode === "fixed" && $breakpoint === "lg" && css`
53
+ max-width: ${GRID_BREAKPOINTS.lg}px;
54
+ margin-inline: auto;
55
+ `}
56
+ `;
57
+ /**
58
+ * Provides a 12-column CSS grid that measures its own width with a ResizeObserver for responsive
59
+ * horizontal margins and gutters. Vertical spacing is left to the consumer.
60
+ *
61
+ * The grid measures breakpoints against its own width rather than the viewport. Use `fixed` to
62
+ * center the grid at its large-screen maximum width, or `fluid` to keep it at 100% width.
63
+ */
64
+ const Grid = ({ mode, children, ...rest }) => {
65
+ const ref = useRef(null);
66
+ const breakpoint = useMeasuredGridBreakpoint(ref);
67
+ return /* @__PURE__ */ jsx(GridBreakpointContext.Provider, {
68
+ value: breakpoint,
69
+ children: /* @__PURE__ */ jsx(Root, {
70
+ ref,
71
+ $mode: mode,
72
+ $breakpoint: breakpoint,
73
+ ...rest,
74
+ children
75
+ })
76
+ });
77
+ };
78
+ //#endregion
79
+ //#region components/Grid/GridItem.tsx
80
+ const Item = styled.div`
81
+ grid-column: span ${({ $span }) => $span};
82
+ min-width: 0;
83
+ `;
84
+ const GridItem = ({ span, children, ...rest }) => /* @__PURE__ */ jsx(Item, {
85
+ $span: span,
86
+ ...rest,
87
+ children
88
+ });
89
+ //#endregion
90
+ export { useGridBreakpoint as i, GRID_BREAKPOINTS as n, Grid as r, GridItem as t };
91
+
92
+ //# sourceMappingURL=Grid-eMLuyRzV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid-eMLuyRzV.mjs","names":[],"sources":["../components/Grid/Grid.tsx","../components/Grid/GridItem.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n createContext,\n type ReactNode,\n type RefObject,\n useContext,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const GRID_BREAKPOINTS = { sm: 768, md: 1024, lg: 1408 } as const;\n\ntype Breakpoint = 'xs' | 'sm' | 'md' | 'lg';\n\nconst GridBreakpointContext = createContext<Breakpoint>('md');\n\n/** Breakpoint of the nearest `Grid`, measured from that grid's width. */\nexport const useGridBreakpoint = (): Breakpoint => useContext(GridBreakpointContext);\n\nconst getBreakpoint = (width: number): Breakpoint => {\n if (width >= GRID_BREAKPOINTS.lg) {\n return 'lg';\n }\n if (width >= GRID_BREAKPOINTS.md) {\n return 'md';\n }\n if (width >= GRID_BREAKPOINTS.sm) {\n return 'sm';\n }\n return 'xs';\n};\n\nconst useMeasuredGridBreakpoint = (ref: RefObject<HTMLDivElement>) => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>('md');\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setBreakpoint(getBreakpoint(node.offsetWidth));\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return breakpoint;\n};\n\nconst Root = styled.div<{ $mode: GridProps['mode']; $breakpoint: Breakpoint }>`\n display: grid;\n width: 100%;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n box-sizing: border-box;\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' &&\n css`\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n `}\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' || $breakpoint === 'sm'\n ? css`\n gap: ${Spacing[3]};\n padding-inline: ${Spacing[5]};\n `\n : css`\n gap: ${Spacing[4]};\n padding-inline: ${Spacing[6]};\n `}\n\n // max-width equals the lg threshold; offsetWidth reads the clamped border-box width and getBreakpoint uses >=, so the clamp stays 'lg'\n ${({ $mode, $breakpoint }) =>\n $mode === 'fixed' &&\n $breakpoint === 'lg' &&\n css`\n max-width: ${GRID_BREAKPOINTS.lg}px;\n margin-inline: auto;\n `}\n`;\n\nexport interface GridProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Selects the grid width behavior at the large breakpoint. `fixed` centers the grid at a\n * maximum width of 1408px, while `fluid` fills the available width.\n *\n * Breakpoints:\n * - ≤767px: 12 columns, 24px margins, 12px gutters, and a 767px minimum width.\n * - 768–1023px: 12 columns, 24px margins, 12px gutters, and 100% width.\n * - 1024–1407px: 12 columns, 32px margins, 16px gutters, and 100% width.\n * - ≥1408px: 12 columns, 32px margins, 16px gutters, and either fixed or fluid width.\n */\n mode: 'fixed' | 'fluid';\n children: ReactNode;\n}\n\n/**\n * Provides a 12-column CSS grid that measures its own width with a ResizeObserver for responsive\n * horizontal margins and gutters. Vertical spacing is left to the consumer.\n *\n * The grid measures breakpoints against its own width rather than the viewport. Use `fixed` to\n * center the grid at its large-screen maximum width, or `fluid` to keep it at 100% width.\n */\nexport const Grid = ({ mode, children, ...rest }: GridProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const breakpoint = useMeasuredGridBreakpoint(ref);\n return (\n <GridBreakpointContext.Provider value={breakpoint}>\n <Root ref={ref} $mode={mode} $breakpoint={breakpoint} {...rest}>\n {children}\n </Root>\n </GridBreakpointContext.Provider>\n );\n};\n\nexport default Grid;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nexport type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport interface GridItemProps extends ComponentPropsWithoutRef<'div'> {\n span: GridSpan;\n children: ReactNode;\n}\n\nconst Item = styled.div<{ $span: GridSpan }>`\n grid-column: span ${({ $span }) => $span};\n min-width: 0;\n`;\n\nexport const GridItem = ({ span, children, ...rest }: GridItemProps) => (\n <Item $span={span} {...rest}>\n {children}\n </Item>\n);\n\nexport default GridItem;\n"],"mappings":";;;;;AAcA,MAAa,mBAAmB;CAAE,IAAI;CAAK,IAAI;CAAM,IAAI;CAAM;AAI/D,MAAM,wBAAwB,cAA0B,KAAK;;AAG7D,MAAa,0BAAsC,WAAW,sBAAsB;AAEpF,MAAM,iBAAiB,UAA8B;AACnD,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,QAAO;;AAGT,MAAM,6BAA6B,QAAmC;CACpE,MAAM,CAAC,YAAY,iBAAiB,SAAqB,KAAK;AAC9D,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,cAAc,cAAc,KAAK,YAAY,CAAC;AACnE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,CAAC,IAAI,CAAC;AACT,QAAO;;AAGT,MAAM,OAAO,OAAO,GAA0D;;;;;;KAMzE,EAAE,kBACH,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,KAAK,EAAE;MACrC;;KAED,EAAE,kBACH,gBAAgB,QAAQ,gBAAgB,OACpC,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;YAE/B,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;UAC7B;;;KAGL,EAAE,OAAO,kBACV,UAAU,WACV,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,GAAG;;MAEjC;;;;;;;;;AAyBN,MAAa,QAAQ,EAAE,MAAM,UAAU,GAAG,WAAsB;CAC9D,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,aAAa,0BAA0B,IAAI;AACjD,QACE,oBAAC,sBAAsB,UAAvB;EAAgC,OAAO;YACrC,oBAAC,MAAD;GAAW;GAAK,OAAO;GAAM,aAAa;GAAY,GAAI;GACvD;GACI,CAAA;EACwB,CAAA;;;;ACzGrC,MAAM,OAAO,OAAO,GAAwB;uBACrB,EAAE,YAAY,MAAM;;;AAI3C,MAAa,YAAY,EAAE,MAAM,UAAU,GAAG,WAC5C,oBAAC,MAAD;CAAM,OAAO;CAAM,GAAI;CACpB;CACI,CAAA"}
package/dist/Grid.d.mts CHANGED
@@ -7,6 +7,9 @@ declare const GRID_BREAKPOINTS: {
7
7
  readonly md: 1024;
8
8
  readonly lg: 1408;
9
9
  };
10
+ type Breakpoint = 'xs' | 'sm' | 'md' | 'lg';
11
+ /** Breakpoint of the nearest `Grid`, measured from that grid's width. */
12
+ declare const useGridBreakpoint: () => Breakpoint;
10
13
  interface GridProps extends ComponentPropsWithoutRef<'div'> {
11
14
  /**
12
15
  * Selects the grid width behavior at the large breakpoint. `fixed` centers the grid at a
@@ -34,5 +37,5 @@ declare const Grid: ({
34
37
  ...rest
35
38
  }: GridProps) => _$react_jsx_runtime0.JSX.Element;
36
39
  //#endregion
37
- export { GRID_BREAKPOINTS, Grid, Grid as default, GridProps };
40
+ export { GRID_BREAKPOINTS, Grid, Grid as default, GridProps, useGridBreakpoint };
38
41
  //# sourceMappingURL=Grid.d.mts.map