@servicetitan/anvil2 2.7.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +73 -1
  2. package/dist/{floating-ui.react-aKYfs-aw.js → AiMark-DR-w6Nbm.js} +767 -5
  3. package/dist/AiMark-DR-w6Nbm.js.map +1 -0
  4. package/dist/AiMark.css +260 -0
  5. package/dist/AiMark.d.ts +2 -0
  6. package/dist/AiMark.js +2 -0
  7. package/dist/AiMark.js.map +1 -0
  8. package/dist/{Alert-C_o2f78C.js → Alert-Dj61Bq8h.js} +27 -13
  9. package/dist/Alert-Dj61Bq8h.js.map +1 -0
  10. package/dist/Alert.css +23 -15
  11. package/dist/Alert.js +1 -1
  12. package/dist/{Announcement-CyrTvgP4.js → Announcement-B9zm-_1S.js} +2 -2
  13. package/dist/{Announcement-CyrTvgP4.js.map → Announcement-B9zm-_1S.js.map} +1 -1
  14. package/dist/Announcement.js +1 -1
  15. package/dist/{AnvilProvider-ClfmLl_6.js → AnvilProvider-DUPYyMc7.js} +2 -2
  16. package/dist/{AnvilProvider-ClfmLl_6.js.map → AnvilProvider-DUPYyMc7.js.map} +1 -1
  17. package/dist/AnvilProvider.js +1 -1
  18. package/dist/{Breadcrumbs-C_WK9Yul.js → Breadcrumbs-ojgYVZwe.js} +3 -3
  19. package/dist/{Breadcrumbs-C_WK9Yul.js.map → Breadcrumbs-ojgYVZwe.js.map} +1 -1
  20. package/dist/Breadcrumbs.js +1 -1
  21. package/dist/Button-BdrrhBTI.js +2185 -0
  22. package/dist/Button-BdrrhBTI.js.map +1 -0
  23. package/dist/Button.js +1 -1
  24. package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-DaFQ3DBG.js} +2 -2
  25. package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-DaFQ3DBG.js.map} +1 -1
  26. package/dist/ButtonToggle.js +1 -1
  27. package/dist/{Calendar-BTStJPV1.js → Calendar-Cka4unyi.js} +2 -2
  28. package/dist/{Calendar-BTStJPV1.js.map → Calendar-Cka4unyi.js.map} +1 -1
  29. package/dist/{Calendar-Frpv5rRY.js → Calendar-Dxl9QnfP.js} +3 -3
  30. package/dist/{Calendar-Frpv5rRY.js.map → Calendar-Dxl9QnfP.js.map} +1 -1
  31. package/dist/Calendar.js +2 -2
  32. package/dist/Card-wz71dEVA.js.map +1 -1
  33. package/dist/{Checkbox-Drgai_lS.js → Checkbox-B-XTVPbX.js} +24 -13
  34. package/dist/Checkbox-B-XTVPbX.js.map +1 -0
  35. package/dist/{Checkbox-CTZdZym4.js → Checkbox-Cw1-KFvq.js} +2 -2
  36. package/dist/{Checkbox-CTZdZym4.js.map → Checkbox-Cw1-KFvq.js.map} +1 -1
  37. package/dist/Checkbox.js +1 -1
  38. package/dist/{Chip-CVyEctAz.js → Chip-Ce0WGKAc.js} +42 -12
  39. package/dist/Chip-Ce0WGKAc.js.map +1 -0
  40. package/dist/Chip.css +44 -28
  41. package/dist/Chip.js +1 -1
  42. package/dist/{Combobox-BRtfrYyZ.js → Combobox-CNQUROyr.js} +4 -4
  43. package/dist/{Combobox-BRtfrYyZ.js.map → Combobox-CNQUROyr.js.map} +1 -1
  44. package/dist/Combobox.js +1 -1
  45. package/dist/{DataTable-BmVPjMMg.js → DataTable-BCV_mtSy.js} +572 -98
  46. package/dist/DataTable-BCV_mtSy.js.map +1 -0
  47. package/dist/DataTable.css +148 -103
  48. package/dist/{DateFieldRange-D9DtlkSQ.js → DateFieldRange-D2hnF50O.js} +6 -6
  49. package/dist/{DateFieldRange-D9DtlkSQ.js.map → DateFieldRange-D2hnF50O.js.map} +1 -1
  50. package/dist/DateFieldRange.js +1 -1
  51. package/dist/{DateFieldSingle-CkdeCUJv.js → DateFieldSingle-BuaB7RDr.js} +6 -6
  52. package/dist/{DateFieldSingle-CkdeCUJv.js.map → DateFieldSingle-BuaB7RDr.js.map} +1 -1
  53. package/dist/DateFieldSingle.js +1 -1
  54. package/dist/{DateFieldYearless-b81ZcYdp.js → DateFieldYearless-DLeMEutt.js} +22 -6
  55. package/dist/DateFieldYearless-DLeMEutt.js.map +1 -0
  56. package/dist/DateFieldYearless.js +1 -1
  57. package/dist/{DateFieldYearlessRange-ClAFzIDD.js → DateFieldYearlessRange-BfPuYKKC.js} +3 -3
  58. package/dist/DateFieldYearlessRange-BfPuYKKC.js.map +1 -0
  59. package/dist/DateFieldYearlessRange.js +1 -1
  60. package/dist/{DaysOfTheWeek-2Zeh79oR.js → DaysOfTheWeek-BW1T8sTU.js} +4 -4
  61. package/dist/{DaysOfTheWeek-2Zeh79oR.js.map → DaysOfTheWeek-BW1T8sTU.js.map} +1 -1
  62. package/dist/DaysOfTheWeek.js +1 -1
  63. package/dist/{Dialog-CloZWa1Q.js → Dialog-Cewu2pd_.js} +38 -10
  64. package/dist/Dialog-Cewu2pd_.js.map +1 -0
  65. package/dist/Dialog.js +1 -1
  66. package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-Czz4Wpse.js} +2 -2
  67. package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-Czz4Wpse.js.map} +1 -1
  68. package/dist/{Drawer-CfkoH081.js → Drawer-Cb5asXWf.js} +38 -10
  69. package/dist/Drawer-Cb5asXWf.js.map +1 -0
  70. package/dist/Drawer.js +1 -1
  71. package/dist/DrillDown.js +1 -1
  72. package/dist/DrillDown.module-C8VOhzaF.js.map +1 -1
  73. package/dist/{EditCard-CLN0GBN_.js → EditCard-DlJE3LXN.js} +3 -3
  74. package/dist/{EditCard-CLN0GBN_.js.map → EditCard-DlJE3LXN.js.map} +1 -1
  75. package/dist/EditCard.js +1 -1
  76. package/dist/FieldLabel-HO2VP-4B.js +180 -0
  77. package/dist/FieldLabel-HO2VP-4B.js.map +1 -0
  78. package/dist/FieldLabel.css +33 -73
  79. package/dist/FieldLabel.js +1 -1
  80. package/dist/{InputMask-CI4Q5UwG.js → InputMask-CLLTehFI.js} +3 -3
  81. package/dist/{InputMask-CI4Q5UwG.js.map → InputMask-CLLTehFI.js.map} +1 -1
  82. package/dist/InputMask.js +1 -1
  83. package/dist/{ListView-DAbBuss4.js → ListView-CPi-qG2w.js} +2 -2
  84. package/dist/{ListView-DAbBuss4.js.map → ListView-CPi-qG2w.js.map} +1 -1
  85. package/dist/ListView.js +1 -1
  86. package/dist/{Listbox-D_T55BFX.js → Listbox-Bp4hqIpH.js} +2 -2
  87. package/dist/{Listbox-D_T55BFX.js.map → Listbox-Bp4hqIpH.js.map} +1 -1
  88. package/dist/Listbox.js +1 -1
  89. package/dist/{Menu-CRoJYJ53.js → Menu-CCavGohP.js} +92 -95
  90. package/dist/Menu-CCavGohP.js.map +1 -0
  91. package/dist/Menu.js +1 -1
  92. package/dist/MultiSelectField.js +1 -1
  93. package/dist/{MultiSelectFieldSync-CSOitvtu.js → MultiSelectFieldSync-ChZCW4M9.js} +32 -19
  94. package/dist/MultiSelectFieldSync-ChZCW4M9.js.map +1 -0
  95. package/dist/MultiSelectMenu.js +1 -1
  96. package/dist/{MultiSelectMenuSync-62OeGmkz.js → MultiSelectMenuSync-7C1wW4oO.js} +3 -3
  97. package/dist/{MultiSelectMenuSync-62OeGmkz.js.map → MultiSelectMenuSync-7C1wW4oO.js.map} +1 -1
  98. package/dist/{NumberField-CHBXBMSj.js → NumberField-CZSTHBeO.js} +16 -5
  99. package/dist/NumberField-CZSTHBeO.js.map +1 -0
  100. package/dist/NumberField.js +1 -1
  101. package/dist/{Page-DtSjnBJL.js → Page-BHdvTlfE.js} +116 -63
  102. package/dist/Page-BHdvTlfE.js.map +1 -0
  103. package/dist/Page.css +76 -76
  104. package/dist/Page.js +1 -1
  105. package/dist/{Pagination-CbBte3GQ.js → Pagination-DecGSuW4.js} +5 -5
  106. package/dist/{Pagination-CbBte3GQ.js.map → Pagination-DecGSuW4.js.map} +1 -1
  107. package/dist/Pagination.js +1 -1
  108. package/dist/{Popover-Rha0q-Pv.js → Popover-BbqTZw-1.js} +4 -6
  109. package/dist/{Popover-Rha0q-Pv.js.map → Popover-BbqTZw-1.js.map} +1 -1
  110. package/dist/Popover.js +1 -1
  111. package/dist/{ProgressBar-DEaMqbM-.js → ProgressBar-CZcxkdX6.js} +2 -2
  112. package/dist/{ProgressBar-DEaMqbM-.js.map → ProgressBar-CZcxkdX6.js.map} +1 -1
  113. package/dist/ProgressBar.js +1 -1
  114. package/dist/{Radio-CCvu8mbI.js → Radio-BFr8AdHc.js} +2 -2
  115. package/dist/{Radio-CCvu8mbI.js.map → Radio-BFr8AdHc.js.map} +1 -1
  116. package/dist/{Radio-Bw2LDl9G.js → Radio-DJZVMCv0.js} +24 -13
  117. package/dist/Radio-DJZVMCv0.js.map +1 -0
  118. package/dist/Radio.js +1 -1
  119. package/dist/{SegmentedControl-BAi4pnFe.js → SegmentedControl-B9NWUF7s.js} +3 -3
  120. package/dist/{SegmentedControl-BAi4pnFe.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
  121. package/dist/SegmentedControl.js +1 -1
  122. package/dist/{SelectCard-ZaAD0wR1.js → SelectCard-DVcWJRbX.js} +51 -24
  123. package/dist/SelectCard-DVcWJRbX.js.map +1 -0
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/SelectField.js +1 -1
  126. package/dist/{SelectFieldLabel-EJCXA02B.js → SelectFieldLabel-kEBS8L4l.js} +5 -4
  127. package/dist/SelectFieldLabel-kEBS8L4l.js.map +1 -0
  128. package/dist/{SelectFieldSync-DA54WXOk.js → SelectFieldSync-o1Cp9UYC.js} +14 -14
  129. package/dist/SelectFieldSync-o1Cp9UYC.js.map +1 -0
  130. package/dist/SelectMenu.js +1 -1
  131. package/dist/{SelectMenuSync-BQaSTcaN.js → SelectMenuSync-DXrwecFt.js} +3 -3
  132. package/dist/{SelectMenuSync-BQaSTcaN.js.map → SelectMenuSync-DXrwecFt.js.map} +1 -1
  133. package/dist/{SelectOptions-D-DzWmKE.js → SelectOptions-Dy2OWqxn.js} +2 -2
  134. package/dist/{SelectOptions-D-DzWmKE.js.map → SelectOptions-Dy2OWqxn.js.map} +1 -1
  135. package/dist/{SelectTrigger-DWyRndmY.js → SelectTrigger-DhKYzEAr.js} +7 -5
  136. package/dist/SelectTrigger-DhKYzEAr.js.map +1 -0
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-B6aZd2a6.js → SelectTriggerBase-Ni8WqeUx.js} +76 -63
  139. package/dist/SelectTriggerBase-Ni8WqeUx.js.map +1 -0
  140. package/dist/SelectTriggerBase.css +83 -66
  141. package/dist/SelectTriggerBase.module-CKoq6qzX.js +38 -0
  142. package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +1 -0
  143. package/dist/{SideNav-CxHemV3H.js → SideNav-CrxYExjh.js} +11 -11
  144. package/dist/{SideNav-CxHemV3H.js.map → SideNav-CrxYExjh.js.map} +1 -1
  145. package/dist/SideNav.css +72 -55
  146. package/dist/SideNav.js +1 -1
  147. package/dist/Skeleton.css +18 -12
  148. package/dist/Skeleton.js +24 -11
  149. package/dist/Skeleton.js.map +1 -1
  150. package/dist/{Stepper-CQUXV6P4.js → Stepper-Dt2xAXth.js} +3 -3
  151. package/dist/{Stepper-CQUXV6P4.js.map → Stepper-Dt2xAXth.js.map} +1 -1
  152. package/dist/Stepper.js +1 -1
  153. package/dist/{Switch-DpPHr3G3.js → Switch-C84MBChG.js} +14 -2
  154. package/dist/Switch-C84MBChG.js.map +1 -0
  155. package/dist/Switch.js +1 -1
  156. package/dist/{Tab-BGGNcz9S.js → Tab-BZpTCG0i.js} +3 -3
  157. package/dist/{Tab-BGGNcz9S.js.map → Tab-BZpTCG0i.js.map} +1 -1
  158. package/dist/Tab.js +1 -1
  159. package/dist/Table.js +1 -1
  160. package/dist/{Text-BJo4oMI2.js → Text-WiS8UZkY.js} +30 -12
  161. package/dist/Text-WiS8UZkY.js.map +1 -0
  162. package/dist/Text.css +37 -20
  163. package/dist/Text.js +1 -1
  164. package/dist/{TextField-o8zvVFDk.js → TextField-Bul_uln5.js} +21 -5
  165. package/dist/TextField-Bul_uln5.js.map +1 -0
  166. package/dist/{TextField-CMv9CpBq.js → TextField-OznkTx4e.js} +2 -2
  167. package/dist/{TextField-CMv9CpBq.js.map → TextField-OznkTx4e.js.map} +1 -1
  168. package/dist/TextField.js +1 -1
  169. package/dist/{Textarea-B4bBvO8c.js → Textarea-CCYLsJ1x.js} +21 -5
  170. package/dist/Textarea-CCYLsJ1x.js.map +1 -0
  171. package/dist/Textarea.js +1 -1
  172. package/dist/{TimeField-BEgnjk4R.js → TimeField-BPvPbD8H.js} +6 -5
  173. package/dist/{TimeField-BEgnjk4R.js.map → TimeField-BPvPbD8H.js.map} +1 -1
  174. package/dist/TimeField.js +1 -1
  175. package/dist/Toast.js +2 -2
  176. package/dist/{Toaster-B38WlKC7.js → Toaster-CIaIvwH6.js} +2 -2
  177. package/dist/{Toaster-B38WlKC7.js.map → Toaster-CIaIvwH6.js.map} +1 -1
  178. package/dist/{Toaster-6_LVKok2.js → Toaster-DYJm06Vb.js} +5 -5
  179. package/dist/Toaster-DYJm06Vb.js.map +1 -0
  180. package/dist/{Toolbar-0EKhrvZN.js → Toolbar-ByyI7SqG.js} +15 -15
  181. package/dist/{Toolbar-0EKhrvZN.js.map → Toolbar-ByyI7SqG.js.map} +1 -1
  182. package/dist/Toolbar.js +1 -1
  183. package/dist/{Tooltip-BHwSTwsv.js → Tooltip-C1PBRnJv.js} +2 -3
  184. package/dist/{Tooltip-BHwSTwsv.js.map → Tooltip-C1PBRnJv.js.map} +1 -1
  185. package/dist/Tooltip.js +1 -1
  186. package/dist/{YearlessDateInputWithPicker-BC4lRuny.js → YearlessDateInputWithPicker-C_twiQW5.js} +2 -3
  187. package/dist/{YearlessDateInputWithPicker-BC4lRuny.js.map → YearlessDateInputWithPicker-C_twiQW5.js.map} +1 -1
  188. package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
  189. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  190. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
  191. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  192. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
  193. package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
  194. package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
  195. package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  196. package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
  197. package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  198. package/dist/beta/components/SelectField/types.d.ts +5 -5
  199. package/dist/beta/components/Table/DataTable/DataTable.d.ts +8 -5
  200. package/dist/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +5 -5
  201. package/dist/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +4 -4
  202. package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
  203. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +13 -2
  204. package/dist/beta/components/Table/DataTable/types.d.ts +30 -0
  205. package/dist/beta/components/Table/base/cells/TableHeaderCell.d.ts +4 -0
  206. package/dist/beta/components/Table/createColumnHelper.d.ts +17 -10
  207. package/dist/beta/components/Table/formatters/htmlFormatter.d.ts +13 -0
  208. package/dist/beta/components/Table/formatters/htmlToMarkdown.d.ts +11 -0
  209. package/dist/beta/components/Table/formatters/index.d.ts +2 -0
  210. package/dist/beta/components/Table/formatters/markdownFormatter.d.ts +11 -0
  211. package/dist/beta/components/Table/types.d.ts +41 -8
  212. package/dist/beta/components/Toolbar/Toolbar.d.ts +10 -6
  213. package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
  214. package/dist/beta.js +9 -9
  215. package/dist/components/AiMark/AiMark.d.ts +87 -0
  216. package/dist/components/AiMark/index.d.ts +1 -0
  217. package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
  218. package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
  219. package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
  220. package/dist/components/Alert/Alert.d.ts +12 -0
  221. package/dist/components/Button/Button.d.ts +14 -6
  222. package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
  223. package/dist/components/Button/internal/index.d.ts +1 -0
  224. package/dist/components/Card/Card.d.ts +6 -1
  225. package/dist/components/Checkbox/Checkbox.d.ts +2 -0
  226. package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
  227. package/dist/components/Chip/Chip.d.ts +10 -1
  228. package/dist/components/Chip/internal/Chip.d.ts +4 -0
  229. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
  230. package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
  231. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
  232. package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
  233. package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
  234. package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
  235. package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
  236. package/dist/components/DrillDown/internal/DrillDownContext.d.ts +4 -0
  237. package/dist/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
  238. package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
  239. package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
  240. package/dist/components/NumberField/NumberField.d.ts +29 -2
  241. package/dist/components/Radio/Radio.d.ts +2 -0
  242. package/dist/components/Radio/RadioGroup.d.ts +27 -6
  243. package/dist/components/SelectCard/SelectCard.d.ts +1 -1
  244. package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
  245. package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
  246. package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
  247. package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
  248. package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
  249. package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
  250. package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
  251. package/dist/components/Skeleton/index.d.ts +3 -0
  252. package/dist/components/Switch/Switch.d.ts +11 -1
  253. package/dist/components/Text/types.d.ts +9 -0
  254. package/dist/components/TextField/internal/TextField.d.ts +11 -0
  255. package/dist/components/Textarea/Textarea.d.ts +9 -2
  256. package/dist/components/Toast/internal/Toast.d.ts +5 -0
  257. package/dist/components/Toast/toast.d.ts +1 -1
  258. package/dist/components/Toolbar/Toolbar.d.ts +5 -3
  259. package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
  260. package/dist/components/index.d.ts +1 -0
  261. package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
  262. package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
  263. package/dist/hooks/index.d.ts +1 -0
  264. package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
  265. package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
  266. package/dist/index.js +48 -47
  267. package/dist/index.js.map +1 -1
  268. package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
  269. package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
  270. package/dist/internal/components/Label/Label.d.ts +1 -1
  271. package/dist/internal/components/Popover/Popover.d.ts +3 -1
  272. package/dist/internal/components/index.d.ts +2 -1
  273. package/dist/internal/flubber/a2c.d.ts +16 -0
  274. package/dist/internal/flubber/add.d.ts +3 -0
  275. package/dist/internal/flubber/arc.d.ts +26 -0
  276. package/dist/internal/flubber/bezier.d.ts +32 -0
  277. package/dist/internal/flubber/errors.d.ts +5 -0
  278. package/dist/internal/flubber/index.d.ts +6 -0
  279. package/dist/internal/flubber/interpolate.d.ts +7 -0
  280. package/dist/internal/flubber/linear.d.ts +27 -0
  281. package/dist/internal/flubber/math.d.ts +10 -0
  282. package/dist/internal/flubber/normalize.d.ts +4 -0
  283. package/dist/internal/flubber/parse.d.ts +7 -0
  284. package/dist/internal/flubber/path-properties.d.ts +23 -0
  285. package/dist/internal/flubber/rotate.d.ts +2 -0
  286. package/dist/internal/flubber/svg.d.ts +9 -0
  287. package/dist/internal/functions/index.d.ts +2 -0
  288. package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
  289. package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
  290. package/dist/internal/index.d.ts +1 -0
  291. package/dist/internal/types/props.d.ts +2 -1
  292. package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
  293. package/dist/internal/utils/index.d.ts +1 -0
  294. package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  295. package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
  296. package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
  297. package/dist/stripInlineMarkdown-Cg1qlNwL.js +25 -0
  298. package/dist/stripInlineMarkdown-Cg1qlNwL.js.map +1 -0
  299. package/dist/{syncFilterUtils-B03Pc941.js → syncFilterUtils-UR5Vgqkh.js} +8 -9
  300. package/dist/{syncFilterUtils-B03Pc941.js.map → syncFilterUtils-UR5Vgqkh.js.map} +1 -1
  301. package/dist/types/ai-marks.d.ts +72 -0
  302. package/dist/types/index.d.ts +1 -0
  303. package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
  304. package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
  305. package/dist/{useDrilldown-BW2XkUcK.js → useDrilldown-D6VZNSCX.js} +46 -20
  306. package/dist/{useDrilldown-BW2XkUcK.js.map → useDrilldown-D6VZNSCX.js.map} +1 -1
  307. package/dist/{useInitialFocus-BRRbylek.js → useInitialFocus-BUxEDMEG.js} +65 -24
  308. package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
  309. package/dist/{index.esm-K9kxJhLx.js → usePopoverTransitionStates-CDXCdyKa.js} +88 -2
  310. package/dist/usePopoverTransitionStates-CDXCdyKa.js.map +1 -0
  311. package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
  312. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
  313. package/dist/usePrefersReducedMotion.d.ts +2 -0
  314. package/dist/usePrefersReducedMotion.js +2 -0
  315. package/dist/usePrefersReducedMotion.js.map +1 -0
  316. package/dist/{useToggleSelection-Dip0eimQ.js → useToggleSelection-BBdrIVWs.js} +2 -2
  317. package/dist/{useToggleSelection-Dip0eimQ.js.map → useToggleSelection-BBdrIVWs.js.map} +1 -1
  318. package/package.json +2 -2
  319. package/dist/Alert-C_o2f78C.js.map +0 -1
  320. package/dist/Button-CVsGhVJz.js +0 -113
  321. package/dist/Button-CVsGhVJz.js.map +0 -1
  322. package/dist/Checkbox-Drgai_lS.js.map +0 -1
  323. package/dist/Chip-CVyEctAz.js.map +0 -1
  324. package/dist/DataTable-BmVPjMMg.js.map +0 -1
  325. package/dist/DateFieldYearless-b81ZcYdp.js.map +0 -1
  326. package/dist/DateFieldYearlessRange-ClAFzIDD.js.map +0 -1
  327. package/dist/Dialog-CloZWa1Q.js.map +0 -1
  328. package/dist/Drawer-CfkoH081.js.map +0 -1
  329. package/dist/FieldLabel-CQ5QGTVq.js +0 -125
  330. package/dist/FieldLabel-CQ5QGTVq.js.map +0 -1
  331. package/dist/Menu-CRoJYJ53.js.map +0 -1
  332. package/dist/MultiSelectFieldSync-CSOitvtu.js.map +0 -1
  333. package/dist/NumberField-CHBXBMSj.js.map +0 -1
  334. package/dist/Page-DtSjnBJL.js.map +0 -1
  335. package/dist/Popover-CQhLSNYR.js +0 -537
  336. package/dist/Popover-CQhLSNYR.js.map +0 -1
  337. package/dist/Popover2.css +0 -68
  338. package/dist/Radio-Bw2LDl9G.js.map +0 -1
  339. package/dist/SelectCard-ZaAD0wR1.js.map +0 -1
  340. package/dist/SelectFieldLabel-EJCXA02B.js.map +0 -1
  341. package/dist/SelectFieldSync-DA54WXOk.js.map +0 -1
  342. package/dist/SelectTrigger-DWyRndmY.js.map +0 -1
  343. package/dist/SelectTriggerBase-B6aZd2a6.js.map +0 -1
  344. package/dist/SelectTriggerBase.module-B0NFRlQP.js +0 -36
  345. package/dist/SelectTriggerBase.module-B0NFRlQP.js.map +0 -1
  346. package/dist/Switch-DpPHr3G3.js.map +0 -1
  347. package/dist/Text-BJo4oMI2.js.map +0 -1
  348. package/dist/TextField-o8zvVFDk.js.map +0 -1
  349. package/dist/Textarea-B4bBvO8c.js.map +0 -1
  350. package/dist/Toaster-6_LVKok2.js.map +0 -1
  351. package/dist/floating-ui.react-aKYfs-aw.js.map +0 -1
  352. package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
  353. package/dist/index.esm-K9kxJhLx.js.map +0 -1
  354. package/dist/safePopover-BDso-xSH.js +0 -17
  355. package/dist/safePopover-BDso-xSH.js.map +0 -1
  356. package/dist/useInitialFocus-BRRbylek.js.map +0 -1
  357. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
  358. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
  359. package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
  360. package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
  361. /package/dist/{anvil-fonts.css → AnvilProvider.css} +0 -0
