@persona/design-system 0.5.1 → 0.7.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 (484) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{Action-C2FTJhnQ.d.mts → Action-C7INft7X.d.mts} +3 -3
  3. package/dist/Action.d.mts +1 -1
  4. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  5. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  6. package/dist/ArrayValueControl.d.mts +1 -1
  7. package/dist/Attribute.d.mts +3 -3
  8. package/dist/{Badge-BtNIvtDZ.mjs → Badge-BD0Ut46g.mjs} +2 -2
  9. package/dist/{Badge-BtNIvtDZ.mjs.map → Badge-BD0Ut46g.mjs.map} +1 -1
  10. package/dist/BooleanValueControl.d.mts +1 -1
  11. package/dist/{Breadcrumb-BlAhp45l.d.mts → Breadcrumb-DtW1R9xW.d.mts} +2 -2
  12. package/dist/Breadcrumb.d.mts +1 -1
  13. package/dist/{Breadcrumbs-DdZ14ZFw.d.mts → Breadcrumbs-B6JyoS8n.d.mts} +2 -2
  14. package/dist/{Breadcrumbs-ClKHNIr-.mjs → Breadcrumbs-CCmf8oZ4.mjs} +9 -9
  15. package/dist/Breadcrumbs-CCmf8oZ4.mjs.map +1 -0
  16. package/dist/Breadcrumbs.d.mts +1 -1
  17. package/dist/{Button-CTgyA3gc.d.mts → Button-HodDf_bB.d.mts} +18 -9
  18. package/dist/Button.d.mts +1 -1
  19. package/dist/{Calendar-_gM6U5ET.d.mts → Calendar-DrdTvzAa.d.mts} +1 -1
  20. package/dist/Calendar.d.mts +1 -1
  21. package/dist/CalendarBase.d.mts +1 -1
  22. package/dist/{Card-Dorym91P.d.mts → Card-CpDwATnX.d.mts} +3 -3
  23. package/dist/{Card-vQIPtdXi.mjs → Card-Dz6jqJuJ.mjs} +4 -4
  24. package/dist/{Card-vQIPtdXi.mjs.map → Card-Dz6jqJuJ.mjs.map} +1 -1
  25. package/dist/Card.d.mts +1 -1
  26. package/dist/Card2.d.mts +2 -2
  27. package/dist/{CardV2-CFTjYWoO.mjs → CardV2-Y_kRfd-R.mjs} +9 -9
  28. package/dist/{CardV2-CFTjYWoO.mjs.map → CardV2-Y_kRfd-R.mjs.map} +1 -1
  29. package/dist/{Checkbox-DRJXDs2T.d.mts → Checkbox-C-hMfItK.d.mts} +1 -1
  30. package/dist/{Checkbox-CyeitZ5q.mjs → Checkbox-DBAXDIQf.mjs} +4 -4
  31. package/dist/{Checkbox-CyeitZ5q.mjs.map → Checkbox-DBAXDIQf.mjs.map} +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-Ddas5FN-.mjs → Combobox-CNdpK8VG.mjs} +10 -10
  36. package/dist/{Combobox-Ddas5FN-.mjs.map → Combobox-CNdpK8VG.mjs.map} +1 -1
  37. package/dist/{Combobox-DX4DLe1b.d.mts → Combobox-CPE-IV79.d.mts} +3 -3
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-Ds_i3K2m.d.mts → ComboboxBase-B3Es1y9g.d.mts} +5 -5
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-S6oFJcOS.d.mts → ComboboxMultiSelect-4sRA7oL0.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-DFzCwW1Y.d.mts → ComboboxSingleSelect-DVPznL7L.d.mts} +4 -4
  44. package/dist/ComboboxSingleSelect.d.mts +1 -1
  45. package/dist/{CompactBar-DEqItiZr.d.mts → CompactBar-DhHh7Roq.d.mts} +3 -3
  46. package/dist/CompactBar.d.mts +1 -1
  47. package/dist/{ConfigFormGroup-DcsM-u8o.mjs → ConfigFormGroup-4lUy7CZH.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-DcsM-u8o.mjs.map → ConfigFormGroup-4lUy7CZH.mjs.map} +1 -1
  49. package/dist/{ControlBar-BVG5Pbvh.d.mts → ControlBar-C8kagIck.d.mts} +2 -2
  50. package/dist/ControlBar.d.mts +1 -1
  51. package/dist/DataTable.d.mts +4 -4
  52. package/dist/{DateField-CBCo8_d3.d.mts → DateField-2aigfD4u.d.mts} +2 -2
  53. package/dist/DateField.d.mts +1 -1
  54. package/dist/{DatePicker-DTT-mJ8r.mjs → DatePicker-CSd20-CW.mjs} +8 -8
  55. package/dist/{DatePicker-DTT-mJ8r.mjs.map → DatePicker-CSd20-CW.mjs.map} +1 -1
  56. package/dist/{DatePicker-BZ4_I4Db.d.mts → DatePicker-DC_RKjdM.d.mts} +2 -2
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/{DateRangePicker-BMKJquPT.d.mts → DateRangePicker-ByD6IsLB.d.mts} +3 -3
  59. package/dist/DateRangePicker.d.mts +1 -1
  60. package/dist/DateRangeValueControl.d.mts +2 -2
  61. package/dist/DateValueControl.d.mts +1 -1
  62. package/dist/{DropdownButton-DV5if_uG.mjs → DropdownButton-gmGRrD1z.mjs} +3 -3
  63. package/dist/{DropdownButton-DV5if_uG.mjs.map → DropdownButton-gmGRrD1z.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-DovtBJBs.mjs → DropdownMenu-I5WDO-q5.mjs} +2 -2
  66. package/dist/{DropdownMenu-DovtBJBs.mjs.map → DropdownMenu-I5WDO-q5.mjs.map} +1 -1
  67. package/dist/{DropdownMenu-CbhEzWy1.d.mts → DropdownMenu-eP6v6XE4.d.mts} +2 -2
  68. package/dist/DropdownMenu.d.mts +1 -1
  69. package/dist/{ErrorProps-7eWoxSes.d.mts → ErrorProps-Dgu98PkH.d.mts} +1 -1
  70. package/dist/ErrorProps.d.mts +1 -1
  71. package/dist/{FieldRegistry-BslyuPZw.d.mts → FieldRegistry-BtdqMYUD.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-DjZE4PoB.d.mts → FilterBar-CAnqGXgE.d.mts} +4 -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-BvRzRknE.mjs → FormControl-CButLg9b.mjs} +4 -4
  80. package/dist/{FormControl-BvRzRknE.mjs.map → FormControl-CButLg9b.mjs.map} +1 -1
  81. package/dist/{FormControl-gpLZZpNs.d.mts → FormControl-CJfYdgZF.d.mts} +2 -2
  82. package/dist/FormControl.d.mts +1 -1
  83. package/dist/FormControlLabel.d.mts +1 -1
  84. package/dist/{FormField-BDJ6zNE6.mjs → FormField-BHUeWCsa.mjs} +16 -16
  85. package/dist/{FormField-BDJ6zNE6.mjs.map → FormField-BHUeWCsa.mjs.map} +1 -1
  86. package/dist/{FormField-CZXKvCGt.d.mts → FormField-CK8o1sMB.d.mts} +2 -2
  87. package/dist/FormField.d.mts +1 -1
  88. package/dist/{Header-1laYnwRP.d.mts → Header-ZnHGm8fs.d.mts} +1 -1
  89. package/dist/Header.d.mts +1 -1
  90. package/dist/{HelperTooltip-BPJS3EwC.d.mts → HelperTooltip-CQpPO16Q.d.mts} +2 -2
  91. package/dist/HelperTooltip.d.mts +1 -1
  92. package/dist/{HoverCopyableField-WP6DPjy1.mjs → HoverCopyableField-B89NIwlE.mjs} +6 -6
  93. package/dist/{HoverCopyableField-WP6DPjy1.mjs.map → HoverCopyableField-B89NIwlE.mjs.map} +1 -1
  94. package/dist/{IconButton-CnJNIJVQ.mjs → IconButton-CqTPMhjV.mjs} +12 -5
  95. package/dist/IconButton-CqTPMhjV.mjs.map +1 -0
  96. package/dist/{IconButton-PnrnqQ1s.d.mts → IconButton-zu-VNp1h.d.mts} +2 -2
  97. package/dist/IconButton.d.mts +1 -1
  98. package/dist/ImageTile.d.mts +1 -1
  99. package/dist/InlineCombobox.d.mts +1 -1
  100. package/dist/InlineInput.d.mts +1 -1
  101. package/dist/{Input-DbfwNzS_.mjs → Input-C-TwCer2.mjs} +4 -4
  102. package/dist/{Input-DbfwNzS_.mjs.map → Input-C-TwCer2.mjs.map} +1 -1
  103. package/dist/{Input-Diztxhle.d.mts → Input-Ce8FvSYf.d.mts} +3 -3
  104. package/dist/Input.d.mts +1 -1
  105. package/dist/{InputProps-BILq1X-n.d.mts → InputProps-B1Xod4wm.d.mts} +2 -2
  106. package/dist/InputProps.d.mts +1 -1
  107. package/dist/IntegerValueControl.d.mts +1 -1
  108. package/dist/Link.d.mts +2 -2
  109. package/dist/{ListBox-CXh9Jfb-.mjs → ListBox-BHE4DO2l.mjs} +9 -9
  110. package/dist/{ListBox-CXh9Jfb-.mjs.map → ListBox-BHE4DO2l.mjs.map} +1 -1
  111. package/dist/{ListBox-P1eTecdo.d.mts → ListBox-CCBWdAUR.d.mts} +3 -3
  112. package/dist/ListBox.d.mts +1 -1
  113. package/dist/ListBoxField.d.mts +2 -2
  114. package/dist/{LoadingShimmer-DeVCDCjT.mjs → LoadingShimmer-JyGh7M7V.mjs} +1 -1
  115. package/dist/{LoadingShimmer-DeVCDCjT.mjs.map → LoadingShimmer-JyGh7M7V.mjs.map} +1 -1
  116. package/dist/LoadingShimmer.d.mts +1 -1
  117. package/dist/{LogicRow-DtZYOzQ8.d.mts → LogicRow-DmI8NKrI.d.mts} +3 -3
  118. package/dist/LogicRow.d.mts +1 -1
  119. package/dist/MaskedInput.d.mts +2 -2
  120. package/dist/{Menu-_loh8pe3.d.mts → Menu-C8RxFGOG.d.mts} +3 -3
  121. package/dist/{Menu-CAGTCBqj.mjs → Menu-xENvm-Oa.mjs} +2 -2
  122. package/dist/{Menu-CAGTCBqj.mjs.map → Menu-xENvm-Oa.mjs.map} +1 -1
  123. package/dist/Menu.d.mts +1 -1
  124. package/dist/Modal.d.mts +1 -1
  125. package/dist/{PageHeader-wpvRRTaa.mjs → PageHeader-7GBfUjU_.mjs} +3 -3
  126. package/dist/{PageHeader-wpvRRTaa.mjs.map → PageHeader-7GBfUjU_.mjs.map} +1 -1
  127. package/dist/PageHeader.d.mts +1 -1
  128. package/dist/{PageSelector-CIa3Zts9.d.mts → PageSelector-BMz2Q4P6.d.mts} +3 -3
  129. package/dist/PageSelector.d.mts +1 -1
  130. package/dist/{Pagination-wjr3W3xf.mjs → Pagination-BxNqU2yh.mjs} +5 -5
  131. package/dist/{Pagination-wjr3W3xf.mjs.map → Pagination-BxNqU2yh.mjs.map} +1 -1
  132. package/dist/{Pagination-C2eZEM7K.d.mts → Pagination-ne9hnVoe.d.mts} +2 -2
  133. package/dist/Pagination.d.mts +1 -1
  134. package/dist/{Pii-Bm-qkweh.mjs → Pii-B29k0Omf.mjs} +2 -2
  135. package/dist/{Pii-Bm-qkweh.mjs.map → Pii-B29k0Omf.mjs.map} +1 -1
  136. package/dist/{PillShell-D6dN9sWk.d.mts → PillShell-D9iQyM-8.d.mts} +2 -2
  137. package/dist/PillShell.d.mts +1 -1
  138. package/dist/{Popover-DUyzmq3e.mjs → Popover-Dn3xmzSK.mjs} +3 -3
  139. package/dist/{Popover-DUyzmq3e.mjs.map → Popover-Dn3xmzSK.mjs.map} +1 -1
  140. package/dist/{PseudoClassProps-DnlHhW5u.d.mts → PseudoClassProps-CdRF3QNn.d.mts} +1 -1
  141. package/dist/PseudoClassProps.d.mts +1 -1
  142. package/dist/{Radio-CkugnL91.mjs → Radio-BRPoGITE.mjs} +2 -2
  143. package/dist/{Radio-CkugnL91.mjs.map → Radio-BRPoGITE.mjs.map} +1 -1
  144. package/dist/{RadioGroup-8dI8gljw.mjs → RadioGroup-CahrWsXi.mjs} +2 -2
  145. package/dist/{RadioGroup-8dI8gljw.mjs.map → RadioGroup-CahrWsXi.mjs.map} +1 -1
  146. package/dist/{RadioGroup-Dg_gydUp.d.mts → RadioGroup-CxL6LW4q.d.mts} +1 -1
  147. package/dist/RadioGroup.d.mts +1 -1
  148. package/dist/RangeCalendar-B7TwRJbg.d.mts +40 -0
  149. package/dist/RangeCalendar.d.mts +2 -40
  150. package/dist/RangeCalendarPresets.d.mts +1 -1
  151. package/dist/RouterContext-B7N12wkK.d.mts +11 -0
  152. package/dist/RouterContext-CsPnkNdI.mjs +26 -0
  153. package/dist/RouterContext-CsPnkNdI.mjs.map +1 -0
  154. package/dist/RouterContext.d.mts +2 -0
  155. package/dist/RouterLink-Bq36EGjc.d.mts +8 -0
  156. package/dist/RouterLink.d.mts +2 -0
  157. package/dist/RuleEditorFields.d.mts +2 -2
  158. package/dist/RulesPill.d.mts +1 -1
  159. package/dist/{SearchInput-CNg109M5.d.mts → SearchInput-D69WxMNq.d.mts} +2 -2
  160. package/dist/SearchInput.d.mts +1 -1
  161. package/dist/SectionHeading.d.mts +1 -1
  162. package/dist/{SegmentedControl-DQE0hN57.mjs → SegmentedControl-DLkAC2kW.mjs} +2 -2
  163. package/dist/{SegmentedControl-DQE0hN57.mjs.map → SegmentedControl-DLkAC2kW.mjs.map} +1 -1
  164. package/dist/{SegmentedControl-BBIHKcvo.d.mts → SegmentedControl-vCnGsdXo.d.mts} +1 -1
  165. package/dist/SegmentedControl.d.mts +1 -1
  166. package/dist/{Select-wnr46ROZ.d.mts → Select-CpRijO_l.d.mts} +3 -3
  167. package/dist/{Select-D9OVjzPR.mjs → Select-YOgn_uD0.mjs} +7 -7
  168. package/dist/{Select-D9OVjzPR.mjs.map → Select-YOgn_uD0.mjs.map} +1 -1
  169. package/dist/Select.d.mts +1 -1
  170. package/dist/{Spacer-D58qwuXR.mjs → Spacer-BFOuo0sZ.mjs} +1 -1
  171. package/dist/{Spacer-D58qwuXR.mjs.map → Spacer-BFOuo0sZ.mjs.map} +1 -1
  172. package/dist/{Spinner-gBNWIwOn.mjs → Spinner-BDa0D1ze.mjs} +1 -1
  173. package/dist/{Spinner-gBNWIwOn.mjs.map → Spinner-BDa0D1ze.mjs.map} +1 -1
  174. package/dist/{Stack-DgC83-nw.d.mts → Stack-8KGPQp0u.d.mts} +1 -1
  175. package/dist/{Stack-BqQndGI9.mjs → Stack-ChsImaEY.mjs} +1 -1
  176. package/dist/{Stack-BqQndGI9.mjs.map → Stack-ChsImaEY.mjs.map} +1 -1
  177. package/dist/Stack.d.mts +1 -1
  178. package/dist/{Sticker-qvWkqEMw.d.mts → Sticker-Bf9rhSkv.d.mts} +4 -4
  179. package/dist/{Sticker-BDyejPZa.mjs → Sticker-C3Eb13OQ.mjs} +3 -3
  180. package/dist/{Sticker-BDyejPZa.mjs.map → Sticker-C3Eb13OQ.mjs.map} +1 -1
  181. package/dist/Sticker.d.mts +1 -1
  182. package/dist/StringValueControl.d.mts +1 -1
  183. package/dist/Tab.d.mts +1 -1
  184. package/dist/{TabBar-B__54oO3.mjs → TabBar-RenaeJJ6.mjs} +3 -3
  185. package/dist/{TabBar-B__54oO3.mjs.map → TabBar-RenaeJJ6.mjs.map} +1 -1
  186. package/dist/{Table-CPvIH27_.d.mts → Table-BefytM6w.d.mts} +1 -1
  187. package/dist/{Table-CqIi5mVF.mjs → Table-DaxiIS96.mjs} +4 -4
  188. package/dist/{Table-CqIi5mVF.mjs.map → Table-DaxiIS96.mjs.map} +1 -1
  189. package/dist/Table.d.mts +1 -1
  190. package/dist/{TableBody-CQYijW_3.d.mts → TableBody-BZ34-_wV.d.mts} +1 -1
  191. package/dist/TableBody.d.mts +1 -1
  192. package/dist/{TableBox-C-8RxZT4.mjs → TableBox-C7ZXamI7.mjs} +10 -10
  193. package/dist/{TableBox-C-8RxZT4.mjs.map → TableBox-C7ZXamI7.mjs.map} +1 -1
  194. package/dist/TableBox.d.mts +2 -2
  195. package/dist/{TableBoxCell-CQ3zT1jG.d.mts → TableBoxCell-B7kjO76l.d.mts} +6 -6
  196. package/dist/TableBoxCell.d.mts +1 -1
  197. package/dist/TableBoxField.d.mts +3 -3
  198. package/dist/{TableBoxRow-ClK2pceY.d.mts → TableBoxRow-oVGEFVOO.d.mts} +3 -3
  199. package/dist/TableBoxRow.d.mts +1 -1
  200. package/dist/{TableBoxRowActions-CoF3DuUQ.d.mts → TableBoxRowActions-DIZw2OPP.d.mts} +2 -2
  201. package/dist/TableBoxRowActions.d.mts +1 -1
  202. package/dist/{TableCell-BQv4ASkE.d.mts → TableCell-DorRxyke.d.mts} +2 -2
  203. package/dist/TableCell.d.mts +1 -1
  204. package/dist/{TableControls-CtEL3ioz.d.mts → TableControls-BtGFiZeD.d.mts} +3 -3
  205. package/dist/{TableControls-DplArh-9.mjs → TableControls-DxAUnR9v.mjs} +18 -18
  206. package/dist/{TableControls-DplArh-9.mjs.map → TableControls-DxAUnR9v.mjs.map} +1 -1
  207. package/dist/TableControls.d.mts +1 -1
  208. package/dist/{TableControlsContext-X-Lupvc6.d.mts → TableControlsContext-C3DYeUmB.d.mts} +2 -2
  209. package/dist/TableControlsContext.d.mts +1 -1
  210. package/dist/{TableHead-DLLn0zoP.d.mts → TableHead-B0Fdldgw.d.mts} +1 -1
  211. package/dist/TableHead.d.mts +1 -1
  212. package/dist/{TableHeaderCell-DiJ2jyw4.d.mts → TableHeaderCell-C_7X8QAT.d.mts} +1 -1
  213. package/dist/TableHeaderCell.d.mts +1 -1
  214. package/dist/{TableLayout-BgnUz8NO.d.mts → TableLayout-CXVVzq0e.d.mts} +1 -1
  215. package/dist/TableLayout.d.mts +1 -1
  216. package/dist/{TableRow-Dgg8hGy5.d.mts → TableRow-Dr61XJNw.d.mts} +2 -2
  217. package/dist/TableRow.d.mts +1 -1
  218. package/dist/TableTH.d.mts +1 -1
  219. package/dist/{TableViewConfigurationDropdown-DRxd562-.d.mts → TableViewConfigurationDropdown-CCtwcB3I.d.mts} +2 -2
  220. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  221. package/dist/{TechnicalSticker-D6MO_IfT.mjs → TechnicalSticker-D1PqG_yT.mjs} +3 -3
  222. package/dist/{TechnicalSticker-D6MO_IfT.mjs.map → TechnicalSticker-D1PqG_yT.mjs.map} +1 -1
  223. package/dist/{Text-Dn_p7ZvT.mjs → Text-BdluS7Fy.mjs} +1 -1
  224. package/dist/{Text-Dn_p7ZvT.mjs.map → Text-BdluS7Fy.mjs.map} +1 -1
  225. package/dist/{Text-tgFz40XD.d.mts → Text-DD_W_ixb.d.mts} +3 -3
  226. package/dist/Text.d.mts +1 -1
  227. package/dist/{TextArea-BxxXQSwP.d.mts → TextArea-DOofaXJi.d.mts} +2 -2
  228. package/dist/{TextArea-CYirq-B2.mjs → TextArea-wwV-s5Oa.mjs} +2 -2
  229. package/dist/{TextArea-CYirq-B2.mjs.map → TextArea-wwV-s5Oa.mjs.map} +1 -1
  230. package/dist/TextArea.d.mts +1 -1
  231. package/dist/{TextUnderlineTooltip-DQVYsLqM.d.mts → TextUnderlineTooltip-BPLKU9wu.d.mts} +2 -2
  232. package/dist/TextUnderlineTooltip.d.mts +1 -1
  233. package/dist/Tile.d.mts +1 -1
  234. package/dist/Toast.d.mts +1 -1
  235. package/dist/{Toggle-BmUl78kH.d.mts → Toggle-2nrUX591.d.mts} +1 -1
  236. package/dist/{Toggle-CqgFNIYS.mjs → Toggle-iG2x_IZR.mjs} +4 -4
  237. package/dist/{Toggle-CqgFNIYS.mjs.map → Toggle-iG2x_IZR.mjs.map} +1 -1
  238. package/dist/Toggle.d.mts +1 -1
  239. package/dist/{Tooltip-BsuYG0fw.mjs → Tooltip-C0FuZS1C.mjs} +2 -2
  240. package/dist/{Tooltip-BsuYG0fw.mjs.map → Tooltip-C0FuZS1C.mjs.map} +1 -1
  241. package/dist/{Tooltip-eSaiYjxT.d.mts → Tooltip-Cnqf1-tx.d.mts} +2 -2
  242. package/dist/Tooltip.d.mts +1 -1
  243. package/dist/{TruncatedText-B2v53Y11.d.mts → TruncatedText-g2T5HlqX.d.mts} +1 -1
  244. package/dist/{codec-D5qlDVgU.d.mts → codec-CoX6LfOY.d.mts} +2 -2
  245. package/dist/codec.d.mts +1 -1
  246. package/dist/{color-fQTsW4gq.d.mts → color-Bt0Lv1e3.d.mts} +2 -2
  247. package/dist/components/Attribute/index.mjs +4 -4
  248. package/dist/components/Badge/index.mjs +1 -1
  249. package/dist/components/Banner/index.mjs +1 -1
  250. package/dist/components/BottomPanel/index.mjs +3 -3
  251. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  252. package/dist/components/Breadcrumbs/index.mjs +1 -1
  253. package/dist/components/Button/index.d.mts +2 -2
  254. package/dist/components/Button/index.mjs +1 -1
  255. package/dist/components/ButtonGroup/index.mjs +2 -2
  256. package/dist/components/Card/index.d.mts +2 -2
  257. package/dist/components/Card/index.mjs +1 -1
  258. package/dist/components/CardV2/index.d.mts +1 -1
  259. package/dist/components/CardV2/index.mjs +1 -1
  260. package/dist/components/Checkbox/index.d.mts +1 -1
  261. package/dist/components/Checkbox/index.mjs +1 -1
  262. package/dist/components/CodeHighlight/index.mjs +3 -3
  263. package/dist/components/Combobox/index.d.mts +2 -2
  264. package/dist/components/Combobox/index.mjs +1 -1
  265. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  266. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  267. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  268. package/dist/components/DataTable/index.mjs +15 -15
  269. package/dist/components/DataTable/index.mjs.map +1 -1
  270. package/dist/components/DataTable/types.d.mts +2 -2
  271. package/dist/components/DatePicker/index.d.mts +6 -5
  272. package/dist/components/DatePicker/index.mjs +2 -2
  273. package/dist/components/DropdownButton/index.mjs +1 -1
  274. package/dist/components/DropdownMenu/index.d.mts +1 -1
  275. package/dist/components/DropdownMenu/index.mjs +1 -1
  276. package/dist/components/FloatingPanel/index.mjs +12 -12
  277. package/dist/components/FloatingPanel/index.mjs.map +1 -1
  278. package/dist/components/FormControl/index.d.mts +2 -2
  279. package/dist/components/FormControl/index.mjs +2 -2
  280. package/dist/components/FormField/index.d.mts +1 -1
  281. package/dist/components/FormField/index.mjs +1 -1
  282. package/dist/components/HoverCopyableField/index.mjs +1 -1
  283. package/dist/components/ImageTile/index.mjs +7 -7
  284. package/dist/components/Input/index.d.mts +1 -1
  285. package/dist/components/Input/index.mjs +1 -1
  286. package/dist/components/Link/index.mjs +2 -2
  287. package/dist/components/Link/index.mjs.map +1 -1
  288. package/dist/components/ListBox/index.d.mts +3 -3
  289. package/dist/components/ListBox/index.mjs +1 -1
  290. package/dist/components/LoadingShimmer/index.mjs +1 -1
  291. package/dist/components/MaskedInput/index.mjs +1 -1
  292. package/dist/components/Menu/index.d.mts +1 -1
  293. package/dist/components/Menu/index.mjs +1 -1
  294. package/dist/components/Modal/index.mjs +7 -69
  295. package/dist/components/Modal/index.mjs.map +1 -1
  296. package/dist/components/PageHeader/index.mjs +1 -1
  297. package/dist/components/Pagination/index.d.mts +3 -3
  298. package/dist/components/Pagination/index.mjs +1 -1
  299. package/dist/components/Pii/index.mjs +1 -1
  300. package/dist/components/Popover/index.mjs +1 -1
  301. package/dist/components/ProgressBar/index.mjs +1 -1
  302. package/dist/components/Radio/index.mjs +1 -1
  303. package/dist/components/RadioGroup/index.d.mts +1 -1
  304. package/dist/components/RadioGroup/index.mjs +1 -1
  305. package/dist/components/RightPanel/index.mjs +4 -4
  306. package/dist/components/SegmentedControl/index.d.mts +1 -1
  307. package/dist/components/SegmentedControl/index.mjs +1 -1
  308. package/dist/components/Select/index.d.mts +1 -1
  309. package/dist/components/Select/index.mjs +1 -1
  310. package/dist/components/Slider/index.mjs +2 -2
  311. package/dist/components/SmartTextInput/parser/method-chain/grammar.pegjs +219 -0
  312. package/dist/components/SmartTextInput/parser/smart-text/grammar.pegjs +154 -0
  313. package/dist/components/Spacer/index.mjs +1 -1
  314. package/dist/components/Spinner/index.mjs +1 -1
  315. package/dist/components/Stack/index.d.mts +1 -1
  316. package/dist/components/Stack/index.mjs +1 -1
  317. package/dist/components/Sticker/index.d.mts +1 -1
  318. package/dist/components/Sticker/index.mjs +1 -1
  319. package/dist/components/TabBar/index.mjs +1 -1
  320. package/dist/components/Table/index.d.mts +8 -8
  321. package/dist/components/Table/index.mjs +1 -1
  322. package/dist/components/TableBox/index.d.mts +2 -2
  323. package/dist/components/TableBox/index.mjs +1 -1
  324. package/dist/components/TechnicalSticker/index.mjs +1 -1
  325. package/dist/components/Text/index.d.mts +1 -1
  326. package/dist/components/Text/index.mjs +1 -1
  327. package/dist/components/TextArea/index.d.mts +1 -1
  328. package/dist/components/TextArea/index.mjs +1 -1
  329. package/dist/components/Tile/index.mjs +4 -4
  330. package/dist/components/Toast/index.mjs +1 -1
  331. package/dist/components/Toggle/index.d.mts +1 -1
  332. package/dist/components/Toggle/index.mjs +1 -1
  333. package/dist/components/Tooltip/index.d.mts +3 -3
  334. package/dist/components/Tooltip/index.mjs +1 -1
  335. package/dist/compound-expression.d.mts +1 -1
  336. package/dist/{constants-zZyl7QbX.d.mts → constants-D8bzZ-7B.d.mts} +1 -1
  337. package/dist/constants.d.mts +1 -1
  338. package/dist/createPath-BDYRvl57.d.mts +7 -0
  339. package/dist/createPath.d.mts +2 -0
  340. package/dist/{date-filter-DMZnJwGs.mjs → date-filter-CZeChs9T.mjs} +1 -1
  341. package/dist/{date-filter-DMZnJwGs.mjs.map → date-filter-CZeChs9T.mjs.map} +1 -1
  342. package/dist/{date-range-rule-value-zJaa_jR9.d.mts → date-range-rule-value-C3wrh0jw.d.mts} +2 -2
  343. package/dist/date-range-rule-value.d.mts +1 -1
  344. package/dist/{date-rule-intent-CdWv68my.d.mts → date-rule-intent-CC1LdkE7.d.mts} +3 -3
  345. package/dist/date-rule-intent.d.mts +1 -1
  346. package/dist/display.d.mts +1 -1
  347. package/dist/fieldPickerOptions.d.mts +2 -2
  348. package/dist/{fieldSchemaTypes-COEJOqYL.d.mts → fieldSchemaTypes-BVYSm74B.d.mts} +1 -1
  349. package/dist/{filter-size-context-DYkfYMkX.d.mts → filter-size-context-CCfFnaib.d.mts} +2 -2
  350. package/dist/filter-size-context.d.mts +1 -1
  351. package/dist/helpers.d.mts +1 -1
  352. package/dist/{index-BX8dSNcy.d.mts → index-D-RD2Kfg.d.mts} +2 -2
  353. package/dist/{index-DxIXll2Z.d.mts → index-DalP_w0c.d.mts} +2 -2
  354. package/dist/{index-BJr_obTf.d.mts → index-Nip77QqW.d.mts} +3 -3
  355. package/dist/index-bHnO4ZKt.d.mts +1 -0
  356. package/dist/index.d.mts +1 -1
  357. package/dist/index2.d.mts +1 -1
  358. package/dist/index3.d.mts +3 -3
  359. package/dist/index4.d.mts +1 -1
  360. package/dist/index5.d.mts +14 -14
  361. package/dist/{input-DN_8iHVD.d.mts → input-DCJivcWf.d.mts} +3 -3
  362. package/dist/inputFields.d.mts +10 -10
  363. package/dist/{intersperse-CRUnXmnu.mjs → intersperse-DQAyfeEw.mjs} +1 -1
  364. package/dist/{intersperse-CRUnXmnu.mjs.map → intersperse-DQAyfeEw.mjs.map} +1 -1
  365. package/dist/{jsonSchema-B1VonQij.d.mts → jsonSchema-c_EfAj8y.d.mts} +2 -2
  366. package/dist/lib/PDSProvider.d.mts +3 -1
  367. package/dist/lib/PDSProvider.mjs +6 -2
  368. package/dist/lib/PDSProvider.mjs.map +1 -1
  369. package/dist/lib/TruncatedText.d.mts +1 -1
  370. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  371. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  372. package/dist/lib/color.d.mts +1 -1
  373. package/dist/lib/date-filter/index.d.mts +2 -2
  374. package/dist/lib/date-filter/index.mjs +1 -1
  375. package/dist/lib/fieldSchemaTypes.d.mts +1 -1
  376. package/dist/lib/jsonSchema.d.mts +1 -1
  377. package/dist/lib/message.d.mts +1 -1
  378. package/dist/lib/methodChain.d.mts +1 -1
  379. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  380. package/dist/lib/pseudoClass.d.mts +1 -1
  381. package/dist/lib/router/adapters/reactRouter.d.mts +9 -0
  382. package/dist/lib/router/adapters/reactRouter.mjs +26 -0
  383. package/dist/lib/router/adapters/reactRouter.mjs.map +1 -0
  384. package/dist/lib/router/adapters/tanstack.d.mts +9 -0
  385. package/dist/lib/router/adapters/tanstack.mjs +65 -0
  386. package/dist/lib/router/adapters/tanstack.mjs.map +1 -0
  387. package/dist/lib/router/index.d.mts +6 -0
  388. package/dist/lib/router/index.mjs +3 -0
  389. package/dist/lib/semanticColor.d.mts +1 -1
  390. package/dist/lib/useModalInsetRight.mjs +69 -0
  391. package/dist/lib/useModalInsetRight.mjs.map +1 -0
  392. package/dist/{message-DfEpU8lV.d.mts → message-CjIHdhX1.d.mts} +1 -1
  393. package/dist/mixins/focus.d.mts +1 -1
  394. package/dist/mixins/hoverable.d.mts +2 -2
  395. package/dist/mixins/input.d.mts +1 -1
  396. package/dist/mixins/menuItem.d.mts +2 -2
  397. package/dist/mixins/text.d.mts +1 -1
  398. package/dist/navigationEvents.d.mts +6 -0
  399. package/dist/{operators-F8X0hyQB.d.mts → operators-C4yL6qbl.d.mts} +2 -2
  400. package/dist/operators.d.mts +1 -1
  401. package/dist/{palette-BANY1Xfs.d.mts → palette-qgPRWgUN.d.mts} +3 -3
  402. package/dist/palette.d.mts +1 -1
  403. package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
  404. package/dist/reactRouterFallback.d.mts +11 -0
  405. package/dist/relative-date-label.d.mts +1 -1
  406. package/dist/router-7FYDW80v.mjs +112 -0
  407. package/dist/router-7FYDW80v.mjs.map +1 -0
  408. package/dist/{semantic-Dy7mTyBP.d.mts → semantic-DUctmpu_.d.mts} +1 -1
  409. package/dist/{semanticColor-DkVQjcbc.d.mts → semanticColor-IAhXS17y.d.mts} +3 -3
  410. package/dist/{text-BaQdW8qa.d.mts → text-DjTGRUM1.d.mts} +1 -1
  411. package/dist/{theme-D02MOaH6.d.mts → theme-DKiszVRN.d.mts} +3 -3
  412. package/dist/theme.d.mts +1 -1
  413. package/dist/tone.d.mts +3 -3
  414. package/dist/{types-C2s9yhgO.d.mts → types-B8aAvU2a2.d.mts} +2 -2
  415. package/dist/{types-Ok2lRZeu.d.mts → types-CcZbBH0e.d.mts} +1 -1
  416. package/dist/types-CuQSgl1F.d.mts +36 -0
  417. package/dist/{types-COeginAF.d.mts → types-D8rWSj3z.d.mts} +1 -1
  418. package/dist/{types-1_JSe9Wr.d.mts → types-I9z-0m7q.d.mts} +2 -2
  419. package/dist/{types-CtLY82w5.d.mts → types-RWjW1d9I.d.mts} +1 -1
  420. package/dist/types.d.mts +2 -2
  421. package/dist/types2.d.mts +2 -2
  422. package/dist/types3.d.mts +2 -2
  423. package/dist/types4.d.mts +2 -2
  424. package/dist/types5.d.mts +2 -2
  425. package/dist/types6.d.mts +2 -0
  426. package/dist/{url-state-DP78aDol.d.mts → url-state-BOkOTKNZ.d.mts} +2 -2
  427. package/dist/url-state.d.mts +1 -1
  428. package/dist/useComboboxFooterAction.d.mts +1 -1
  429. package/dist/{useFilterStateV2-DC2rGXHK.d.mts → useFilterStateV2-CjXG2vjy.d.mts} +3 -3
  430. package/dist/useFilterStateV2.d.mts +1 -1
  431. package/dist/{useFormField-C-K1lgmv.mjs → useFormField-C61u9KvG.mjs} +2 -2
  432. package/dist/{useFormField-C-K1lgmv.mjs.map → useFormField-C61u9KvG.mjs.map} +1 -1
  433. package/dist/{useFormField--_14te0K.d.mts → useFormField-DDbo-ExT.d.mts} +2 -2
  434. package/dist/useFormField.d.mts +1 -1
  435. package/dist/{useFormGroup-y-duFylq.mjs → useFormGroup-C89-oI4w.mjs} +1 -1
  436. package/dist/{useFormGroup-y-duFylq.mjs.map → useFormGroup-C89-oI4w.mjs.map} +1 -1
  437. package/dist/useLocationPathname-K2N4fw8j.d.mts +5 -0
  438. package/dist/useLocationPathname.d.mts +2 -0
  439. package/dist/{useTableBoxDragAndDrop-DkCxC7Mi.d.mts → useTableBoxDragAndDrop-CbbH3pMK.d.mts} +1 -1
  440. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  441. package/dist/{useToggle-0zLL1E7s.mjs → useToggle-DUHQjohK.mjs} +1 -1
  442. package/dist/{useToggle-0zLL1E7s.mjs.map → useToggle-DUHQjohK.mjs.map} +1 -1
  443. package/dist/useTruncation.d.mts +1 -1
  444. package/dist/{utilities-C1hOxjt_.d.mts → utilities-D0EhDri-.d.mts} +1 -1
  445. package/dist/utilities.d.mts +1 -1
  446. package/dist/utils/storybook.mjs +1 -1
  447. package/dist/utils/testing.d.mts +2 -0
  448. package/dist/utils/testing.mjs +10 -6
  449. package/dist/utils/testing.mjs.map +1 -1
  450. package/dist/utils.d.mts +1 -1
  451. package/dist/{validation-CpDsI-TM.d.mts → validation-C07D6XjI.d.mts} +3 -3
  452. package/dist/validation.d.mts +1 -1
  453. package/dist/{value-control-resolver-DhaqxKmK.d.mts → value-control-resolver-zYNPNlRW.d.mts} +2 -2
  454. package/dist/value-control-resolver.d.mts +1 -1
  455. package/dist/variables/effect.d.mts +1 -1
  456. package/dist/variables/semantic.d.mts +1 -1
  457. package/llms.txt +2 -1
  458. package/package.json +16 -3
  459. package/skills/design-system-component-authoring/SKILL.md +79 -0
  460. package/skills/design-system-component-authoring/clarifying-scope.md +18 -0
  461. package/skills/design-system-component-authoring/component-conventions.md +70 -0
  462. package/skills/design-system-component-authoring/prop-interface-patterns.md +30 -0
  463. package/skills/ui-authoring/SKILL.md +28 -0
  464. package/dist/Breadcrumbs-ClKHNIr-.mjs.map +0 -1
  465. package/dist/IconButton-CnJNIJVQ.mjs.map +0 -1
  466. /package/dist/{index-1-AkepUA.d.mts → index-B33elXxm.d.mts} +0 -0
  467. /package/dist/{index-7rWKHdox.d.mts → index-BwAfCVZH2.d.mts} +0 -0
  468. /package/dist/{index-BFnNtGdX.d.mts → index-C6HcjJiY.d.mts} +0 -0
  469. /package/dist/{index-BPiqSRRl.d.mts → index-CRo77wc3.d.mts} +0 -0
  470. /package/dist/{index-BSVhZrWN.d.mts → index-CX869wwk.d.mts} +0 -0
  471. /package/dist/{index-BYd3Btr1.d.mts → index-CjDodOH2.d.mts} +0 -0
  472. /package/dist/{index-CMuRFTR3.d.mts → index-CoUVmp_Q.d.mts} +0 -0
  473. /package/dist/{index-Ci-uuV07.d.mts → index-CsuikFeJ.d.mts} +0 -0
  474. /package/dist/{index-CknANNvQ2.d.mts → index-CzItj62a.d.mts} +0 -0
  475. /package/dist/{index-CtJuGxUp.d.mts → index-D13oYj4_.d.mts} +0 -0
  476. /package/dist/{index-CuheJfs-.d.mts → index-D4DUvwPf.d.mts} +0 -0
  477. /package/dist/{index-DWfPppPU.d.mts → index-DMRtRo7y.d.mts} +0 -0
  478. /package/dist/{index-DYX_PQ7T2.d.mts → index-DXJd7-2Z.d.mts} +0 -0
  479. /package/dist/{index-De7MV8-j.d.mts → index-DeVKzGce.d.mts} +0 -0
  480. /package/dist/{index-N-OgGgfF.d.mts → index-Dflz2i1X.d.mts} +0 -0
  481. /package/dist/{index-VWno75SQ.d.mts → index-DkrC-i1D.d.mts} +0 -0
  482. /package/dist/{index-hcx6LMSC.d.mts → index-DztUdPP_.d.mts} +0 -0
  483. /package/dist/{index-uY8Qbwfx.d.mts → index-Rvd9MEUQ.d.mts} +0 -0
  484. /package/dist/{useModalInsetRight.d.mts → lib/useModalInsetRight.d.mts} +0 -0
