@persona/design-system 0.6.0 → 0.7.1

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 (475) 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-CR-xdruP.mjs → Breadcrumbs-CrXfUK1V.mjs} +9 -9
  15. package/dist/Breadcrumbs-CrXfUK1V.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-CBjhsfrn.mjs → CardV2-M3o4BELp.mjs} +9 -9
  28. package/dist/{CardV2-CBjhsfrn.mjs.map → CardV2-M3o4BELp.mjs.map} +1 -1
  29. package/dist/{Checkbox-DRJXDs2T.d.mts → Checkbox-C-hMfItK.d.mts} +1 -1
  30. package/dist/{Checkbox-BHZ7c7_6.mjs → Checkbox-CyWXhuby.mjs} +4 -4
  31. package/dist/{Checkbox-BHZ7c7_6.mjs.map → Checkbox-CyWXhuby.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-BCYLeZDP.mjs → Combobox-1M6EwVmq.mjs} +10 -10
  36. package/dist/{Combobox-BCYLeZDP.mjs.map → Combobox-1M6EwVmq.mjs.map} +1 -1
  37. package/dist/{Combobox-DMN3nc7E.d.mts → Combobox-DyNllwt8.d.mts} +3 -3
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-DBLJYQrh.d.mts → ComboboxBase-B3YqkjQp.d.mts} +5 -5
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-CZRLyM_y.d.mts → ComboboxMultiSelect-BuwVssvZ.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-BS6pZpU_.d.mts → ComboboxSingleSelect-gJC4v7ER.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-BnRDAs0j.mjs → ConfigFormGroup-Cz7GeTYd.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-BnRDAs0j.mjs.map → ConfigFormGroup-Cz7GeTYd.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-BcjrAr7o.mjs → DatePicker-D9JurBBj.mjs} +8 -8
  55. package/dist/{DatePicker-BcjrAr7o.mjs.map → DatePicker-D9JurBBj.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-l-fzkb5_.mjs → DropdownButton-BWiXLMfD.mjs} +3 -3
  63. package/dist/{DropdownButton-l-fzkb5_.mjs.map → DropdownButton-BWiXLMfD.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-C0WK4bM0.mjs → DropdownMenu-CuKSNxc9.mjs} +2 -2
  66. package/dist/{DropdownMenu-C0WK4bM0.mjs.map → DropdownMenu-CuKSNxc9.mjs.map} +1 -1
  67. package/dist/{DropdownMenu-Bg68vvxx.d.mts → DropdownMenu-Xl1BYXsY.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-BdtxI1N2.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-DjZE4PoB.d.mts → FilterBar-jYjPeD7F.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-BzMbbgr0.mjs → FormControl-BEk4F1EV.mjs} +4 -4
  80. package/dist/{FormControl-BzMbbgr0.mjs.map → FormControl-BEk4F1EV.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-2sNS5PzN.mjs → FormField-ByT0avVx.mjs} +16 -16
  85. package/dist/{FormField-2sNS5PzN.mjs.map → FormField-ByT0avVx.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-CeJ0UP87.mjs → HoverCopyableField-CN3gl0ny.mjs} +6 -6
  93. package/dist/{HoverCopyableField-CeJ0UP87.mjs.map → HoverCopyableField-CN3gl0ny.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-DGWThZlt.mjs → Input-Bc2yWH3j.mjs} +4 -4
  102. package/dist/{Input-DGWThZlt.mjs.map → Input-Bc2yWH3j.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-DqII8giL.mjs → ListBox-CFBhILRy.mjs} +9 -9
  110. package/dist/{ListBox-DqII8giL.mjs.map → ListBox-CFBhILRy.mjs.map} +1 -1
  111. package/dist/{ListBox-Awtw7Xy_.d.mts → ListBox-D-8iwYVj.d.mts} +3 -3
  112. package/dist/ListBox.d.mts +1 -1
  113. package/dist/ListBoxField.d.mts +2 -2
  114. package/dist/{LoadingShimmer-ZyzJs5Vi.mjs → LoadingShimmer-Dizk2sZu.mjs} +1 -1
  115. package/dist/{LoadingShimmer-ZyzJs5Vi.mjs.map → LoadingShimmer-Dizk2sZu.mjs.map} +1 -1
  116. package/dist/LoadingShimmer.d.mts +1 -1
  117. package/dist/{LogicRow-DIn0gLEq.d.mts → LogicRow-CgPds2tq.d.mts} +3 -3
  118. package/dist/LogicRow.d.mts +1 -1
  119. package/dist/MaskedInput.d.mts +2 -2
  120. package/dist/{Menu-DdHN-drQ.d.mts → Menu-CSwzFqdv.d.mts} +2 -2
  121. package/dist/{Menu-CeV3lL2g.mjs → Menu-Cd6oxjAe.mjs} +2 -2
  122. package/dist/{Menu-CeV3lL2g.mjs.map → Menu-Cd6oxjAe.mjs.map} +1 -1
  123. package/dist/Menu.d.mts +1 -1
  124. package/dist/Modal.d.mts +1 -1
  125. package/dist/{PageHeader-UI_6yImi.mjs → PageHeader-DJOlcAiW.mjs} +3 -3
  126. package/dist/{PageHeader-UI_6yImi.mjs.map → PageHeader-DJOlcAiW.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-DgA0U1fa.mjs → Pagination-B1u203DE.mjs} +5 -5
  131. package/dist/{Pagination-DgA0U1fa.mjs.map → Pagination-B1u203DE.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-bxG0qu3t.mjs → Pii-Dz4woKd8.mjs} +2 -2
  135. package/dist/{Pii-bxG0qu3t.mjs.map → Pii-Dz4woKd8.mjs.map} +1 -1
  136. package/dist/{PillShell-D6dN9sWk.d.mts → PillShell-ChTB_koa.d.mts} +2 -2
  137. package/dist/PillShell.d.mts +1 -1
  138. package/dist/{Popover-UiOUt5up.mjs → Popover-opVa9Xhc.mjs} +3 -3
  139. package/dist/{Popover-UiOUt5up.mjs.map → Popover-opVa9Xhc.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-BrQzZhwP.mjs → Radio-Ds1pODKw.mjs} +2 -2
  143. package/dist/{Radio-BrQzZhwP.mjs.map → Radio-Ds1pODKw.mjs.map} +1 -1
  144. package/dist/{RadioGroup-Dg_gydUp.d.mts → RadioGroup-CxL6LW4q.d.mts} +1 -1
  145. package/dist/{RadioGroup-Bl9oXPIo.mjs → RadioGroup-HIC9V2hO.mjs} +2 -2
  146. package/dist/{RadioGroup-Bl9oXPIo.mjs.map → RadioGroup-HIC9V2hO.mjs.map} +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-BozydMtT.mjs → SegmentedControl-OHrfJiw0.mjs} +2 -2
  163. package/dist/{SegmentedControl-BozydMtT.mjs.map → SegmentedControl-OHrfJiw0.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-CktsIrzf.mjs → Select-DE7uv9C8.mjs} +7 -7
  167. package/dist/{Select-CktsIrzf.mjs.map → Select-DE7uv9C8.mjs.map} +1 -1
  168. package/dist/{Select-yPqzqe5k.d.mts → Select-sQb4dQwT.d.mts} +3 -3
  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-Dpw3-3JS.mjs → Spinner-DplDSBqf.mjs} +1 -1
  173. package/dist/{Spinner-Dpw3-3JS.mjs.map → Spinner-DplDSBqf.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-Dw3xE_B-.mjs → TabBar-BepWbJHz.mjs} +3 -3
  185. package/dist/{TabBar-Dw3xE_B-.mjs.map → TabBar-BepWbJHz.mjs.map} +1 -1
  186. package/dist/{Table-ELLvSvH4.mjs → Table-B1gRr2XT.mjs} +4 -4
  187. package/dist/{Table-ELLvSvH4.mjs.map → Table-B1gRr2XT.mjs.map} +1 -1
  188. package/dist/{Table-CPvIH27_.d.mts → Table-BefytM6w.d.mts} +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-CCfha6G2.mjs → TableBox-NP6bhtKb.mjs} +10 -10
  193. package/dist/{TableBox-CCfha6G2.mjs.map → TableBox-NP6bhtKb.mjs.map} +1 -1
  194. package/dist/TableBox.d.mts +2 -2
  195. package/dist/{TableBoxCell-xnzuHPV1.d.mts → TableBoxCell-CHGw9HVj.d.mts} +6 -6
  196. package/dist/TableBoxCell.d.mts +1 -1
  197. package/dist/TableBoxField.d.mts +3 -3
  198. package/dist/{TableBoxRow-BBDMh5xl.d.mts → TableBoxRow-BljsXKrL.d.mts} +3 -3
  199. package/dist/TableBoxRow.d.mts +1 -1
  200. package/dist/{TableBoxRowActions-DCfol4GC.d.mts → TableBoxRowActions-h6HNEv9F.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-C-yb5EYU.mjs → TableControls-CYTpBlQN.mjs} +29 -24
  206. package/dist/TableControls-CYTpBlQN.mjs.map +1 -0
  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-CLbNA0kp.mjs → TechnicalSticker-_LtE-PRY.mjs} +3 -3
  222. package/dist/{TechnicalSticker-CLbNA0kp.mjs.map → TechnicalSticker-_LtE-PRY.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-oAK1DKId.mjs → TextArea-8TuVvmvj.mjs} +2 -2
  228. package/dist/{TextArea-oAK1DKId.mjs.map → TextArea-8TuVvmvj.mjs.map} +1 -1
  229. package/dist/{TextArea-BxxXQSwP.d.mts → TextArea-DOofaXJi.d.mts} +2 -2
  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-DZzirZ8p.mjs → Toggle-Dcn2Rqgm.mjs} +4 -4
  237. package/dist/{Toggle-DZzirZ8p.mjs.map → Toggle-Dcn2Rqgm.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 +5 -5
  295. package/dist/components/PageHeader/index.mjs +1 -1
  296. package/dist/components/Pagination/index.d.mts +3 -3
  297. package/dist/components/Pagination/index.mjs +1 -1
  298. package/dist/components/Pii/index.mjs +1 -1
  299. package/dist/components/Popover/index.mjs +1 -1
  300. package/dist/components/ProgressBar/index.mjs +1 -1
  301. package/dist/components/Radio/index.mjs +1 -1
  302. package/dist/components/RadioGroup/index.d.mts +1 -1
  303. package/dist/components/RadioGroup/index.mjs +1 -1
  304. package/dist/components/RightPanel/index.mjs +4 -4
  305. package/dist/components/SegmentedControl/index.d.mts +1 -1
  306. package/dist/components/SegmentedControl/index.mjs +1 -1
  307. package/dist/components/Select/index.d.mts +1 -1
  308. package/dist/components/Select/index.mjs +1 -1
  309. package/dist/components/Slider/index.mjs +1 -1
  310. package/dist/components/Spacer/index.mjs +1 -1
  311. package/dist/components/Spinner/index.mjs +1 -1
  312. package/dist/components/Stack/index.d.mts +1 -1
  313. package/dist/components/Stack/index.mjs +1 -1
  314. package/dist/components/Sticker/index.d.mts +1 -1
  315. package/dist/components/Sticker/index.mjs +1 -1
  316. package/dist/components/TabBar/index.mjs +1 -1
  317. package/dist/components/Table/index.d.mts +8 -8
  318. package/dist/components/Table/index.mjs +1 -1
  319. package/dist/components/TableBox/index.d.mts +2 -2
  320. package/dist/components/TableBox/index.mjs +1 -1
  321. package/dist/components/TechnicalSticker/index.mjs +1 -1
  322. package/dist/components/Text/index.d.mts +1 -1
  323. package/dist/components/Text/index.mjs +1 -1
  324. package/dist/components/TextArea/index.d.mts +1 -1
  325. package/dist/components/TextArea/index.mjs +1 -1
  326. package/dist/components/Tile/index.mjs +4 -4
  327. package/dist/components/Toast/index.mjs +1 -1
  328. package/dist/components/Toggle/index.d.mts +1 -1
  329. package/dist/components/Toggle/index.mjs +1 -1
  330. package/dist/components/Tooltip/index.d.mts +3 -3
  331. package/dist/components/Tooltip/index.mjs +1 -1
  332. package/dist/compound-expression.d.mts +1 -1
  333. package/dist/{constants-zZyl7QbX.d.mts → constants-D8bzZ-7B.d.mts} +1 -1
  334. package/dist/constants.d.mts +1 -1
  335. package/dist/createPath-BDYRvl57.d.mts +7 -0
  336. package/dist/createPath.d.mts +2 -0
  337. package/dist/{date-filter-DMZnJwGs.mjs → date-filter-CZeChs9T.mjs} +1 -1
  338. package/dist/{date-filter-DMZnJwGs.mjs.map → date-filter-CZeChs9T.mjs.map} +1 -1
  339. package/dist/{date-range-rule-value-zJaa_jR9.d.mts → date-range-rule-value-jZAHuxZJ.d.mts} +2 -2
  340. package/dist/date-range-rule-value.d.mts +1 -1
  341. package/dist/{date-rule-intent-CdWv68my.d.mts → date-rule-intent-CC1LdkE7.d.mts} +3 -3
  342. package/dist/date-rule-intent.d.mts +1 -1
  343. package/dist/display.d.mts +1 -1
  344. package/dist/fieldPickerOptions.d.mts +2 -2
  345. package/dist/{fieldSchemaTypes-COEJOqYL.d.mts → fieldSchemaTypes-BVYSm74B.d.mts} +1 -1
  346. package/dist/{filter-size-context-DYkfYMkX.d.mts → filter-size-context-BGczB5R9.d.mts} +2 -2
  347. package/dist/filter-size-context.d.mts +1 -1
  348. package/dist/helpers.d.mts +1 -1
  349. package/dist/{index-BX8dSNcy.d.mts → index-BRKXhLGa.d.mts} +2 -2
  350. package/dist/{index-CBWvk6Ch.d.mts → index-BZmGEbsA.d.mts} +3 -3
  351. package/dist/{index-DxIXll2Z.d.mts → index-DalP_w0c.d.mts} +2 -2
  352. package/dist/index-bHnO4ZKt.d.mts +1 -0
  353. package/dist/index.d.mts +1 -1
  354. package/dist/index2.d.mts +1 -1
  355. package/dist/index3.d.mts +3 -3
  356. package/dist/index4.d.mts +1 -1
  357. package/dist/index5.d.mts +14 -14
  358. package/dist/{input-DN_8iHVD.d.mts → input-DCJivcWf.d.mts} +3 -3
  359. package/dist/inputFields.d.mts +10 -10
  360. package/dist/{intersperse-vOYvFOfF.mjs → intersperse-Bxcrxj2Q.mjs} +1 -1
  361. package/dist/{intersperse-vOYvFOfF.mjs.map → intersperse-Bxcrxj2Q.mjs.map} +1 -1
  362. package/dist/{jsonSchema-B1VonQij.d.mts → jsonSchema-c_EfAj8y.d.mts} +2 -2
  363. package/dist/lib/PDSProvider.d.mts +3 -1
  364. package/dist/lib/PDSProvider.mjs +6 -2
  365. package/dist/lib/PDSProvider.mjs.map +1 -1
  366. package/dist/lib/TruncatedText.d.mts +1 -1
  367. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  368. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  369. package/dist/lib/color.d.mts +1 -1
  370. package/dist/lib/date-filter/index.d.mts +2 -2
  371. package/dist/lib/date-filter/index.mjs +1 -1
  372. package/dist/lib/fieldSchemaTypes.d.mts +1 -1
  373. package/dist/lib/jsonSchema.d.mts +1 -1
  374. package/dist/lib/message.d.mts +1 -1
  375. package/dist/lib/methodChain.d.mts +1 -1
  376. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  377. package/dist/lib/pseudoClass.d.mts +1 -1
  378. package/dist/lib/router/adapters/reactRouter.d.mts +9 -0
  379. package/dist/lib/router/adapters/reactRouter.mjs +26 -0
  380. package/dist/lib/router/adapters/reactRouter.mjs.map +1 -0
  381. package/dist/lib/router/adapters/tanstack.d.mts +9 -0
  382. package/dist/lib/router/adapters/tanstack.mjs +65 -0
  383. package/dist/lib/router/adapters/tanstack.mjs.map +1 -0
  384. package/dist/lib/router/index.d.mts +6 -0
  385. package/dist/lib/router/index.mjs +3 -0
  386. package/dist/lib/semanticColor.d.mts +1 -1
  387. package/dist/{message-DfEpU8lV.d.mts → message-CjIHdhX1.d.mts} +1 -1
  388. package/dist/mixins/focus.d.mts +1 -1
  389. package/dist/mixins/hoverable.d.mts +2 -2
  390. package/dist/mixins/input.d.mts +1 -1
  391. package/dist/mixins/menuItem.d.mts +2 -2
  392. package/dist/mixins/text.d.mts +1 -1
  393. package/dist/navigationEvents.d.mts +6 -0
  394. package/dist/{operators-F8X0hyQB.d.mts → operators-x_ZENhrT.d.mts} +2 -2
  395. package/dist/operators.d.mts +1 -1
  396. package/dist/{palette-BANY1Xfs.d.mts → palette-qgPRWgUN.d.mts} +3 -3
  397. package/dist/palette.d.mts +1 -1
  398. package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
  399. package/dist/reactRouterFallback.d.mts +11 -0
  400. package/dist/relative-date-label.d.mts +1 -1
  401. package/dist/router-7FYDW80v.mjs +112 -0
  402. package/dist/router-7FYDW80v.mjs.map +1 -0
  403. package/dist/{semantic-Dy7mTyBP.d.mts → semantic-DUctmpu_.d.mts} +1 -1
  404. package/dist/{semanticColor-DkVQjcbc.d.mts → semanticColor-IAhXS17y.d.mts} +3 -3
  405. package/dist/{text-BaQdW8qa.d.mts → text-DjTGRUM1.d.mts} +1 -1
  406. package/dist/{theme-D02MOaH6.d.mts → theme-DKiszVRN.d.mts} +3 -3
  407. package/dist/theme.d.mts +1 -1
  408. package/dist/tone.d.mts +3 -3
  409. package/dist/{types-Ok2lRZeu.d.mts → types-CcZbBH0e.d.mts} +1 -1
  410. package/dist/types-CuQSgl1F.d.mts +36 -0
  411. package/dist/{types-COeginAF.d.mts → types-D8rWSj3z.d.mts} +1 -1
  412. package/dist/{types-1_JSe9Wr.d.mts → types-N8PYonjD.d.mts} +3 -3
  413. package/dist/{types-CtLY82w5.d.mts → types-RWjW1d9I.d.mts} +1 -1
  414. package/dist/{types-C2s9yhgO.d.mts → types-gnF3MPfk2.d.mts} +2 -2
  415. package/dist/types.d.mts +2 -2
  416. package/dist/types2.d.mts +2 -2
  417. package/dist/types3.d.mts +2 -2
  418. package/dist/types4.d.mts +2 -2
  419. package/dist/types5.d.mts +2 -2
  420. package/dist/types6.d.mts +2 -0
  421. package/dist/{url-state-DP78aDol.d.mts → url-state-C2gl07_y.d.mts} +2 -2
  422. package/dist/url-state.d.mts +1 -1
  423. package/dist/useComboboxFooterAction.d.mts +1 -1
  424. package/dist/{useFilterStateV2-DC2rGXHK.d.mts → useFilterStateV2-BQYcAdKR.d.mts} +3 -3
  425. package/dist/useFilterStateV2.d.mts +1 -1
  426. package/dist/{useFormField--_14te0K.d.mts → useFormField-DDbo-ExT.d.mts} +2 -2
  427. package/dist/{useFormField-DhYd6bNn.mjs → useFormField-DsvC5dOb.mjs} +2 -2
  428. package/dist/{useFormField-DhYd6bNn.mjs.map → useFormField-DsvC5dOb.mjs.map} +1 -1
  429. package/dist/useFormField.d.mts +1 -1
  430. package/dist/{useFormGroup-DWVW7A9f.mjs → useFormGroup-CH3kiXoa.mjs} +1 -1
  431. package/dist/{useFormGroup-DWVW7A9f.mjs.map → useFormGroup-CH3kiXoa.mjs.map} +1 -1
  432. package/dist/useLocationPathname-K2N4fw8j.d.mts +5 -0
  433. package/dist/useLocationPathname.d.mts +2 -0
  434. package/dist/{useTableBoxDragAndDrop-DkCxC7Mi.d.mts → useTableBoxDragAndDrop-CbbH3pMK.d.mts} +1 -1
  435. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  436. package/dist/{useToggle-0zLL1E7s.mjs → useToggle-DUHQjohK.mjs} +1 -1
  437. package/dist/{useToggle-0zLL1E7s.mjs.map → useToggle-DUHQjohK.mjs.map} +1 -1
  438. package/dist/useTruncation.d.mts +1 -1
  439. package/dist/{utilities-C1hOxjt_.d.mts → utilities-D0EhDri-.d.mts} +1 -1
  440. package/dist/utilities.d.mts +1 -1
  441. package/dist/utils/storybook.mjs +1 -1
  442. package/dist/utils/testing.d.mts +2 -0
  443. package/dist/utils/testing.mjs +10 -6
  444. package/dist/utils/testing.mjs.map +1 -1
  445. package/dist/utils.d.mts +1 -1
  446. package/dist/{validation-CpDsI-TM.d.mts → validation-CMtfUd-R.d.mts} +3 -3
  447. package/dist/validation.d.mts +1 -1
  448. package/dist/{value-control-resolver-DhaqxKmK.d.mts → value-control-resolver-Au9JNS5z.d.mts} +2 -2
  449. package/dist/value-control-resolver.d.mts +1 -1
  450. package/dist/variables/effect.d.mts +1 -1
  451. package/dist/variables/semantic.d.mts +1 -1
  452. package/llms.txt +1 -1
  453. package/package.json +14 -3
  454. package/skills/ui-authoring/SKILL.md +28 -0
  455. package/dist/Breadcrumbs-CR-xdruP.mjs.map +0 -1
  456. package/dist/IconButton-CnJNIJVQ.mjs.map +0 -1
  457. package/dist/TableControls-C-yb5EYU.mjs.map +0 -1
  458. /package/dist/{index-1-AkepUA.d.mts → index-B33elXxm.d.mts} +0 -0
  459. /package/dist/{index-7rWKHdox.d.mts → index-BwAfCVZH2.d.mts} +0 -0
  460. /package/dist/{index-BFnNtGdX.d.mts → index-C6HcjJiY.d.mts} +0 -0
  461. /package/dist/{index-BPiqSRRl.d.mts → index-CRo77wc3.d.mts} +0 -0
  462. /package/dist/{index-BSVhZrWN.d.mts → index-CX869wwk.d.mts} +0 -0
  463. /package/dist/{index-BYd3Btr1.d.mts → index-CjDodOH2.d.mts} +0 -0
  464. /package/dist/{index-CMuRFTR3.d.mts → index-CoUVmp_Q.d.mts} +0 -0
  465. /package/dist/{index-Ci-uuV07.d.mts → index-CsuikFeJ.d.mts} +0 -0
  466. /package/dist/{index-CknANNvQ2.d.mts → index-CzItj62a.d.mts} +0 -0
  467. /package/dist/{index-CtJuGxUp.d.mts → index-D13oYj4_.d.mts} +0 -0
  468. /package/dist/{index-CuheJfs-.d.mts → index-D4DUvwPf.d.mts} +0 -0
  469. /package/dist/{index-DWfPppPU.d.mts → index-DMRtRo7y.d.mts} +0 -0
  470. /package/dist/{index-DYX_PQ7T2.d.mts → index-DXJd7-2Z.d.mts} +0 -0
  471. /package/dist/{index-De7MV8-j.d.mts → index-DeVKzGce.d.mts} +0 -0
  472. /package/dist/{index-N-OgGgfF.d.mts → index-Dflz2i1X.d.mts} +0 -0
  473. /package/dist/{index-VWno75SQ.d.mts → index-DkrC-i1D.d.mts} +0 -0
  474. /package/dist/{index-hcx6LMSC.d.mts → index-DztUdPP_.d.mts} +0 -0
  475. /package/dist/{index-uY8Qbwfx.d.mts → index-Rvd9MEUQ.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.
@@ -14,7 +14,7 @@ import { c as RelativeDateFilterValue } from "./types-COeginAF.mjs";
14
14
  * - The Rules pill owns `compound.groups` (OR-of-AND / DNF).
15
15
  */
16
16
  /** All available field types we render type-aware controls + operators for. */
17
- type FilterFieldType = 'string' | 'email' | 'choices' | 'multi_choices' | 'boolean' | 'integer' | 'float' | 'date' | 'array' /** OR-of-AND tag conditions (`FilterTagsCondition[][]`). */ | 'tags_conditions' /** ISO date range (`DateRangeFilterValue`). */ | 'date_range';
17
+ type FilterFieldType = 'string' | 'email' | 'choices' | 'multi_choices' | 'boolean' | 'integer' | 'float' | 'date' | 'array' /** OR-of-AND tag conditions (`FilterTagsCondition[][]`). */ | 'tags_conditions' /** OR-of-AND platform-signal conditions (`SignalsConditionalGroup`). */ | 'signals' /** ISO date range (`DateRangeFilterValue`). */ | 'date_range';
18
18
  /**
19
19
  * Per-rule operator vocabulary.
20
20
  *
@@ -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-N8PYonjD.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
@@ -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-N8PYonjD.mjs";
2
2
  import { ReactElement } from "react";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/value-controls/types.d.ts
@@ -44,4 +44,4 @@ interface ValueControlProps {
44
44
  }
45
45
  //#endregion
46
46
  export { ValueControlProps as t };
47
- //# sourceMappingURL=types-C2s9yhgO.d.mts.map
47
+ //# sourceMappingURL=types-gnF3MPfk2.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-N8PYonjD.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-gnF3MPfk2.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-N8PYonjD.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-C2gl07_y.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-C2gl07_y.mjs";
2
2
  export { FILTER_STATE_URL_PARAM, UrlStateCodecResult, applyFilterStateToSearchParams, decodeFilterStateFromString, decodeFilterStateFromUrl, encodeFilterStateToUrlParam };
@@ -1,4 +1,4 @@
1
- import { p as FooterAction } from "./ComboboxBase-DBLJYQrh.mjs";
1
+ import { p as FooterAction } from "./ComboboxBase-B3YqkjQp.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-N8PYonjD.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-BdtxI1N2.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-BQYcAdKR.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-BQYcAdKR.mjs";
2
2
  export { UseFilterStateV2Options, UseFilterStateV2Result, useFilterStateV2 };
@@ -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,4 +1,4 @@
1
- import { n as useFormGroup } from "./useFormGroup-DWVW7A9f.mjs";
1
+ import { n as useFormGroup } from "./useFormGroup-CH3kiXoa.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-DhYd6bNn.mjs.map
25
+ //# sourceMappingURL=useFormField-DsvC5dOb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormField-DhYd6bNn.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-DsvC5dOb.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,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-DWVW7A9f.mjs.map
14
+ //# sourceMappingURL=useFormGroup-CH3kiXoa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormGroup-DWVW7A9f.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-CH3kiXoa.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-DBLJYQrh.mjs";
1
+ import { i as ComboboxOption } from "./ComboboxBase-B3YqkjQp.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-N8PYonjD.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-N8PYonjD.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-BdtxI1N2.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-CMtfUd-R.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-CMtfUd-R.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-N8PYonjD.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-Au9JNS5z.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-Au9JNS5z.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,7 +13,7 @@ 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`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona/design-system",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
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",
@@ -194,11 +197,12 @@
194
197
  "devDependencies": {
195
198
  "@faker-js/faker": "^10.5.0",
196
199
  "@figma/code-connect": "^1.4.4",
197
- "@persona/design-tokens": "0.4.15",
198
- "@persona/icons": "0.1.4",
200
+ "@persona/design-tokens": "0.4.16",
201
+ "@persona/icons": "0.1.5",
199
202
  "@storybook/react": "^10.4.6",
200
203
  "@storybook/react-vite": "^10.4.6",
201
204
  "@tanstack/intent": "^0.3.6",
205
+ "@tanstack/react-router": "1.170.38",
202
206
  "@testing-library/dom": "^8.0.0",
203
207
  "@testing-library/jest-dom": "^6.6.3",
204
208
  "@testing-library/react": "^12.1.5",
@@ -235,6 +239,7 @@
235
239
  "peerDependencies": {
236
240
  "@persona/design-tokens": ">=0.4.5",
237
241
  "@persona/icons": ">=0.1.0",
242
+ "@tanstack/react-router": ">=1.0.0",
238
243
  "@testing-library/dom": ">=8",
239
244
  "@testing-library/react": ">=12",
240
245
  "@testing-library/user-event": ">=14",
@@ -244,6 +249,9 @@
244
249
  "styled-components": "^5.3.5"
245
250
  },
246
251
  "peerDependenciesMeta": {
252
+ "@tanstack/react-router": {
253
+ "optional": true
254
+ },
247
255
  "@testing-library/react": {
248
256
  "optional": true
249
257
  }
@@ -340,6 +348,9 @@
340
348
  "./lib/PDSProvider": "./dist/lib/PDSProvider.mjs",
341
349
  "./lib/pseudoClass": "./dist/lib/pseudoClass.mjs",
342
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",
343
354
  "./lib/selectHelper": "./dist/lib/selectHelper.mjs",
344
355
  "./lib/semanticColor": "./dist/lib/semanticColor.mjs",
345
356
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
@@ -97,6 +97,34 @@ if (isLoading) return <Stack align="center" spacing={Spacing[3]}><Spinner srText
97
97
 
98
98
  Never: `isLoading && <div>Loading...</div>` — always use `<Spinner>` or the `loading` prop.
99
99
 
100
+ ## Routing
101
+
102
+ PDS link-capable components (`Link`, `Button to=`, `Breadcrumbs` `href`, `DataTable` row links) are
103
+ router-agnostic. Internally they render `RouterLink` from
104
+ `@persona/design-system/lib/router`, which resolves in this order: PDS `RouterProvider` adapter
105
+ (`linkComponent` > `navigate`/`useHref`), then react-router `<Link>` when inside a react-router
106
+ context (backwards compatible — existing apps need no changes), then a plain `<a>` (never throws
107
+ outside a router). External `https://` URLs always render plain anchors. `react-router-dom`
108
+ remains a required install for now — the auto-detect fallback imports it statically. `Link` and
109
+ `RouterLink` accept `reloadDocument` to force full document navigation (skip client routing).
110
+
111
+ Plug in your router once near the root:
112
+
113
+ ```tsx
114
+ // react-router — auto-detected, but an explicit adapter is also available:
115
+ <PDSProvider router={useReactRouterAdapter()}>...</PDSProvider>
116
+
117
+ // TanStack Router — required; there is no auto-detection fallback:
118
+ <TanStackRouterAdapter>...</TanStackRouterAdapter> // from '@persona/design-system/lib/router/adapters/tanstack'
119
+
120
+ // Any other router — pass your own RouterAdapter:
121
+ <PDSProvider router={{ navigate, useHref, useLocation }}>...</PDSProvider>
122
+ ```
123
+
124
+ `ReactRouterAdapter` lives at `@persona/design-system/lib/router/adapters/reactRouter`;
125
+ both adapters only need their router's context above them. The TanStack adapter requires
126
+ React 18+ (TanStack Router's peer range), while PDS itself still supports React 17.
127
+
100
128
  ## Testing
101
129
 
102
130
  - Prefer `getByRole`, `getByLabelText`, `getByText` over `getByTestId`.
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumbs-CR-xdruP.mjs","names":["Input"],"sources":["../components/Breadcrumbs/Breadcrumb.tsx","../components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { type ChangeEvent, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CopyIcon, EditIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport Input from 'design-system/components/Input';\nimport { HStack } from 'design-system/components/Stack';\nimport TechnicalSticker from 'design-system/components/TechnicalSticker';\nimport { Paragraph } from 'design-system/components/Text';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { focusOutline } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport type BreadcrumbSize = 'md' | 'lg';\n\nexport type BreadcrumbHeadingAs = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst COPY_TOOLTIP_LABEL = 'Copy ID';\nconst COPIED_TOOLTIP_LABEL = 'Copied!';\nconst DEFAULT_EDIT_MAX_LENGTH = 100;\nconst COPY_TOOLTIP_STICKER_MAX_WIDTH = '96px';\nconst COPY_TOOLTIP_STICKER_TOOLTIP_MAX_WIDTH = '250px';\n\nexport type BreadcrumbProps = {\n label: string;\n size?: BreadcrumbSize;\n current?: boolean;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n showCopyAction?: boolean;\n copyValue?: string;\n copyTooltipLabel?: string;\n /** Copy tooltip text shown after a successful copy. Defaults to `Copied!`. */\n copiedTooltipLabel?: string;\n /**\n * Appends `copyValue` to both copy tooltip texts as a `TechnicalSticker`, so the tooltip shows\n * which token is being copied.\n */\n showCopyValueInTooltip?: boolean;\n /** Internal dashboard path (e.g. `/cases`). Passed to the router `Link` as `to`. */\n href?: string;\n /**\n * Activates a non-current crumb without a route change, for trails that navigate in-place (e.g.\n * a control panel drilling into a sub-panel). Ignored when `href` is set.\n */\n onClick?: () => void;\n onEdit?: (newLabel: string) => void;\n editMaxLength?: number;\n onCopy?: () => void;\n};\n\nconst LABEL_ACTION_GAP = Spacing[2];\nconst ACTION_BUTTON_GAP = Spacing[1];\n\nconst CrumbRow = styled(HStack)`\n align-items: center;\n min-width: 0;\n`;\n\nconst crumbLayoutStyles = (size: BreadcrumbSize) => css`\n display: inline-flex;\n align-items: center;\n min-width: 0;\n min-height: ${({ theme }) => theme.element.height.xs};\n ${\n size === 'lg'\n ? css`\n font-size: ${({ theme }) => theme.text.paragraph.lg.fontSize};\n line-height: ${({ theme }) => theme.text.paragraph.lg.lineHeight};\n `\n : css``\n };\n`;\n\nconst editInputTextStyles = (size: BreadcrumbSize, current: boolean) => {\n if (current) {\n return size === 'lg' ? paragraphMixins.lgBold : paragraphMixins.mdBold;\n }\n return size === 'lg' ? paragraphMixins.lg : paragraphMixins.md;\n};\n\nconst ancestorCrumbStyles = css<{ $size: BreadcrumbSize }>`\n ${paragraphMixins.md};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', theme.color.text.secondary)};\n text-decoration: none;\n transition: color ${TransitionDuration.ExtraFast} ease-out;\n ${focusOutline}\n ${({ $size }) => crumbLayoutStyles($size)}\n\n &:hover {\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n }\n`;\n\nconst AncestorNavLink = styled(Link)<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n`;\n\nconst AncestorNavButton = styled.button<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n`;\n\nconst InlineEditInput = styled(Input)<{\n $size: BreadcrumbSize;\n $current: boolean;\n $editMinWidth?: number;\n}>`\n margin: 0;\n padding: 2px 10px;\n width: auto;\n max-width: 100%;\n min-width: ${({ $editMinWidth }) => ($editMinWidth != null ? `${$editMinWidth}px` : '0')};\n field-sizing: content;\n display: inline-block;\n ${({ $size, $current }) => editInputTextStyles($size, $current)};\n background-color: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', theme.color.background.primary)};\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n\n &:not(:focus) {\n border-color: transparent;\n }\n\n &:hover:not(:disabled) {\n border-style: solid;\n }\n`;\n\nconst CurrentLabel = styled(Paragraph)<{ $size: BreadcrumbSize }>`\n margin: 0;\n ${({ $size }) => crumbLayoutStyles($size)}\n`;\n\nconst copyToClipboard = async (value: string): Promise<boolean> => {\n try {\n if (navigator.clipboard?.writeText == null) {\n return false;\n }\n\n await navigator.clipboard.writeText(value);\n return true;\n } catch {\n return false;\n }\n};\n\nconst BreadcrumbCopyButton = ({\n copyValue,\n copyTooltipLabel = COPY_TOOLTIP_LABEL,\n copiedTooltipLabel = COPIED_TOOLTIP_LABEL,\n showCopyValueInTooltip = false,\n onCopy,\n}: {\n copyValue: string;\n copyTooltipLabel?: string;\n copiedTooltipLabel?: string;\n showCopyValueInTooltip?: boolean;\n onCopy?: () => void;\n}) => {\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n const success = await copyToClipboard(copyValue);\n if (!success) {\n return;\n }\n\n setCopied(true);\n setTooltipOpen(true);\n onCopy?.();\n\n window.setTimeout(() => {\n setTooltipOpen(false);\n window.setTimeout(() => setCopied(false), 200);\n }, 1000);\n };\n\n const handleMouseEnter = () => {\n if (!copied) {\n setTooltipOpen(true);\n }\n };\n\n const handleMouseLeave = () => {\n if (!copied) {\n setTooltipOpen(false);\n }\n };\n\n const trigger = (\n <span onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n <IconButton\n type='button'\n size='sm'\n aria-label={`Copy ${copyValue}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n void handleCopy();\n }}\n >\n <CopyIcon />\n </IconButton>\n </span>\n );\n\n const tooltipLabel = copied ? copiedTooltipLabel : copyTooltipLabel;\n\n return (\n <Tooltip\n trigger={trigger}\n open={tooltipOpen}\n side='top'\n sideOffset={4}\n size='sm'\n contentAlignment='center'\n interactive={false}\n hideArrow\n portal={false}\n maxWidth={showCopyValueInTooltip ? COPY_TOOLTIP_STICKER_TOOLTIP_MAX_WIDTH : undefined}\n >\n {showCopyValueInTooltip ? (\n <HStack spacing={ACTION_BUTTON_GAP} align='center'>\n <span>{tooltipLabel}</span>\n <TechnicalSticker copyable={false} maxWidth={COPY_TOOLTIP_STICKER_MAX_WIDTH}>\n {copyValue}\n </TechnicalSticker>\n </HStack>\n ) : (\n tooltipLabel\n )}\n </Tooltip>\n );\n};\n\nconst Breadcrumb = ({\n label,\n size = 'md',\n current = false,\n headingAs = 'h1',\n showCopyAction = false,\n copyValue,\n copyTooltipLabel,\n copiedTooltipLabel,\n showCopyValueInTooltip,\n href,\n onClick,\n onEdit,\n editMaxLength = DEFAULT_EDIT_MAX_LENGTH,\n onCopy,\n}: BreadcrumbProps) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(label);\n const [editMinWidth, setEditMinWidth] = useState<number | undefined>();\n const editInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!isEditing) {\n setEditValue(label);\n }\n }, [isEditing, label]);\n\n useEffect(() => {\n if (!isEditing) {\n setEditMinWidth(undefined);\n return;\n }\n\n const input = editInputRef.current;\n if (input == null) {\n return;\n }\n\n setEditMinWidth(input.offsetWidth);\n input.focus();\n input.select();\n }, [isEditing]);\n\n const commitEdit = () => {\n if (!isEditing) {\n return;\n }\n\n setIsEditing(false);\n if (editValue !== label) {\n onEdit?.(editValue);\n }\n };\n\n const inlineActions = !isEditing && (showCopyAction || onEdit) && (\n <HStack spacing={ACTION_BUTTON_GAP} align='center'>\n {onEdit && (\n <IconButton\n type='button'\n size='sm'\n aria-label={`Edit ${label}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsEditing(true);\n }}\n >\n <EditIcon />\n </IconButton>\n )}\n {showCopyAction && copyValue != null && (\n <BreadcrumbCopyButton\n copyValue={copyValue}\n copyTooltipLabel={copyTooltipLabel}\n copiedTooltipLabel={copiedTooltipLabel}\n showCopyValueInTooltip={showCopyValueInTooltip}\n onCopy={onCopy}\n />\n )}\n </HStack>\n );\n\n if (isEditing) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <InlineEditInput\n ref={editInputRef}\n $size={size}\n $current={current}\n $editMinWidth={editMinWidth}\n size='md'\n aria-label={`Edit ${label}`}\n maxLength={editMaxLength}\n value={editValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) => setEditValue(event.target.value)}\n onBlur={commitEdit}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n commitEdit();\n }\n if (event.key === 'Escape') {\n setEditValue(label);\n setIsEditing(false);\n }\n }}\n />\n </CrumbRow>\n );\n }\n\n if (current) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <CurrentLabel\n $size={size}\n size={size === 'lg' ? 'lg' : 'md'}\n weight='bold'\n color='primary'\n as={headingAs}\n >\n {label}\n </CurrentLabel>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n if (href == null && onClick != null) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavButton type='button' onClick={onClick} $size={size}>\n {label}\n </AncestorNavButton>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavLink to={href ?? ''} $size={size}>\n {label}\n </AncestorNavLink>\n {inlineActions}\n </CrumbRow>\n );\n};\n\nexport default Breadcrumb;\n","import styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { intersperse } from 'design-system/lib/intersperse';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nimport Breadcrumb, {\n type BreadcrumbHeadingAs,\n type BreadcrumbProps,\n type BreadcrumbSize,\n} from './Breadcrumb';\n\nexport type BreadcrumbsItemProps = Omit<BreadcrumbProps, 'size' | 'current' | 'headingAs'>;\n\nexport type BreadcrumbsProps = {\n items: BreadcrumbsItemProps[];\n size?: BreadcrumbSize;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n 'aria-label'?: string;\n className?: string;\n};\n\nconst BreadcrumbList = styled.ol`\n max-width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: 0;\n`;\n\nconst BreadcrumbListItem = styled.li`\n display: flex;\n align-items: center;\n min-width: 0;\n`;\n\nconst Separator = styled.span<{ $size: BreadcrumbSize }>`\n padding: 0 ${Spacing[2]};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', theme.color.text.tertiary)};\n user-select: none;\n ${({ $size }) => ($size === 'lg' ? paragraphMixins.lg : paragraphMixins.md)};\n`;\n\nexport const Breadcrumbs = ({\n items,\n size = 'md',\n headingAs = 'h1',\n 'aria-label': ariaLabel = 'Breadcrumbs',\n className,\n}: BreadcrumbsProps) => {\n if (items.length === 0) {\n return null;\n }\n\n const crumbNodes = items.map((item, index) => {\n const isCurrent = index === items.length - 1;\n\n return (\n <BreadcrumbListItem\n key={`${item.label}-${index}`}\n aria-current={isCurrent ? 'page' : undefined}\n >\n <Breadcrumb {...item} size={size} current={isCurrent} headingAs={headingAs} />\n </BreadcrumbListItem>\n );\n });\n\n const listItems = intersperse(crumbNodes, (separatorIndex: number) => (\n <BreadcrumbListItem key={`separator-${separatorIndex}`} aria-hidden='true'>\n <Separator $size={size}>/</Separator>\n </BreadcrumbListItem>\n ));\n\n return (\n <nav aria-label={ariaLabel} className={className}>\n <BreadcrumbList>{listItems}</BreadcrumbList>\n </nav>\n );\n};\n\nexport default Breadcrumbs;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,MAAM,qBAAqB;AAC3B,MAAM,uBAAuB;AAC7B,MAAM,0BAA0B;AAChC,MAAM,iCAAiC;AACvC,MAAM,yCAAyC;AAiC/C,MAAM,mBAAmB,QAAQ;AACjC,MAAM,oBAAoB,QAAQ;AAElC,MAAM,WAAW,OAAO,OAAO;;;;AAK/B,MAAM,qBAAqB,SAAyB,GAAG;;;;iBAItC,EAAE,YAAY,MAAM,QAAQ,OAAO,GAAG;IAEnD,SAAS,OACL,GAAG;sBACW,EAAE,YAAY,MAAM,KAAK,UAAU,GAAG,SAAS;wBAC7C,EAAE,YAAY,MAAM,KAAK,UAAU,GAAG,WAAW;UAEjE,GAAG,GACR;;AAGH,MAAM,uBAAuB,MAAsB,YAAqB;AACtE,KAAI,QACF,QAAO,SAAS,OAAO,gBAAgB,SAAS,gBAAgB;AAElE,QAAO,SAAS,OAAO,gBAAgB,KAAK,gBAAgB;;AAG9D,MAAM,sBAAsB,GAA8B;IACtD,gBAAgB,GAAG;YACX,EAAE,YAAY,cAAc,OAAO,eAAe,MAAM,MAAM,KAAK,UAAU,CAAC;;8BAEvC;IAC/C,aAAa;KACZ,EAAE,YAAY,kBAAkB,MAAM,CAAC;;;cAG9B,EAAE,YAAY,cAAc,OAAO,aAAa,MAAM,MAAM,KAAK,QAAQ,CAAC;;;AAIxF,MAAM,kBAAkB,OAAO,KAAK;IAChC,oBAAoB;;AAGxB,MAAM,oBAAoB,OAAO,MAAiC;IAC9D,oBAAoB;;;;;;AAOxB,MAAM,kBAAkB,OAAOA,cAAM;;;;;gBASrB,EAAE,oBAAqB,iBAAiB,OAAO,GAAG,cAAc,MAAM,IAAK;;;KAGtF,EAAE,OAAO,eAAe,oBAAoB,OAAO,SAAS,CAAC;uBAC3C,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,MAAM,WAAW,QAAQ,CAAC;YAChG,EAAE,YAAY,cAAc,OAAO,aAAa,MAAM,MAAM,KAAK,QAAQ,CAAC;;;;;;;;;;AAWtF,MAAM,eAAe,OAAO,UAAU;;KAEjC,EAAE,YAAY,kBAAkB,MAAM,CAAC;;AAG5C,MAAM,kBAAkB,OAAO,UAAoC;AACjE,KAAI;AACF,MAAI,UAAU,WAAW,aAAa,KACpC,QAAO;AAGT,QAAM,UAAU,UAAU,UAAU,MAAM;AAC1C,SAAO;SACD;AACN,SAAO;;;AAIX,MAAM,wBAAwB,EAC5B,WACA,mBAAmB,oBACnB,qBAAqB,sBACrB,yBAAyB,OACzB,aAOI;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CACrD,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAE3C,MAAM,aAAa,YAAY;AAE7B,MAAI,CAAC,MADiB,gBAAgB,UAAU,CAE9C;AAGF,YAAU,KAAK;AACf,iBAAe,KAAK;AACpB,YAAU;AAEV,SAAO,iBAAiB;AACtB,kBAAe,MAAM;AACrB,UAAO,iBAAiB,UAAU,MAAM,EAAE,IAAI;KAC7C,IAAK;;CAGV,MAAM,yBAAyB;AAC7B,MAAI,CAAC,OACH,gBAAe,KAAK;;CAIxB,MAAM,yBAAyB;AAC7B,MAAI,CAAC,OACH,gBAAe,MAAM;;CAIzB,MAAM,UACJ,oBAAC,QAAD;EAAM,cAAc;EAAkB,cAAc;YAClD,oBAAC,YAAD;GACE,MAAK;GACL,MAAK;GACL,cAAY,QAAQ;GACpB,UAAU,UAAU;AAClB,UAAM,gBAAgB;AACtB,UAAM,iBAAiB;AAClB,gBAAY;;aAGnB,oBAAC,UAAD,EAAY,CAAA;GACD,CAAA;EACR,CAAA;CAGT,MAAM,eAAe,SAAS,qBAAqB;AAEnD,QACE,oBAAC,SAAD;EACW;EACT,MAAM;EACN,MAAK;EACL,YAAY;EACZ,MAAK;EACL,kBAAiB;EACjB,aAAa;EACb,WAAA;EACA,QAAQ;EACR,UAAU,yBAAyB,yCAAyC,KAAA;YAE3E,yBACC,qBAAC,QAAD;GAAQ,SAAS;GAAmB,OAAM;aAA1C,CACE,oBAAC,QAAD,EAAA,UAAO,cAAoB,CAAA,EAC3B,oBAAC,kBAAD;IAAkB,UAAU;IAAO,UAAU;cAC1C;IACgB,CAAA,CACZ;OAET;EAEM,CAAA;;AAId,MAAM,cAAc,EAClB,OACA,OAAO,MACP,UAAU,OACV,YAAY,MACZ,iBAAiB,OACjB,WACA,kBACA,oBACA,wBACA,MACA,SACA,QACA,gBAAgB,yBAChB,aACqB;CACrB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,cAAc,mBAAmB,UAA8B;CACtE,MAAM,eAAe,OAAyB,KAAK;AAEnD,iBAAgB;AACd,MAAI,CAAC,UACH,cAAa,MAAM;IAEpB,CAAC,WAAW,MAAM,CAAC;AAEtB,iBAAgB;AACd,MAAI,CAAC,WAAW;AACd,mBAAgB,KAAA,EAAU;AAC1B;;EAGF,MAAM,QAAQ,aAAa;AAC3B,MAAI,SAAS,KACX;AAGF,kBAAgB,MAAM,YAAY;AAClC,QAAM,OAAO;AACb,QAAM,QAAQ;IACb,CAAC,UAAU,CAAC;CAEf,MAAM,mBAAmB;AACvB,MAAI,CAAC,UACH;AAGF,eAAa,MAAM;AACnB,MAAI,cAAc,MAChB,UAAS,UAAU;;CAIvB,MAAM,gBAAgB,CAAC,cAAc,kBAAkB,WACrD,qBAAC,QAAD;EAAQ,SAAS;EAAmB,OAAM;YAA1C,CACG,UACC,oBAAC,YAAD;GACE,MAAK;GACL,MAAK;GACL,cAAY,QAAQ;GACpB,UAAU,UAAU;AAClB,UAAM,gBAAgB;AACtB,UAAM,iBAAiB;AACvB,iBAAa,KAAK;;aAGpB,oBAAC,UAAD,EAAY,CAAA;GACD,CAAA,EAEd,kBAAkB,aAAa,QAC9B,oBAAC,sBAAD;GACa;GACO;GACE;GACI;GAChB;GACR,CAAA,CAEG;;AAGX,KAAI,UACF,QACE,oBAAC,UAAD;EAAU,SAAS;YACjB,oBAAC,iBAAD;GACE,KAAK;GACL,OAAO;GACP,UAAU;GACV,eAAe;GACf,MAAK;GACL,cAAY,QAAQ;GACpB,WAAW;GACX,OAAO;GACP,WAAW,UAAyC,aAAa,MAAM,OAAO,MAAM;GACpF,QAAQ;GACR,YAAY,UAAU;AACpB,QAAI,MAAM,QAAQ,SAAS;AACzB,WAAM,gBAAgB;AACtB,iBAAY;;AAEd,QAAI,MAAM,QAAQ,UAAU;AAC1B,kBAAa,MAAM;AACnB,kBAAa,MAAM;;;GAGvB,CAAA;EACO,CAAA;AAIf,KAAI,QACF,QACE,qBAAC,UAAD;EAAU,SAAS;YAAnB,CACE,oBAAC,cAAD;GACE,OAAO;GACP,MAAM,SAAS,OAAO,OAAO;GAC7B,QAAO;GACP,OAAM;GACN,IAAI;aAEH;GACY,CAAA,EACd,cACQ;;AAIf,KAAI,QAAQ,QAAQ,WAAW,KAC7B,QACE,qBAAC,UAAD;EAAU,SAAS;YAAnB,CACE,oBAAC,mBAAD;GAAmB,MAAK;GAAkB;GAAS,OAAO;aACvD;GACiB,CAAA,EACnB,cACQ;;AAIf,QACE,qBAAC,UAAD;EAAU,SAAS;YAAnB,CACE,oBAAC,iBAAD;GAAiB,IAAI,QAAQ;GAAI,OAAO;aACrC;GACe,CAAA,EACjB,cACQ;;;;;AC5Wf,MAAM,iBAAiB,OAAO,EAAE;;;;;;;;;;AAWhC,MAAM,qBAAqB,OAAO,EAAE;;;;;AAMpC,MAAM,YAAY,OAAO,IAA+B;eACzC,QAAQ,GAAG;YACd,EAAE,YAAY,cAAc,OAAO,eAAe,MAAM,MAAM,KAAK,SAAS,CAAC;;KAEpF,EAAE,YAAa,UAAU,OAAO,gBAAgB,KAAK,gBAAgB,GAAI;;AAG9E,MAAa,eAAe,EAC1B,OACA,OAAO,MACP,YAAY,MACZ,cAAc,YAAY,eAC1B,gBACsB;AACtB,KAAI,MAAM,WAAW,EACnB,QAAO;AAsBT,QACE,oBAAC,OAAD;EAAK,cAAY;EAAsB;YACrC,oBAAC,gBAAD,EAAA,UARc,YAbC,MAAM,KAAK,MAAM,UAAU;GAC5C,MAAM,YAAY,UAAU,MAAM,SAAS;AAE3C,UACE,oBAAC,oBAAD;IAEE,gBAAc,YAAY,SAAS,KAAA;cAEnC,oBAAC,YAAD;KAAY,GAAI;KAAY;KAAM,SAAS;KAAsB;KAAa,CAAA;IAC3D,EAJd,GAAG,KAAK,MAAM,GAAG,QAIH;IAIe,GAAG,mBACzC,oBAAC,oBAAD;GAAwD,eAAY;aAClE,oBAAC,WAAD;IAAW,OAAO;cAAM;IAAa,CAAA;GAClB,EAFI,aAAa,iBAEjB,CAKO,EAAkB,CAAA;EACxC,CAAA"}