@persona/design-system 0.9.1 → 0.10.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 (586) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +1 -1
  3. package/dist/Accordion.d.mts +1 -1
  4. package/dist/AccordionItem.d.mts +1 -1
  5. package/dist/{Action-BleGvmsy.d.mts → Action-DT8WqfEg.d.mts} +3 -3
  6. package/dist/Action.d.mts +1 -1
  7. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  8. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  9. package/dist/ArrayValueControl.d.mts +1 -1
  10. package/dist/Attribute.d.mts +4 -4
  11. package/dist/{Badge-BYa-iqNE.mjs → Badge-Bvn3afds.mjs} +2 -2
  12. package/dist/{Badge-BYa-iqNE.mjs.map → Badge-Bvn3afds.mjs.map} +1 -1
  13. package/dist/BooleanValueControl.d.mts +1 -1
  14. package/dist/{Breadcrumb-CEHEUe8l.d.mts → Breadcrumb-BDbY1Ffu.d.mts} +1 -1
  15. package/dist/Breadcrumb.d.mts +1 -1
  16. package/dist/{Breadcrumbs-BQ-Gj6UV.d.mts → Breadcrumbs-C2ThOYJ-.d.mts} +2 -2
  17. package/dist/{Breadcrumbs-BmlndU4V.mjs → Breadcrumbs-CQUe9VTM.mjs} +8 -8
  18. package/dist/{Breadcrumbs-BmlndU4V.mjs.map → Breadcrumbs-CQUe9VTM.mjs.map} +1 -1
  19. package/dist/Breadcrumbs.d.mts +1 -1
  20. package/dist/{Button-Dx7mHjWC.d.mts → Button-CyjqQa5v.d.mts} +5 -5
  21. package/dist/Button.d.mts +1 -1
  22. package/dist/{Calendar-BvsTQ3e1.d.mts → Calendar-DAfQCLOJ.d.mts} +1 -1
  23. package/dist/Calendar.d.mts +1 -1
  24. package/dist/CalendarBase.d.mts +1 -1
  25. package/dist/{Card-BPY0OU7e.d.mts → Card-CzRHVUFo.d.mts} +4 -4
  26. package/dist/Card.d.mts +1 -1
  27. package/dist/Card2.d.mts +1 -1
  28. package/dist/CardGrouping.d.mts +2 -2
  29. package/dist/{CardV2-Cq4QODeE.mjs → CardV2-Dp4eHSE-.mjs} +11 -11
  30. package/dist/{CardV2-Cq4QODeE.mjs.map → CardV2-Dp4eHSE-.mjs.map} +1 -1
  31. package/dist/{Checkbox-CVa8WOf2.d.mts → Checkbox-B2MZShdu.d.mts} +1 -1
  32. package/dist/{Checkbox-Cttn1t8T.mjs → Checkbox-BaJ-dGdX.mjs} +5 -5
  33. package/dist/{Checkbox-Cttn1t8T.mjs.map → Checkbox-BaJ-dGdX.mjs.map} +1 -1
  34. package/dist/Checkbox.d.mts +1 -1
  35. package/dist/{CheckboxGroupField-BpHN_2QP.d.mts → CheckboxGroupField-BYB4OBlW.d.mts} +3 -3
  36. package/dist/CheckboxGroupField.d.mts +1 -1
  37. package/dist/ChoicesValueControl.d.mts +1 -1
  38. package/dist/{Combobox-CsXnJKvB.mjs → Combobox-CcFJo68g.mjs} +19 -11
  39. package/dist/Combobox-CcFJo68g.mjs.map +1 -0
  40. package/dist/{Combobox-C4C2P8lF.d.mts → Combobox-DH5ycYlG.d.mts} +3 -3
  41. package/dist/Combobox.d.mts +2 -2
  42. package/dist/{ComboboxBase-2nVpt8oj.d.mts → ComboboxBase-BQQSKUBU.d.mts} +7 -7
  43. package/dist/ComboboxBase.d.mts +1 -1
  44. package/dist/{ComboboxMultiSelect-BvJ--m6z.d.mts → ComboboxMultiSelect-Da3Gv1k5.d.mts} +2 -2
  45. package/dist/ComboboxMultiSelect.d.mts +1 -1
  46. package/dist/{ComboboxSingleSelect-BWrnRA2x.d.mts → ComboboxSingleSelect-BUDovONU.d.mts} +4 -4
  47. package/dist/ComboboxSingleSelect.d.mts +1 -1
  48. package/dist/{CompactBar-CmTT9iuT.d.mts → CompactBar-D12R7Nm2.d.mts} +3 -3
  49. package/dist/CompactBar.d.mts +1 -1
  50. package/dist/{ConfigFormGroup-C0orlWwb.mjs → ConfigFormGroup-CidT_cE9.mjs} +2 -2
  51. package/dist/{ConfigFormGroup-C0orlWwb.mjs.map → ConfigFormGroup-CidT_cE9.mjs.map} +1 -1
  52. package/dist/{ControlBar-Cg36sjz3.d.mts → ControlBar-D9KflqmH.d.mts} +22 -9
  53. package/dist/ControlBar.d.mts +1 -1
  54. package/dist/DataTable-95ZxiPlV.mjs +1547 -0
  55. package/dist/DataTable-95ZxiPlV.mjs.map +1 -0
  56. package/dist/DataTable-fZ7SNbIH.d.mts +439 -0
  57. package/dist/DataTable.d.mts +2 -396
  58. package/dist/{DateField-BXUuqbnb.d.mts → DateField-DLz13Ksl.d.mts} +2 -2
  59. package/dist/DateField.d.mts +1 -1
  60. package/dist/{DatePicker-DQHVCGnP.mjs → DatePicker-D0cvVbzq.mjs} +374 -374
  61. package/dist/DatePicker-D0cvVbzq.mjs.map +1 -0
  62. package/dist/{DatePicker-Cmn1vViU.d.mts → DatePicker-DYVWmbrb.d.mts} +2 -2
  63. package/dist/DatePicker.d.mts +1 -1
  64. package/dist/{DateRangePicker-CKhp9Obv.d.mts → DateRangePicker-Be8TYtjz.d.mts} +3 -3
  65. package/dist/DateRangePicker.d.mts +1 -1
  66. package/dist/DateRangeValueControl.d.mts +2 -2
  67. package/dist/DateValueControl.d.mts +1 -1
  68. package/dist/{DropdownButton-C9wWnB5w.mjs → DropdownButton-5oNcpsOq.mjs} +3 -3
  69. package/dist/{DropdownButton-C9wWnB5w.mjs.map → DropdownButton-5oNcpsOq.mjs.map} +1 -1
  70. package/dist/DropdownButton.d.mts +2 -2
  71. package/dist/{DropdownMenu-CPE8Q56k.mjs → DropdownMenu-CedsmO5h.mjs} +2 -2
  72. package/dist/{DropdownMenu-CPE8Q56k.mjs.map → DropdownMenu-CedsmO5h.mjs.map} +1 -1
  73. package/dist/{DropdownMenu-BZ62b8Cv.d.mts → DropdownMenu-DAa2kNrt.d.mts} +3 -3
  74. package/dist/DropdownMenu.d.mts +1 -1
  75. package/dist/{ErrorProps-oCHtJzEB.d.mts → ErrorProps-DH0fzeGf.d.mts} +1 -1
  76. package/dist/ErrorProps.d.mts +1 -1
  77. package/dist/{FieldRegistry-DAk_3PhH.d.mts → FieldRegistry-d5tGpSch.d.mts} +2 -2
  78. package/dist/FieldRegistry.d.mts +1 -1
  79. package/dist/{FilterBar-C7ch6kYM.d.mts → FilterBar-Bh18VyOK.d.mts} +4 -4
  80. package/dist/FilterBar.d.mts +1 -1
  81. package/dist/FilterPickerMenu.d.mts +2 -2
  82. package/dist/FilterPill.d.mts +1 -1
  83. package/dist/FilterPopover.d.mts +1 -1
  84. package/dist/FloatValueControl.d.mts +1 -1
  85. package/dist/FloatingActionBar-CpvLefPm.d.mts +41 -0
  86. package/dist/FloatingActionBar.d.mts +2 -41
  87. package/dist/{FormControl-CD_FdAXA.mjs → FormControl-C4CiA0H-.mjs} +4 -4
  88. package/dist/{FormControl-CD_FdAXA.mjs.map → FormControl-C4CiA0H-.mjs.map} +1 -1
  89. package/dist/{FormControl-DX4vtUp6.d.mts → FormControl-DEG_0oXt.d.mts} +3 -3
  90. package/dist/FormControl.d.mts +1 -1
  91. package/dist/FormControlLabel.d.mts +2 -2
  92. package/dist/{FormField-DjysBTKn.mjs → FormField-cSG93kuo.mjs} +15 -15
  93. package/dist/{FormField-DjysBTKn.mjs.map → FormField-cSG93kuo.mjs.map} +1 -1
  94. package/dist/{FormField-C80kGAIV.d.mts → FormField-mLbXDJ9B.d.mts} +2 -2
  95. package/dist/FormField.d.mts +1 -1
  96. package/dist/{Grid-D0mlxk8_.mjs → Grid-DXVkhyNQ.mjs} +1 -1
  97. package/dist/{Grid-D0mlxk8_.mjs.map → Grid-DXVkhyNQ.mjs.map} +1 -1
  98. package/dist/{Header-C-a5fL3k.d.mts → Header-ayDu4VWE.d.mts} +2 -2
  99. package/dist/Header.d.mts +1 -1
  100. package/dist/{HelperTooltip-hhMFkKmn.d.mts → HelperTooltip-BB9Vznnx.d.mts} +2 -2
  101. package/dist/HelperTooltip.d.mts +1 -1
  102. package/dist/HighlightedText.d.mts +3 -3
  103. package/dist/{HoverCopyableField-Cgu3W31s.mjs → HoverCopyableField-D-BubaRd.mjs} +4 -4
  104. package/dist/{HoverCopyableField-Cgu3W31s.mjs.map → HoverCopyableField-D-BubaRd.mjs.map} +1 -1
  105. package/dist/{I18nContext-ioYM_vqG.d.mts → I18nContext-TXS9M8t5.d.mts} +2 -2
  106. package/dist/I18nContext.d.mts +1 -1
  107. package/dist/{IconButton-DJ3L_ZqN.d.mts → IconButton-Bigvu1Q4.d.mts} +2 -2
  108. package/dist/{IconButton-D4awF770.mjs → IconButton-HWx5Hlmi.mjs} +14 -11
  109. package/dist/{IconButton-D4awF770.mjs.map → IconButton-HWx5Hlmi.mjs.map} +1 -1
  110. package/dist/IconButton.d.mts +1 -1
  111. package/dist/ImageTile.d.mts +4 -3
  112. package/dist/IndexTableLayout.d.mts +45 -0
  113. package/dist/InlineCombobox.d.mts +1 -1
  114. package/dist/InlineInput.d.mts +1 -1
  115. package/dist/{Input-D3lXfJHq.d.mts → Input-Bg4bi6VZ.d.mts} +4 -4
  116. package/dist/{Input-DD4jzJhK.mjs → Input-Dap055xf.mjs} +5 -5
  117. package/dist/{Input-DD4jzJhK.mjs.map → Input-Dap055xf.mjs.map} +1 -1
  118. package/dist/Input.d.mts +1 -1
  119. package/dist/{InputProps-BU9iiBBz.d.mts → InputProps-Bl-G826g.d.mts} +2 -2
  120. package/dist/InputProps.d.mts +1 -1
  121. package/dist/Inserter-BKVrJ4M5.d.mts +12 -0
  122. package/dist/Inserter.d.mts +2 -12
  123. package/dist/IntegerValueControl.d.mts +1 -1
  124. package/dist/{Link-DGZu4J0x.mjs → Link-Cf__H8gD.mjs} +4 -4
  125. package/dist/{Link-DGZu4J0x.mjs.map → Link-Cf__H8gD.mjs.map} +1 -1
  126. package/dist/Link.d.mts +1 -1
  127. package/dist/{ListBox-CjGb0mMY.d.mts → ListBox-Bj5c626-.d.mts} +3 -3
  128. package/dist/{ListBox-BhWLad_L.mjs → ListBox-C80J7DCG.mjs} +12 -12
  129. package/dist/{ListBox-BhWLad_L.mjs.map → ListBox-C80J7DCG.mjs.map} +1 -1
  130. package/dist/ListBox.d.mts +1 -1
  131. package/dist/{ListBoxField-BUkPeLiB.d.mts → ListBoxField-DsJRabgE.d.mts} +4 -4
  132. package/dist/ListBoxField.d.mts +1 -1
  133. package/dist/LoadingShimmer.d.mts +2 -2
  134. package/dist/{LogicRow-Bt6NPLOd.d.mts → LogicRow-CcpD-Kk3.d.mts} +3 -3
  135. package/dist/LogicRow.d.mts +1 -1
  136. package/dist/MaskedInput.d.mts +1 -1
  137. package/dist/MatchHighlight.d.mts +1 -1
  138. package/dist/{Menu-BMrsN-Jz.d.mts → Menu-C0FU9WEF.d.mts} +4 -4
  139. package/dist/{Menu-DlN0A5Nb.mjs → Menu-Dw6Rcpk6.mjs} +4 -4
  140. package/dist/{Menu-DlN0A5Nb.mjs.map → Menu-Dw6Rcpk6.mjs.map} +1 -1
  141. package/dist/Menu.d.mts +1 -1
  142. package/dist/{Modal-BoeGuR-h.d.mts → Modal-BuxggahW.d.mts} +7 -3
  143. package/dist/{Modal-Cs5cZpEr.mjs → Modal-kjUptzg1.mjs} +8 -6
  144. package/dist/Modal-kjUptzg1.mjs.map +1 -0
  145. package/dist/Modal.d.mts +1 -1
  146. package/dist/PageHeader-Czj42pyK.d.mts +40 -0
  147. package/dist/{PageHeader-CCoAJUwJ.mjs → PageHeader-DJF7nxgN.mjs} +2 -2
  148. package/dist/{PageHeader-CCoAJUwJ.mjs.map → PageHeader-DJF7nxgN.mjs.map} +1 -1
  149. package/dist/PageHeader.d.mts +2 -40
  150. package/dist/{PageLayout-BlCo4hN4.d.mts → PageLayout-TBemv7oL.d.mts} +2 -2
  151. package/dist/{PageLayout-C7ZC7GBA.mjs → PageLayout-fXJW7daI.mjs} +2 -2
  152. package/dist/{PageLayout-C7ZC7GBA.mjs.map → PageLayout-fXJW7daI.mjs.map} +1 -1
  153. package/dist/PageLayout.d.mts +1 -1
  154. package/dist/{PageLayoutFrame--HlvI4Pp.d.mts → PageLayoutFrame-DzwlkNZ1.d.mts} +1 -1
  155. package/dist/PageLayoutFrame.d.mts +1 -1
  156. package/dist/{PageSelector-BmevrorJ.d.mts → PageSelector-DXCeBUoU.d.mts} +3 -3
  157. package/dist/PageSelector.d.mts +1 -1
  158. package/dist/{Pagination-C67fsrxl.d.mts → Pagination-COcFWlha.d.mts} +2 -2
  159. package/dist/{Pagination-Du2CPW2l.mjs → Pagination-DtK-jbEY.mjs} +5 -5
  160. package/dist/{Pagination-Du2CPW2l.mjs.map → Pagination-DtK-jbEY.mjs.map} +1 -1
  161. package/dist/Pagination.d.mts +1 -1
  162. package/dist/{Pii-CFVWZ_Yx.mjs → Pii-DueIK287.mjs} +2 -2
  163. package/dist/{Pii-CFVWZ_Yx.mjs.map → Pii-DueIK287.mjs.map} +1 -1
  164. package/dist/{PillShell-jr6OyAd3.d.mts → PillShell-CXROf8gO.d.mts} +2 -2
  165. package/dist/PillShell.d.mts +1 -1
  166. package/dist/{Popover-DewrGOJB.mjs → Popover-BcII7usF.mjs} +2 -2
  167. package/dist/{Popover-DewrGOJB.mjs.map → Popover-BcII7usF.mjs.map} +1 -1
  168. package/dist/{ProgressIndicator-CdhC2LVI.d.mts → ProgressIndicator-C5sbFQcd.d.mts} +1 -1
  169. package/dist/{ProgressIndicator-xV5Cl2Bw.mjs → ProgressIndicator-CM37EU1B.mjs} +3 -3
  170. package/dist/{ProgressIndicator-xV5Cl2Bw.mjs.map → ProgressIndicator-CM37EU1B.mjs.map} +1 -1
  171. package/dist/ProgressIndicator.d.mts +1 -1
  172. package/dist/{PseudoClassProps-CverE9Ni.d.mts → PseudoClassProps-BFFh2-u8.d.mts} +1 -1
  173. package/dist/PseudoClassProps.d.mts +1 -1
  174. package/dist/{Radio-i7AEQZHb.mjs → Radio-DDT_l8rd.mjs} +4 -4
  175. package/dist/{Radio-i7AEQZHb.mjs.map → Radio-DDT_l8rd.mjs.map} +1 -1
  176. package/dist/{RadioGroup-CDEfCg-b.d.mts → RadioGroup-BxEmipHa.d.mts} +1 -1
  177. package/dist/{RadioGroup-B0KcQpS7.mjs → RadioGroup-CmD8NFCL.mjs} +2 -2
  178. package/dist/{RadioGroup-B0KcQpS7.mjs.map → RadioGroup-CmD8NFCL.mjs.map} +1 -1
  179. package/dist/RadioGroup.d.mts +1 -1
  180. package/dist/{RangeCalendar-BOt59kTG.d.mts → RangeCalendar-cZSYjuOZ.d.mts} +2 -2
  181. package/dist/RangeCalendar.d.mts +1 -1
  182. package/dist/RangeCalendarPresets.d.mts +1 -1
  183. package/dist/{RouterContext-D7HBESqO.d.mts → RouterContext-CoDbEb_X.d.mts} +2 -2
  184. package/dist/RouterContext.d.mts +1 -1
  185. package/dist/{RouterLink-dppNWLgP.d.mts → RouterLink-BnIEi8d4.d.mts} +2 -2
  186. package/dist/RouterLink.d.mts +1 -1
  187. package/dist/RuleEditorFields.d.mts +2 -2
  188. package/dist/RulesPill.d.mts +1 -1
  189. package/dist/{SearchInput-B7JYHJZI.d.mts → SearchInput-DLC7-A7K.d.mts} +2 -2
  190. package/dist/SearchInput.d.mts +1 -1
  191. package/dist/SectionHeading.d.mts +1 -1
  192. package/dist/{SegmentedControl-B2_bS806.mjs → SegmentedControl-CcKPfxBR.mjs} +2 -2
  193. package/dist/{SegmentedControl-B2_bS806.mjs.map → SegmentedControl-CcKPfxBR.mjs.map} +1 -1
  194. package/dist/{SegmentedControl-C_7mTcuL.d.mts → SegmentedControl-xjU-2IsJ.d.mts} +1 -1
  195. package/dist/SegmentedControl.d.mts +1 -1
  196. package/dist/{Select-oVJ0uLa7.mjs → Select-BJ9ACmRD.mjs} +8 -8
  197. package/dist/{Select-oVJ0uLa7.mjs.map → Select-BJ9ACmRD.mjs.map} +1 -1
  198. package/dist/{Select-BpAA5ETS.d.mts → Select-sBEBrNgo.d.mts} +3 -3
  199. package/dist/Select.d.mts +1 -1
  200. package/dist/{SingleColumnLayout-ByWxiD7d.d.mts → SingleColumnLayout-CBynMc76.d.mts} +2 -2
  201. package/dist/SingleColumnLayout.d.mts +1 -1
  202. package/dist/SmartTextInput.d.mts +6 -6
  203. package/dist/SmartTextInputField.d.mts +2 -2
  204. package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
  205. package/dist/SmartTextInputListbox.d.mts +2 -2
  206. package/dist/SmartTextInputPopover.d.mts +2 -2
  207. package/dist/{Spinner-0Vqw_68r.mjs → Spinner-uVZyOh1T.mjs} +2 -2
  208. package/dist/{Spinner-0Vqw_68r.mjs.map → Spinner-uVZyOh1T.mjs.map} +1 -1
  209. package/dist/{SplitColumnLayout-DYyJabQ3.d.mts → SplitColumnLayout-BVzGbEDC.d.mts} +2 -2
  210. package/dist/SplitColumnLayout.d.mts +1 -1
  211. package/dist/{Stack-DpWl6orU.d.mts → Stack-BZyboHQl.d.mts} +2 -2
  212. package/dist/Stack.d.mts +1 -1
  213. package/dist/{StatusIndicator-QsVgjRrt.mjs → StatusIndicator-Bunn9YLV.mjs} +3 -3
  214. package/dist/{StatusIndicator-QsVgjRrt.mjs.map → StatusIndicator-Bunn9YLV.mjs.map} +1 -1
  215. package/dist/{Sticker-C260e6kl.d.mts → Sticker-CsUSNIH-.d.mts} +5 -5
  216. package/dist/{Sticker-CUqHa9Mo.mjs → Sticker-yhxtIYH8.mjs} +5 -5
  217. package/dist/{Sticker-CUqHa9Mo.mjs.map → Sticker-yhxtIYH8.mjs.map} +1 -1
  218. package/dist/Sticker.d.mts +1 -1
  219. package/dist/StringValueControl.d.mts +1 -1
  220. package/dist/Tab.d.mts +2 -2
  221. package/dist/{TabBar-w_gxXSwA.mjs → TabBar-SX8E9-Bk.mjs} +5 -5
  222. package/dist/{TabBar-w_gxXSwA.mjs.map → TabBar-SX8E9-Bk.mjs.map} +1 -1
  223. package/dist/{Table-PbYGf3PG.mjs → Table--o4ZLRbb.mjs} +8 -8
  224. package/dist/{Table-PbYGf3PG.mjs.map → Table--o4ZLRbb.mjs.map} +1 -1
  225. package/dist/{Table-BtNYI6QX.d.mts → Table-CadXF71E.d.mts} +1 -1
  226. package/dist/Table.d.mts +1 -1
  227. package/dist/{TableBody-DQ7pivxP.d.mts → TableBody-BKSHNSTo.d.mts} +1 -1
  228. package/dist/TableBody.d.mts +1 -1
  229. package/dist/{TableBox-DMYLTIpr.mjs → TableBox-3qunC9Nl.mjs} +13 -13
  230. package/dist/{TableBox-DMYLTIpr.mjs.map → TableBox-3qunC9Nl.mjs.map} +1 -1
  231. package/dist/TableBox.d.mts +2 -2
  232. package/dist/{TableBoxCell-DwAOA-oO.d.mts → TableBoxCell-BRECnVTs.d.mts} +7 -7
  233. package/dist/TableBoxCell.d.mts +1 -1
  234. package/dist/{TableBoxField-Bdj_nY7j.d.mts → TableBoxField-Lm_tn73M.d.mts} +5 -5
  235. package/dist/TableBoxField.d.mts +1 -1
  236. package/dist/{TableBoxRow-5WBwyAyn.d.mts → TableBoxRow-BS8Dc-zw.d.mts} +3 -3
  237. package/dist/TableBoxRow.d.mts +1 -1
  238. package/dist/{TableBoxRowActions-Dq_Z2ted.d.mts → TableBoxRowActions-oLMb8XcM.d.mts} +2 -2
  239. package/dist/TableBoxRowActions.d.mts +1 -1
  240. package/dist/{TableCell-DXBHZ52E.d.mts → TableCell-4u5_BgTC.d.mts} +3 -3
  241. package/dist/TableCell.d.mts +1 -1
  242. package/dist/{TableControls-C1MF2JvY.mjs → TableControls-DxSFqRwJ.mjs} +623 -131
  243. package/dist/TableControls-DxSFqRwJ.mjs.map +1 -0
  244. package/dist/{TableControls-Cw7LDHWj.d.mts → TableControls-UfObf-ZN.d.mts} +14 -7
  245. package/dist/TableControls.d.mts +1 -1
  246. package/dist/{TableControlsContext-DgoZhMpQ.d.mts → TableControlsContext-Bhtb0cMs.d.mts} +4 -4
  247. package/dist/TableControlsContext.d.mts +1 -1
  248. package/dist/{TableHead-BGUg_aXc.d.mts → TableHead-BuCQeDAq.d.mts} +1 -1
  249. package/dist/TableHead.d.mts +1 -1
  250. package/dist/{TableHeaderCell-DcZcMQyR.d.mts → TableHeaderCell-DIcQlZps.d.mts} +1 -1
  251. package/dist/TableHeaderCell.d.mts +1 -1
  252. package/dist/{TableLayout-CwYQaZlA.d.mts → TableLayout-ScEVdvvA.d.mts} +1 -1
  253. package/dist/TableLayout.d.mts +1 -1
  254. package/dist/{TableRow-Dad6_CoD.d.mts → TableRow-lCsvG0a-.d.mts} +2 -2
  255. package/dist/TableRow.d.mts +1 -1
  256. package/dist/TableTH.d.mts +1 -1
  257. package/dist/{TableViewConfigurationDropdown-BGuWAarQ.d.mts → TableViewConfigurationDropdown-BDXe2Q1Y.d.mts} +2 -2
  258. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  259. package/dist/{TechnicalSticker-RQ-4_Tdr.mjs → TechnicalSticker-CALVwnrT.mjs} +5 -5
  260. package/dist/{TechnicalSticker-RQ-4_Tdr.mjs.map → TechnicalSticker-CALVwnrT.mjs.map} +1 -1
  261. package/dist/{Text-BBMau410.d.mts → Text-RSzei6Se.d.mts} +4 -4
  262. package/dist/Text.d.mts +1 -1
  263. package/dist/{TextArea-BaA8H7s7.mjs → TextArea-CFf0Lspu.mjs} +2 -2
  264. package/dist/{TextArea-BaA8H7s7.mjs.map → TextArea-CFf0Lspu.mjs.map} +1 -1
  265. package/dist/{TextArea-Djd1uT3B.d.mts → TextArea-DFn4XuG-.d.mts} +2 -2
  266. package/dist/TextArea.d.mts +1 -1
  267. package/dist/{TextUnderlineTooltip-C4N0bqbh.d.mts → TextUnderlineTooltip-B0iYaPM1.d.mts} +3 -3
  268. package/dist/TextUnderlineTooltip.d.mts +1 -1
  269. package/dist/Tile.d.mts +1 -1
  270. package/dist/Toast.d.mts +1 -1
  271. package/dist/{Toggle-C9cZnajR.mjs → Toggle-BLdemkh_.mjs} +6 -6
  272. package/dist/{Toggle-C9cZnajR.mjs.map → Toggle-BLdemkh_.mjs.map} +1 -1
  273. package/dist/{Toggle-EYpW34LO.d.mts → Toggle-xtPgGaGD.d.mts} +1 -1
  274. package/dist/Toggle.d.mts +1 -1
  275. package/dist/{Tooltip-DogEteGl.mjs → Tooltip-B-0VRuKT.mjs} +2 -2
  276. package/dist/{Tooltip-DogEteGl.mjs.map → Tooltip-B-0VRuKT.mjs.map} +1 -1
  277. package/dist/{Tooltip-Dj-DtGKz.d.mts → Tooltip-Blfhi2gT.d.mts} +3 -3
  278. package/dist/Tooltip.d.mts +1 -1
  279. package/dist/{TruncatedText-BDNFUuhG.d.mts → TruncatedText-BMQmveJG.d.mts} +2 -2
  280. package/dist/VersionHistory.d.mts +1 -1
  281. package/dist/{VersionHistoryItem-iUabmk_y.d.mts → VersionHistoryItem-BExp7oSr.d.mts} +1 -1
  282. package/dist/VersionHistoryItem.d.mts +1 -1
  283. package/dist/WizardModal.d.mts +2 -2
  284. package/dist/{accordionTitleTypography-C7VVJvlx.d.mts → accordionTitleTypography-PMKnfoy0.d.mts} +2 -2
  285. package/dist/accordionTitleTypography.d.mts +1 -1
  286. package/dist/{chainTypes-DT-9j_sG.d.mts → chainTypes-BbFZn8a9.d.mts} +4 -4
  287. package/dist/clientFilterUtils-c5xzvoBj.d.mts +20 -0
  288. package/dist/clientFilterUtils.d.mts +2 -0
  289. package/dist/{codec-CGj8cwcj.d.mts → codec-DIp7dhcN.d.mts} +2 -2
  290. package/dist/codec.d.mts +1 -1
  291. package/dist/{color-BOm5A1Si.d.mts → color-C5B1pN1D.d.mts} +2 -2
  292. package/dist/components/Accordion/index.d.mts +1 -1
  293. package/dist/components/Accordion/index.mjs +4 -4
  294. package/dist/components/Attribute/index.mjs +4 -4
  295. package/dist/components/Badge/index.mjs +1 -1
  296. package/dist/components/Banner/index.mjs +3 -3
  297. package/dist/components/BottomPanel/index.mjs +4 -4
  298. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  299. package/dist/components/Breadcrumbs/index.mjs +1 -1
  300. package/dist/components/Button/index.d.mts +2 -2
  301. package/dist/components/Button/index.mjs +1 -1
  302. package/dist/components/ButtonGroup/index.mjs +2 -2
  303. package/dist/components/Card/index.d.mts +2 -2
  304. package/dist/components/CardV2/index.d.mts +1 -1
  305. package/dist/components/CardV2/index.mjs +1 -1
  306. package/dist/components/Checkbox/index.d.mts +1 -1
  307. package/dist/components/Checkbox/index.mjs +1 -1
  308. package/dist/components/CodeHighlight/index.mjs +3 -3
  309. package/dist/components/Combobox/index.d.mts +2 -2
  310. package/dist/components/Combobox/index.mjs +1 -1
  311. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  312. package/dist/components/DataTable/TableControls/index.d.mts +22 -20
  313. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  314. package/dist/components/DataTable/index.d.mts +9 -8
  315. package/dist/components/DataTable/index.mjs +2 -1474
  316. package/dist/components/DataTable/types.d.mts +2 -166
  317. package/dist/components/DatePicker/index.d.mts +5 -5
  318. package/dist/components/DatePicker/index.mjs +1 -1
  319. package/dist/components/DropdownButton/index.mjs +1 -1
  320. package/dist/components/DropdownMenu/index.d.mts +1 -1
  321. package/dist/components/DropdownMenu/index.mjs +1 -1
  322. package/dist/components/FloatingPanel/index.mjs +5 -5
  323. package/dist/components/FormControl/index.d.mts +2 -2
  324. package/dist/components/FormControl/index.mjs +2 -2
  325. package/dist/components/FormField/index.d.mts +5 -5
  326. package/dist/components/FormField/index.mjs +1 -1
  327. package/dist/components/Grid/index.mjs +1 -1
  328. package/dist/components/HoverCopyableField/index.mjs +1 -1
  329. package/dist/components/ImageTile/index.mjs +30 -17
  330. package/dist/components/ImageTile/index.mjs.map +1 -1
  331. package/dist/components/Input/index.d.mts +1 -1
  332. package/dist/components/Input/index.mjs +1 -1
  333. package/dist/components/Link/index.mjs +1 -1
  334. package/dist/components/ListBox/index.d.mts +3 -3
  335. package/dist/components/ListBox/index.mjs +1 -1
  336. package/dist/components/MaskedInput/index.mjs +1 -1
  337. package/dist/components/Menu/index.d.mts +1 -1
  338. package/dist/components/Menu/index.mjs +1 -1
  339. package/dist/components/Modal/index.d.mts +1 -1
  340. package/dist/components/Modal/index.mjs +1 -1
  341. package/dist/components/PageHeader/index.d.mts +1 -1
  342. package/dist/components/PageHeader/index.mjs +1 -1
  343. package/dist/components/Pagination/index.d.mts +3 -3
  344. package/dist/components/Pagination/index.mjs +1 -1
  345. package/dist/components/Pii/index.mjs +1 -1
  346. package/dist/components/Popover/index.mjs +1 -1
  347. package/dist/components/ProgressBar/index.mjs +1 -1
  348. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  349. package/dist/components/ProgressIndicator/index.mjs +1 -1
  350. package/dist/components/Radio/index.mjs +1 -1
  351. package/dist/components/RadioGroup/index.d.mts +1 -1
  352. package/dist/components/RadioGroup/index.mjs +1 -1
  353. package/dist/components/RightPanel/index.mjs +2 -2
  354. package/dist/components/SegmentedControl/index.d.mts +1 -1
  355. package/dist/components/SegmentedControl/index.mjs +1 -1
  356. package/dist/components/Select/index.d.mts +1 -1
  357. package/dist/components/Select/index.mjs +1 -1
  358. package/dist/components/Slider/index.mjs +2 -2
  359. package/dist/components/SmartTextInput/index.d.mts +2 -2
  360. package/dist/components/SmartTextInput/index.mjs +6 -6
  361. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  362. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
  363. package/dist/components/Spinner/index.mjs +1 -1
  364. package/dist/components/Stack/index.d.mts +1 -1
  365. package/dist/components/StatusIndicator/index.mjs +1 -1
  366. package/dist/components/Sticker/index.d.mts +1 -1
  367. package/dist/components/Sticker/index.mjs +1 -1
  368. package/dist/components/TabBar/index.mjs +1 -1
  369. package/dist/components/Table/index.d.mts +8 -8
  370. package/dist/components/Table/index.mjs +1 -1
  371. package/dist/components/TableBox/index.d.mts +2 -2
  372. package/dist/components/TableBox/index.mjs +1 -1
  373. package/dist/components/TechnicalSticker/index.mjs +1 -1
  374. package/dist/components/Text/index.d.mts +1 -1
  375. package/dist/components/TextArea/index.d.mts +1 -1
  376. package/dist/components/TextArea/index.mjs +1 -1
  377. package/dist/components/Tile/index.mjs +2 -2
  378. package/dist/components/Toast/index.mjs +4 -4
  379. package/dist/components/Toggle/index.d.mts +1 -1
  380. package/dist/components/Toggle/index.mjs +1 -1
  381. package/dist/components/Tooltip/index.d.mts +3 -3
  382. package/dist/components/Tooltip/index.mjs +1 -1
  383. package/dist/components/VersionHistory/index.d.mts +1 -1
  384. package/dist/components/VersionHistory/index.mjs +7 -7
  385. package/dist/compound-expression.d.mts +1 -1
  386. package/dist/{constants-CwzbyAdc.d.mts → constants-4rSh8e5G.d.mts} +1 -1
  387. package/dist/constants-BaMvTUbS.d.mts +10 -0
  388. package/dist/constants.d.mts +1 -1
  389. package/dist/constants2.d.mts +2 -10
  390. package/dist/{createPath-C4jIHe68.d.mts → createPath-B_CLq82C.d.mts} +2 -2
  391. package/dist/createPath.d.mts +1 -1
  392. package/dist/{date-filter-CWgCXz85.mjs → date-filter-D0ys8s0D.mjs} +1 -1
  393. package/dist/{date-filter-CWgCXz85.mjs.map → date-filter-D0ys8s0D.mjs.map} +1 -1
  394. package/dist/{date-range-rule-value-BkbGpLNH.d.mts → date-range-rule-value-D01nn054.d.mts} +2 -2
  395. package/dist/date-range-rule-value.d.mts +1 -1
  396. package/dist/{date-rule-intent-zdKP-tW_.d.mts → date-rule-intent-B4hQ_APa.d.mts} +3 -3
  397. package/dist/date-rule-intent.d.mts +1 -1
  398. package/dist/display.d.mts +2 -2
  399. package/dist/fieldPickerOptions.d.mts +2 -2
  400. package/dist/{filter-size-context-CW1guBfI.d.mts → filter-size-context-Dj7Idc8j.d.mts} +2 -2
  401. package/dist/filter-size-context.d.mts +1 -1
  402. package/dist/filters-DDrsgRYy.d.mts +22 -0
  403. package/dist/filters.d.mts +2 -0
  404. package/dist/{formatDateTime-zyRMjfH8.d.mts → formatDateTime-Dd9inM5H.d.mts} +1 -1
  405. package/dist/formatDateTime.d.mts +1 -1
  406. package/dist/helpers-D8_2I4ZX.d.mts +90 -0
  407. package/dist/helpers.d.mts +2 -90
  408. package/dist/{i18n-CeRarJIa.mjs → i18n-BscB9FUy.mjs} +14 -2
  409. package/dist/i18n-BscB9FUy.mjs.map +1 -0
  410. package/dist/{index-C7hEdRqK.d.mts → index-DkXly4xw.d.mts} +2 -2
  411. package/dist/{index-DxFh2ArY.d.mts → index-DsjvDLF8.d.mts} +3 -3
  412. package/dist/{index-B7KIL3U6.d.mts → index-EGvEhP1j.d.mts} +2 -2
  413. package/dist/index-K614ZhWK.d.mts +1 -0
  414. package/dist/index-NKYLt_R9.d.mts +1 -0
  415. package/dist/index-VWno75SQ.d.mts +1 -0
  416. package/dist/index.d.mts +1 -1
  417. package/dist/index2.d.mts +1 -1
  418. package/dist/index3.d.mts +3 -3
  419. package/dist/index4.d.mts +1 -1
  420. package/dist/index5.d.mts +14 -14
  421. package/dist/{input-DMPo8gRT.d.mts → input-CKhARTlS.d.mts} +3 -3
  422. package/dist/{inputFields-BCNC1FWx.d.mts → inputFields-DyOZHse2.d.mts} +11 -11
  423. package/dist/inputFields.d.mts +1 -1
  424. package/dist/{intersperse-B8s6clcc.mjs → intersperse-ObkRVOag.mjs} +1 -1
  425. package/dist/{intersperse-B8s6clcc.mjs.map → intersperse-ObkRVOag.mjs.map} +1 -1
  426. package/dist/{jsonSchema-6mcLrVG3.d.mts → jsonSchema-COo0XQLA.d.mts} +1 -1
  427. package/dist/lib/PDSProvider.d.mts +3 -3
  428. package/dist/lib/PDSProvider.mjs +1 -1
  429. package/dist/lib/TruncatedText.d.mts +1 -1
  430. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  431. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  432. package/dist/lib/chainTypes.d.mts +1 -1
  433. package/dist/lib/color.d.mts +1 -1
  434. package/dist/lib/customFunctionSchema.d.mts +1 -1
  435. package/dist/lib/date-filter/index.d.mts +2 -2
  436. package/dist/lib/date-filter/index.mjs +1 -1
  437. package/dist/lib/i18n/index.d.mts +3 -3
  438. package/dist/lib/i18n/index.mjs +1 -1
  439. package/dist/lib/jsonSchema.d.mts +1 -1
  440. package/dist/lib/jsonSchemaType.d.mts +1 -1
  441. package/dist/lib/message.d.mts +1 -1
  442. package/dist/lib/methodChain.d.mts +2 -2
  443. package/dist/lib/methodChainNormalize.d.mts +2 -2
  444. package/dist/lib/methodChainTypes.d.mts +1 -1
  445. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  446. package/dist/lib/platformObject.d.mts +1 -1
  447. package/dist/lib/pseudoClass.d.mts +1 -1
  448. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  449. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  450. package/dist/lib/router/index.d.mts +5 -5
  451. package/dist/lib/schemaOptions.d.mts +1 -1
  452. package/dist/lib/semanticColor.d.mts +1 -1
  453. package/dist/lib/useChain.d.mts +1 -1
  454. package/dist/{listbox-options-yLjqZp4H.d.mts → listbox-options-D-DyLUdi.d.mts} +3 -3
  455. package/dist/listbox-options.d.mts +1 -1
  456. package/dist/{message-C5n7wFiN.d.mts → message-Dti22dmx.d.mts} +1 -1
  457. package/dist/{methodChain-BNDytoaD.d.mts → methodChain-BAUFBbR9.d.mts} +4 -4
  458. package/dist/{methodChainTypes-BuwpPC73.d.mts → methodChainTypes-a7kHYhs7.d.mts} +2 -2
  459. package/dist/mixins/focus.d.mts +1 -1
  460. package/dist/mixins/focus.mjs +1 -1
  461. package/dist/mixins/hoverable.d.mts +2 -2
  462. package/dist/mixins/hoverable.mjs +1 -1
  463. package/dist/mixins/input.d.mts +1 -1
  464. package/dist/mixins/input.mjs +2 -2
  465. package/dist/mixins/menuItem.d.mts +2 -2
  466. package/dist/mixins/scrollbar.d.mts +1 -1
  467. package/dist/mixins/text.d.mts +1 -1
  468. package/dist/{operators-C34nhBuK.d.mts → operators-DjQXVNVI.d.mts} +3 -3
  469. package/dist/operators.d.mts +1 -1
  470. package/dist/{palette-BCszfY7I.d.mts → palette-Bp5G-S_5.d.mts} +3 -3
  471. package/dist/palette.d.mts +1 -1
  472. package/dist/patterns/CardGrouping/index.mjs +8 -8
  473. package/dist/patterns/IndexTableLayout/index.d.mts +3 -0
  474. package/dist/patterns/IndexTableLayout/index.mjs +87 -0
  475. package/dist/patterns/IndexTableLayout/index.mjs.map +1 -0
  476. package/dist/patterns/LayoutLoadingShimmer/index.mjs +3 -3
  477. package/dist/patterns/PageLayout/index.d.mts +4 -4
  478. package/dist/patterns/PageLayout/index.mjs +1 -1
  479. package/dist/patterns/WizardModal/index.mjs +3 -3
  480. package/dist/reactRouterFallback.d.mts +1 -1
  481. package/dist/relative-date-label.d.mts +1 -1
  482. package/dist/safe-parse.d.mts +1 -1
  483. package/dist/{schemaOptions-DBOUChxi.d.mts → schemaOptions-D536qhSd.d.mts} +3 -3
  484. package/dist/{semantic-Duoh2Pxp.d.mts → semantic-DjKvtUi8.d.mts} +1 -1
  485. package/dist/{semanticColor-BuG977_M.d.mts → semanticColor-CmGmGRj8.d.mts} +3 -3
  486. package/dist/{strings-CUZrwL-Q.d.mts → strings-FWNWdSn1.d.mts} +14 -2
  487. package/dist/strings.d.mts +1 -1
  488. package/dist/{text-B7hx6G99.d.mts → text-BNfECpa5.d.mts} +1 -1
  489. package/dist/{theme-BKg55Zk1.d.mts → theme-VNhXxAF3.d.mts} +3 -3
  490. package/dist/theme.d.mts +1 -1
  491. package/dist/tone.d.mts +3 -3
  492. package/dist/tree.d.mts +1 -1
  493. package/dist/{types-DEzlAdZW.d.mts → types-BMpEizJP.d.mts} +2 -2
  494. package/dist/{types-C_ZEgHNa.d.mts → types-BhHdS6QP.d.mts} +2 -2
  495. package/dist/{types-6QeQmbFm.d.mts → types-CFe4tA8Q.d.mts} +1 -1
  496. package/dist/types-CjQzH0MM.d.mts +180 -0
  497. package/dist/{types-CEQWndtF.d.mts → types-DFU6M0OL.d.mts} +4 -4
  498. package/dist/{types-BjMJFNYH.d.mts → types-DHTFd-5t.d.mts} +1 -1
  499. package/dist/{types-VgGkS4JB.d.mts → types-DfpVVjso.d.mts} +2 -2
  500. package/dist/types-Dx8PgO8a.d.mts +95 -0
  501. package/dist/{types-CgKSEQyB.d.mts → types-HxiGiwQN.d.mts} +1 -1
  502. package/dist/{types-4wnr5R9P.d.mts → types-Kmnood9Y.d.mts} +1 -1
  503. package/dist/types.d.mts +1 -1
  504. package/dist/types2.d.mts +2 -2
  505. package/dist/types3.d.mts +1 -1
  506. package/dist/types4.d.mts +2 -2
  507. package/dist/types5.d.mts +2 -2
  508. package/dist/types6.d.mts +2 -2
  509. package/dist/types7.d.mts +1 -1
  510. package/dist/{url-state-B_gTQ9uu.d.mts → url-state-D1muieS7.d.mts} +2 -2
  511. package/dist/url-state.d.mts +1 -1
  512. package/dist/{useChain-DPRVMwX8.d.mts → useChain-D5LvupTW.d.mts} +6 -6
  513. package/dist/useChainAtCursor.d.mts +6 -6
  514. package/dist/useCodeChainFunctionPanel.d.mts +1 -1
  515. package/dist/useColumnConfiguration.d.mts +34 -0
  516. package/dist/useComboboxFooterAction.d.mts +1 -1
  517. package/dist/{useFilterStateV2-BQZppUR0.d.mts → useFilterStateV2-MH3zbQFr.d.mts} +3 -3
  518. package/dist/useFilterStateV2.d.mts +1 -1
  519. package/dist/{useFormField-DAwApAKK.d.mts → useFormField-Ba8rh1CH.d.mts} +2 -2
  520. package/dist/{useFormField-BAmkdxtA.mjs → useFormField-CbNYbDdp.mjs} +2 -2
  521. package/dist/{useFormField-BAmkdxtA.mjs.map → useFormField-CbNYbDdp.mjs.map} +1 -1
  522. package/dist/useFormField.d.mts +1 -1
  523. package/dist/{useFormGroup-BZayb9fZ.mjs → useFormGroup-CsKC93Pt.mjs} +1 -1
  524. package/dist/{useFormGroup-BZayb9fZ.mjs.map → useFormGroup-CsKC93Pt.mjs.map} +1 -1
  525. package/dist/{useLocationPathname-BHL0pgiu.d.mts → useLocationPathname-OsvI7mH5.d.mts} +1 -1
  526. package/dist/useLocationPathname.d.mts +1 -1
  527. package/dist/{useTableBoxDragAndDrop-Dq30b6yY.d.mts → useTableBoxDragAndDrop-CKPIY98e.d.mts} +1 -1
  528. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  529. package/dist/useTableColumns-rLskKJhd.d.mts +72 -0
  530. package/dist/useTableColumns.d.mts +2 -72
  531. package/dist/useTruncation.d.mts +1 -1
  532. package/dist/{utilities-B2ry7_20.d.mts → utilities-BrEUGFGq.d.mts} +1 -1
  533. package/dist/utilities.d.mts +1 -1
  534. package/dist/utils/testing.d.mts +1 -1
  535. package/dist/utils.d.mts +1 -1
  536. package/dist/utils4.d.mts +5 -5
  537. package/dist/{validation-BODkbEvr.d.mts → validation-Csi2SJxm.d.mts} +3 -3
  538. package/dist/validation.d.mts +1 -1
  539. package/dist/validation2.d.mts +4 -4
  540. package/dist/{value-control-resolver-BcZiReQ7.d.mts → value-control-resolver-BoBFvQ_0.d.mts} +2 -2
  541. package/dist/value-control-resolver.d.mts +1 -1
  542. package/dist/variables/effect.d.mts +1 -1
  543. package/dist/variables/semantic.d.mts +1 -1
  544. package/llms.txt +6 -2
  545. package/package.json +5 -3
  546. package/skills/ui-authoring/COMPONENTS.md +1 -0
  547. package/skills/ui-authoring/PATTERNS.md +4 -2
  548. package/skills/ui-authoring/SKILL.md +9 -2
  549. package/skills/ui-authoring/TOKENS.md +457 -119
  550. package/dist/Combobox-CsXnJKvB.mjs.map +0 -1
  551. package/dist/DatePicker-DQHVCGnP.mjs.map +0 -1
  552. package/dist/Modal-Cs5cZpEr.mjs.map +0 -1
  553. package/dist/TableControls-C1MF2JvY.mjs.map +0 -1
  554. package/dist/components/DataTable/index.mjs.map +0 -1
  555. package/dist/i18n-CeRarJIa.mjs.map +0 -1
  556. package/dist/types-CwzwClJx.d.mts +0 -27
  557. /package/dist/{index-7in8TPrM.d.mts → index-AnhM47-e2.d.mts} +0 -0
  558. /package/dist/{index-8SLBz2NH.d.mts → index-B33elXxm.d.mts} +0 -0
  559. /package/dist/{index-B24gUwOx.d.mts → index-B4woaFSm.d.mts} +0 -0
  560. /package/dist/{index-B8M0Grl_2.d.mts → index-B6T7ov8p.d.mts} +0 -0
  561. /package/dist/{index-BFnNtGdX.d.mts → index-BNRXMhlr.d.mts} +0 -0
  562. /package/dist/{index-BjgW3E7y.d.mts → index-BOaE2xDE.d.mts} +0 -0
  563. /package/dist/{index-BwFl_eS0.d.mts → index-BPiqSRRl.d.mts} +0 -0
  564. /package/dist/{index-C3kE54DD.d.mts → index-BYd3Btr1.d.mts} +0 -0
  565. /package/dist/{index-C3usUse7.d.mts → index-BcsXXrHq.d.mts} +0 -0
  566. /package/dist/{index-C6HcjJiY.d.mts → index-Bo9LXG4r.d.mts} +0 -0
  567. /package/dist/{index-CP2eJYlK.d.mts → index-BrGZHEgX.d.mts} +0 -0
  568. /package/dist/{index-CSf15oCd.d.mts → index-Bt4QNofW.d.mts} +0 -0
  569. /package/dist/{index-CX869wwk.d.mts → index-CFuHCx9T.d.mts} +0 -0
  570. /package/dist/{index-CXaDbCtw.d.mts → index-CLTQPxoD.d.mts} +0 -0
  571. /package/dist/{index-D4DUvwPf.d.mts → index-CaqYCRmZ.d.mts} +0 -0
  572. /package/dist/{index-DB7t8whN.d.mts → index-CjDodOH2.d.mts} +0 -0
  573. /package/dist/{index-Deol7ZWO.d.mts → index-CjmAoxrR2.d.mts} +0 -0
  574. /package/dist/{index-DhiymMxa.d.mts → index-Cx0vQ6ld.d.mts} +0 -0
  575. /package/dist/{index-DjOaHFU3.d.mts → index-CzItj62a.d.mts} +0 -0
  576. /package/dist/{index-DkrC-i1D.d.mts → index-CzUpNo0e.d.mts} +0 -0
  577. /package/dist/{index-DvwPIy8X.d.mts → index-DBGd4WeR.d.mts} +0 -0
  578. /package/dist/{index-Oio5ygqN.d.mts → index-DMRtRo7y.d.mts} +0 -0
  579. /package/dist/{index-Wc1llEvP.d.mts → index-DNjQe1D8.d.mts} +0 -0
  580. /package/dist/{index-bHnO4ZKt.d.mts → index-DW3xeuzq.d.mts} +0 -0
  581. /package/dist/{index-dzI_9J-Z.d.mts → index-DZlqSwCF.d.mts} +0 -0
  582. /package/dist/{index-gpCH5158.d.mts → index-De7MV8-j.d.mts} +0 -0
  583. /package/dist/{index-lIMqGGJz.d.mts → index-DjG1RCY5.d.mts} +0 -0
  584. /package/dist/{index-luywJTzJ.d.mts → index-Dlcv6Ku22.d.mts} +0 -0
  585. /package/dist/{index-sViox9YW.d.mts → index-DrK1_jKY.d.mts} +0 -0
  586. /package/dist/{index-xAZnxq0d2.d.mts → index-IJ_PXwxI2.d.mts} +0 -0