@@ -0,0 +1,36 @@
1
+ import { AnchorHTMLAttributes, ComponentType, ReactNode, Ref } from "react";
2
+
3
+ //#region lib/router/types.d.ts
4
+ type To = string | {
5
+ pathname?: string;
6
+ search?: string;
7
+ hash?: string;
8
+ };
9
+ interface NavigateOptions {
10
+ replace?: boolean;
11
+ state?: unknown;
12
+ }
13
+ interface RouterLinkComponentProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
14
+ to: To;
15
+ replace?: boolean;
16
+ state?: unknown;
17
+ /** Full document navigation; the browser follows the href, skipping client-side routing. */
18
+ reloadDocument?: boolean;
19
+ children?: ReactNode;
20
+ ref?: Ref<HTMLAnchorElement>;
21
+ }
22
+ interface RouterAdapter {
23
+ /** Client-side navigation; called on plain left-clicks of internal links. */
24
+ navigate: (to: To, options?: NavigateOptions) => void;
25
+ /** Hook mapping `to` to the rendered href (basepath, hash routing). Defaults to createPath(to). */
26
+ useHref?: (to: To) => string;
27
+ /** Hook exposing the current pathname (FloatingPanel dismiss-on-navigate). */
28
+ useLocation?: () => {
29
+ pathname: string;
30
+ };
31
+ /** Replace the anchor used for internal links entirely (Atlassian-style). When set, navigate/useHref are unused for links. */
32
+ linkComponent?: ComponentType<RouterLinkComponentProps>;
33
+ }
34
+ //#endregion
35
+ export { To as i, RouterAdapter as n, RouterLinkComponentProps as r, NavigateOptions as t };
36
+ //# sourceMappingURL=types-CuQSgl1F.d.mts.map
@@ -21,4 +21,4 @@ interface AbsoluteDateRange {
21
21
  }