@@ -1,56 +1,57 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { C as Chip } from './Chip-CVyEctAz.js';
2
+ import { C as Chip } from './Chip-Ce0WGKAc.js';
3
3
  import { F as Flex } from './Flex-WyyZm1bf.js';
4
4
  import * as React from 'react';
5
- import { useRef, useState, useLayoutEffect, createContext, useContext, useCallback, forwardRef, useMemo, useImperativeHandle, useEffect, useId, Fragment as Fragment$1, useReducer } from 'react';
5
+ import { useRef, useState, useLayoutEffect, createContext, useContext, useCallback, forwardRef, useMemo, useImperativeHandle, useEffect, useId, Fragment as Fragment$1, isValidElement, useReducer } from 'react';
6
6
  import { c as cx } from './index-De1g9FRV.js';
7
7
  import { D as DateTime } from './luxon-wpz4A-OQ.js';
8
- import { C as Checkbox } from './Checkbox-CTZdZym4.js';
9
- import { B as Button } from './Button-CVsGhVJz.js';
8
+ import { C as Checkbox } from './Checkbox-Cw1-KFvq.js';
9
+ import { B as Button } from './Button-BdrrhBTI.js';
10
10
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
11
11
  import { S as SvgEdit } from './edit-DQOiktcu.js';