@@ -1,1474 +1,2 @@
1
- import { a as styled, r as css } from "../../styledComponentsInterop-NxwFjeA4.mjs";
2
- import { isFocused } from "../../lib/pseudoClass.mjs";
3
- import { semanticColor, semanticOnly } from "../../lib/semanticColor.mjs";
4
- import { focusOutline } from "../../mixins/focus.mjs";
5
- import "../../variables/effect.mjs";
6
- import "../../variables/transitions.mjs";
7
- import { semanticScrollbar } from "../../mixins/scrollbar.mjs";
8
- import { c as usePDSLocale, i as formatDateTime, l as usePDSStrings, r as formatDate, u as DEFAULT_COMMON_STRINGS } from "../../i18n-CeRarJIa.mjs";
9
- import { n as RouterLink } from "../../router-COrZcVkf.mjs";
10
- import { i as Paragraph, o as TabularNumber } from "../../Text-CSwFifQF.mjs";
11
- import { t as TextUnderlineTooltip } from "../../Tooltip-DogEteGl.mjs";
12
- import { Z_INDICES } from "../../lib/zindex.mjs";
13
- import { t as HStack } from "../../Stack-BkC7FCdF.mjs";
14
- import { n as Button, t as IconButton } from "../../IconButton-D4awF770.mjs";
15
- import { n as Sticker } from "../../Sticker-CUqHa9Mo.mjs";
16
- import { n as DropdownMenu_default } from "../../DropdownMenu-CPE8Q56k.mjs";
17
- import { t as Checkbox } from "../../Checkbox-Cttn1t8T.mjs";
18
- import { t as Pagination_default } from "../../Pagination-Du2CPW2l.mjs";
19
- import { a as StickyTH, d as TableTR, f as TableTH, i as StickyTD, o as TableActionTD, p as TableRow, s as TableCell, t as TableLayout, u as TableTD } from "../../Table-PbYGf3PG.mjs";
20
- import { t as HoverCopyableField } from "../../HoverCopyableField-Cgu3W31s.mjs";
21
- import { t as Link } from "../../Link-DGZu4J0x.mjs";
22
- import { t as Pii_default } from "../../Pii-CFVWZ_Yx.mjs";
23
- import { F as TableViewConfigurationDropdown, I as TableControls } from "../../TableControls-C1MF2JvY.mjs";
24
- import "./types.mjs";
25
- import { BorderRadius, Color, Spacing } from "@persona/design-tokens";
26
- import { createElement, useCallback, useEffect, useMemo, useRef, useState } from "react";
27
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
28
- import { DateTime } from "luxon";
29
- import { ChevronDownIcon, ChevronRightIcon, ImageIcon, MoreIcon, XIcon } from "@persona/icons";
30
- import { PlusIcon as PlusIcon$1 } from "@persona/icons/12px";
31
- import { kebabCase, startCase } from "lodash-es";
32
- import { createColumnHelper, flexRender, getCoreRowModel, getFilteredRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, memo as memo$1, useReactTable } from "@tanstack/react-table";
33
- //#region components/DataTable/constants.ts
34
- function getColumnWidths(compact) {
35
- return {
36
- EXPAND_COLUMN_WIDTH: compact ? 32 : 36,
37
- SELECT_COLUMN_WIDTH: compact ? 32 : 40,
38
- ACTION_COLUMN_WIDTH: compact ? 32 : 40,
39
- NEST_SPACING: compact ? 24 : 32
40
- };
41
- }
42
- //#endregion
43
- //#region components/DataTable/FloatingActionBar.tsx
44
- const Bar = styled.div`
45
- display: flex;
46
- justify-content: space-between;
47
- align-items: center;
48
- background-color: ${({ theme }) => semanticColor(theme, "SurfaceElevated", theme.color.background.primary)};
49
- width: 100%;
50
- padding: ${Spacing[2]};
51
- border-radius: ${BorderRadius.Md};
52
- box-shadow: ${"0px 8px 14px 0px rgba(0, 0, 0, 0.06), 0px 3px 24px 0px rgba(0, 0, 0, 0.06)"};
53
- gap: ${Spacing[8]};
54
- min-width: 380px;
55
- `;
56
- const FloatingActionBar = ({ selectedCount, onClearSelection, extraContent, actions }) => {
57
- const strings = usePDSStrings();
58
- return /* @__PURE__ */ jsxs(Bar, { children: [/* @__PURE__ */ jsxs(HStack, {
59
- align: "center",
60
- children: [/* @__PURE__ */ jsx(IconButton, {
61
- size: "sm",
62
- onClick: onClearSelection,
63
- "aria-label": strings.clearSelection,
64
- children: /* @__PURE__ */ jsx(XIcon, {})
65
- }), /* @__PURE__ */ jsx(Paragraph, {
66
- color: "primary",
67
- children: strings.selectedItems(selectedCount)
68
- })]
69
- }), /* @__PURE__ */ jsxs(HStack, {
70
- align: "center",
71
- spacing: Spacing[2],
72
- children: [extraContent, actions.map((action, index) => {
73
- const key = "label" in action ? action.label : `action-${index}`;
74
- if ("popover" in action) {
75
- let trigger = null;
76
- if ("icon" in action && "aria-label" in action) trigger = /* @__PURE__ */ jsx(IconButton, {
77
- size: "sm",
78
- "aria-label": action["aria-label"],
79
- children: action.icon
80
- }, key);
81
- else trigger = /* @__PURE__ */ jsx(Button, {
82
- variant: action.variant || "basic",
83
- size: "sm",
84
- children: "label" in action ? action.label : ""
85
- }, key);
86
- return /* @__PURE__ */ jsx(DropdownMenu_default, {
87
- trigger,
88
- align: "center",
89
- portal: true,
90
- children: (action.popover?.options ?? []).map((option) => /* @__PURE__ */ jsx(DropdownMenu_default.Item, {
91
- id: option.value,
92
- onClick: () => action.popover.onOptionSelect(option.value),
93
- children: option.label
94
- }, option.value))
95
- }, key);
96
- } else if ("icon" in action && "aria-label" in action) return /* @__PURE__ */ jsx(IconButton, {
97
- size: "sm",
98
- "aria-label": action["aria-label"],
99
- onClick: action.onClick,
100
- children: action.icon
101
- }, key);
102
- else return /* @__PURE__ */ jsx(Button, {
103
- onClick: action.onClick,
104
- variant: action.variant || "basic",
105
- size: "sm",
106
- children: "label" in action ? action.label : ""
107
- }, key);
108
- })]
109
- })] });
110
- };
111
- //#endregion
112
- //#region components/DataTable/helpers.tsx
113
- const EmptyCellText = styled(Paragraph)`
114
- ${semanticOnly((tokens) => `color: ${tokens.FgSecondaryStatic};`)}
115
- `;
116
- const renderAsCheckbox = ({ rowId, isChecked, onChange, onValueChange, columnHeader, disabled, indeterminate, strings = DEFAULT_COMMON_STRINGS }) => {
117
- return /* @__PURE__ */ jsx(Checkbox, {
118
- checked: isChecked,
119
- onChange: (e) => {
120
- onChange?.(e);
121
- onValueChange?.(rowId, e.target.checked);
122
- },
123
- containerProps: { onClick: (e) => {
124
- e.stopPropagation();
125
- } },
126
- "aria-label": columnHeader ? strings.selectRowForColumn(columnHeader, rowId) : strings.selectRow(rowId),
127
- indeterminate,
128
- disabled
129
- });
130
- };
131
- const renderAsCheckboxHeader = ({ header, isChecked, isIndeterminate, onChange, onValueChange, strings = DEFAULT_COMMON_STRINGS }) => {
132
- const checkbox = /* @__PURE__ */ jsx(Checkbox, {
133
- checked: isChecked,
134
- indeterminate: isIndeterminate,
135
- onChange: (e) => {
136
- onChange?.(e);
137
- onValueChange?.(e.target.checked);
138
- },
139
- containerProps: { onClick: (e) => {
140
- e.stopPropagation();
141
- } },
142
- "aria-label": header ? strings.selectAllOf(header) : strings.selectAll
143
- });
144
- if (header) return /* @__PURE__ */ jsxs(HStack, {
145
- spacing: Spacing[3],
146
- align: "center",
147
- children: [checkbox, /* @__PURE__ */ jsx("span", { children: header })]
148
- });
149
- return checkbox;
150
- };
151
- const renderAsString = (value) => {
152
- if (value == null) return "";
153
- return typeof value === "string" ? value : typeof value === "object" ? JSON.stringify(value, null, 2) : String(value);
154
- };
155
- const renderAsDate = (value, config, locale) => {
156
- if (value == null || typeof value !== "string") return "";
157
- const date = DateTime.fromISO(value);
158
- return date.isValid ? formatDate(date, {
159
- locale,
160
- format: config?.format,
161
- showTimeZone: config?.showTimeZone
162
- }) : "";
163
- };
164
- const renderAsDatetime = (value, config, locale) => {
165
- if (value == null || typeof value !== "string") return "";
166
- const date = DateTime.fromISO(value);
167
- return date.isValid ? formatDateTime(date, {
168
- locale,
169
- format: config?.format,
170
- showTimeZone: config?.showTimeZone
171
- }) : "";
172
- };
173
- const renderAsURL = (value) => {
174
- if (value == null || typeof value !== "string" || value.length === 0) return "";
175
- return /* @__PURE__ */ jsx(Link, {
176
- url: value,
177
- target: "_blank",
178
- children: value
179
- });
180
- };
181
- const renderAsNumber = (value) => {
182
- if (value == null) return "";
183
- return /* @__PURE__ */ jsx(TabularNumber, { children: value });
184
- };
185
- const createSticker = (item, config, key) => {
186
- const displayLabel = config?.labels?.[item] ?? item;
187
- return /* @__PURE__ */ jsx(Sticker, {
188
- variant: config?.colors?.[item] ?? config?.defaultColor,
189
- children: displayLabel
190
- }, key);
191
- };
192
- const renderAsSticker = (value, config) => {
193
- if (value == null) return "";
194
- if (Array.isArray(value)) {
195
- if (value.length === 0) return "";
196
- return /* @__PURE__ */ jsx("span", {
197
- style: {
198
- display: "flex",
199
- flexWrap: "wrap",
200
- gap: "4px",
201
- alignItems: "center"
202
- },
203
- children: value.map((item, index) => typeof item === "string" ? createSticker(item, config, `${item}-${index}`) : null)
204
- });
205
- }
206
- if (typeof value !== "string") return "";
207
- return createSticker(value, config);
208
- };
209
- /** Inline monospace text — private DataTable primitive, avoids the dashboard Typography dep. */
210
- const MonoText = styled.span`
211
- font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
212
- font-size: 0.875em;
213
- `;
214
- const WrappingText = styled.span`
215
- display: inline-block;
216
- max-width: 100%;
217
- word-break: break-word;
218
- overflow-wrap: break-word;
219
- `;
220
- const EmptyImageContainer = styled.div`
221
- display: flex;
222
- align-items: center;
223
- justify-content: center;
224
- border-radius: ${BorderRadius.Md};
225
- background-color: ${({ theme }) => semanticColor(theme, "SurfaceSecondary", theme.color.background.secondary)};
226
- width: ${({ $width }) => $width ?? "200px"};
227
- height: ${({ $height }) => $height ?? "144px"};
228
- svg {
229
- color: ${({ theme }) => semanticColor(theme, "FgDisabled", theme.color.border.disabled)};
230
- }
231
- `;
232
- const LightweightImg = styled.img`
233
- object-fit: ${({ $fit }) => $fit ?? "cover"};
234
- display: block;
235
- `;
236
- const renderAsCopyableString = (value, config) => {
237
- const valueAsString = renderAsString(value);
238
- const content = config?.mono ? /* @__PURE__ */ jsx(MonoText, { children: valueAsString }) : valueAsString;
239
- if (!valueAsString) return /* @__PURE__ */ jsx(EmptyCellText, { children: config?.emptyText ?? "" });
240
- return /* @__PURE__ */ jsx(WrappingText, { children: config?.copyable ? /* @__PURE__ */ jsx(HoverCopyableField, {
241
- copyValue: valueAsString,
242
- children: content
243
- }) : content });
244
- };
245
- const renderAsPii = (row, config) => {
246
- if (!config || !row) return "";
247
- const { isRedacted, piiValue, emptyText } = config;
248
- const piiValueString = piiValue(row);
249
- if (piiValueString == null || piiValueString.length === 0) return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(EmptyCellText, { children: emptyText }), config.subComponent?.(row)] });
250
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Pii_default, {
251
- isRedacted: isRedacted(row),
252
- children: piiValueString
253
- }), config.subComponent?.(row)] });
254
- };
255
- const renderAsLightweightImage = (value, config, strings = DEFAULT_COMMON_STRINGS) => {
256
- if (value == null || value === "" || Array.isArray(value) && value.length === 0) return config?.fallback ? /* @__PURE__ */ jsx(Fragment$1, { children: config.fallback }) : /* @__PURE__ */ jsx(EmptyImageContainer, {
257
- $width: config?.width,
258
- $height: config?.height,
259
- "aria-label": config?.alt ?? "image",
260
- children: /* @__PURE__ */ jsx(ImageIcon, {
261
- size: 24,
262
- "aria-label": strings.noImage
263
- })
264
- });
265
- return /* @__PURE__ */ jsx(LightweightImg, {
266
- src: typeof value === "string" ? value : "",
267
- alt: config?.alt ?? "image",
268
- width: config?.width ?? "200px",
269
- height: config?.height ?? "144px",
270
- $fit: config?.fit
271
- });
272
- };
273
- /**
274
- * Default PDS cell renderer. Handles all generic format types built into the design system.
275
- * Hosts should supply their own `renderFormat` prop to DataTable for format types that require
276
- * application-specific components (e.g. tags, files, PII masking, status indicators).
277
- */
278
- const renderAsPDSFormat = (value, format, row, options = {}) => {
279
- switch (format?.type) {
280
- case "date": return renderAsDate(value, format.config, options.locale);
281
- case "datetime": return renderAsDatetime(value, format.config, options.locale);
282
- case "sticker": return renderAsSticker(value, format.config);
283
- case "url": return renderAsURL(value);
284
- case "number": return renderAsNumber(value);
285
- case "image": return renderAsLightweightImage(value, format.config, options.strings);
286
- case "checkbox": return "";
287
- case "id": return renderAsCopyableString(value, {
288
- copyable: true,
289
- mono: true,
290
- ...format.config
291
- });
292
- case "pii": return renderAsPii(row, format.config);
293
- default: return renderAsCopyableString(value, format?.config);
294
- }
295
- };
296
- //#endregion
297
- //#region components/DataTable/Inserter.tsx
298
- const InserterTableCell = styled(TableCell)`
299
- padding: 0 !important;
300
- ${({ $nestSpacing }) => $nestSpacing ? `padding-left: ${$nestSpacing}px !important` : ""};
301
- height: 0;
302
- position: relative;
303
- border: 0;
304
- z-index: ${Z_INDICES.withShadow};
305
- `;
306
- const AddRowLine = styled.div`
307
- position: absolute;
308
- top: -1px;
309
- background-color: ${({ theme }) => semanticColor(theme, "BorderAccent", theme.color.primary.brand)};
310
- width: ${({ $nestSpacing }) => $nestSpacing ? `calc(100% - ${$nestSpacing}px)` : "100%"};
311
- transition-duration: ${"200ms"};
312
- transition-property: opacity;
313
- transition-timing-function: ease-in;
314
- `;
315
- const StyledPlusButton = styled.button`
316
- position: absolute;
317
- top: -7px;
318
- left: calc(50% - 8px);
319
- border-radius: 50%;
320
- height: 14px;
321
- width: 14px;
322
- background-color: ${({ theme }) => semanticColor(theme, "ActionPrimary", theme.color.primary.brand)};
323
- color: ${({ theme }) => semanticColor(theme, "FgInverse", Color.BackgroundButtonInverse)};
324
- cursor: pointer;
325
- z-index: ${Z_INDICES.withShadow};
326
- // TODO: Add a focus style
327
-
328
- opacity: 0;
329
-
330
- &:hover {
331
- opacity: 1;
332
- }
333
-
334
- &:hover ~ ${AddRowLine} {
335
- opacity: 1;
336
- height: 2px;
337
- }
338
- `;
339
- const StyledTableRow = styled(TableRow)`
340
- &${isFocused} {
341
- box-shadow: none;
342
- }
343
- cursor: pointer;
344
- &:hover > ${AddRowLine}, &:focus > ${AddRowLine} {
345
- opacity: 1;
346
- height: 2px;
347
- }
348
-
349
- &:hover > ${StyledPlusButton}, &:focus > ${StyledPlusButton} {
350
- opacity: 1;
351
- }
352
- `;
353
- const HoverArea = styled.div`
354
- position: absolute;
355
- height: 12px;
356
- top: -6px;
357
- width: ${({ $nestSpacing }) => $nestSpacing ? `calc(100% - ${$nestSpacing}px)` : "100%"};
358
- z-index: ${Z_INDICES.withShadow};
359
- &:hover ~ ${AddRowLine} {
360
- opacity: 1;
361
- height: 2px;
362
- }
363
-
364
- &:hover ~ ${StyledPlusButton} {
365
- opacity: 1;
366
- }
367
- `;
368
- const StyledPlusIcon = styled(PlusIcon$1)`
369
- position: absolute;
370
- top: 1px;
371
- left: 1px;
372
- `;
373
- const Inserter = ({ priorRowLabel, colSpan, nestSpacing = 0, label, onAddRow }) => {
374
- return /* @__PURE__ */ jsx(StyledTableRow, {
375
- onKeyDown: (evt) => {
376
- if (evt.key === " " || evt.key === "Enter") {
377
- evt.preventDefault();
378
- evt.stopPropagation();
379
- onAddRow();
380
- }
381
- },
382
- tabIndex: 0,
383
- children: /* @__PURE__ */ jsxs(InserterTableCell, {
384
- colSpan,
385
- $nestSpacing: nestSpacing,
386
- children: [
387
- /* @__PURE__ */ jsx(HoverArea, {
388
- $nestSpacing: nestSpacing,
389
- role: "presentation",
390
- "aria-label": label || `Insert a row after ${priorRowLabel}`,
391
- onClick: onAddRow
392
- }),
393
- /* @__PURE__ */ jsx(StyledPlusButton, {
394
- id: `${kebabCase(priorRowLabel)}-inserter`,
395
- "aria-label": label || `Insert a row after ${priorRowLabel}`,
396
- onClick: onAddRow,
397
- type: "button",
398
- children: /* @__PURE__ */ jsx(StyledPlusIcon, { color: "currentColor" })
399
- }),
400
- /* @__PURE__ */ jsx(AddRowLine, {
401
- $nestSpacing: nestSpacing,
402
- onClick: onAddRow
403
- })
404
- ]
405
- })
406
- });
407
- };
408
- //#endregion
409
- //#region components/DataTable/useTableColumns.tsx
410
- const ExpandButton = styled.button`
411
- background: none;
412
- border: none;
413
- cursor: pointer;
414
- display: flex;
415
- align-items: center;
416
- justify-content: center;
417
- padding: 0;
418
- margin: 0;
419
- color: ${({ theme }) => semanticColor(theme, "FgPrimary", theme.color.text.primary)};
420
- `;
421
- const ExpandColumnPlaceholder = styled.span`
422
- display: flex;
423
- align-items: center;
424
- justify-content: center;
425
- width: 100%;
426
- `;
427
- function useTableColumns({ columns, data, compact, sort, clientSearch, clientFiltering, expandColumnVisibility = "auto", showControls, enableRowSelection = false, enableSubRowSelection = true, rowActions, getRowId, expandedRows, toggleRowExpansion, canRowExpand, checkboxColumnStates, handleCheckboxCellChange, handleSelectAllCheckboxCell, getSelfAndNestedRowIds, handleRowSelectionWithShift, renderFormat }) {
428
- const { EXPAND_COLUMN_WIDTH, SELECT_COLUMN_WIDTH, ACTION_COLUMN_WIDTH } = getColumnWidths(compact);
429
- const strings = usePDSStrings();
430
- const stringsRef = useRef(strings);
431
- stringsRef.current = strings;
432
- const rowActionsRef = useRef(rowActions);
433
- rowActionsRef.current = rowActions;
434
- const renderActionCell = useCallback((props) => {
435
- const currentRowActions = rowActionsRef.current;
436
- const actions = typeof currentRowActions === "function" ? currentRowActions(props.row.original) : currentRowActions;
437
- if (!actions || actions.length === 0) return null;
438
- return /* @__PURE__ */ jsx(DropdownMenu_default, {
439
- trigger: /* @__PURE__ */ jsx(Button, {
440
- id: `data-table__row-actions-button--${props.row.id}`,
441
- variant: "text",
442
- width: "icon",
443
- size: "sm",
444
- onClick: (e) => {
445
- e.preventDefault();
446
- e.stopPropagation();
447
- },
448
- "aria-label": stringsRef.current.viewRowActions(props.row.index + 1),
449
- children: /* @__PURE__ */ jsx(MoreIcon, {})
450
- }),
451
- portal: true,
452
- children: actions.map(({ label, onClick, ...menuItemProps }, i) => /* @__PURE__ */ jsx(DropdownMenu_default.Item, {
453
- id: `data-table__row-actions--${props.row.id}-${i}`,
454
- onClick: (e) => {
455
- e.preventDefault();
456
- e.stopPropagation();
457
- onClick(props.row.id);
458
- },
459
- ...menuItemProps,
460
- children: label
461
- }, label.toLowerCase().replace(/ /g, "-")))
462
- });
463
- }, []);
464
- const hasRowActions = rowActions != null;
465
- return useMemo(() => {
466
- const columnHelper = createColumnHelper();
467
- const tableColumns = columns.map((column) => {
468
- if (typeof column === "object") {
469
- const columnHelperOptions = {
470
- header: column.header,
471
- id: column.id || column.accessor,
472
- sortUndefined: -1,
473
- meta: {
474
- align: column.align,
475
- format: column.format,
476
- minWidth: column.minWidth,
477
- width: column.width,
478
- headerTooltip: column.headerTooltip
479
- },
480
- minSize: column.minWidth
481
- };
482
- if (column.renderCell != null) {
483
- const renderCell = column.renderCell;
484
- columnHelperOptions.cell = (props) => renderCell({
485
- cellValue: props.getValue(),
486
- row: props.row.original
487
- });
488
- columnHelperOptions.enableSorting = sort != null && (column.enableSorting ?? false);
489
- } else if (column.format?.type === "checkbox") {
490
- const columnId = column.id || column.accessor;
491
- columnHelperOptions.header = (headerProps) => {
492
- const columnState = checkboxColumnStates[columnId] || /* @__PURE__ */ new Set();
493
- const allRowIds = data.flatMap((row, index) => getSelfAndNestedRowIds(row, [index]));
494
- const isChecked = allRowIds.length > 0 && allRowIds.every((id) => columnState.has(id));
495
- const isIndeterminate = !isChecked && allRowIds.some((id) => columnState.has(id));
496
- if (typeof column.header === "function") return column.header(headerProps);
497
- return renderAsCheckboxHeader({
498
- header: column.header,
499
- isChecked,
500
- isIndeterminate,
501
- onValueChange: (checked) => handleSelectAllCheckboxCell(columnId, checked),
502
- strings
503
- });
504
- };
505
- columnHelperOptions.cell = (props) => {
506
- const rowId = getRowId ? getRowId(props.row.original) : props.row.id;
507
- return renderAsCheckbox({
508
- rowId,
509
- isChecked: (checkboxColumnStates[columnId] || /* @__PURE__ */ new Set()).has(rowId),
510
- onValueChange: (rowId, checked) => handleCheckboxCellChange(columnId, rowId, checked),
511
- columnHeader: typeof column.header === "string" ? column.header : void 0,
512
- strings
513
- });
514
- };
515
- columnHelperOptions.enableSorting = false;
516
- } else {
517
- columnHelperOptions.cell = (props) => renderFormat(props?.getValue(), column.format, props.row.original);
518
- columnHelperOptions.enableSorting = sort != null && column.enableSorting;
519
- }
520
- columnHelperOptions.enableGlobalFilter = clientSearch && (column.searchable ?? true);
521
- columnHelperOptions.enablePinning = column.pinned ?? false;
522
- if (clientFiltering && column.filter) {
523
- const filterConfig = column.filter;
524
- if (filterConfig.enabled !== false) {
525
- columnHelperOptions.enableColumnFilter = true;
526
- if (filterConfig.filterFn) columnHelperOptions.filterFn = filterConfig.filterFn;
527
- }
528
- }
529
- return columnHelper.accessor(column.accessor, columnHelperOptions);
530
- }
531
- return columnHelper.accessor(column, {
532
- header: startCase(column),
533
- enableGlobalFilter: Boolean(clientSearch),
534
- enableSorting: sort != null
535
- });
536
- });
537
- if (showControls && enableRowSelection) tableColumns.unshift(columnHelper.display({
538
- id: "select-col",
539
- enablePinning: true,
540
- enableResizing: false,
541
- size: SELECT_COLUMN_WIDTH,
542
- meta: { width: SELECT_COLUMN_WIDTH },
543
- header: ({ table }) => renderAsCheckboxHeader({
544
- isChecked: table.getIsAllRowsSelected(),
545
- isIndeterminate: table.getIsSomeRowsSelected() || table.getIsAllRowsSelected(),
546
- onChange: table.getToggleAllRowsSelectedHandler(),
547
- strings
548
- }),
549
- cell: ({ row, table }) => renderAsCheckbox({
550
- rowId: row.id,
551
- isChecked: row.getIsSelected(),
552
- onChange: (e) => handleRowSelectionWithShift(row, table, e.target.checked, e.nativeEvent instanceof MouseEvent && e.nativeEvent.shiftKey),
553
- indeterminate: enableSubRowSelection && row.getIsSomeSelected(),
554
- disabled: !row.getCanSelect(),
555
- strings
556
- })
557
- }));
558
- if (expandColumnVisibility === "always" || data.some(canRowExpand)) tableColumns.unshift(columnHelper.display({
559
- id: "expand-col",
560
- enablePinning: true,
561
- enableResizing: false,
562
- size: EXPAND_COLUMN_WIDTH,
563
- meta: { width: EXPAND_COLUMN_WIDTH },
564
- header: "",
565
- cell: ({ row }) => {
566
- const rowData = row.original;
567
- if (!canRowExpand(rowData)) return /* @__PURE__ */ jsx(ExpandColumnPlaceholder, { "aria-hidden": true });
568
- const rowId = getRowId ? getRowId(rowData) : row.id;
569
- const isExpanded = expandedRows.has(rowId);
570
- return /* @__PURE__ */ jsx(ExpandColumnPlaceholder, { children: /* @__PURE__ */ jsx(ExpandButton, {
571
- type: "button",
572
- id: `datatable-expand-${rowId}`,
573
- onClick: (e) => {
574
- e.stopPropagation();
575
- toggleRowExpansion(rowId);
576
- },
577
- onKeyDown: (e) => {
578
- if (e.key === "Enter" || e.key === " ") {
579
- e.preventDefault();
580
- e.stopPropagation();
581
- toggleRowExpansion(rowId);
582
- }
583
- },
584
- "aria-label": isExpanded ? `Hide details for row ${rowId}` : `View details for row ${rowId}`,
585
- "aria-expanded": isExpanded,
586
- children: isExpanded ? /* @__PURE__ */ jsx(ChevronDownIcon, {}) : /* @__PURE__ */ jsx(ChevronRightIcon, {})
587
- }) });
588
- }
589
- }));
590
- if (hasRowActions) {
591
- const emptyHeader = () => /* @__PURE__ */ jsx(Fragment$1, {});
592
- tableColumns.push(columnHelper.display({
593
- id: "action-col",
594
- enableResizing: false,
595
- size: ACTION_COLUMN_WIDTH,
596
- meta: { width: ACTION_COLUMN_WIDTH },
597
- header: emptyHeader,
598
- cell: renderActionCell
599
- }));
600
- }
601
- return [tableColumns, columns.map((column) => {
602
- const key = typeof column === "object" ? column.id || column.accessor : column;
603
- return {
604
- key,
605
- label: typeof column === "object" ? typeof column.header === "string" ? column.header : key : startCase(column)
606
- };
607
- })];
608
- }, [
609
- columns,
610
- enableRowSelection,
611
- hasRowActions,
612
- renderActionCell,
613
- showControls,
614
- sort,
615
- clientSearch,
616
- clientFiltering,
617
- data,
618
- canRowExpand,
619
- expandColumnVisibility,
620
- expandedRows,
621
- toggleRowExpansion,
622
- getRowId,
623
- checkboxColumnStates,
624
- handleCheckboxCellChange,
625
- handleSelectAllCheckboxCell,
626
- handleRowSelectionWithShift,
627
- renderFormat,
628
- strings
629
- ]);
630
- }
631
- //#endregion
632
- //#region components/DataTable/DataTable.tsx
633
- const forwardedRowLinkClicks = /* @__PURE__ */ new WeakSet();
634
- const TableEmptyState = styled.td`
635
- vertical-align: middle;
636
- text-align: center;
637
- width: 100%;
638
- height: 176px;
639
- `;
640
- const StyledTableLayout = styled(TableLayout)`
641
- ${({ $onAddRow }) => $onAddRow && css`
642
- padding-bottom: ${Spacing[3]};
643
- `}
644
- `;
645
- const TableContainer = styled.div`
646
- position: relative;
647
- ${semanticScrollbar}
648
-
649
- ${({ $stickyHeader }) => $stickyHeader && css`
650
- flex-grow: 1;
651
- overflow: auto;
652
- display: flex;
653
- flex-direction: column;
654
- `}
655
- `;
656
- const RowLink = styled(RouterLink)`
657
- /* Match surrounding cell text. The row is still a link; only URL cells use accent. */
658
- color: inherit;
659
- text-decoration: none;
660
- ${focusOutline}
661
-
662
- &:link,
663
- &:visited,
664
- &:hover,
665
- &:active {
666
- color: inherit;
667
- }
668
- `;
669
- const DataTableControls = styled(TableControls)``;
670
- const DataTableContainer = styled.div`
671
- ${({ $stickyHeader }) => $stickyHeader && css`
672
- display: flex;
673
- flex-direction: column;
674
- height: 100%;
675
- `}
676
- `;
677
- const StyledTableActionTD = styled(TableActionTD)`
678
- ${({ $nestSpacing }) => css`
679
- ${$nestSpacing && css`
680
- position: relative;
681
- left: ${$nestSpacing}px;
682
- `}
683
- `}
684
- `;
685
- const StyledTableTD = styled(TableTD)`
686
- // Move the cell to the right by the amount of the nest spacing, and
687
- // add same amount of padding to the right to not overlap with the next cell
688
- ${({ $nestSpacing, $isFeatureCol }) => css`
689
- ${$nestSpacing && css`
690
- position: relative;
691
- left: ${$nestSpacing}px;
692
- `}
693
- ${!$isFeatureCol && css`
694
- padding-right: ${$nestSpacing}px;
695
- `}
696
- `}
697
- `;
698
- const DetailsTD = styled(TableTD)`
699
- padding: 0;
700
- border-top: none;
701
- border-left: none;
702
- border-right: none;
703
- `;
704
- const StickyDetailsTD = styled(StickyTD)`
705
- padding: 0;
706
- border-top: none;
707
- border-left: none;
708
- border-right: none;
709
- `;
710
- const StickyTDWithGapCoverage = styled(StickyTD)`
711
- ${({ $gapCoverage }) => $gapCoverage && css`
712
- &::before {
713
- content: '';
714
- position: absolute;
715
- top: 0;
716
- left: ${-$gapCoverage}px;
717
- width: ${$gapCoverage}px;
718
- height: calc(100% + 1px); // +1px to cover the bottom border
719
- background: inherit;
720
- }
721
- `}
722
- `;
723
- const FloatingActionBarContainer = styled.div`
724
- position: absolute;
725
- top: 0;
726
- left: 50%;
727
- transform: translateX(-50%);
728
- `;
729
- const isServerPagination = (pagination) => {
730
- return typeof pagination === "object" && !("clientPagination" in pagination);
731
- };
732
- const isClientPagination = (pagination) => {
733
- return typeof pagination === "object" && "clientPagination" in pagination;
734
- };
735
- const isServerSorting = (sort) => {
736
- return typeof sort === "object";
737
- };
738
- const isRowWithDetails = (row) => {
739
- return row != null && typeof row === "object" && "_details" in row && row._details != null;
740
- };
741
- const isRowWithSubrows = (row) => {
742
- return row != null && typeof row === "object" && "subrows" in row && row.subrows != null;
743
- };
744
- const isRowWithSubrowsToAlwaysShowIds = (row) => {
745
- return row != null && typeof row === "object" && "subrowsToAlwaysShowIds" in row && row.subrowsToAlwaysShowIds != null;
746
- };
747
- const isRowWithTourTarget = (row) => {
748
- return row != null && typeof row === "object" && "dataTourTarget" in row && typeof row.dataTourTarget === "string";
749
- };
750
- const DISPLAYED_ROW_IDS_SEPARATOR = "";
751
- /**
752
- * The DataTable component is the core of Persona's table experiences.
753
- *
754
- * This component implements `@tanstack/react-table` and exposes a simplified, easy to use API.
755
- *
756
- * Planned functionality
757
- * - Column visibility, reordering
758
- * - Row selection
759
- * - Cell types (e.g. links, buttons, Stickers)
760
- *
761
- * Client-side support
762
- * - ✅ Sorting
763
- * - ✅ Search (enable with clientSearch prop)
764
- * - ✅ Pagination
765
- * - ✅ Filtering (requires explicit filter configuration in TableControls)
766
- *
767
- * Server-side support
768
- * - ✅ Sorting
769
- * - ✅ Filtering
770
- * - ✅ Pagination
771
- *
772
- * @example
773
- * // Basic usage with client-side search
774
- * <DataTable
775
- * data={data}
776
- * columns={columns}
777
- * showControls={true}
778
- * clientSearch={{ placeholder: "Search accounts..." }}
779
- * />
780
- *
781
- * @example
782
- * // Column-level search control
783
- * const columns = [
784
- * { accessor: 'id', header: 'ID', searchable: false },
785
- * { accessor: 'name', header: 'Name' }, // searchable by default
786
- * { accessor: 'email', header: 'Email' },
787
- * ];
788
- */
789
- /** Maps a column filter-type string to the corresponding TanStack filterFn name. */
790
- const getFilterFnName = (filterType) => {
791
- switch (filterType) {
792
- case "select": return "equals";
793
- case "multiselect":
794
- case "multiselect-alt":
795
- case "multiselect-legacy": return "arrIncludesSome";
796
- case "input": return "includesString";
797
- default: return "equals";
798
- }
799
- };
800
- const DataTable = ({ data, columns, detailComponent, expandColumnVisibility = "auto", showControls, controls, emptyState, isLoading, pagination, sort, sortDescFirst, enableSortingRemoval, showColumnProperties = false, onUpdateColumnProperties, enableRowSelection = false, enableSubRowSelection = true, getRowId, getRowLabel, getRowSelectable, getLinkToRow, rowLinkPrefix, rowLinkColumnId, rowLinkComponent, compact, disableRowHover, title, clientSearch = false, searchTerm: controlledSearchTerm, onSearchTermChange, manualFiltering, expandedRowIds: controlledExpandedRowIds, onExpandedRowsChange, clientFiltering = false, columnFilters: controlledColumnFilters, hasExternalActiveFilters = false, onColumnFiltersChange, renderFormat, rowActions, bulkActions, getAvailableBulkActions, onRowSelectionChange, onAddRow, stickyHeader = false, canAddAfterRow, onRowClick, activeRowId, onDisplayedRowIdsChange, pinnedColumnLeftOffset = 0, scrollsHorizontally = true, floatingBarContent }) => {
801
- const DEFAULT_SEARCH_PLACEHOLDER = "Search...";
802
- const { NEST_SPACING, EXPAND_COLUMN_WIDTH } = getColumnWidths(compact);
803
- const [columnVisibility, setColumnVisibility] = useState(() => {
804
- const visibility = {};
805
- columns.forEach((column) => {
806
- const columnId = typeof column === "object" ? column.id ?? column.accessor : column;
807
- visibility[columnId] = typeof column === "object" ? column.visibility ?? true : true;
808
- });
809
- return visibility;
810
- });
811
- const [columnOrder, setColumnOrder] = useState([]);
812
- const [rowSelection, setRowSelection] = useState({});
813
- const lastSelectedRowIdRef = useRef(null);
814
- const isSearchControlled = controlledSearchTerm != null;
815
- const [internalSearchTerm, setInternalSearchTerm] = useState(typeof clientSearch === "object" ? clientSearch.initialValue || "" : "");
816
- const globalFilter = isSearchControlled ? controlledSearchTerm : internalSearchTerm;
817
- const setGlobalFilter = useCallback((value) => {
818
- if (isSearchControlled) onSearchTermChange?.(value);
819
- else setInternalSearchTerm(value);
820
- }, [isSearchControlled, onSearchTermChange]);
821
- const isColumnFiltersControlled = controlledColumnFilters != null;
822
- const [internalColumnFilters, setInternalColumnFilters] = useState([]);
823
- const columnFilters = isColumnFiltersControlled ? controlledColumnFilters : internalColumnFilters;
824
- const setColumnFilters = useCallback((updater) => {
825
- const next = typeof updater === "function" ? updater(columnFilters) : updater;
826
- if (!isColumnFiltersControlled) setInternalColumnFilters(next);
827
- onColumnFiltersChange?.(next);
828
- }, [
829
- columnFilters,
830
- isColumnFiltersControlled,
831
- onColumnFiltersChange
832
- ]);
833
- const isExpansionControlled = controlledExpandedRowIds != null;
834
- const [internalExpandedRows, setInternalExpandedRows] = useState(/* @__PURE__ */ new Set());
835
- const expandedRows = isExpansionControlled ? controlledExpandedRowIds : internalExpandedRows;
836
- const setExpandedRows = useCallback((updater) => {
837
- if (isExpansionControlled) {
838
- const newValue = updater(expandedRows);
839
- onExpandedRowsChange?.(newValue);
840
- } else setInternalExpandedRows(updater);
841
- }, [
842
- expandedRows,
843
- isExpansionControlled,
844
- onExpandedRowsChange
845
- ]);
846
- const [checkboxColumnStates, setCheckboxColumnStates] = useState({});
847
- const orderMap = columnOrder.reduce((acc, columnId, index) => {
848
- acc[columnId] = index;
849
- return acc;
850
- }, {});
851
- /**
852
- * If basic client pagination is enabled, create a configuration object for client pagination.
853
- */
854
- if (pagination === true) pagination = {
855
- clientPagination: true,
856
- pageSize: 10
857
- };
858
- const canRowExpand = useCallback((rowData) => {
859
- if (isRowWithSubrows(rowData)) return rowData.subrows.length > 0;
860
- if (isRowWithDetails(rowData)) return Boolean(rowData._details);
861
- return detailComponent != null;
862
- }, [detailComponent]);
863
- const initialColumnPinning = useMemo(() => {
864
- const pinnedColumns = [];
865
- if (columns.some((column) => typeof column === "object" && column.pinned)) {
866
- if (expandColumnVisibility === "always" || data.some(canRowExpand)) pinnedColumns.push("expand-col");
867
- if (showControls && enableRowSelection) pinnedColumns.push("select-col");
868
- columns.forEach((column) => {
869
- if (typeof column === "object" && column.pinned) pinnedColumns.push(column.accessor);
870
- });
871
- }
872
- return { left: pinnedColumns };
873
- }, [
874
- columns,
875
- data,
876
- canRowExpand,
877
- expandColumnVisibility,
878
- showControls,
879
- enableRowSelection
880
- ]);
881
- const toggleRowExpansion = useCallback((rowId) => {
882
- setExpandedRows((prev) => {
883
- const newSet = new Set(prev);
884
- if (newSet.has(rowId)) newSet.delete(rowId);
885
- else newSet.add(rowId);
886
- return newSet;
887
- });
888
- }, [setExpandedRows]);
889
- const dispatchCheckboxCellOnUpdate = useCallback((columnId, columnState) => {
890
- const column = columns.find((col) => typeof col === "object" && col.accessor === columnId && col.format?.type === "checkbox");
891
- if (column && typeof column === "object" && column.format?.type === "checkbox") column.format.onUpdate(Array.from(columnState));
892
- }, [columns]);
893
- const handleCheckboxCellChange = useCallback((columnId, rowId, checked) => {
894
- setCheckboxColumnStates((prev) => {
895
- const newStates = { ...prev };
896
- if (!newStates[columnId]) newStates[columnId] = /* @__PURE__ */ new Set();
897
- const columnState = new Set(newStates[columnId]);
898
- if (checked) columnState.add(rowId);
899
- else columnState.delete(rowId);
900
- newStates[columnId] = columnState;
901
- dispatchCheckboxCellOnUpdate(columnId, columnState);
902
- return newStates;
903
- });
904
- }, [dispatchCheckboxCellOnUpdate]);
905
- const getSelfAndNestedRowIds = useCallback((row, indexPath) => {
906
- const rowId = getRowId ? getRowId(row) : indexPath.join(".");
907
- if (isRowWithSubrows(row)) return [rowId, ...(row.subrows ?? []).map((subrow, subrowIndex) => getSelfAndNestedRowIds(subrow, [...indexPath, subrowIndex])).flat()];
908
- return [rowId];
909
- }, [getRowId]);
910
- const handleSelectAllCheckboxCell = useCallback((columnId, checked) => {
911
- setCheckboxColumnStates((prev) => {
912
- const newStates = { ...prev };
913
- let columnState;
914
- if (checked) {
915
- const allRowIds = data.flatMap((row, index) => getSelfAndNestedRowIds(row, [index]));
916
- columnState = new Set(allRowIds);
917
- } else columnState = /* @__PURE__ */ new Set();
918
- newStates[columnId] = columnState;
919
- dispatchCheckboxCellOnUpdate(columnId, columnState);
920
- return newStates;
921
- });
922
- }, [
923
- data,
924
- getRowId,
925
- dispatchCheckboxCellOnUpdate
926
- ]);
927
- const tableOptions = useMemo(() => {
928
- const options = {};
929
- if (isClientPagination(pagination)) {
930
- options.getPaginationRowModel = getPaginationRowModel();
931
- options.initialState = { pagination: { pageSize: pagination.pageSize } };
932
- } else if (isServerPagination(pagination)) {
933
- const currentPage = pagination.paginationParams?.["current-page"] || 1;
934
- const pageSize = pagination.pageSize || 10;
935
- options.manualPagination = true;
936
- options.onPaginationChange = (updaterOrValue) => {
937
- const oldPageSize = pageSize;
938
- const oldPageIndex = currentPage - 1;
939
- if (typeof updaterOrValue === "function") {
940
- const newPaginationState = updaterOrValue({
941
- pageSize,
942
- pageIndex: currentPage - 1
943
- });
944
- if (newPaginationState.pageSize !== oldPageSize) pagination.handlePageSizeClick(newPaginationState.pageSize);
945
- if (newPaginationState.pageIndex !== oldPageIndex) pagination.handlePageLinkClick(newPaginationState.pageIndex + 1);
946
- }
947
- };
948
- options.state = { pagination: {
949
- pageSize,
950
- pageIndex: currentPage - 1
951
- } };
952
- options.rowCount = pagination?.paginationParams?.["total-count"];
953
- options.pageCount = pagination?.paginationParams?.["total-pages"];
954
- }
955
- if (sort === true) {
956
- options.getSortedRowModel = getSortedRowModel();
957
- options.enableSorting = true;
958
- } else if (isServerSorting(sort)) {
959
- options.manualSorting = true;
960
- options.enableSorting = true;
961
- options.onSortingChange = (updaterOrValue) => {
962
- if (typeof updaterOrValue === "function") {
963
- const newSortingState = updaterOrValue(sort.state);
964
- sort.handleSortClick(newSortingState);
965
- }
966
- };
967
- options.state = {
968
- ...options.state ? options.state : {},
969
- sorting: sort.state
970
- };
971
- } else options.enableSorting = false;
972
- if (showControls && enableRowSelection) {
973
- options.enableRowSelection = getRowSelectable ? (row) => getRowSelectable(row.original) : true;
974
- options.onRowSelectionChange = setRowSelection;
975
- }
976
- if (!enableSubRowSelection) options.enableSubRowSelection = false;
977
- if (clientSearch) {
978
- if (manualFiltering) options.manualFiltering = true;
979
- else {
980
- options.getFilteredRowModel = getFilteredRowModel();
981
- options.globalFilterFn = "includesString";
982
- }
983
- options.onGlobalFilterChange = setGlobalFilter;
984
- }
985
- if (clientFiltering) {
986
- options.getFilteredRowModel = getFilteredRowModel();
987
- options.onColumnFiltersChange = setColumnFilters;
988
- }
989
- const columnOptionsVisibility = {};
990
- columns.forEach((column) => {
991
- const columnId = typeof column === "object" ? column.id || column.accessor : column;
992
- if (typeof column === "object" && "visibility" in column && column.visibility != null) columnOptionsVisibility[columnId] = column.visibility;
993
- else columnOptionsVisibility[columnId] = columnVisibility[columnId] ?? true;
994
- });
995
- options.state = {
996
- ...options.state,
997
- columnVisibility: columnOptionsVisibility
998
- };
999
- const expandedState = {};
1000
- for (const rowId of expandedRows) expandedState[rowId] = true;
1001
- options.state = {
1002
- ...options.state,
1003
- columnOrder,
1004
- rowSelection,
1005
- columnPinning: initialColumnPinning,
1006
- expanded: expandedState,
1007
- ...clientSearch && { globalFilter },
1008
- ...clientFiltering && { columnFilters }
1009
- };
1010
- options.onColumnVisibilityChange = setColumnVisibility;
1011
- options.onColumnOrderChange = setColumnOrder;
1012
- options.enableSortingRemoval = enableSortingRemoval;
1013
- options.sortDescFirst = sortDescFirst;
1014
- options.enableColumnPinning = initialColumnPinning.left && initialColumnPinning.left.length > 0;
1015
- return options;
1016
- }, [
1017
- pagination,
1018
- columnVisibility,
1019
- columnOrder,
1020
- enableRowSelection,
1021
- enableSubRowSelection,
1022
- rowSelection,
1023
- showControls,
1024
- sort,
1025
- enableSortingRemoval,
1026
- sortDescFirst,
1027
- clientSearch,
1028
- globalFilter,
1029
- clientFiltering,
1030
- columnFilters,
1031
- columns,
1032
- initialColumnPinning,
1033
- expandedRows
1034
- ]);
1035
- const handleRowSelectionWithShift = useCallback((clickedRow, table, checked, isShiftKey) => {
1036
- const displayedRows = table.getRowModel().rows;
1037
- const currentIndex = displayedRows.findIndex((r) => r.id === clickedRow.id);
1038
- const lastSelectedRowId = lastSelectedRowIdRef.current;
1039
- const lastIndex = lastSelectedRowId != null ? displayedRows.findIndex((r) => r.id === lastSelectedRowId) : -1;
1040
- if (isShiftKey && lastIndex !== -1 && currentIndex !== -1) {
1041
- const startIndex = Math.min(lastIndex, currentIndex);
1042
- const endIndex = Math.max(lastIndex, currentIndex);
1043
- displayedRows.slice(startIndex, endIndex + 1).forEach((rangeRow) => {
1044
- if (rangeRow.getCanSelect()) rangeRow.toggleSelected(checked);
1045
- });
1046
- } else clickedRow.toggleSelected(checked);
1047
- lastSelectedRowIdRef.current = clickedRow.id;
1048
- }, []);
1049
- const columnsWithFilterFn = useMemo(() => {
1050
- if (!clientFiltering) return columns;
1051
- return columns.map((column) => {
1052
- if (typeof column === "object" && column.filter != null && typeof column.filter === "object" && "type" in column.filter && typeof column.filter.type === "string") {
1053
- const filterType = column.filter.type;
1054
- return {
1055
- ...column,
1056
- filter: {
1057
- ...column.filter,
1058
- filterFn: getFilterFnName(filterType)
1059
- }
1060
- };
1061
- }
1062
- return column;
1063
- });
1064
- }, [columns, clientFiltering]);
1065
- const strings = usePDSStrings();
1066
- const locale = usePDSLocale();
1067
- const defaultRenderFormat = useCallback((value, format, row) => renderAsPDSFormat(value, format, row, {
1068
- locale,
1069
- strings
1070
- }), [locale, strings]);
1071
- const [tableColumns, columnOptions] = useTableColumns({
1072
- columns: columnsWithFilterFn,
1073
- data,
1074
- compact,
1075
- sort,
1076
- clientSearch,
1077
- clientFiltering,
1078
- expandColumnVisibility,
1079
- showControls,
1080
- enableRowSelection,
1081
- enableSubRowSelection,
1082
- rowActions,
1083
- getRowId,
1084
- expandedRows,
1085
- toggleRowExpansion,
1086
- canRowExpand,
1087
- checkboxColumnStates,
1088
- handleCheckboxCellChange,
1089
- handleSelectAllCheckboxCell,
1090
- getSelfAndNestedRowIds,
1091
- handleRowSelectionWithShift,
1092
- renderFormat: renderFormat ?? defaultRenderFormat
1093
- });
1094
- const expandRowsCustom = useCallback((rowModel) => {
1095
- const expandedRows = [];
1096
- const handleRow = (row) => {
1097
- expandedRows.push(row);
1098
- if (row.subRows?.length && row.getIsExpanded()) row.subRows.forEach(handleRow);
1099
- else if (isRowWithSubrowsToAlwaysShowIds(row.original)) row.subRows.filter((subrow) => row.original.subrowsToAlwaysShowIds.includes(subrow.id)).forEach(handleRow);
1100
- };
1101
- rowModel.rows.forEach(handleRow);
1102
- return {
1103
- rows: expandedRows,
1104
- flatRows: rowModel.flatRows,
1105
- rowsById: rowModel.rowsById
1106
- };
1107
- }, []);
1108
- function getExpandedRowModelCustom() {
1109
- return (table) => memo$1(() => [
1110
- table.getState().expanded,
1111
- table.getPreExpandedRowModel(),
1112
- table.options.paginateExpandedRows
1113
- ], (expanded, rowModel, paginateExpandedRows) => {
1114
- if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded ?? {}).length) return expandRowsCustom(rowModel);
1115
- if (!paginateExpandedRows) return rowModel;
1116
- return expandRowsCustom(rowModel);
1117
- }, getMemoOptions(table.options, "debugTable", "getExpandedRowModel"));
1118
- }
1119
- const table = useReactTable({
1120
- data,
1121
- columns: tableColumns,
1122
- getSubRows: (row) => isRowWithSubrows(row) ? row.subrows : [],
1123
- getCoreRowModel: getCoreRowModel(),
1124
- getExpandedRowModel: getExpandedRowModelCustom(),
1125
- getRowId,
1126
- ...tableOptions
1127
- });
1128
- const tableHeaderGroup = table.getHeaderGroups()[0];
1129
- const unprocessedRows = table.getCoreRowModel().rows;
1130
- const rows = table.getRowModel().rows;
1131
- const displayedRowIdsKey = rows.map((row) => row.id).join(DISPLAYED_ROW_IDS_SEPARATOR);
1132
- useEffect(() => {
1133
- onDisplayedRowIdsChange?.(displayedRowIdsKey ? displayedRowIdsKey.split(DISPLAYED_ROW_IDS_SEPARATOR) : []);
1134
- }, [displayedRowIdsKey, onDisplayedRowIdsChange]);
1135
- useEffect(() => {
1136
- const states = {};
1137
- const checkboxColumns = columns.filter((column) => typeof column === "object" && column.format?.type === "checkbox");
1138
- for (const column of checkboxColumns) {
1139
- const columnId = column.id || column.accessor;
1140
- const checkedRowIds = /* @__PURE__ */ new Set();
1141
- const getSelfAndNestedRows = (row) => [row, ...row.subRows.map(getSelfAndNestedRows).flat()];
1142
- const rootAndNestedRows = unprocessedRows.flatMap(getSelfAndNestedRows);
1143
- for (const row of rootAndNestedRows) {
1144
- const rowId = row.id;
1145
- if (row.original[column.accessor]) checkedRowIds.add(rowId);
1146
- }
1147
- states[columnId] = checkedRowIds;
1148
- }
1149
- setCheckboxColumnStates(states);
1150
- }, [unprocessedRows, columns]);
1151
- const generatedSearchProps = clientSearch ? {
1152
- value: globalFilter,
1153
- handleInput: setGlobalFilter,
1154
- placeholder: typeof clientSearch === "object" ? clientSearch.placeholder || DEFAULT_SEARCH_PLACEHOLDER : DEFAULT_SEARCH_PLACEHOLDER,
1155
- ...typeof clientSearch === "object" && clientSearch
1156
- } : void 0;
1157
- const getCommonPinningStyles = useCallback((column) => {
1158
- const isPinned = column.getIsPinned();
1159
- const isLastPinned = isPinned === "left" && column.getIsLastColumn("left");
1160
- return {
1161
- left: isPinned === "left" ? `${column.getStart("left") + pinnedColumnLeftOffset}px` : void 0,
1162
- position: isPinned ? "sticky" : "relative",
1163
- hasRightBorder: isLastPinned
1164
- };
1165
- }, [pinnedColumnLeftOffset]);
1166
- /**
1167
- * Check if the column is a table feature column.
1168
- * Feature columns are special columns set by the table to
1169
- * allow a user to perform an action.
1170
- */
1171
- const isFeatureCol = (columnId) => {
1172
- return [
1173
- "select-col",
1174
- "expand-col",
1175
- "action-col"
1176
- ].includes(columnId);
1177
- };
1178
- const selectedRows = table.getFilteredSelectedRowModel().flatRows;
1179
- useEffect(() => {
1180
- onRowSelectionChange?.(selectedRows.map((row) => row.original));
1181
- }, [selectedRows, onRowSelectionChange]);
1182
- const actions = useMemo(() => {
1183
- return (getAvailableBulkActions ? getAvailableBulkActions(selectedRows.map((row) => row.original)) : bulkActions || controls?.bulkActions)?.map((action) => {
1184
- const clearSelection = () => table.setRowSelection({});
1185
- const baseAction = {
1186
- ...action,
1187
- onClick: async () => {
1188
- await action.onClick(selectedRows.map((row) => row.id), clearSelection);
1189
- }
1190
- };
1191
- if ("popover" in action && action.popover) {
1192
- const popoverConfig = action.popover;
1193
- return {
1194
- ...baseAction,
1195
- popover: {
1196
- options: popoverConfig.options,
1197
- onOptionSelect: async (option) => {
1198
- await popoverConfig.onOptionSelect(option, selectedRows.map((row) => row.id));
1199
- table.setRowSelection({});
1200
- }
1201
- }
1202
- };
1203
- }
1204
- return baseAction;
1205
- });
1206
- }, [
1207
- bulkActions,
1208
- getAvailableBulkActions,
1209
- selectedRows,
1210
- table,
1211
- controls?.bulkActions
1212
- ]);
1213
- const shouldShowFloatingActionBar = compact && actions && actions.length > 0 && selectedRows.length > 0;
1214
- const hasGlobalFilter = clientSearch && globalFilter && globalFilter.trim().length > 0;
1215
- const hasFilters = columnFilters.length > 0;
1216
- const hasActiveFilters = hasGlobalFilter || hasFilters || hasExternalActiveFilters;
1217
- return /* @__PURE__ */ jsxs(DataTableContainer, {
1218
- $stickyHeader: stickyHeader,
1219
- children: [
1220
- showControls && /* @__PURE__ */ jsx(DataTableControls, {
1221
- compact,
1222
- title,
1223
- propertiesButton: showColumnProperties && /* @__PURE__ */ jsx(TableViewConfigurationDropdown, {
1224
- disabled: false,
1225
- columnConfiguration: table.getVisibleFlatColumns().filter((column) => !isFeatureCol(column.columnDef.id ?? "")).map((column) => ({
1226
- key: column.id,
1227
- label: column.columnDef.header?.toString() || column.id
1228
- })).sort((a, b) => {
1229
- return (orderMap[a.key] || 0) - (orderMap[b.key] || 0);
1230
- }),
1231
- attributeOptions: columnOptions,
1232
- updateColumnConfiguration: (newConfiguration) => {
1233
- table.getAllColumns().map((column) => {
1234
- column.toggleVisibility(!!newConfiguration.find((c) => c.key === column.id));
1235
- });
1236
- setColumnOrder(newConfiguration.map((c) => c.key));
1237
- if (onUpdateColumnProperties) onUpdateColumnProperties(newConfiguration);
1238
- },
1239
- size: compact ? "sm" : void 0,
1240
- variant: compact ? "text" : "basic"
1241
- }),
1242
- selectedRows: table.getFilteredSelectedRowModel().flatRows.map((row) => row.id),
1243
- onClearSelection: () => table.setRowSelection({}),
1244
- searchProps: generatedSearchProps,
1245
- ...controls,
1246
- bulkActions: actions
1247
- }),
1248
- /* @__PURE__ */ jsxs(TableContainer, {
1249
- $stickyHeader: stickyHeader,
1250
- children: [/* @__PURE__ */ jsx(StyledTableLayout, {
1251
- $onAddRow: !!onAddRow,
1252
- stickyHeader,
1253
- containerScrollsHorizontally: scrollsHorizontally,
1254
- headerTR: /* @__PURE__ */ jsx(Fragment$1, { children: tableHeaderGroup.headers.map((header) => {
1255
- const pinningStyles = getCommonPinningStyles(header.column);
1256
- const isPinned = pinningStyles.position === "sticky";
1257
- const width = header.column.columnDef.meta?.width ? `${header.column.columnDef.meta?.width}px` : void 0;
1258
- const minWidth = header.column.columnDef.meta?.minWidth ? `${header.column.columnDef.meta?.minWidth}px` : width ?? `${header.column.getSize()}px`;
1259
- const thProps = {
1260
- id: header.id,
1261
- sortable: isFeatureCol(header.id) ? false : header.column.getCanSort(),
1262
- onClick: isFeatureCol(header.id) ? void 0 : header.column.getToggleSortingHandler(),
1263
- sortDirection: isFeatureCol(header.id) ? void 0 : header.column.getIsSorted(),
1264
- colSpan: header.colSpan,
1265
- align: header.column.columnDef.meta?.align,
1266
- width: header.column.columnDef.meta?.width ? `${header.column.columnDef.meta?.width}px` : void 0,
1267
- size: compact ? "sm" : "md",
1268
- style: { minWidth }
1269
- };
1270
- if (isPinned) return /* @__PURE__ */ createElement(StickyTH, {
1271
- ...thProps,
1272
- key: header.id,
1273
- left: pinningStyles.left ? parseInt(pinningStyles.left) : 0,
1274
- hasRightBorder: pinningStyles.hasRightBorder
1275
- }, flexRender(header.column.columnDef.header, header.getContext()));
1276
- return /* @__PURE__ */ createElement(TableTH, {
1277
- ...thProps,
1278
- key: header.id
1279
- }, header.column.columnDef.meta?.headerTooltip ? /* @__PURE__ */ jsx(TextUnderlineTooltip, {
1280
- side: "top",
1281
- tooltip: header.column.columnDef.meta.headerTooltip,
1282
- zIndex: Z_INDICES.topNavTooltip,
1283
- children: flexRender(header.column.columnDef.header, header.getContext())
1284
- }) : flexRender(header.column.columnDef.header, header.getContext()));
1285
- }) }),
1286
- nullState: /* @__PURE__ */ jsx("p", { children: strings.noResults }),
1287
- isLoading,
1288
- size: compact ? "sm" : void 0,
1289
- children: columns.length === 0 ? /* @__PURE__ */ jsx(TableTR, {
1290
- disableHoverBackground: true,
1291
- children: /* @__PURE__ */ jsx(TableEmptyState, {
1292
- colSpan: 1,
1293
- children: /* @__PURE__ */ jsx(Paragraph, {
1294
- size: "lg",
1295
- weight: "bold",
1296
- color: "primary",
1297
- children: strings.noColumnsConfigured
1298
- })
1299
- })
1300
- }) : rows.length === 0 ? /* @__PURE__ */ jsx(TableTR, {
1301
- disableHoverBackground: true,
1302
- children: /* @__PURE__ */ jsxs(TableEmptyState, {
1303
- colSpan: tableHeaderGroup.headers.length,
1304
- children: [/* @__PURE__ */ jsx(Paragraph, {
1305
- size: "lg",
1306
- weight: "bold",
1307
- color: "primary",
1308
- children: emptyState?.title || (hasActiveFilters ? strings.noResultsTryFilters : strings.noResults)
1309
- }), emptyState?.description && /* @__PURE__ */ jsx(Paragraph, {
1310
- size: "md",
1311
- color: "secondary",
1312
- children: emptyState.description
1313
- })]
1314
- })
1315
- }) : rows.map((row) => {
1316
- const rowData = row.original;
1317
- const rowId = getRowId ? getRowId(rowData) : row.id;
1318
- const rowLabel = getRowLabel?.(rowData);
1319
- const isExpanded = expandedRows.has(rowId);
1320
- const canExpand = canRowExpand(rowData);
1321
- const rowLinkHref = getLinkToRow ? getLinkToRow(row.original) : rowLinkPrefix ? `${rowLinkPrefix}/${rowId}` : void 0;
1322
- const dynamicNestSpacing = showControls && enableRowSelection ? NEST_SPACING + 8 : NEST_SPACING;
1323
- const visibleCells = row.getVisibleCells();
1324
- const isLinkableCell = (cell) => !isFeatureCol(cell.column.id) && cell.column.columnDef.meta?.format?.type !== "url";
1325
- const rowLinkCellId = rowLinkHref ? visibleCells.find((cell) => cell.column.id === rowLinkColumnId && isLinkableCell(cell))?.column.id ?? visibleCells.find(isLinkableCell)?.column.id : void 0;
1326
- const RowLinkComponent = rowLinkComponent ?? RouterLink;
1327
- const renderCellContent = (cell) => {
1328
- const content = flexRender(cell.column.columnDef.cell, cell.getContext());
1329
- if (!rowLinkHref || cell.column.id !== rowLinkCellId) return content;
1330
- const value = cell.getValue();
1331
- return /* @__PURE__ */ jsx(RowLink, {
1332
- as: RowLinkComponent,
1333
- to: rowLinkHref,
1334
- "data-row-link": true,
1335
- "aria-label": value == null || value === "" ? rowLabel : void 0,
1336
- children: content
1337
- });
1338
- };
1339
- let leftMostNonSpecialColumnFound = false;
1340
- const rowElements = visibleCells.map((cell) => {
1341
- const pinningStyles = getCommonPinningStyles(cell.column);
1342
- const isPinned = pinningStyles.position === "sticky";
1343
- if (cell.column.id === "action-col") return /* @__PURE__ */ jsx(StyledTableActionTD, {
1344
- style: { textAlign: cell.column.columnDef.meta?.align },
1345
- $nestSpacing: row.depth * dynamicNestSpacing,
1346
- children: renderCellContent(cell)
1347
- }, cell.id);
1348
- if (isPinned) {
1349
- const leftBumpFromNesting = !leftMostNonSpecialColumnFound ? row.depth * dynamicNestSpacing : 0;
1350
- const width = cell.column.columnDef.meta?.width ? `${cell.column.columnDef.meta?.width}px` : void 0;
1351
- const minWidth = cell.column.columnDef.meta?.minWidth ? `${cell.column.columnDef.meta?.minWidth}px` : width ?? `${cell.column.getSize()}px`;
1352
- const stickyTableCell = cell.column.id === "expand-col" ? /* @__PURE__ */ jsx(StickyTDWithGapCoverage, {
1353
- left: (pinningStyles.left ? parseInt(pinningStyles.left) : 0) + leftBumpFromNesting,
1354
- style: {
1355
- minWidth,
1356
- textAlign: cell.column.columnDef.meta?.align
1357
- },
1358
- hasRightBorder: pinningStyles.hasRightBorder,
1359
- $gapCoverage: leftBumpFromNesting,
1360
- children: renderCellContent(cell)
1361
- }, cell.id) : /* @__PURE__ */ jsx(StickyTD, {
1362
- left: (pinningStyles.left ? parseInt(pinningStyles.left) : 0) + leftBumpFromNesting,
1363
- style: {
1364
- minWidth,
1365
- textAlign: cell.column.columnDef.meta?.align
1366
- },
1367
- hasRightBorder: pinningStyles.hasRightBorder,
1368
- children: renderCellContent(cell)
1369
- }, cell.id);
1370
- if (!leftMostNonSpecialColumnFound && !isFeatureCol(cell.column.id)) leftMostNonSpecialColumnFound = true;
1371
- return stickyTableCell;
1372
- }
1373
- const tableCell = /* @__PURE__ */ jsx(StyledTableTD, {
1374
- style: { textAlign: cell.column.columnDef.meta?.align },
1375
- width: isFeatureCol(cell.column.id) ? "1%" : void 0,
1376
- $nestSpacing: leftMostNonSpecialColumnFound ? void 0 : row.depth * dynamicNestSpacing,
1377
- $isFeatureCol: isFeatureCol(cell.column.id),
1378
- children: renderCellContent(cell)
1379
- }, cell.id);
1380
- if (!leftMostNonSpecialColumnFound && !isFeatureCol(cell.column.id)) leftMostNonSpecialColumnFound = true;
1381
- return tableCell;
1382
- });
1383
- const isRowActive = rowId === activeRowId;
1384
- const handleRowClick = onRowClick != null ? () => {
1385
- onRowClick(rowId);
1386
- } : canExpand ? () => {
1387
- toggleRowExpansion(rowId);
1388
- } : void 0;
1389
- const handleRowClickWithLink = (event) => {
1390
- if (forwardedRowLinkClicks.has(event.nativeEvent)) return;
1391
- handleRowClick?.();
1392
- if (!rowLinkHref || event.defaultPrevented || event.target.closest("a, button, input, select, textarea, label, [role=\"checkbox\"], [role=\"button\"], [role=\"menuitem\"]")) return;
1393
- const link = event.currentTarget.querySelector("a[data-row-link]");
1394
- const ownerWindow = link?.ownerDocument.defaultView;
1395
- if (!link || !ownerWindow) return;
1396
- const forwardedClick = new ownerWindow.MouseEvent("click", {
1397
- bubbles: true,
1398
- cancelable: true,
1399
- button: event.button,
1400
- ctrlKey: event.ctrlKey,
1401
- metaKey: event.metaKey,
1402
- shiftKey: event.shiftKey,
1403
- altKey: event.altKey
1404
- });
1405
- forwardedRowLinkClicks.add(forwardedClick);
1406
- link.dispatchEvent(forwardedClick);
1407
- };
1408
- const elements = [/* @__PURE__ */ jsx(TableTR, {
1409
- "aria-label": rowLabel,
1410
- onClick: handleRowClickWithLink,
1411
- $isActive: isRowActive,
1412
- disableHoverBackground: disableRowHover,
1413
- css: { cursor: rowLinkHref || handleRowClick ? "pointer" : void 0 },
1414
- ...isRowWithTourTarget(row.original) && { "data-tour-target": row.original.dataTourTarget },
1415
- children: rowElements
1416
- }, rowId)];
1417
- if (canExpand && isExpanded) {
1418
- let detailContent = null;
1419
- if (isRowWithDetails(rowData) && rowData._details) if (typeof rowData._details === "function") detailContent = rowData._details(rowData);
1420
- else detailContent = rowData._details;
1421
- else if (detailComponent) detailContent = /* @__PURE__ */ jsx(detailComponent, { rowData });
1422
- if (detailContent) {
1423
- const detailCells = initialColumnPinning?.left?.length ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(StickyTD, {
1424
- colSpan: 1,
1425
- left: pinnedColumnLeftOffset
1426
- }), /* @__PURE__ */ jsx(StickyDetailsTD, {
1427
- colSpan: tableHeaderGroup.headers.length - 1,
1428
- left: EXPAND_COLUMN_WIDTH + pinnedColumnLeftOffset,
1429
- children: detailContent
1430
- })] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TableTD, { colSpan: 1 }), /* @__PURE__ */ jsx(DetailsTD, {
1431
- colSpan: tableHeaderGroup.headers.length - 1,
1432
- children: detailContent
1433
- })] });
1434
- elements.push(/* @__PURE__ */ jsx(TableTR, {
1435
- disableHoverBackground: true,
1436
- children: detailCells
1437
- }, `${row.id}-details`));
1438
- }
1439
- }
1440
- if (onAddRow && (!canAddAfterRow || canAddAfterRow?.(rowData, row.getIsExpanded() && isRowWithSubrows(rowData)))) elements.push(/* @__PURE__ */ jsx(Inserter, {
1441
- priorRowLabel: `Row ${rowId}`,
1442
- colSpan: tableHeaderGroup.headers.length,
1443
- onAddRow: () => onAddRow(rowId, row.getIsExpanded() && isRowWithSubrows(rowData)),
1444
- nestSpacing: row.depth * dynamicNestSpacing
1445
- }, `${rowId}-inserter`));
1446
- return elements;
1447
- })
1448
- }), shouldShowFloatingActionBar && actions && /* @__PURE__ */ jsx(FloatingActionBarContainer, { children: /* @__PURE__ */ jsx(FloatingActionBar, {
1449
- selectedCount: selectedRows.length,
1450
- onClearSelection: () => table.setRowSelection({}),
1451
- actions,
1452
- extraContent: floatingBarContent
1453
- }) })]
1454
- }),
1455
- pagination && data.length > 0 && /* @__PURE__ */ jsx(Pagination_default, {
1456
- pageSize: table.getState().pagination.pageSize,
1457
- pageSizeOptions: typeof pagination === "object" ? pagination.pageSizeOptions : void 0,
1458
- showPageSizeSelector: isServerPagination(pagination) ? pagination.showPageSizeSelector : void 0,
1459
- paginationParams: {
1460
- "current-page": table.getState().pagination.pageIndex + 1,
1461
- "total-count": table.getRowCount(),
1462
- "total-pages": table.getPageCount()
1463
- },
1464
- handlePageLinkClick: (pageNumber) => table.setPageIndex(pageNumber - 1),
1465
- handlePageSizeClick: table.setPageSize,
1466
- onPageChange: isServerPagination(pagination) ? pagination.onPageChange : void 0
1467
- })
1468
- ]
1469
- });
1470
- };
1471
- //#endregion
1472
- export { DataTable, DataTable as default, DataTableContainer, DataTableControls, FloatingActionBar, FloatingActionBarContainer, Inserter, getColumnWidths, renderAsCheckbox, renderAsCheckboxHeader, renderAsCopyableString, renderAsDate, renderAsDatetime, renderAsLightweightImage, renderAsNumber, renderAsPDSFormat, renderAsPii, renderAsSticker, renderAsString, renderAsURL, useTableColumns };
1473
-
1474
- //# sourceMappingURL=index.mjs.map
1
+ import { S as getFilterFnName, _ as renderAsString, a as useTableColumns, b as getColumnWidths, c as renderAsCheckboxHeader, d as renderAsDatetime, f as renderAsLightweightImage, g as renderAsSticker, h as renderAsPii, i as FloatingActionBarContainer, l as renderAsCopyableString, m as renderAsPDSFormat, n as DataTableContainer, o as Inserter, p as renderAsNumber, r as DataTableControls, s as renderAsCheckbox, t as DataTable, u as renderAsDate, v as renderAsURL, x as generateClientFilters, y as FloatingActionBar } from "../../DataTable-95ZxiPlV.mjs";
2
+ export { DataTable, DataTable as default, DataTableContainer, DataTableControls, FloatingActionBar, FloatingActionBarContainer, Inserter, generateClientFilters, getColumnWidths, getFilterFnName, renderAsCheckbox, renderAsCheckboxHeader, renderAsCopyableString, renderAsDate, renderAsDatetime, renderAsLightweightImage, renderAsNumber, renderAsPDSFormat, renderAsPii, renderAsSticker, renderAsString, renderAsURL, useTableColumns };