22
22
  //#endregion
23
23
  export { DateFilterPreset as a, RelativeDateFilterValue as c, DATE_FILTER_PRESET_LABELS as i, AbsoluteDateRange as n, DateFilterValue as o, DATE_FILTER_PRESETS as r, PresetRelativeDateFilterValue as s, AbsoluteDateFilterValue as t };
24
- //# sourceMappingURL=types-COeginAF.d.mts.map
24
+ //# sourceMappingURL=types-D8rWSj3z.d.mts.map
@@ -1,4 +1,4 @@
1
- import { c as RelativeDateFilterValue } from "./types-COeginAF.mjs";
1
+ import { c as RelativeDateFilterValue } from "./types-D8rWSj3z.mjs";
2
2
  //#region components/DataTable/TableControls/FiltersV2/types.d.ts
3
3
  /**
4
4
  * Filter UI v2 — client-side state shape.
@@ -169,4 +169,4 @@ declare const EMPTY_FILTER_STATE: FilterStateV2;
169
169
  declare function isEmptyState(state: FilterStateV2): boolean;
170
170
  //#endregion
171
171
  export { FilterField as a, FilterOperator as c, FilterRuleValueChange as d, FilterSize as f, isEmptyState as h, EMPTY_FILTER_STATE as i, FilterRule as l, TopLevelFilterRule as m, CompoundExpression as n, FilterFieldSource as o, FilterStateV2 as p, DateRangeFilterValue as r, FilterFieldType as s, AndGroup as t, FilterRuleValue as u };
172
- //# sourceMappingURL=types-1_JSe9Wr.d.mts.map
172
+ //# sourceMappingURL=types-I9z-0m7q.d.mts.map
@@ -24,4 +24,4 @@ interface BaseActiveFilter<TFilter extends BaseFilterConfig = BaseFilterConfig>
24
24
  }
25
25
  //#endregion
26
26
  export { BaseActiveFilter as n, BaseFilterConfig as r, AttributeColumn as t };
27
- //# sourceMappingURL=types-CtLY82w5.d.mts.map
27
+ //# sourceMappingURL=types-RWjW1d9I.d.mts.map
package/dist/types.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { n as BaseActiveFilter, r as BaseFilterConfig, t as AttributeColumn } from "./types-CtLY82w5.mjs";
2
- export { AttributeColumn, BaseActiveFilter, BaseFilterConfig };
1
+ import { i as To, n as RouterAdapter, r as RouterLinkComponentProps, t as NavigateOptions } from "./types-CuQSgl1F.mjs";
2
+ export { NavigateOptions, RouterAdapter, RouterLinkComponentProps, To };
package/dist/types2.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as DateFilterPreset, c as RelativeDateFilterValue, i as DATE_FILTER_PRESET_LABELS, n as AbsoluteDateRange, o as DateFilterValue, r as DATE_FILTER_PRESETS, s as PresetRelativeDateFilterValue, t as AbsoluteDateFilterValue } from "./types-COeginAF.mjs";
2
- export { AbsoluteDateFilterValue, AbsoluteDateRange, DATE_FILTER_PRESETS, DATE_FILTER_PRESET_LABELS, DateFilterPreset, DateFilterValue, PresetRelativeDateFilterValue, RelativeDateFilterValue };
1
+ import { n as BaseActiveFilter, r as BaseFilterConfig, t as AttributeColumn } from "./types-RWjW1d9I.mjs";
2
+ export { AttributeColumn, BaseActiveFilter, BaseFilterConfig };
package/dist/types3.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, f as FilterSize, h as isEmptyState, i as EMPTY_FILTER_STATE, l as FilterRule, m as TopLevelFilterRule, n as CompoundExpression, o as FilterFieldSource, p as FilterStateV2, r as DateRangeFilterValue, s as FilterFieldType, t as AndGroup, u as FilterRuleValue } from "./types-1_JSe9Wr.mjs";
2
- export { AndGroup, CompoundExpression, DateRangeFilterValue, EMPTY_FILTER_STATE, FilterField, FilterFieldSource, FilterFieldType, FilterOperator, FilterRule, FilterRuleValue, FilterRuleValueChange, FilterSize, FilterStateV2, TopLevelFilterRule, isEmptyState };
1
+ import { a as DateFilterPreset, c as RelativeDateFilterValue, i as DATE_FILTER_PRESET_LABELS, n as AbsoluteDateRange, o as DateFilterValue, r as DATE_FILTER_PRESETS, s as PresetRelativeDateFilterValue, t as AbsoluteDateFilterValue } from "./types-D8rWSj3z.mjs";
2
+ export { AbsoluteDateFilterValue, AbsoluteDateRange, DATE_FILTER_PRESETS, DATE_FILTER_PRESET_LABELS, DateFilterPreset, DateFilterValue, PresetRelativeDateFilterValue, RelativeDateFilterValue };
package/dist/types4.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { t as ValueControlProps } from "./types-C2s9yhgO.mjs";
2
- export { ValueControlProps };
1
+ import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, f as FilterSize, h as isEmptyState, i as EMPTY_FILTER_STATE, l as FilterRule, m as TopLevelFilterRule, n as CompoundExpression, o as FilterFieldSource, p as FilterStateV2, r as DateRangeFilterValue, s as FilterFieldType, t as AndGroup, u as FilterRuleValue } from "./types-I9z-0m7q.mjs";
2
+ export { AndGroup, CompoundExpression, DateRangeFilterValue, EMPTY_FILTER_STATE, FilterField, FilterFieldSource, FilterFieldType, FilterOperator, FilterRule, FilterRuleValue, FilterRuleValueChange, FilterSize, FilterStateV2, TopLevelFilterRule, isEmptyState };
package/dist/types5.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { t as PaginationParams } from "./types-Ok2lRZeu.mjs";
2
- export { PaginationParams };
1
+ import { t as ValueControlProps } from "./types-B8aAvU2a2.mjs";
2
+ export { ValueControlProps };
@@ -0,0 +1,2 @@
1
+ import { t as PaginationParams } from "./types-CcZbBH0e.mjs";
2
+ export { PaginationParams };
@@ -1,4 +1,4 @@
1
- import { p as FilterStateV2 } from "./types-1_JSe9Wr.mjs";
1
+ import { p as FilterStateV2 } from "./types-I9z-0m7q.mjs";
2
2
 
3
3
  //#region components/DataTable/TableControls/FiltersV2/url-state.d.ts
4
4
  /**
@@ -39,4 +39,4 @@ declare function applyFilterStateToSearchParams(params: URLSearchParams, state:
39
39
  declare function decodeFilterStateFromString(raw: string | null | undefined): FilterStateV2 | null;
40
40
  //#endregion
41
41
  export { decodeFilterStateFromUrl as a, decodeFilterStateFromString as i, UrlStateCodecResult as n, encodeFilterStateToUrlParam as o, applyFilterStateToSearchParams as r, FILTER_STATE_URL_PARAM as t };
42
- //# sourceMappingURL=url-state-DP78aDol.d.mts.map
42
+ //# sourceMappingURL=url-state-BOkOTKNZ.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as decodeFilterStateFromUrl, i as decodeFilterStateFromString, n as UrlStateCodecResult, o as encodeFilterStateToUrlParam, r as applyFilterStateToSearchParams, t as FILTER_STATE_URL_PARAM } from "./url-state-DP78aDol.mjs";
1
+ import { a as decodeFilterStateFromUrl, i as decodeFilterStateFromString, n as UrlStateCodecResult, o as encodeFilterStateToUrlParam, r as applyFilterStateToSearchParams, t as FILTER_STATE_URL_PARAM } from "./url-state-BOkOTKNZ.mjs";
2
2
  export { FILTER_STATE_URL_PARAM, UrlStateCodecResult, applyFilterStateToSearchParams, decodeFilterStateFromString, decodeFilterStateFromUrl, encodeFilterStateToUrlParam };
@@ -1,4 +1,4 @@
1
- import { p as FooterAction } from "./ComboboxBase-Ds_i3K2m.mjs";
1
+ import { p as FooterAction } from "./ComboboxBase-B3Es1y9g.mjs";
2
2
  import { KeyboardEvent } from "react";
3
3
 
4
4
  //#region components/Combobox/useComboboxFooterAction.d.ts
@@ -1,5 +1,5 @@
1
- import { l as FilterRule, n as CompoundExpression, p as FilterStateV2 } from "./types-1_JSe9Wr.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-BslyuPZw.mjs";
1
+ import { l as FilterRule, n as CompoundExpression, p as FilterStateV2 } from "./types-I9z-0m7q.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-BtdqMYUD.mjs";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/useFilterStateV2.d.ts
5
5
  interface UseFilterStateV2Options {
@@ -90,4 +90,4 @@ interface UseFilterStateV2Result {
90
90
  declare function useFilterStateV2(options: UseFilterStateV2Options): UseFilterStateV2Result;
91
91
  //#endregion
92
92
  export { UseFilterStateV2Result as n, useFilterStateV2 as r, UseFilterStateV2Options as t };
93
- //# sourceMappingURL=useFilterStateV2-DC2rGXHK.d.mts.map
93
+ //# sourceMappingURL=useFilterStateV2-CjXG2vjy.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as UseFilterStateV2Result, r as useFilterStateV2, t as UseFilterStateV2Options } from "./useFilterStateV2-DC2rGXHK.mjs";
1
+ import { n as UseFilterStateV2Result, r as useFilterStateV2, t as UseFilterStateV2Options } from "./useFilterStateV2-CjXG2vjy.mjs";
2
2
  export { UseFilterStateV2Options, UseFilterStateV2Result, useFilterStateV2 };
@@ -1,4 +1,4 @@
1
- import { n as useFormGroup } from "./useFormGroup-y-duFylq.mjs";
1
+ import { n as useFormGroup } from "./useFormGroup-C89-oI4w.mjs";
2
2
  import { createContext, useContext } from "react";
3
3
  //#region components/FormControl/useFormField.ts
4
4
  const FormControlContext = createContext({});
@@ -22,4 +22,4 @@ const useFormField = (props) => {
22
22
  //#endregion
23
23
  export { useFormField as n, FormControlContext as t };
24
24
 
25
- //# sourceMappingURL=useFormField-C-K1lgmv.mjs.map
25
+ //# sourceMappingURL=useFormField-C61u9KvG.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormField-C-K1lgmv.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
1
+ {"version":3,"file":"useFormField-C61u9KvG.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
@@ -1,4 +1,4 @@
1
- import { t as ErrorProps } from "./ErrorProps-7eWoxSes.mjs";
1
+ import { t as ErrorProps } from "./ErrorProps-Dgu98PkH.mjs";
2
2
  import * as _$react from "react";
3
3
 
4
4
  //#region components/FormControl/useFormField.d.ts
@@ -27,4 +27,4 @@ declare const useFormField: (props: Partial<FormControlContextProps>) => {
27
27
  };
28
28
  //#endregion
29
29
  export { FormControlContextProps as n, useFormField as r, FormControlContext as t };
30
- //# sourceMappingURL=useFormField--_14te0K.d.mts.map
30
+ //# sourceMappingURL=useFormField-DDbo-ExT.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as FormControlContextProps, r as useFormField, t as FormControlContext } from "./useFormField--_14te0K.mjs";
1
+ import { n as FormControlContextProps, r as useFormField, t as FormControlContext } from "./useFormField-DDbo-ExT.mjs";
2
2
  export { FormControlContext, FormControlContextProps, useFormField as default };
@@ -11,4 +11,4 @@ const useFormGroup = (props) => {
11
11
  //#endregion
12
12
  export { useFormGroup as n, FormGroupContext as t };
13
13
 
14
- //# sourceMappingURL=useFormGroup-y-duFylq.mjs.map
14
+ //# sourceMappingURL=useFormGroup-C89-oI4w.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormGroup-y-duFylq.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
1
+ {"version":3,"file":"useFormGroup-C89-oI4w.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
@@ -0,0 +1,5 @@
1
+ //#region lib/router/useLocationPathname.d.ts
2
+ declare const usePathname: () => string;
3
+ //#endregion
4
+ export { usePathname as t };
5
+ //# sourceMappingURL=useLocationPathname-K2N4fw8j.d.mts.map
@@ -0,0 +1,2 @@
1
+ import { t as usePathname } from "./useLocationPathname-K2N4fw8j.mjs";
2
+ export { usePathname };
@@ -66,4 +66,4 @@ declare const useTableBoxDragAndDrop: <T extends object>({
66
66
  }: UseTableBoxDragAndDropArgs<T>) => UseTableBoxDragAndDropResult;
67
67
  //#endregion
68
68
  export { ReorderConfig as n, useTableBoxDragAndDrop as r, DragDirection as t };
69
- //# sourceMappingURL=useTableBoxDragAndDrop-DkCxC7Mi.d.mts.map
69
+ //# sourceMappingURL=useTableBoxDragAndDrop-CbbH3pMK.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ReorderConfig, r as useTableBoxDragAndDrop, t as DragDirection } from "./useTableBoxDragAndDrop-DkCxC7Mi.mjs";
1
+ import { n as ReorderConfig, r as useTableBoxDragAndDrop, t as DragDirection } from "./useTableBoxDragAndDrop-CbbH3pMK.mjs";
2
2
  export { DragDirection, ReorderConfig, useTableBoxDragAndDrop };
@@ -18,4 +18,4 @@ function useToggle(initialValue = false) {
18
18
  //#endregion
19
19
  export { useToggle as t };
20
20
 
21
- //# sourceMappingURL=useToggle-0zLL1E7s.mjs.map
21
+ //# sourceMappingURL=useToggle-DUHQjohK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useToggle-0zLL1E7s.mjs","names":[],"sources":["../lib/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface UseToggleCallbacks {\n set: (value: boolean) => void;\n toggle: () => void;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * useToggle\n *\n * Boolean state hook that provides callbacks for enabling, disabling, flipping\n * and setting state.\n */\nexport default function useToggle(initialValue = false): [boolean, UseToggleCallbacks] {\n const [value, setValue] = useState<boolean>(!!initialValue);\n const set = useCallback((newValue: boolean) => setValue(newValue), []);\n const toggle = useCallback(() => setValue(!value), [value]);\n const enable = useCallback(() => setValue(true), []);\n const disable = useCallback(() => setValue(false), []);\n return [value, { set, toggle, enable, disable }];\n}\n"],"mappings":";;;;;;;;AAeA,SAAwB,UAAU,eAAe,OAAsC;CACrF,MAAM,CAAC,OAAO,YAAY,SAAkB,CAAC,CAAC,aAAa;AAK3D,QAAO,CAAC,OAAO;EAAE,KAJL,aAAa,aAAsB,SAAS,SAAS,EAAE,EAAE,CAIjD;EAAE,QAHP,kBAAkB,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,CAG9B;EAAE,QAFf,kBAAkB,SAAS,KAAK,EAAE,EAAE,CAEf;EAAE,SADtB,kBAAkB,SAAS,MAAM,EAAE,EAAE,CACR;EAAE,CAAC"}
1
+ {"version":3,"file":"useToggle-DUHQjohK.mjs","names":[],"sources":["../lib/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface UseToggleCallbacks {\n set: (value: boolean) => void;\n toggle: () => void;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * useToggle\n *\n * Boolean state hook that provides callbacks for enabling, disabling, flipping\n * and setting state.\n */\nexport default function useToggle(initialValue = false): [boolean, UseToggleCallbacks] {\n const [value, setValue] = useState<boolean>(!!initialValue);\n const set = useCallback((newValue: boolean) => setValue(newValue), []);\n const toggle = useCallback(() => setValue(!value), [value]);\n const enable = useCallback(() => setValue(true), []);\n const disable = useCallback(() => setValue(false), []);\n return [value, { set, toggle, enable, disable }];\n}\n"],"mappings":";;;;;;;;AAeA,SAAwB,UAAU,eAAe,OAAsC;CACrF,MAAM,CAAC,OAAO,YAAY,SAAkB,CAAC,CAAC,aAAa;AAK3D,QAAO,CAAC,OAAO;EAAE,KAJL,aAAa,aAAsB,SAAS,SAAS,EAAE,EAAE,CAIjD;EAAE,QAHP,kBAAkB,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,CAG9B;EAAE,QAFf,kBAAkB,SAAS,KAAK,EAAE,EAAE,CAEf;EAAE,SADtB,kBAAkB,SAAS,MAAM,EAAE,EAAE,CACR;EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { i as ComboboxOption } from "./ComboboxBase-Ds_i3K2m.mjs";
1
+ import { i as ComboboxOption } from "./ComboboxBase-B3Es1y9g.mjs";
2
2
  import { MutableRefObject, RefObject } from "react";
3
3
 
4
4
  //#region components/Combobox/useTruncation.d.ts
@@ -6,4 +6,4 @@
6
6
  type RequireOneOf<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & { [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>> }[Keys];
7
7
  //#endregion
8
8
  export { RequireOneOf as t };
9
- //# sourceMappingURL=utilities-C1hOxjt_.d.mts.map
9
+ //# sourceMappingURL=utilities-D0EhDri-.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as RequireOneOf } from "./utilities-C1hOxjt_.mjs";
1
+ import { t as RequireOneOf } from "./utilities-D0EhDri-.mjs";
2
2
  export { RequireOneOf };
@@ -1,4 +1,4 @@
1
- import { n as Stack } from "../Stack-BqQndGI9.mjs";
1
+ import { n as Stack } from "../Stack-ChsImaEY.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region utils/storybook.tsx
4
4
  const withStack = (Story) => {
@@ -1,3 +1,4 @@
1
+ import { n as RouterAdapter } from "../types-CuQSgl1F.mjs";
1
2
  import { ReactElement } from "react";
2
3
  import * as _$_testing_library_react0 from "@testing-library/react";
3
4
  import { RenderOptions, screen } from "@testing-library/react";
@@ -6,6 +7,7 @@ import * as _$_testing_library_dom_types_queries0 from "@testing-library/dom/typ
6
7
  //#region utils/testing.d.ts
7
8
  declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions, "wrapper"> & {
8
9
  includeRouter?: boolean;
10
+ routerAdapter?: RouterAdapter;
9
11
  }) => _$_testing_library_react0.RenderResult<typeof _$_testing_library_dom_types_queries0, HTMLElement, HTMLElement>;
10
12
  /**
11
13
  * TODO: Improve this helper or the Select to make querying it easer
@@ -1,10 +1,10 @@
1
1
  import PDSProvider from "../lib/PDSProvider.mjs";
2
2
  import { RouterProvider } from "react-aria-components";
3
3
  import { Fragment, jsx } from "react/jsx-runtime";
4
- import { render, screen } from "@testing-library/react";
5
4
  import { RouterProvider as RouterProvider$1, createMemoryRouter } from "react-router-dom";
5
+ import { render, screen } from "@testing-library/react";
6
6
  //#region utils/testing.tsx
7
- const AllTheProviders = ({ children, includeRouter = false }) => {
7
+ const AllTheProviders = ({ children, includeRouter = false, routerAdapter }) => {
8
8
  let router;
9
9
  if (includeRouter) router = createMemoryRouter([{
10
10
  path: "/internal-route",
@@ -13,14 +13,18 @@ const AllTheProviders = ({ children, includeRouter = false }) => {
13
13
  path: "*",
14
14
  element: /* @__PURE__ */ jsx(Fragment, { children })
15
15
  }]);