12
12
  import { I as Icon } from './Icon-DuIlne4x.js';
13
13
  import { S as SrOnly } from './SrOnly-eUpYGpAT.js';
14
14
  import { u as useNumberField } from './useNumberField-eMyk7MB8.js';
15
15
  import { u as useMergeRefs, m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
16
- import { a as SelectMenuSync, S as SelectMenu } from './SelectMenuSync-BQaSTcaN.js';
17
- import { a as MultiSelectMenuSync, M as MultiSelectMenu } from './MultiSelectMenuSync-62OeGmkz.js';
16
+ import { a as SelectMenuSync, S as SelectMenu } from './SelectMenuSync-DXrwecFt.js';
17
+ import { a as MultiSelectMenuSync, M as MultiSelectMenu } from './MultiSelectMenuSync-7C1wW4oO.js';
18
+ import { F as FieldLabel } from './FieldLabel-HO2VP-4B.js';
18
19
  import { S as SvgError } from './error-DR_wWdYY.js';
19
20
  import { S as SvgWarning } from './warning-c4Wj1rI4.js';
20
- import { T as Tooltip } from './Tooltip-BHwSTwsv.js';
21
+ import { T as Tooltip } from './Tooltip-C1PBRnJv.js';
21
22
  import { flushSync } from 'react-dom';
22
23
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DMDdfIah.js';
23
- import './anvil-fonts.css';import './DataTable.css';/* empty css */
24
- import { P as Pagination } from './Pagination-CbBte3GQ.js';
24
+ import { P as Pagination } from './Pagination-DecGSuW4.js';
25
25
  import { T as ThemeProviderContext } from './ThemeProviderContext-l52GohYT.js';
26
26
  import { S as Spinner } from './Spinner-BqmcE2pb.js';
27
27
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
28
28
  import { u as usePrefersColorScheme } from './usePrefersColorScheme-_hT7dK7_.js';
29
29
 
30
- const booleanFormatter = (value, { trueLabel = "True", falseLabel = "False" } = {}) => {
30
+ import './DataTable.css';const booleanFormatter = (value, { trueLabel = "True", falseLabel = "False" } = {}) => {
31
31
  if (value == null) {
32
32
  return null;
33
33
  }
34
34
  return value ? trueLabel : falseLabel;
35
35
  };
36
36
 
37
- const styles$e = {
38
- "table-header-cell": "_table-header-cell_1ffr7_2",
39
- "table-body-cell": "_table-body-cell_1ffr7_3",
40
- "table-footer-cell": "_table-footer-cell_1ffr7_4",
41
- "last-pinned-left-column": "_last-pinned-left-column_1ffr7_33",
42
- "first-pinned-right-column": "_first-pinned-right-column_1ffr7_33",
43
- "empty-cell": "_empty-cell_1ffr7_54",
44
- "table-cell-internal-select": "_table-cell-internal-select_1ffr7_71",
45
- "table-cell-internal-expand": "_table-cell-internal-expand_1ffr7_72",
46
- "table-header-cell-group": "_table-header-cell-group_1ffr7_91",
47
- "table-header-cell-sortable": "_table-header-cell-sortable_1ffr7_100"};
37
+ const styles$f = {
38
+ "table-header-cell": "_table-header-cell_nfkc_2",
39
+ "table-body-cell": "_table-body-cell_nfkc_3",
40
+ "table-footer-cell": "_table-footer-cell_nfkc_4",
41
+ "last-pinned-left-column": "_last-pinned-left-column_nfkc_33",
42
+ "first-pinned-right-column": "_first-pinned-right-column_nfkc_33",
43
+ "empty-cell": "_empty-cell_nfkc_54",
44
+ "table-cell-internal-select": "_table-cell-internal-select_nfkc_71",
45
+ "table-cell-internal-expand": "_table-cell-internal-expand_nfkc_72",
46
+ "table-header-cell-group": "_table-header-cell-group_nfkc_91",
47
+ "table-header-cell-sortable": "_table-header-cell-sortable_nfkc_100",
48
+ "table-header-cell-interactive": "_table-header-cell-interactive_nfkc_101"};
48
49
 
49
50
  const TableEmptyCellContent = () => {
50
- return /* @__PURE__ */ jsx("span", { "aria-label": "empty table cell", className: styles$e["empty-cell"], children: "—" });
51
+ return /* @__PURE__ */ jsx("span", { "aria-label": "empty table cell", className: styles$f["empty-cell"], children: "—" });
51
52
  };
52
53
 
53
- const styles$d = {
54
+ const styles$e = {
54
55
  "truncate-chips": "_truncate-chips_1lgyk_2"
55
56
  };
56
57
 
@@ -136,7 +137,7 @@ const TruncateChips = ({
136
137
  "div",
137
138
  {
138
139
  ref: containerRef,
139
- className: cx(styles$d["truncate-chips"], className),
140
+ className: cx(styles$e["truncate-chips"], className),
140
141
  style: {
141
142
  marginInlineEnd: plusChipWidth
142
143
  },
@@ -250,6 +251,238 @@ const dateTimeFormatter = (value, {
250
251
  return localizedDateTime.toLocaleString(formatOptions);
251
252
  };
252
253
 
254
+ const SUPPORTED_INLINE_TAGS = ["strong", "b", "em", "i", "code", "mark"];
255
+ const INLINE_TAG_REGEX = new RegExp(
256
+ `<(${SUPPORTED_INLINE_TAGS.join("|")})(\\s[^>]*)?>([\\s\\S]*?)</\\1>`,
257
+ "gi"
258
+ );
259
+ const INLINE_WRAPPERS = {
260
+ strong: ["**", "**"],
261
+ b: ["**", "**"],
262
+ em: ["*", "*"],
263
+ i: ["*", "*"],
264
+ code: ["`", "`"],
265
+ mark: ["==", "=="]
266
+ };
267
+ function convertInlineTags(html) {
268
+ let result = html;
269
+ let previous = "";
270
+ while (result !== previous) {
271
+ previous = result;
272
+ result = result.replace(INLINE_TAG_REGEX, (_, tag, _attrs, content) => {
273
+ const normalizedTag = tag.toLowerCase();
274
+ const wrapper = INLINE_WRAPPERS[normalizedTag];
275
+ if (!wrapper) return content;
276
+ return wrapper[0] + convertInlineTags(content) + wrapper[1];
277
+ });
278
+ }
279
+ return result;
280
+ }
281
+ const BR_REGEX = /<br\s*\/?>/gi;
282
+ const P_OPEN_REGEX = /<p(\s[^>]*)?>/gi;
283
+ const P_CLOSE_REGEX = /<\/p>/gi;
284
+ const NAMED_ENTITIES = {
285
+ amp: "&",
286
+ lt: "<",
287
+ gt: ">",
288
+ nbsp: " ",
289
+ quot: '"',
290
+ "#39": "'"
291
+ };
292
+ const ENTITY_REGEX = /&(#x[0-9a-fA-F]+|#\d+|[a-zA-Z]+);/g;
293
+ function decodeEntities(text) {
294
+ return text.replace(ENTITY_REGEX, (match, entity) => {
295
+ if (entity.startsWith("#x")) {
296
+ return String.fromCharCode(parseInt(entity.slice(2), 16));
297
+ }
298
+ if (entity.startsWith("#")) {
299
+ return String.fromCharCode(parseInt(entity.slice(1), 10));
300
+ }
301
+ return NAMED_ENTITIES[entity] ?? match;
302
+ });
303
+ }
304
+ const SUPPORTED_TAGS = [
305
+ "strong",
306
+ "b",
307
+ "em",
308
+ "i",
309
+ "code",
310
+ "mark",
311
+ "ul",
312
+ "ol",
313
+ "li",
314
+ "br",
315
+ "p"
316
+ ];
317
+ const UNSUPPORTED_TAG_REGEX = new RegExp(
318
+ `<(?!/?(?:${SUPPORTED_TAGS.join("|")})\\b)[a-zA-Z][^>]*>[\\s\\S]*?</[a-zA-Z][^>]*>`,
319
+ "gi"
320
+ );
321
+ const ORPHANED_CLOSE_TAG_REGEX = new RegExp(
322
+ `</(?!(?:${SUPPORTED_TAGS.join("|")})\\b)[a-zA-Z][^>]*>`,
323
+ "gi"
324
+ );
325
+ function removeUnsupportedTags(html) {
326
+ let result = html;
327
+ let previous = "";
328
+ while (result !== previous) {
329
+ previous = result;
330
+ result = result.replace(UNSUPPORTED_TAG_REGEX, "");
331
+ }
332
+ result = result.replace(ORPHANED_CLOSE_TAG_REGEX, "");
333
+ return result;
334
+ }
335
+ const UL_REGEX = /<ul(\s[^>]*)?>[\s\S]*?<\/ul>/gi;
336
+ const OL_REGEX = /<ol(\s[^>]*)?>[\s\S]*?<\/ol>/gi;
337
+ const LI_REGEX = /<li(\s[^>]*)?>[\s\S]*?<\/li>/gi;
338
+ const LI_CONTENT_REGEX = /^<li(\s[^>]*)?>|<\/li>$/gi;
339
+ function convertList(listHtml, ordered) {
340
+ const items = listHtml.match(LI_REGEX);
341
+ if (!items) return "";
342
+ return items.map((item, index) => {
343
+ const content = convertInlineTags(
344
+ item.replace(LI_CONTENT_REGEX, "").trim()
345
+ );
346
+ return ordered ? `${index + 1}. ${content}` : `- ${content}`;
347
+ }).join("\n");
348
+ }
349
+ function convertLists(html) {
350
+ let result = html;
351
+ result = result.replace(UL_REGEX, (match) => convertList(match, false));
352
+ result = result.replace(OL_REGEX, (match) => convertList(match, true));
353
+ return result;
354
+ }
355
+ function htmlToMarkdown(value) {
356
+ if (value == null || value === "") {
357
+ return "";
358
+ }
359
+ let result = value;
360
+ result = removeUnsupportedTags(result);
361
+ result = result.replace(P_OPEN_REGEX, "");
362
+ result = result.replace(P_CLOSE_REGEX, "\n");
363
+ result = convertLists(result);
364
+ result = result.replace(BR_REGEX, "\n");
365
+ result = convertInlineTags(result);
366
+ result = decodeEntities(result);
367
+ result = result.replace(/\n+$/, "");
368
+ return result;
369
+ }
370
+
371
+ const code = "_code_1u8e7_1";
372
+ const highlight = "_highlight_1u8e7_2";
373
+ const list = "_list_1u8e7_3";
374
+ const container = "_container_1u8e7_4";
375
+ const styles$d = {
376
+ code: code,
377
+ highlight: highlight,
378
+ list: list,
379
+ container: container
380
+ };
381
+
382
+ const INLINE_REGEX = /\*\*\*(.+?)\*\*\*|\*\*(.+?)\*\*|\*(.+?)\*|==(.+?)==|`(.+?)`/g;
383
+ const UNORDERED_LIST_REGEX = /^- (.+)$/;
384
+ const ORDERED_LIST_REGEX = /^\d+\. (.+)$/;
385
+ function parseInline(text) {
386
+ const parts = [];
387
+ let lastIndex = 0;
388
+ INLINE_REGEX.lastIndex = 0;
389
+ let match;
390
+ while ((match = INLINE_REGEX.exec(text)) !== null) {
391
+ if (match.index > lastIndex) {
392
+ parts.push(text.substring(lastIndex, match.index));
393
+ }
394
+ const key = match.index;
395
+ const savedIndex = INLINE_REGEX.lastIndex;
396
+ if (match[1]) {
397
+ parts.push(
398
+ /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx("em", { children: parseInline(match[1]) }) }, key)
399
+ );
400
+ } else if (match[2]) {
401
+ parts.push(/* @__PURE__ */ jsx("strong", { children: parseInline(match[2]) }, key));
402
+ } else if (match[3]) {
403
+ parts.push(/* @__PURE__ */ jsx("em", { children: parseInline(match[3]) }, key));
404
+ } else if (match[4]) {
405
+ parts.push(
406
+ /* @__PURE__ */ jsx("mark", { className: styles$d.highlight, children: parseInline(match[4]) }, key)
407
+ );
408
+ } else if (match[5]) {
409
+ parts.push(
410
+ /* @__PURE__ */ jsx("code", { className: styles$d.code, children: match[5] }, key)
411
+ );
412
+ }
413
+ INLINE_REGEX.lastIndex = savedIndex;
414
+ lastIndex = savedIndex;
415
+ }
416
+ if (lastIndex < text.length) {
417
+ parts.push(text.substring(lastIndex));
418
+ }
419
+ return parts;
420
+ }
421
+ function parseBlocks(text) {
422
+ const lines = text.split("\n");
423
+ const blocks = [];
424
+ let i = 0;
425
+ while (i < lines.length) {
426
+ const line = lines[i];
427
+ const ulMatch = line.match(UNORDERED_LIST_REGEX);
428
+ const olMatch = line.match(ORDERED_LIST_REGEX);
429
+ if (ulMatch) {
430
+ const items = [ulMatch[1]];
431
+ i++;
432
+ while (i < lines.length) {
433
+ const nextUl = lines[i].match(UNORDERED_LIST_REGEX);
434
+ if (!nextUl) break;
435
+ items.push(nextUl[1]);
436
+ i++;
437
+ }
438
+ blocks.push({ type: "ul", items });
439
+ } else if (olMatch) {
440
+ const items = [olMatch[1]];
441
+ i++;
442
+ while (i < lines.length) {
443
+ const nextOl = lines[i].match(ORDERED_LIST_REGEX);
444
+ if (!nextOl) break;
445
+ items.push(nextOl[1]);
446
+ i++;
447
+ }
448
+ blocks.push({ type: "ol", items });
449
+ } else {
450
+ if (line !== "") {
451
+ blocks.push({ type: "text", content: line });
452
+ }
453
+ i++;
454
+ }
455
+ }
456
+ return blocks;
457
+ }
458
+ function renderBlocks(blocks) {
459
+ return blocks.map((block, index) => {
460
+ switch (block.type) {
461
+ case "text":
462
+ return /* @__PURE__ */ jsx("span", { children: parseInline(block.content) }, index);
463
+ case "ul":
464
+ return /* @__PURE__ */ jsx("ul", { className: styles$d.list, children: block.items.map((item, i) => /* @__PURE__ */ jsx("li", { children: parseInline(item) }, i)) }, index);
465
+ case "ol":
466
+ return /* @__PURE__ */ jsx("ol", { className: styles$d.list, children: block.items.map((item, i) => /* @__PURE__ */ jsx("li", { children: parseInline(item) }, i)) }, index);
467
+ }
468
+ });
469
+ }
470
+ const markdownFormatter = (value) => {
471
+ if (value == null || value === "") {
472
+ return null;
473
+ }
474
+ const blocks = parseBlocks(value);
475
+ if (blocks.length === 1 && blocks[0].type === "text") {
476
+ return /* @__PURE__ */ jsx(Fragment, { children: parseInline(blocks[0].content) });
477
+ }
478
+ return /* @__PURE__ */ jsx("div", { className: styles$d.container, children: renderBlocks(blocks) });
479
+ };
480
+
481
+ const htmlFormatter = (value) => {
482
+ const markdown = htmlToMarkdown(value);
483
+ return markdownFormatter(markdown);
484
+ };
485
+
253
486
  const numberFormatter = (value, options = {}) => {
254
487
  const {
255
488
  locale = "en-US",
@@ -391,6 +624,14 @@ const COLUMN_TYPE_DEFAULTS = {
391
624
  value,
392
625
  options
393
626
  )
627
+ },
628
+ markdown: {
629
+ align: "start",
630
+ createRenderCell: () => (value) => markdownFormatter(value)
631
+ },
632
+ html: {
633
+ align: "start",
634
+ createRenderCell: () => (value) => htmlFormatter(value)
394
635
  }
395
636
  };
396
637
  function resolveColumnTypeConfig(config) {
@@ -3913,36 +4154,35 @@ const getCommonPinningClasses = (column) => {
3913
4154
  const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
3914
4155
  const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
3915
4156
  if (isLastLeftPinnedColumn) {
3916
- return styles$e["last-pinned-left-column"];
4157
+ return styles$f["last-pinned-left-column"];
3917
4158
  }
3918
4159
  if (isFirstRightPinnedColumn) {
3919
- return styles$e["first-pinned-right-column"];
4160
+ return styles$f["first-pinned-right-column"];
3920
4161
  }
3921
4162
  };
3922
4163
 
3923
4164
  const styles$a = {
3924
- "data-table-body-cell-input": "_data-table-body-cell-input_hmeb7_2",
3925
- "data-table-body-cell-editable": "_data-table-body-cell-editable_hmeb7_36",
3926
- "data-table-body-cell-edit-icon": "_data-table-body-cell-edit-icon_hmeb7_36"
4165
+ "data-table-body-cell-input": "_data-table-body-cell-input_wnkkd_2",
4166
+ "data-table-body-cell-editable": "_data-table-body-cell-editable_wnkkd_36",
4167
+ "data-table-body-cell-edit-icon-container": "_data-table-body-cell-edit-icon-container_wnkkd_36"
3927
4168
  };
3928
4169
 
3929
4170
  const DataTableEditableCellEditIcon = () => {
3930
- return /* @__PURE__ */ jsx(
4171
+ return /* @__PURE__ */ jsx("span", { className: styles$a["data-table-body-cell-edit-icon-container"], children: /* @__PURE__ */ jsx(
3931
4172
  Icon,
3932
4173
  {
3933
4174
  svg: SvgEdit,
3934
4175
  size: "small",
3935
4176
  color: "subtle",
3936
- className: styles$a["data-table-body-cell-edit-icon"],
3937
4177
  "aria-label": "Edit cell value"
3938
4178
  }
3939
- );
4179
+ ) });
3940
4180
  };
3941
4181
 
3942
4182
  const TableBodyCell = forwardRef(({ type, children, className, isExpandCell, isSelectCell, ...rest }, ref) => {
3943
- const classes = cx(styles$e["table-body-cell"], className, {
3944
- [styles$e["table-cell-internal-expand"]]: isExpandCell,
3945
- [styles$e["table-cell-internal-select"]]: isSelectCell
4183
+ const classes = cx(styles$f["table-body-cell"], className, {
4184
+ [styles$f["table-cell-internal-expand"]]: isExpandCell,
4185
+ [styles$f["table-cell-internal-select"]]: isSelectCell
3946
4186
  });
3947
4187
  const CellElement = type === "simple" ? "td" : "div";
3948
4188
  return /* @__PURE__ */ jsx(
@@ -3960,19 +4200,19 @@ const TableBodyCell = forwardRef(({ type, children, className, isExpandCell, isS
3960
4200
  TableBodyCell.displayName = "TableBodyCell";
3961
4201
 
3962
4202
  const styles$9 = {
3963
- "data-table-body-cell": "_data-table-body-cell_kmr30_2",
3964
- "data-table-body-cell-input": "_data-table-body-cell-input_kmr30_3",
3965
- "table-body-cell": "_table-body-cell_kmr30_18",
3966
- "table-header-cell": "_table-header-cell_kmr30_19",
3967
- "table-footer-cell": "_table-footer-cell_kmr30_20",
3968
- "data-table-body-cell-editing": "_data-table-body-cell-editing_kmr30_32",
3969
- "data-table-header-cell": "_data-table-header-cell_kmr30_33",
3970
- "data-table-footer-cell": "_data-table-footer-cell_kmr30_36",
3971
- "data-table-body-cell-hovered": "_data-table-body-cell-hovered_kmr30_81",
3972
- "data-table-body-cell-error": "_data-table-body-cell-error_kmr30_84",
3973
- "data-table-body-cell-warning": "_data-table-body-cell-warning_kmr30_99",
3974
- "cell-error-icon": "_cell-error-icon_kmr30_106",
3975
- "cell-warning-icon": "_cell-warning-icon_kmr30_107"
4203
+ "data-table-body-cell": "_data-table-body-cell_l8lyo_2",
4204
+ "data-table-body-cell-input": "_data-table-body-cell-input_l8lyo_3",
4205
+ "table-body-cell": "_table-body-cell_l8lyo_18",
4206
+ "table-header-cell": "_table-header-cell_l8lyo_19",
4207
+ "table-footer-cell": "_table-footer-cell_l8lyo_20",
4208
+ "data-table-body-cell-editing": "_data-table-body-cell-editing_l8lyo_32",
4209
+ "data-table-header-cell": "_data-table-header-cell_l8lyo_33",
4210
+ "data-table-footer-cell": "_data-table-footer-cell_l8lyo_36",
4211
+ "data-table-body-cell-hovered": "_data-table-body-cell-hovered_l8lyo_82",
4212
+ "data-table-body-cell-error": "_data-table-body-cell-error_l8lyo_85",
4213
+ "data-table-body-cell-warning": "_data-table-body-cell-warning_l8lyo_102",
4214
+ "cell-error-icon": "_cell-error-icon_l8lyo_111",
4215
+ "cell-warning-icon": "_cell-warning-icon_l8lyo_112"
3976
4216
  };
3977
4217
 
3978
4218
  function formatCellPositionString(cellPosition) {
@@ -4067,8 +4307,8 @@ function DataTableBodyImmutableCell(props) {
4067
4307
  [styles$9["data-table-body-cell-hovered"]]: isHovered,
4068
4308
  [styles$9["data-table-body-cell-error"]]: !!cellError,
4069
4309
  [styles$9["data-table-body-cell-warning"]]: !cellError && !!cellWarning,
4070
- [styles$e["table-cell-internal-expand"]]: isExpandCell,
4071
- [styles$e["table-cell-internal-select"]]: isSelectCell
4310
+ [styles$f["table-cell-internal-expand"]]: isExpandCell,
4311
+ [styles$f["table-cell-internal-select"]]: isSelectCell
4072
4312
  });
4073
4313
  const commonPinningStyles = useCommonPinningStyles(column);
4074
4314
  const { jumpFocus, moveFocus } = useDTFocusDispatchContext();
@@ -5571,7 +5811,7 @@ function TableFooter({ type, children, ...rest }) {
5571
5811
 
5572
5812
  const TableFooterCell = forwardRef((props, ref) => {
5573
5813
  const { type, children, className, ...rest } = props;
5574
- const classes = cx(styles$e["table-footer-cell"], className);
5814
+ const classes = cx(styles$f["table-footer-cell"], className);
5575
5815
  const CellElement = type === "simple" ? "td" : "div";
5576
5816
  return /* @__PURE__ */ jsx(
5577
5817
  CellElement,
@@ -5838,22 +6078,116 @@ function CellStatus({ status, variant }) {
5838
6078
  ] });
5839
6079
  }
5840
6080
 
6081
+ function resolveHeaderAlign(align, isGroup = false) {
6082
+ if (isGroup) {
6083
+ return "start";
6084
+ }
6085
+ return align ?? "start";
6086
+ }
6087
+ function getHeaderJustifyContent(align) {
6088
+ if (align === "center") {
6089
+ return "center";
6090
+ }
6091
+ if (align === "end") {
6092
+ return "flex-end";
6093
+ }
6094
+ return "flex-start";
6095
+ }
6096
+ function normalizeColumnHeader(columnDef) {
6097
+ return {
6098
+ label: columnDef.header?.label ?? columnDef.headerLabel ?? String(columnDef.id),
6099
+ required: columnDef.header?.required,
6100
+ moreInfo: columnDef.header?.moreInfo
6101
+ };
6102
+ }
6103
+ function renderColumnHeader(header, {
6104
+ align,
6105
+ isGroup = false
6106
+ }) {
6107
+ const resolvedAlign = resolveHeaderAlign(align, isGroup);
6108
+ return /* @__PURE__ */ jsx(
6109
+ "div",
6110
+ {
6111
+ "data-a2-datatable-header-wrapper": "true",
6112
+ "data-a2-datatable-header-align": resolvedAlign,
6113
+ "data-a2-datatable-header-kind": isGroup ? "group" : "leaf",
6114
+ style: {
6115
+ justifyContent: getHeaderJustifyContent(resolvedAlign),
6116
+ maxWidth: "100%",
6117
+ width: "fit-content"
6118
+ },
6119
+ children: /* @__PURE__ */ jsx(
6120
+ "div",
6121
+ {
6122
+ "data-a2-datatable-header-content": "true",
6123
+ style: { maxWidth: "100%", width: "fit-content" },
6124
+ children: /* @__PURE__ */ jsx(
6125
+ FieldLabel,
6126
+ {
6127
+ el: "div",
6128
+ required: header.required,
6129
+ moreInfo: header.moreInfo,
6130
+ style: {
6131
+ maxWidth: "100%",
6132
+ textAlign: resolvedAlign,
6133
+ width: "fit-content"
6134
+ },
6135
+ children: header.label
6136
+ }
6137
+ )
6138
+ }
6139
+ )
6140
+ }
6141
+ );
6142
+ }
6143
+ function renderRawCellValue(value) {
6144
+ if (value === null || value === void 0) {
6145
+ return null;
6146
+ }
6147
+ if (value === "") {
6148
+ return "";
6149
+ }
6150
+ if (typeof value === "string" || typeof value === "number" || typeof value === "bigint") {
6151
+ return value;
6152
+ }
6153
+ if (typeof value === "boolean") {
6154
+ return String(value);
6155
+ }
6156
+ if (typeof value === "symbol") {
6157
+ return value.toString();
6158
+ }
6159
+ if (typeof value === "object" && isValidElement(value)) {
6160
+ return value;
6161
+ }
6162
+ if (Array.isArray(value)) {
6163
+ return value.map((item, index) => /* @__PURE__ */ jsx(Fragment$1, { children: renderRawCellValue(item) }, index));
6164
+ }
6165
+ return String(value);
6166
+ }
5841
6167
  function getTanStackColumnDef({
5842
6168
  columnDef,
5843
6169
  emptyCellContent
5844
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5845
6170
  }) {
5846
6171
  const columnHelper = createColumnHelper();
6172
+ const normalizedHeader = normalizeColumnHeader(columnDef);
5847
6173
  if (columnDef.columns && columnDef.columns.length > 0) {
5848
6174
  return columnHelper.group({
5849
6175
  id: columnDef.id,
5850
- header: columnDef.headerLabel,
6176
+ header: () => renderColumnHeader(normalizedHeader, {
6177
+ align: columnDef.align,
6178
+ isGroup: true
6179
+ }),
5851
6180
  columns: columnDef.columns.map(
5852
6181
  (column) => getTanStackColumnDef({
5853
6182
  columnDef: column,
5854
6183
  emptyCellContent
5855
6184
  })
5856
6185
  ),
6186
+ meta: {
6187
+ columnDef,
6188
+ headerAlign: resolveHeaderAlign(columnDef.align, true),
6189
+ isGroupHeader: true
6190
+ },
5857
6191
  footer: columnDef.footerContent ? () => columnDef.footerContent : void 0,
5858
6192
  enableResizing: columnDef.resizable
5859
6193
  });
@@ -5875,17 +6209,22 @@ function getTanStackColumnDef({
5875
6209
  }
5876
6210
  }
5877
6211
  const resolvedEmptyContent = columnDef.emptyCellContent ?? emptyCellContent ?? /* @__PURE__ */ jsx(TableEmptyCellContent, {});
6212
+ const metaColumnDef = {
6213
+ ...columnDef,
6214
+ headerLabel: normalizedHeader.label
6215
+ };
5878
6216
  return columnHelper.accessor((row) => row[columnDef.id], {
5879
6217
  id: columnDef.id,
5880
6218
  cell: (info) => {
6219
+ const rawCellValue = info.row.original[columnDef.id];
5881
6220
  let cellContent;
5882
6221
  if (resolvedRenderCell) {
5883
- cellContent = resolvedRenderCell(info.getValue(), {
6222
+ cellContent = resolvedRenderCell(rawCellValue, {
5884
6223
  row: info.row.original,
5885
6224
  depth: info.row.depth
5886
6225
  });
5887
6226
  } else {
5888
- cellContent = info.getValue();
6227
+ cellContent = renderRawCellValue(rawCellValue);
5889
6228
  }
5890
6229
  if (cellContent === "") {
5891
6230
  cellContent = resolvedEmptyContent;
@@ -5911,7 +6250,9 @@ function getTanStackColumnDef({
5911
6250
  }
5912
6251
  );
5913
6252
  },
5914
- header: () => /* @__PURE__ */ jsx(Flex, { justifyContent: resolvedAlign, wrap: "wrap", grow: 1, children: columnDef.headerLabel }),
6253
+ header: () => renderColumnHeader(normalizedHeader, {
6254
+ align: resolvedAlign
6255
+ }),
5915
6256
  footer: columnDef.footerContent ? () => columnDef.footerContent : void 0,
5916
6257
  minSize: columnDef.minWidth,
5917
6258
  maxSize: columnDef.maxWidth,
@@ -5920,8 +6261,10 @@ function getTanStackColumnDef({
5920
6261
  meta: {
5921
6262
  editMode: columnDef.editConfig?.mode,
5922
6263
  editConfig: columnDef.editConfig,
5923
- columnDef
6264
+ columnDef: metaColumnDef,
5924
6265
  // Store original for type narrowing
6266
+ headerAlign: resolveHeaderAlign(resolvedAlign),
6267
+ isGroupHeader: false
5925
6268
  },
5926
6269
  // If custom sorting function is provided, use it
5927
6270
  ...columnDef.sortable && typeof columnDef.sortable === "function" ? {
@@ -5967,15 +6310,17 @@ const TableHeaderCell = forwardRef(
5967
6310
  className,
5968
6311
  isGroup,
5969
6312
  isSortable,
6313
+ isInteractiveHeaderCell,
5970
6314
  isSelectCell,
5971
6315
  isExpandCell,
5972
6316
  ...rest
5973
6317
  }, ref) => {
5974
- const classes = cx(styles$e["table-header-cell"], className, {
5975
- [styles$e["table-header-cell-group"]]: isGroup,
5976
- [styles$e["table-header-cell-sortable"]]: isSortable,
5977
- [styles$e["table-cell-internal-expand"]]: isExpandCell,
5978
- [styles$e["table-cell-internal-select"]]: isSelectCell
6318
+ const classes = cx(styles$f["table-header-cell"], className, {
6319
+ [styles$f["table-header-cell-group"]]: isGroup,
6320
+ [styles$f["table-header-cell-sortable"]]: isSortable,
6321
+ [styles$f["table-header-cell-interactive"]]: isInteractiveHeaderCell,
6322
+ [styles$f["table-cell-internal-expand"]]: isExpandCell,
6323
+ [styles$f["table-cell-internal-select"]]: isSelectCell
5979
6324
  });
5980
6325
  const CellElement = type === "simple" ? "th" : "div";
5981
6326
  return /* @__PURE__ */ jsx(
@@ -5993,6 +6338,23 @@ const TableHeaderCell = forwardRef(
5993
6338
  );
5994
6339
  TableHeaderCell.displayName = "TableHeaderCell";
5995
6340
 
6341
+ const INTERACTIVE_DESCENDANT_SELECTOR = [
6342
+ "button",
6343
+ "a[href]",
6344
+ "input",
6345
+ "select",
6346
+ "textarea",
6347
+ '[role="button"]',
6348
+ '[role="link"]',
6349
+ '[contenteditable="true"]'
6350
+ ].join(", ");
6351
+ function isInteractiveDescendant(target, currentTarget) {
6352
+ if (!(target instanceof Element)) {
6353
+ return false;
6354
+ }
6355
+ const interactiveElement = target.closest(INTERACTIVE_DESCENDANT_SELECTOR);
6356
+ return !!interactiveElement && currentTarget.contains(interactiveElement);
6357
+ }
5996
6358
  function DataTableHeaderCellInner(props, forwardedRef) {
5997
6359
  const { cellPosition, children, header, className, ...rest } = props;
5998
6360
  const internalRef = useRef(null);
@@ -6020,7 +6382,7 @@ function DataTableHeaderCellInner(props, forwardedRef) {
6020
6382
  const columnId = header.column.id;
6021
6383
  const isExpandCell = columnId === INTERNAL_ROW_ACTION_PRIMARY_COLUMN_ID;
6022
6384
  const isSelectCell = columnId === INTERNAL_ROW_ACTION_SECONDARY_COLUMN_ID;
6023
- const isSortingCell = header.column.columnDef.enableSorting;
6385
+ const isSortingCell = header.column.getCanSort();
6024
6386
  const handleKeyDown = useCallback(
6025
6387
  (event) => {
6026
6388
  switch (event.key) {
@@ -6052,6 +6414,9 @@ function DataTableHeaderCellInner(props, forwardedRef) {
6052
6414
  }
6053
6415
  case " ":
6054
6416
  case "Enter": {
6417
+ if (isInteractiveDescendant(event.target, event.currentTarget)) {
6418
+ return;
6419
+ }
6055
6420
  const isDisabled = header.column.columnDef.meta?.disableHeaderAction;
6056
6421
  if (isSelectCell && !isDisabled) {
6057
6422
  event.preventDefault();
@@ -6084,18 +6449,20 @@ function DataTableHeaderCellInner(props, forwardedRef) {
6084
6449
  );
6085
6450
  const handleClick = useCallback(
6086
6451
  (event) => {
6087
- if (header.column.columnDef.enableSorting) {
6088
- const target = event.target;
6089
- const resizeHandle = target.closest(
6452
+ if (isSortingCell) {
6453
+ if (!(event.target instanceof Element)) {
6454
+ return;
6455
+ }
6456
+ const resizeHandle = event.target.closest(
6090
6457
  '[aria-roledescription="Resize handle"]'
6091
6458
  );
6092
- if (resizeHandle) {
6459
+ if (resizeHandle || isInteractiveDescendant(event.target, event.currentTarget)) {
6093
6460
  return;
6094
6461
  }
6095
6462
  header.column.getToggleSortingHandler()?.(event);
6096
6463
  }
6097
6464
  },
6098
- [header.column]
6465
+ [header.column, isSortingCell]
6099
6466
  );
6100
6467
  return /* @__PURE__ */ jsxs(
6101
6468
  TableHeaderCell,
@@ -6113,7 +6480,7 @@ function DataTableHeaderCellInner(props, forwardedRef) {
6113
6480
  "aria-sort": header.column.getIsSorted() === "asc" ? "ascending" : header.column.getIsSorted() === "desc" ? "descending" : void 0,
6114
6481
  children: [
6115
6482
  children,
6116
- header.column.columnDef.enableSorting && /* @__PURE__ */ jsxs(SrOnly, { children: [
6483
+ isSortingCell && /* @__PURE__ */ jsxs(SrOnly, { children: [
6117
6484
  header.column.getIsSorted() === "asc" ? "Sorted ascending." : header.column.getIsSorted() === "desc" ? "Sorted descending." : "Not sorted.",
6118
6485
  " ",
6119
6486
  "Click to toggle sort."
@@ -6168,6 +6535,15 @@ function useDTHoverDispatchContext() {
6168
6535
  return useContext(DTHoverDispatchContext);
6169
6536
  }
6170
6537
 
6538
+ function getHeaderContentAlign(align) {
6539
+ if (align === "center") {
6540
+ return "center";
6541
+ }
6542
+ if (align === "end") {
6543
+ return "flex-end";
6544
+ }
6545
+ return "flex-start";
6546
+ }
6171
6547
  function DataTableHeader({ table }) {
6172
6548
  const dispatch = useDTHoverDispatchContext();
6173
6549
  const handleHoverColumn = useCallback(
@@ -6225,6 +6601,13 @@ function DataTableHeader({ table }) {
6225
6601
  const isInternalSelectColumn = header.column.id === INTERNAL_ROW_ACTION_SECONDARY_COLUMN_ID;
6226
6602
  const isInternalExpandColumn = header.column.id === INTERNAL_ROW_ACTION_PRIMARY_COLUMN_ID;
6227
6603
  const gridColumn = header.colSpan > 1 ? `span ${header.colSpan}` : void 0;
6604
+ const headerContentAlign = getHeaderContentAlign(
6605
+ header.column.columnDef.meta?.headerAlign
6606
+ );
6607
+ const isGroupHeader = header.subHeaders.length > 0;
6608
+ const hasGroupDivider = isGroupHeader || Boolean(header.column.parent && isLastInParentGroup);
6609
+ const isHeaderActionDisabled = header.column.columnDef.meta?.disableHeaderAction === true;
6610
+ const headerCellInteractive = !isGroupHeader && (header.column.getCanSort() || (isInternalExpandColumn || isInternalSelectColumn) && !isHeaderActionDisabled);
6228
6611
  return /* @__PURE__ */ jsx(
6229
6612
  DataTableHeaderCell,
6230
6613
  {
@@ -6242,12 +6625,13 @@ function DataTableHeader({ table }) {
6242
6625
  ...getCommonPinningStyles(header.column)
6243
6626
  },
6244
6627
  "aria-colspan": header.colSpan,
6245
- isGroup: "columns" in header.column.columnDef || header.getContext().header.column.parent && isLastInParentGroup,
6246
- isSortable: header.column.columnDef.enableSorting,
6628
+ isGroup: hasGroupDivider,
6629
+ isSortable: header.column.getCanSort(),
6630
+ isInteractiveHeaderCell: headerCellInteractive,
6247
6631
  isSelectCell: isInternalSelectColumn,
6248
6632
  isExpandCell: isInternalExpandColumn,
6249
- onMouseEnter: isInternalExpandColumn || isInternalSelectColumn ? void 0 : () => handleHoverColumn(header.column.id),
6250
- onMouseLeave: isInternalExpandColumn || isInternalSelectColumn ? void 0 : () => handleHoverColumnLeave(header.column.id),
6633
+ onMouseEnter: headerCellInteractive ? () => handleHoverColumn(header.column.id) : void 0,
6634
+ onMouseLeave: headerCellInteractive ? () => handleHoverColumnLeave(header.column.id) : void 0,
6251
6635
  cellPosition: {
6252
6636
  rowIndex: index,
6253
6637
  columnIndex: columnOrder.indexOf(header.column.getIndex())
@@ -6256,22 +6640,46 @@ function DataTableHeader({ table }) {
6256
6640
  Flex,
6257
6641
  {
6258
6642
  direction: "row",
6259
- alignItems: "flex-end",
6643
+ alignItems: "center",
6260
6644
  gap: 2,
6261
6645
  style: {
6262
6646
  width: "100%"
6263
6647
  },
6264
6648
  children: [
6265
- /* @__PURE__ */ jsxs(Flex, { direction: "row", alignItems: "center", gap: 2, grow: 1, children: [
6266
- flexRender(
6267
- header.column.columnDef.header,
6268
- header.getContext()
6269
- ),
6649
+ /* @__PURE__ */ jsxs(
6650
+ Flex,
6270
6651
  {
6271
- asc: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowUpward, size: "small" }),
6272
- desc: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowDownward, size: "small" })
6273
- }[header.column.getIsSorted()] ?? null
6274
- ] }),
6652
+ direction: "row",
6653
+ alignItems: "center",
6654
+ justifyContent: headerContentAlign,
6655
+ gap: 2,
6656
+ grow: 1,
6657
+ style: {
6658
+ minWidth: 0,
6659
+ width: "100%"
6660
+ },
6661
+ children: [
6662
+ flexRender(
6663
+ header.column.columnDef.header,
6664
+ header.getContext()
6665
+ ),
6666
+ header.column.getIsSorted() ? /* @__PURE__ */ jsx(
6667
+ "span",
6668
+ {
6669
+ style: {
6670
+ alignItems: "center",
6671
+ display: "flex",
6672
+ flexShrink: 0
6673
+ },
6674
+ children: {
6675
+ asc: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowUpward, size: "small" }),
6676
+ desc: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowDownward, size: "small" })
6677
+ }[header.column.getIsSorted()] ?? null
6678
+ }
6679
+ ) : null
6680
+ ]
6681
+ }
6682
+ ),
6275
6683
  header.column.columnDef.enableResizing && /* @__PURE__ */ jsx(
6276
6684
  ResizeHandle,
6277
6685
  {
@@ -6295,8 +6703,8 @@ function DataTableHeader({ table }) {
6295
6703
  }
6296
6704
 
6297
6705
  const styles$2 = {
6298
- "table-container": "_table-container_1r348_2",
6299
- "table-scroll-container": "_table-scroll-container_1r348_56"
6706
+ "table-container": "_table-container_z7onx_2",
6707
+ "table-scroll-container": "_table-scroll-container_z7onx_57"
6300
6708
  };
6301
6709
 
6302
6710
  const TableContainer = forwardRef(
@@ -6388,6 +6796,67 @@ const useAsyncData = (dataOrPromise) => {
6388
6796
  return { data: resolvedData, error, isLoading };
6389
6797
  };
6390
6798
 
6799
+ const DEFAULT_CACHE_MAX_SIZE = 15;
6800
+ function usePageDataCache(config) {
6801
+ const { loadPageData, cache: cacheConfig } = config;
6802
+ const cacheEnabled = cacheConfig?.enabled !== false;
6803
+ const cacheMaxSize = cacheConfig?.maxSize ?? DEFAULT_CACHE_MAX_SIZE;
6804
+ const pageCacheRef = useRef(/* @__PURE__ */ new Map());
6805
+ const loadPageDataRef = useRef(loadPageData);
6806
+ loadPageDataRef.current = loadPageData;
6807
+ const generationRef = useRef(0);
6808
+ const prevRefreshKeyRef = useRef(config.refreshKey);
6809
+ const prevRefreshCounterRef = useRef(config.refreshCounter);
6810
+ const prevRowsPerPageRef = useRef(config.rowsPerPage);
6811
+ const prevSortingRef = useRef(config.sorting);
6812
+ if (prevRefreshKeyRef.current !== config.refreshKey || prevRefreshCounterRef.current !== config.refreshCounter || prevRowsPerPageRef.current !== config.rowsPerPage || prevSortingRef.current?.id !== config.sorting?.id || prevSortingRef.current?.desc !== config.sorting?.desc) {
6813
+ pageCacheRef.current = /* @__PURE__ */ new Map();
6814
+ generationRef.current += 1;
6815
+ prevRefreshKeyRef.current = config.refreshKey;
6816
+ prevRefreshCounterRef.current = config.refreshCounter;
6817
+ prevRowsPerPageRef.current = config.rowsPerPage;
6818
+ prevSortingRef.current = config.sorting;
6819
+ }
6820
+ const getOrLoad = useCallback(
6821
+ (pageIndex, pageSize, sorting) => {
6822
+ if (cacheEnabled) {
6823
+ const cached = pageCacheRef.current.get(pageIndex);
6824
+ if (cached) return cached;
6825
+ }
6826
+ const loader = loadPageDataRef.current;
6827
+ if (!loader) return [];
6828
+ const result = loader({ pageIndex, pageSize, sorting });
6829
+ if (!cacheEnabled) return result;
6830
+ const requestGeneration = generationRef.current;
6831
+ if (result instanceof Promise) {
6832
+ return result.then((data) => {
6833
+ if (generationRef.current !== requestGeneration) return data;
6834
+ const cache2 = pageCacheRef.current;
6835
+ if (cache2.size >= cacheMaxSize) {
6836
+ const oldest = cache2.keys().next().value;
6837
+ if (oldest != null) cache2.delete(oldest);
6838
+ }
6839
+ cache2.set(pageIndex, data);
6840
+ return data;
6841
+ });
6842
+ }
6843
+ const cache = pageCacheRef.current;
6844
+ if (cache.size >= cacheMaxSize) {
6845
+ const oldest = cache.keys().next().value;
6846
+ if (oldest != null) cache.delete(oldest);
6847
+ }
6848
+ cache.set(pageIndex, result);
6849
+ return result;
6850
+ },
6851
+ [cacheEnabled, cacheMaxSize]
6852
+ );
6853
+ const clearCache = useCallback(() => {
6854
+ pageCacheRef.current = /* @__PURE__ */ new Map();
6855
+ generationRef.current += 1;
6856
+ }, []);
6857
+ return { getOrLoad, clearCache };
6858
+ }
6859
+
6391
6860
  function DTHoverProvider({ children }) {
6392
6861
  const [state, dispatch] = useReducer(reducer$1, initialState$1);
6393
6862
  return /* @__PURE__ */ jsx(DTHoverStateContext.Provider, { value: state, children: /* @__PURE__ */ jsx(DTHoverDispatchContext.Provider, { value: dispatch, children }) });
@@ -6718,15 +7187,26 @@ function DataTableInner(props, ref) {
6718
7187
  }
6719
7188
  });
6720
7189
  const [refreshCounter, setRefreshCounter] = useState(0);
7190
+ const pageLoader = paginationObject?.loadPageData;
7191
+ const isAsyncPaginated = !!pageLoader && typeof pageLoader === "function";
7192
+ const { getOrLoad, clearCache } = usePageDataCache({
7193
+ loadPageData: pageLoader,
7194
+ cache: paginationObject?.cache,
7195
+ refreshKey,
7196
+ refreshCounter,
7197
+ rowsPerPage,
7198
+ sorting: sorting?.[0]
7199
+ });
6721
7200
  useImperativeHandle(
6722
7201
  ref,
6723
7202
  () => ({
6724
7203
  refresh: () => {
6725
7204
  setRefreshCounter((c) => c + 1);
6726
7205
  setCurrentPageIndex(0);
6727
- }
7206
+ },
7207
+ clearCache
6728
7208
  }),
6729
- [setCurrentPageIndex]
7209
+ [setCurrentPageIndex, clearCache]
6730
7210
  );
6731
7211
  const isFirstRender = useRef(true);
6732
7212
  useEffect(() => {
@@ -6738,17 +7218,11 @@ function DataTableInner(props, ref) {
6738
7218
  setCurrentPageIndex(0);
6739
7219
  }
6740
7220
  }, [refreshKey]);
6741
- const pageLoader = paginationObject?.loadPageData;
6742
- const isAsyncPaginated = !!pageLoader && typeof pageLoader === "function";
6743
7221
  const dataSource = useMemo(() => {
6744
7222
  if (!isAsyncPaginated) {
6745
7223
  return dataProp;
6746
7224
  }
6747
- return pageLoader({
6748
- pageIndex: currentPageIndex ?? 0,
6749
- pageSize: rowsPerPage,
6750
- sorting: sorting?.[0]
6751
- });
7225
+ return getOrLoad(currentPageIndex ?? 0, rowsPerPage, sorting?.[0]);
6752
7226
  }, [
6753
7227
  isAsyncPaginated,
6754
7228
  currentPageIndex,
@@ -6756,6 +7230,7 @@ function DataTableInner(props, ref) {
6756
7230
  dataProp,
6757
7231
  refreshKey,
6758
7232
  refreshCounter,
7233
+ getOrLoad,
6759
7234
  sorting
6760
7235
  ]);
6761
7236
  const {
@@ -7060,8 +7535,7 @@ function DataTableInner(props, ref) {
7060
7535
  }).join(" ");
7061
7536
  vars["--a2-grid-template-columns"] = gridColumns;
7062
7537
  vars["--a2-table-width"] = allHaveMaxWidth ? "max-content" : "100%";
7063
- for (let i = 0; i < headers.length; i++) {
7064
- const header = headers[i];
7538
+ for (const header of headers) {
7065
7539
  vars[`--a2-table-col-${header.column.getIndex()}-size`] = header.column.getSize();
7066
7540
  }
7067
7541
  return vars;
@@ -7183,5 +7657,5 @@ function DataTableInner(props, ref) {
7183
7657
  }
7184
7658
  const DataTable = forwardRef(DataTableInner);
7185
7659
 
7186
- export { COLUMN_TYPE_DEFAULTS as C, DataTable as D, chipsFormatter as a, booleanFormatter as b, createColumnHelper$1 as c, currencyFormatter as d, dateFormatter as e, dateTimeFormatter as f, getColumnTypeDefaults as g, dateFormatPresets as h, timeFormatter as i, numberFormatter as n, percentFormatter as p, resolveColumnTypeConfig as r, timeFormatPresets as t, yearlessDateFormatter as y };
7187
- //# sourceMappingURL=DataTable-BmVPjMMg.js.map
7660
+ export { COLUMN_TYPE_DEFAULTS as C, DataTable as D, chipsFormatter as a, booleanFormatter as b, createColumnHelper$1 as c, currencyFormatter as d, dateFormatter as e, dateTimeFormatter as f, getColumnTypeDefaults as g, htmlFormatter as h, dateFormatPresets as i, timeFormatter as j, markdownFormatter as m, numberFormatter as n, percentFormatter as p, resolveColumnTypeConfig as r, timeFormatPresets as t, yearlessDateFormatter as y };
7661
+ //# sourceMappingURL=DataTable-BCV_mtSy.js.map