@persona/design-system 0.9.1 → 0.10.1

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