16
- return /* @__PURE__ */ jsx(PDSProvider, { children: router ? /* @__PURE__ */ jsx(RouterProvider, {
17
- navigate: router.navigate,
18
- children: /* @__PURE__ */ jsx(RouterProvider$1, { router })
19
- }) : /* @__PURE__ */ jsx(Fragment, { children }) });
16
+ return /* @__PURE__ */ jsx(PDSProvider, {
17
+ router: routerAdapter,
18
+ children: router ? /* @__PURE__ */ jsx(RouterProvider, {
19
+ navigate: router.navigate,
20
+ children: /* @__PURE__ */ jsx(RouterProvider$1, { router })
21
+ }) : /* @__PURE__ */ jsx(Fragment, { children })
22
+ });
20
23
  };
21
24
  const customRender = (ui, options) => render(ui, {
22
25
  wrapper: ({ children }) => /* @__PURE__ */ jsx(AllTheProviders, {
23
26
  includeRouter: options?.includeRouter,
27
+ routerAdapter: options?.routerAdapter,
24
28
  children
25
29
  }),
26
30
  ...options
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","names":["ReactAriaRouterProvider","RouterProvider"],"sources":["../../utils/testing.tsx"],"sourcesContent":["import { render, type RenderOptions, screen } from '@testing-library/react';\nimport type { FC, PropsWithChildren, ReactElement } from 'react';\nimport { RouterProvider as ReactAriaRouterProvider } from 'react-aria-components';\nimport { createMemoryRouter, RouterProvider } from 'react-router-dom';\n\nimport PDSProvider from '@persona/design-system/lib/PDSProvider';\n\nconst AllTheProviders: FC<PropsWithChildren<{ includeRouter?: boolean }>> = ({\n children,\n includeRouter = false,\n}) => {\n let router: ReturnType<typeof createMemoryRouter> | undefined;\n if (includeRouter) {\n router = createMemoryRouter([\n {\n path: '/internal-route',\n element: <div>INTERNAL ROUTE</div>,\n },\n {\n path: '*',\n element: <>{children}</>,\n },\n ]);\n }\n\n return (\n <PDSProvider>\n {router ? (\n <ReactAriaRouterProvider navigate={router.navigate}>\n <RouterProvider router={router} />\n </ReactAriaRouterProvider>\n ) : (\n <>{children}</>\n )}\n </PDSProvider>\n );\n};\n\n// https://testing-library.com/docs/react-testing-library/setup/#custom-render\nconst customRender = (\n ui: ReactElement,\n options?: Omit<RenderOptions, 'wrapper'> & { includeRouter?: boolean },\n) =>\n render(ui, {\n wrapper: ({ children }) => (\n <AllTheProviders includeRouter={options?.includeRouter}>{children}</AllTheProviders>\n ),\n ...options,\n });\n\n/**\n * TODO: Improve this helper or the Select to make querying it easer\n */\nexport const getSelectByTrigger = (triggerLabel: string) => {\n const triggerBtn = screen.getByText(triggerLabel).closest('button');\n\n // Check to make sure it's a combobox button\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n if (triggerBtn.getAttribute('role') !== 'combobox') {\n return null;\n }\n\n return triggerBtn;\n};\n\nexport const isInLoadingState = (screenObj: typeof screen) => {\n expect(screenObj.queryAllByTestId('loading-shimmer').length).toBeGreaterThan(0);\n};\n\nexport const isNotInLoadingState = (screenObj: typeof screen) => {\n expect(screenObj.queryAllByTestId('loading-shimmer').length).toBe(0);\n};\n\nexport { customRender as render };\n"],"mappings":";;;;;;AAOA,MAAM,mBAAuE,EAC3E,UACA,gBAAgB,YACZ;CACJ,IAAI;AACJ,KAAI,cACF,UAAS,mBAAmB,CAC1B;EACE,MAAM;EACN,SAAS,oBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACnC,EACD;EACE,MAAM;EACN,SAAS,oBAAA,UAAA,EAAG,UAAY,CAAA;EACzB,CACF,CAAC;AAGJ,QACE,oBAAC,aAAD,EAAA,UACG,SACC,oBAACA,gBAAD;EAAyB,UAAU,OAAO;YACxC,oBAACC,kBAAD,EAAwB,QAAU,CAAA;EACV,CAAA,GAE1B,oBAAA,UAAA,EAAG,UAAY,CAAA,EAEL,CAAA;;AAKlB,MAAM,gBACJ,IACA,YAEA,OAAO,IAAI;CACT,UAAU,EAAE,eACV,oBAAC,iBAAD;EAAiB,eAAe,SAAS;EAAgB;EAA2B,CAAA;CAEtF,GAAG;CACJ,CAAC;;;;AAKJ,MAAa,sBAAsB,iBAAyB;CAC1D,MAAM,aAAa,OAAO,UAAU,aAAa,CAAC,QAAQ,SAAS;AAInE,KAAI,WAAW,aAAa,OAAO,KAAK,WACtC,QAAO;AAGT,QAAO;;AAGT,MAAa,oBAAoB,cAA6B;AAC5D,QAAO,UAAU,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE;;AAGjF,MAAa,uBAAuB,cAA6B;AAC/D,QAAO,UAAU,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE"}
1
+ {"version":3,"file":"testing.mjs","names":["ReactAriaRouterProvider","RouterProvider"],"sources":["../../utils/testing.tsx"],"sourcesContent":["import { render, type RenderOptions, screen } from '@testing-library/react';\nimport type { FC, PropsWithChildren, ReactElement } from 'react';\nimport { RouterProvider as ReactAriaRouterProvider } from 'react-aria-components';\nimport { createMemoryRouter, RouterProvider } from 'react-router-dom';\n\nimport PDSProvider from '@persona/design-system/lib/PDSProvider';\nimport type { RouterAdapter } from '@persona/design-system/lib/router';\n\nconst AllTheProviders: FC<PropsWithChildren<{ includeRouter?: boolean; routerAdapter?: RouterAdapter }>> = ({\n children,\n includeRouter = false,\n routerAdapter,\n}) => {\n let router: ReturnType<typeof createMemoryRouter> | undefined;\n if (includeRouter) {\n router = createMemoryRouter([\n {\n path: '/internal-route',\n element: <div>INTERNAL ROUTE</div>,\n },\n {\n path: '*',\n element: <>{children}</>,\n },\n ]);\n }\n\n return (\n <PDSProvider router={routerAdapter}>\n {router ? (\n <ReactAriaRouterProvider navigate={router.navigate}>\n <RouterProvider router={router} />\n </ReactAriaRouterProvider>\n ) : (\n <>{children}</>\n )}\n </PDSProvider>\n );\n};\n\n// https://testing-library.com/docs/react-testing-library/setup/#custom-render\nconst customRender = (\n ui: ReactElement,\n options?: Omit<RenderOptions, 'wrapper'> & {\n includeRouter?: boolean;\n routerAdapter?: RouterAdapter;\n },\n) =>\n render(ui, {\n wrapper: ({ children }) => (\n <AllTheProviders includeRouter={options?.includeRouter} routerAdapter={options?.routerAdapter}>\n {children}\n </AllTheProviders>\n ),\n ...options,\n });\n\n/**\n * TODO: Improve this helper or the Select to make querying it easer\n */\nexport const getSelectByTrigger = (triggerLabel: string) => {\n const triggerBtn = screen.getByText(triggerLabel).closest('button');\n\n // Check to make sure it's a combobox button\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n if (triggerBtn.getAttribute('role') !== 'combobox') {\n return null;\n }\n\n return triggerBtn;\n};\n\nexport const isInLoadingState = (screenObj: typeof screen) => {\n expect(screenObj.queryAllByTestId('loading-shimmer').length).toBeGreaterThan(0);\n};\n\nexport const isNotInLoadingState = (screenObj: typeof screen) => {\n expect(screenObj.queryAllByTestId('loading-shimmer').length).toBe(0);\n};\n\nexport { customRender as render };\n"],"mappings":";;;;;;AAQA,MAAM,mBAAsG,EAC1G,UACA,gBAAgB,OAChB,oBACI;CACJ,IAAI;AACJ,KAAI,cACF,UAAS,mBAAmB,CAC1B;EACE,MAAM;EACN,SAAS,oBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACnC,EACD;EACE,MAAM;EACN,SAAS,oBAAA,UAAA,EAAG,UAAY,CAAA;EACzB,CACF,CAAC;AAGJ,QACE,oBAAC,aAAD;EAAa,QAAQ;YAClB,SACC,oBAACA,gBAAD;GAAyB,UAAU,OAAO;aACxC,oBAACC,kBAAD,EAAwB,QAAU,CAAA;GACV,CAAA,GAE1B,oBAAA,UAAA,EAAG,UAAY,CAAA;EAEL,CAAA;;AAKlB,MAAM,gBACJ,IACA,YAKA,OAAO,IAAI;CACT,UAAU,EAAE,eACV,oBAAC,iBAAD;EAAiB,eAAe,SAAS;EAAe,eAAe,SAAS;EAC7E;EACe,CAAA;CAEpB,GAAG;CACJ,CAAC;;;;AAKJ,MAAa,sBAAsB,iBAAyB;CAC1D,MAAM,aAAa,OAAO,UAAU,aAAa,CAAC,QAAQ,SAAS;AAInE,KAAI,WAAW,aAAa,OAAO,KAAK,WACtC,QAAO;AAGT,QAAO;;AAGT,MAAa,oBAAoB,cAA6B;AAC5D,QAAO,UAAU,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE;;AAGjF,MAAa,uBAAuB,cAA6B;AAC/D,QAAO,UAAU,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE"}
package/dist/utils.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { u as FilterRuleValue } from "./types-1_JSe9Wr.mjs";
1
+ import { u as FilterRuleValue } from "./types-I9z-0m7q.mjs";
2
2
 
3
3
  //#region components/DataTable/TableControls/FiltersV2/value-controls/utils.d.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { l as FilterRule, p as FilterStateV2 } from "./types-1_JSe9Wr.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-BslyuPZw.mjs";
1
+ import { l as FilterRule, p as FilterStateV2 } from "./types-I9z-0m7q.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-BtdqMYUD.mjs";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/validation.d.ts
5
5
  /**
@@ -48,4 +48,4 @@ declare function pruneToRegistry(state: FilterStateV2, registry: FieldRegistry |
48
48
  declare function hasCompleteValue(rule: FilterRule, registry: FieldRegistry): boolean;
49
49
  //#endregion
50
50
  export { isFilterStateV2 as n, pruneToRegistry as r, hasCompleteValue as t };
51
- //# sourceMappingURL=validation-CpDsI-TM.d.mts.map
51
+ //# sourceMappingURL=validation-C07D6XjI.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as isFilterStateV2, r as pruneToRegistry, t as hasCompleteValue } from "./validation-CpDsI-TM.mjs";
1
+ import { n as isFilterStateV2, r as pruneToRegistry, t as hasCompleteValue } from "./validation-C07D6XjI.mjs";
2
2
  export { hasCompleteValue, isFilterStateV2, pruneToRegistry };
@@ -1,4 +1,4 @@
1
- import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, l as FilterRule, u as FilterRuleValue } from "./types-1_JSe9Wr.mjs";
1
+ import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, l as FilterRule, u as FilterRuleValue } from "./types-I9z-0m7q.mjs";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/FilterBar/value-control-resolver.d.ts
@@ -45,4 +45,4 @@ type ValueControlResolver = (opts: ResolveValueControlOptions) => ReactNode | un
45
45
  declare function resolveValueControl(opts: ResolveValueControlOptions, hostResolver?: ValueControlResolver): ReactNode;
46
46
  //#endregion
47
47
  export { ValueControlResolver as n, resolveValueControl as r, ResolveValueControlOptions as t };
48
- //# sourceMappingURL=value-control-resolver-DhaqxKmK.d.mts.map
48
+ //# sourceMappingURL=value-control-resolver-zYNPNlRW.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ValueControlResolver, r as resolveValueControl, t as ResolveValueControlOptions } from "./value-control-resolver-DhaqxKmK.mjs";
1
+ import { n as ValueControlResolver, r as resolveValueControl, t as ResolveValueControlOptions } from "./value-control-resolver-zYNPNlRW.mjs";
2
2
  export { ResolveValueControlOptions, ValueControlResolver, resolveValueControl };
@@ -1,4 +1,4 @@
1
- import { t as MaybeSemanticTheme } from "../semanticColor-DkVQjcbc.mjs";
1
+ import { t as MaybeSemanticTheme } from "../semanticColor-IAhXS17y.mjs";
2
2
 
3
3
  //#region variables/effect.d.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { i as semanticLight, n as SemanticTokens, r as semanticDark, t as CssPercentage } from "../semantic-Dy7mTyBP.mjs";
1
+ import { i as semanticLight, n as SemanticTokens, r as semanticDark, t as CssPercentage } from "../semantic-DUctmpu_.mjs";
2
2
  export { CssPercentage, SemanticTokens, semanticDark, semanticLight };
package/llms.txt CHANGED
@@ -13,10 +13,11 @@ For exact prop types, prefer the published type declarations (`dist/**/*.d.mts`,
13
13
 
14
14
  ## Skills
15
15
 
16
- - [ui-authoring](skills/ui-authoring/SKILL.md): design tokens, PDS implementation guidelines, table guidelines (DataTable vs TableBox vs TableLayout), loading states, testing, Storybook
16
+ - [ui-authoring](skills/ui-authoring/SKILL.md): design tokens, PDS implementation guidelines, table guidelines (DataTable vs TableBox vs TableLayout), routing/link adapters (react-router, TanStack, custom), loading states, testing, Storybook
17
17
  - [Tokens](skills/ui-authoring/TOKENS.md): Color / Spacing / Typography selection and catalog, radius, charts
18
18
  - [Patterns](skills/ui-authoring/PATTERNS.md): forms, layout, indicators, feedback, empty states, charts, panels
19
19
  - [Components](skills/ui-authoring/COMPONENTS.md): which PDS component to use (and its import path); APIs live in that component's `.mdx` when one exists, otherwise in `dist/components/<Name>/index.d.mts`
20
+ - [design-system-component-authoring](skills/design-system-component-authoring/SKILL.md): authoring a new PDS component in this repo — clarifying scope, component conventions, prop interface patterns
20
21
 
21
22
  ## Imports
22
23
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona/design-system",
3
- "version": "0.5.1",
3
+ "version": "0.7.0",
4
4
  "description": "React components for Persona UI",
5
5
  "keywords": [
6
6
  "tanstack-intent"
@@ -107,6 +107,9 @@
107
107
  "./lib/PDSProvider": "./dist/lib/PDSProvider.mjs",
108
108
  "./lib/pseudoClass": "./dist/lib/pseudoClass.mjs",
109
109
  "./lib/reorderItems": "./dist/lib/reorderItems.mjs",
110
+ "./lib/router": "./dist/lib/router/index.mjs",
111
+ "./lib/router/adapters/reactRouter": "./dist/lib/router/adapters/reactRouter.mjs",
112
+ "./lib/router/adapters/tanstack": "./dist/lib/router/adapters/tanstack.mjs",
110
113
  "./lib/selectHelper": "./dist/lib/selectHelper.mjs",
111
114
  "./lib/semanticColor": "./dist/lib/semanticColor.mjs",
112
115
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
@@ -114,6 +117,7 @@
114
117
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
115
118
  "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
116
119
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
120
+ "./lib/useModalInsetRight": "./dist/lib/useModalInsetRight.mjs",
117
121
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
118
122
  "./lib/useResizablePanel": "./dist/lib/useResizablePanel.mjs",
119
123
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -193,11 +197,12 @@
193
197
  "devDependencies": {
194
198
  "@faker-js/faker": "^10.5.0",
195
199
  "@figma/code-connect": "^1.4.4",
196
- "@persona/design-tokens": "0.4.15",
197
- "@persona/icons": "0.1.4",
200
+ "@persona/design-tokens": "0.4.16",
201
+ "@persona/icons": "0.1.5",
198
202
  "@storybook/react": "^10.4.6",
199
203
  "@storybook/react-vite": "^10.4.6",
200
204
  "@tanstack/intent": "^0.3.6",
205
+ "@tanstack/react-router": "1.170.38",
201
206
  "@testing-library/dom": "^8.0.0",
202
207
  "@testing-library/jest-dom": "^6.6.3",
203
208
  "@testing-library/react": "^12.1.5",
@@ -234,6 +239,7 @@
234
239
  "peerDependencies": {
235
240
  "@persona/design-tokens": ">=0.4.5",
236
241
  "@persona/icons": ">=0.1.0",
242
+ "@tanstack/react-router": ">=1.0.0",
237
243
  "@testing-library/dom": ">=8",
238
244
  "@testing-library/react": ">=12",
239
245
  "@testing-library/user-event": ">=14",
@@ -243,6 +249,9 @@
243
249
  "styled-components": "^5.3.5"
244
250
  },
245
251
  "peerDependenciesMeta": {
252
+ "@tanstack/react-router": {
253
+ "optional": true
254
+ },
246
255
  "@testing-library/react": {
247
256
  "optional": true
248
257
  }
@@ -339,6 +348,9 @@
339
348
  "./lib/PDSProvider": "./dist/lib/PDSProvider.mjs",
340
349
  "./lib/pseudoClass": "./dist/lib/pseudoClass.mjs",
341
350
  "./lib/reorderItems": "./dist/lib/reorderItems.mjs",
351
+ "./lib/router": "./dist/lib/router/index.mjs",
352
+ "./lib/router/adapters/reactRouter": "./dist/lib/router/adapters/reactRouter.mjs",
353
+ "./lib/router/adapters/tanstack": "./dist/lib/router/adapters/tanstack.mjs",
342
354
  "./lib/selectHelper": "./dist/lib/selectHelper.mjs",
343
355
  "./lib/semanticColor": "./dist/lib/semanticColor.mjs",
344
356
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
@@ -346,6 +358,7 @@
346
358
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
347
359
  "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
348
360
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
361
+ "./lib/useModalInsetRight": "./dist/lib/useModalInsetRight.mjs",
349
362
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
350
363
  "./lib/useResizablePanel": "./dist/lib/useResizablePanel.mjs",
351
364
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: design-system-component-authoring
3
+ description: Use when building a new Persona design system component under packages/design-system/components/, or turning a designer's description, Figma frame, or AI-generated first draft into one. Also use when determining prop interfaces, weighing `children` vs a typed `items` array, questioning a composer pattern, spotting props that allow impossible states, finding hardcoded colors or missing tokens, or seeing a component rebuild what an existing DS primitive already does.
4
+ ---
5
+
6
+ # Design System Component Authoring
7
+
8
+ ## Overview
9
+
10
+ Core principle: **model the real requirement with the smallest prop interface that makes impossible
11
+ states unrepresentable, compose existing design-system components instead of rebuilding them, and
12
+ ask before inventing scope.** A first pass built this way needs almost no engineer refactoring.
13
+
14
+ These components usually start from a designer's description (the designer may not code), so the
15
+ failure mode is predictable: guessing at scope, inventing props, reaching for the most
16
+ flexible-looking type. Prefer clarifying questions and small, correct interfaces over feature-rich
17
+ guesses.
18
+
19
+ ## When to use
20
+
21
+ - Building a new component under `packages/design-system/components/`.
22
+ - Turning a designer's description, a Figma frame, or an AI draft into a real DS component.
23
+
24
+ **REQUIRED BACKGROUND — load this too:**
25
+
26
+ - `ui-authoring` — design tokens (`Color`, `Spacing`, `Typography`), when to use `Stack`/`HStack`/`Text` instead of styled elements, and its `COMPONENTS.md`/`PATTERNS.md` catalog of existing components to compose from (also browse `packages/design-system/components/`).
27
+
28
+ ## Canonical example
29
+
30
+ `packages/design-system/components/Breadcrumbs/` is the example to imitate: a constrained
31
+ `BreadcrumbsItemProps[]` rendered by a private `Breadcrumb`; `onEdit?` gating inline editing with no
32
+ `editable` boolean; composition from `IconButton`, `Input`, `Link`, `HStack`, `Paragraph`,
33
+ `Tooltip`; semantic theme tokens; a `DEFAULT_EDIT_MAX_LENGTH` constant; and a barrel `index.ts`
34
+ plus `Breadcrumbs.mdx` with `<Controls />`.
35
+
36
+ ## Step 1 — Clarify before building (do NOT assume)
37
+
38
+ Ask the designer whenever scope, states, sizes, max lengths, content shape, or state ownership are
39
+ unspecified — and never add props the designer didn't ask for. **REQUIRED:** read
40
+ `clarifying-scope.md` (in this skill directory) for the exact questions to ask.
41
+
42
+ ## Step 2 — Design the prop interface
43
+
44
+ The props ARE the contract; make incorrect usage impossible to express. **REQUIRED:** read
45
+ `prop-interface-patterns.md` (in this skill directory) for the rules, the do/don't table, and the
46
+ rationalizations that lead to bad interfaces.
47
+
48
+ ## Step 3 — Build it
49
+
50
+ Compose from existing DS components (never copy their CSS), style only with design tokens, follow
51
+ the standard file layout with a barrel `index.ts`, use real aria affordances, and ship a
52
+ `ComponentName.mdx`. Also add a row to
53
+ `packages/design-system/skills/ui-authoring/COMPONENTS.md` (Component / Use for / Import) so UI
54
+ authors pick the new component instead of reinventing it. **REQUIRED:** read
55
+ `component-conventions.md` (in this skill directory) for each of those in detail.
56
+
57
+ ## Step 4 — Handoff
58
+
59
+ Add a component `.mdx` page in `persona-id/design-site`, following the structure of existing
60
+ component docs, and open a separate PR. If this session cannot access or write to that repository,
61
+ explicitly flag the documentation PR as a required follow-up rather than marking it complete.
62
+
63
+ If you open a PR, open it as a **draft** so an engineer can pick it up and review before it goes to
64
+ wider engineering review.
65
+
66
+ ## Red flags — STOP and reconsider (or ask the designer)
67
+
68
+ - A boolean and a callback that mean the same thing (`editable` + `onEdit`).
69
+ - `loading` and `data` (or `error` and `value`) that can both be set at once.
70
+ - A `variant`/status string union with exactly two options.
71
+ - `title` / `label` / tooltip text typed as `ReactNode`.
72
+ - `children` accepted where the design wants a fixed set of items.
73
+ - `styled(SomeDSComponent)` with hardcoded color overrides or arbitrary restyling — layout-only tweaks (margin/width/alignment) are fine — or CSS copied from another component.
74
+ - A prop, variant, or feature the designer never asked for (`fullWidth`, extra sizes), or spreading arbitrary `...props` onto the root.
75
+ - A context provider whose only job is passing a `size`/`variant`.
76
+ - Hardcoded hex/px, or `Core*` foundational tokens where a semantic token exists.
77
+ - Missing `index.ts`, `.mdx`, aria attributes, or a `COMPONENTS.md` picker row.
78
+ - You assumed a constraint (some items editable, a specific max length) instead of asking.
79
+ - MDX docs with long, difficult-to-scan prose.
@@ -0,0 +1,18 @@
1
+ # Clarifying scope with the designer
2
+
3
+ Stop and ask when any of the following is unspecified. **Never invent constraints or scope.** A
4
+ short question now prevents a rebuild later.
5
+
6
+ | Designer says / leaves unstated | Ask before coding |
7
+ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
8
+ | "the items can be editable" | Are **all** items editable, or only some? Default: assume all behave the same. Do **not** invent a per-item `editable` flag. |
9
+ | A text/rename input | What is the max length we'd reasonably allow? Pick a sensible default and confirm it. |
10
+ | A "status" / "loading" component | What are the exact, mutually-exclusive states? (drives the prop interface) |
11
+ | Sizes/variants mentioned loosely | Which sizes/variants actually exist? Don't add extras "for completeness". |
12
+ | "designers can put whatever they want inside" | Should the contents be a constrained set of typed items (`items: ItemProps[]` + private child) or a genuinely open `children` slot? Surface this tradeoff — don't silently default to `children`. |
13
+ | Nothing about ownership | Should the caller own the value (`value` + `onChange`) or should the component manage it internally? |
14
+
15
+ Do **not** add props, variants, or features the designer did not ask for (e.g. `fullWidth`, extra
16
+ variants, spreading arbitrary `...props` onto the root). A single optional `className` for external
17
+ layout composition is fine (see `BreadcrumbsProps`); inventing feature props is not. If you think
18
+ one is needed, propose it and ask — don't ship it silently.