admin-ui-starter-kit 0.1.3 → 0.1.4

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 (1944) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +9 -0
  2. package/.agents/skills/component-library-rules/SKILL.md +1 -0
  3. package/.agents/skills/component-library-rules/references/components/INDEX.json +1 -0
  4. package/.agents/skills/component-library-rules/references/components/INDEX.md +1 -0
  5. package/.agents/skills/component-library-rules/references/components/base__buttons.md +18 -6
  6. package/.agents/skills/component-library-rules/references/components/base__combobox.md +1 -1
  7. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  8. package/.agents/skills/component-library-rules/references/components/base__forms.md +10 -7
  9. package/.agents/skills/component-library-rules/references/components/base__item.md +1 -1
  10. package/.agents/skills/component-library-rules/references/components/base__map.md +7 -7
  11. package/.agents/skills/component-library-rules/references/components/base__navigation.md +8 -8
  12. package/.agents/skills/component-library-rules/references/components/base__table.md +2 -2
  13. package/.agents/skills/component-library-rules/references/components/base__typography.md +6 -4
  14. package/.agents/skills/component-library-rules/references/components/composed__ai-elements.md +4 -4
  15. package/.agents/skills/component-library-rules/references/components/composed__api-key-list.md +4 -4
  16. package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +107 -113
  17. package/.agents/skills/component-library-rules/references/components/composed__commerce.md +49 -48
  18. package/.agents/skills/component-library-rules/references/components/composed__navigation.md +6 -2
  19. package/.agents/skills/component-library-rules/references/components/composed__timelines.md +21 -7
  20. package/.agents/skills/component-library-rules/references/components/features__comments.md +12 -4
  21. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +4 -2
  22. package/.agents/skills/component-library-rules/references/components/features__event-log.md +6 -2
  23. package/.agents/skills/component-library-rules/references/components/features__overlays.md +8 -6
  24. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +552 -0
  25. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +2 -2
  26. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +2 -2
  27. package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +7 -7
  28. package/.agents/skills/component-library-rules/references/components/ui__toggles-group.md +7 -7
  29. package/.agents/skills/component-library-rules/references/components/ui__toggles.md +1 -1
  30. package/CHANGELOG.md +27 -1
  31. package/INTEGRATION.md +4 -0
  32. package/MIGRATION.md +5 -1
  33. package/README.md +6 -2
  34. package/dist/_shared/accordion-BnxO7Is4.js +130 -0
  35. package/dist/_shared/accordion-BnxO7Is4.js.map +1 -0
  36. package/dist/_shared/accordion-RIN0MjPz.cjs +2 -0
  37. package/dist/_shared/accordion-RIN0MjPz.cjs.map +1 -0
  38. package/dist/_shared/action-menu-IIO9KtJ2.js +96 -0
  39. package/dist/_shared/action-menu-IIO9KtJ2.js.map +1 -0
  40. package/dist/_shared/action-menu-RAyg3cvM.cjs +2 -0
  41. package/dist/_shared/action-menu-RAyg3cvM.cjs.map +1 -0
  42. package/dist/_shared/ai-artifact--MqIfP-8.js +1068 -0
  43. package/dist/_shared/ai-artifact--MqIfP-8.js.map +1 -0
  44. package/dist/_shared/ai-artifact-D1dBeEz1.cjs +3 -0
  45. package/dist/_shared/ai-artifact-D1dBeEz1.cjs.map +1 -0
  46. package/dist/_shared/alert-D3gRd7RK.cjs +2 -0
  47. package/dist/_shared/alert-D3gRd7RK.cjs.map +1 -0
  48. package/dist/_shared/alert-DQ-tV8b-.js +48 -0
  49. package/dist/_shared/alert-DQ-tV8b-.js.map +1 -0
  50. package/dist/_shared/app-shell-C4d7kCCd.cjs +2 -0
  51. package/dist/_shared/app-shell-C4d7kCCd.cjs.map +1 -0
  52. package/dist/_shared/app-shell-CKxcpPTc.js +94 -0
  53. package/dist/_shared/app-shell-CKxcpPTc.js.map +1 -0
  54. package/dist/_shared/avatar-0spfQEHG.cjs +2 -0
  55. package/dist/_shared/avatar-0spfQEHG.cjs.map +1 -0
  56. package/dist/_shared/avatar-CBi4LGxy.js +52 -0
  57. package/dist/_shared/avatar-CBi4LGxy.js.map +1 -0
  58. package/dist/_shared/badge-BK5VvEgg.js +108 -0
  59. package/dist/_shared/badge-BK5VvEgg.js.map +1 -0
  60. package/dist/_shared/badge-kS_XtN-z.cjs +2 -0
  61. package/dist/_shared/badge-kS_XtN-z.cjs.map +1 -0
  62. package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs +2 -0
  63. package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs.map +1 -0
  64. package/dist/_shared/breadcrumbs-bJ-J0oCd.js +111 -0
  65. package/dist/_shared/breadcrumbs-bJ-J0oCd.js.map +1 -0
  66. package/dist/_shared/button-683R5quQ.js +46 -0
  67. package/dist/_shared/button-683R5quQ.js.map +1 -0
  68. package/dist/_shared/button-CjZrRLzR.cjs +2 -0
  69. package/dist/_shared/button-CjZrRLzR.cjs.map +1 -0
  70. package/dist/_shared/button-LZWDn-aU.cjs +2 -0
  71. package/dist/_shared/button-LZWDn-aU.cjs.map +1 -0
  72. package/dist/_shared/button-cnkCF8q8.js +177 -0
  73. package/dist/_shared/button-cnkCF8q8.js.map +1 -0
  74. package/dist/_shared/buttons-DHV2eZAf.cjs +2 -0
  75. package/dist/_shared/buttons-DHV2eZAf.cjs.map +1 -0
  76. package/dist/_shared/buttons-ehfMSkwP.js +143 -0
  77. package/dist/_shared/buttons-ehfMSkwP.js.map +1 -0
  78. package/dist/_shared/card-radio-group-Bf03M6c5.js +158 -0
  79. package/dist/_shared/card-radio-group-Bf03M6c5.js.map +1 -0
  80. package/dist/_shared/card-radio-group-SqPUL0Je.cjs +2 -0
  81. package/dist/_shared/card-radio-group-SqPUL0Je.cjs.map +1 -0
  82. package/dist/_shared/chunk-CMqjfN_6.cjs +1 -0
  83. package/dist/_shared/combobox-Cvs70ic4.js +808 -0
  84. package/dist/_shared/combobox-Cvs70ic4.js.map +1 -0
  85. package/dist/_shared/combobox-Dos9YWjk.cjs +2 -0
  86. package/dist/_shared/combobox-Dos9YWjk.cjs.map +1 -0
  87. package/dist/_shared/command-Bxe_FmGD.cjs +2 -0
  88. package/dist/_shared/command-Bxe_FmGD.cjs.map +1 -0
  89. package/dist/_shared/command-CAI-BCSR.js +123 -0
  90. package/dist/_shared/command-CAI-BCSR.js.map +1 -0
  91. package/dist/_shared/command-DRIySU26.cjs +2 -0
  92. package/dist/_shared/command-DRIySU26.cjs.map +1 -0
  93. package/dist/_shared/command-DwRnPIGs.js +39 -0
  94. package/dist/_shared/command-DwRnPIGs.js.map +1 -0
  95. package/dist/_shared/comments-DD2aeZVz.js +946 -0
  96. package/dist/_shared/comments-DD2aeZVz.js.map +1 -0
  97. package/dist/_shared/comments-DzwU4sNE.cjs +2 -0
  98. package/dist/_shared/comments-DzwU4sNE.cjs.map +1 -0
  99. package/dist/_shared/containers-D7oZE4XI.cjs +2 -0
  100. package/dist/_shared/containers-D7oZE4XI.cjs.map +1 -0
  101. package/dist/_shared/containers-anBivbL9.js +19 -0
  102. package/dist/_shared/containers-anBivbL9.js.map +1 -0
  103. package/dist/_shared/content-container-CVUJCLhn.cjs +2 -0
  104. package/dist/_shared/content-container-CVUJCLhn.cjs.map +1 -0
  105. package/dist/_shared/content-container-Dv8XsAw4.js +33 -0
  106. package/dist/_shared/content-container-Dv8XsAw4.js.map +1 -0
  107. package/dist/_shared/copyable-D7WhgEzJ.js +38 -0
  108. package/dist/_shared/copyable-D7WhgEzJ.js.map +1 -0
  109. package/dist/_shared/copyable-DDjT505-.cjs +2 -0
  110. package/dist/_shared/copyable-DDjT505-.cjs.map +1 -0
  111. package/dist/_shared/date-picker-3G3C-sIq.cjs +2 -0
  112. package/dist/_shared/date-picker-3G3C-sIq.cjs.map +1 -0
  113. package/dist/_shared/date-picker-7yuMHPYs.js +1362 -0
  114. package/dist/_shared/date-picker-7yuMHPYs.js.map +1 -0
  115. package/dist/_shared/date-pickers-B_VUgjvY.cjs +2 -0
  116. package/dist/_shared/date-pickers-B_VUgjvY.cjs.map +1 -0
  117. package/dist/_shared/date-pickers-DZXi0di0.js +330 -0
  118. package/dist/_shared/date-pickers-DZXi0di0.js.map +1 -0
  119. package/dist/_shared/dialog-A95-614f.js +101 -0
  120. package/dist/_shared/dialog-A95-614f.js.map +1 -0
  121. package/dist/_shared/dialog-ivDByBmO.cjs +2 -0
  122. package/dist/_shared/dialog-ivDByBmO.cjs.map +1 -0
  123. package/dist/_shared/display-Cuj4td-V.js +1237 -0
  124. package/dist/_shared/display-Cuj4td-V.js.map +1 -0
  125. package/dist/_shared/display-D2q93jiS.cjs +8 -0
  126. package/dist/_shared/display-D2q93jiS.cjs.map +1 -0
  127. package/dist/_shared/dropdown-menu-CHQzQWUK.cjs +2 -0
  128. package/dist/_shared/dropdown-menu-CHQzQWUK.cjs.map +1 -0
  129. package/dist/_shared/dropdown-menu-CoWmrjYX.js +147 -0
  130. package/dist/_shared/dropdown-menu-CoWmrjYX.js.map +1 -0
  131. package/dist/_shared/form-field-BNuCBym1.js +319 -0
  132. package/dist/_shared/form-field-BNuCBym1.js.map +1 -0
  133. package/dist/_shared/form-field-C4fQYsqv.cjs +2 -0
  134. package/dist/_shared/form-field-C4fQYsqv.cjs.map +1 -0
  135. package/dist/_shared/form-sizing-D74IS9KG.js +21 -0
  136. package/dist/_shared/form-sizing-D74IS9KG.js.map +1 -0
  137. package/dist/_shared/form-sizing-aVwVuF-w.cjs +2 -0
  138. package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +1 -0
  139. package/dist/_shared/format-BTtJC6oz.cjs +2 -0
  140. package/dist/_shared/format-BTtJC6oz.cjs.map +1 -0
  141. package/dist/_shared/format-BX3QestD.js +48 -0
  142. package/dist/_shared/format-BX3QestD.js.map +1 -0
  143. package/dist/_shared/forms-BV4fHeRx.cjs +2 -0
  144. package/dist/_shared/forms-BV4fHeRx.cjs.map +1 -0
  145. package/dist/_shared/forms-DjAdYxme.js +3378 -0
  146. package/dist/_shared/forms-DjAdYxme.js.map +1 -0
  147. package/dist/_shared/header-D4Oz-mCv.cjs +2 -0
  148. package/dist/_shared/header-D4Oz-mCv.cjs.map +1 -0
  149. package/dist/_shared/header-X5DZ8vmO.js +360 -0
  150. package/dist/_shared/header-X5DZ8vmO.js.map +1 -0
  151. package/dist/_shared/heading-C7mNh03X.cjs +2 -0
  152. package/dist/_shared/heading-C7mNh03X.cjs.map +1 -0
  153. package/dist/_shared/heading-CrNpYcUr.js +39 -0
  154. package/dist/_shared/heading-CrNpYcUr.js.map +1 -0
  155. package/dist/_shared/hooks-CKXPg30g.js +118 -0
  156. package/dist/_shared/hooks-CKXPg30g.js.map +1 -0
  157. package/dist/_shared/hooks-CTiEImZp.cjs +2 -0
  158. package/dist/_shared/hooks-CTiEImZp.cjs.map +1 -0
  159. package/dist/_shared/icon-badge-BAWl1oOe.cjs +2 -0
  160. package/dist/_shared/icon-badge-BAWl1oOe.cjs.map +1 -0
  161. package/dist/_shared/icon-badge-zTBVtgt9.js +52 -0
  162. package/dist/_shared/icon-badge-zTBVtgt9.js.map +1 -0
  163. package/dist/_shared/input-Cw2uICc1.cjs +2 -0
  164. package/dist/_shared/input-Cw2uICc1.cjs.map +1 -0
  165. package/dist/_shared/input-D43_IMWW.cjs +2 -0
  166. package/dist/_shared/input-D43_IMWW.cjs.map +1 -0
  167. package/dist/_shared/input-DJo8d1Rr.js +182 -0
  168. package/dist/_shared/input-DJo8d1Rr.js.map +1 -0
  169. package/dist/_shared/input-R8c90tNY.js +17 -0
  170. package/dist/_shared/input-R8c90tNY.js.map +1 -0
  171. package/dist/_shared/item-BxlP5TO3.js +224 -0
  172. package/dist/_shared/item-BxlP5TO3.js.map +1 -0
  173. package/dist/_shared/item-X18HIqR7.cjs +2 -0
  174. package/dist/_shared/item-X18HIqR7.cjs.map +1 -0
  175. package/dist/_shared/mentions-DE9aDOMu.cjs +2 -0
  176. package/dist/_shared/mentions-DE9aDOMu.cjs.map +1 -0
  177. package/dist/_shared/mentions-DjjYmMLc.js +493 -0
  178. package/dist/_shared/mentions-DjjYmMLc.js.map +1 -0
  179. package/dist/_shared/metadata-C5MSNo7y.js +236 -0
  180. package/dist/_shared/metadata-C5MSNo7y.js.map +1 -0
  181. package/dist/_shared/metadata-Cw3Kj2Ug.cjs +2 -0
  182. package/dist/_shared/metadata-Cw3Kj2Ug.cjs.map +1 -0
  183. package/dist/_shared/money-display-B7AKxxNt.js +198 -0
  184. package/dist/_shared/money-display-B7AKxxNt.js.map +1 -0
  185. package/dist/_shared/money-display-E22wbM21.cjs +2 -0
  186. package/dist/_shared/money-display-E22wbM21.cjs.map +1 -0
  187. package/dist/_shared/navigation-B9VAXqLL.cjs +2 -0
  188. package/dist/_shared/navigation-B9VAXqLL.cjs.map +1 -0
  189. package/dist/_shared/navigation-CxoJVgfo.js +420 -0
  190. package/dist/_shared/navigation-CxoJVgfo.js.map +1 -0
  191. package/dist/_shared/overlays-C-T8RnJz.cjs +2 -0
  192. package/dist/_shared/overlays-C-T8RnJz.cjs.map +1 -0
  193. package/dist/_shared/overlays-DfRsQzD3.js +633 -0
  194. package/dist/_shared/overlays-DfRsQzD3.js.map +1 -0
  195. package/dist/_shared/page-C4jEULwi.js +263 -0
  196. package/dist/_shared/page-C4jEULwi.js.map +1 -0
  197. package/dist/_shared/page-DX3pA_tJ.cjs +2 -0
  198. package/dist/_shared/page-DX3pA_tJ.cjs.map +1 -0
  199. package/dist/_shared/popover-CaHvG8Vj.cjs +2 -0
  200. package/dist/_shared/popover-CaHvG8Vj.cjs.map +1 -0
  201. package/dist/_shared/popover-L37RqoRO.js +83 -0
  202. package/dist/_shared/popover-L37RqoRO.js.map +1 -0
  203. package/dist/_shared/popover-menu-CVAr985u.js +95 -0
  204. package/dist/_shared/popover-menu-CVAr985u.js.map +1 -0
  205. package/dist/_shared/popover-menu-Cq-LnAMh.cjs +2 -0
  206. package/dist/_shared/popover-menu-Cq-LnAMh.cjs.map +1 -0
  207. package/dist/_shared/rich-text-editor-C3gVBm-v.cjs +2 -0
  208. package/dist/_shared/rich-text-editor-C3gVBm-v.cjs.map +1 -0
  209. package/dist/_shared/rich-text-editor-Cylb-lkv.js +616 -0
  210. package/dist/_shared/rich-text-editor-Cylb-lkv.js.map +1 -0
  211. package/dist/_shared/scroll-area-BH5CPQh4.js +41 -0
  212. package/dist/_shared/scroll-area-BH5CPQh4.js.map +1 -0
  213. package/dist/_shared/scroll-area-u46BOVcC.cjs +2 -0
  214. package/dist/_shared/scroll-area-u46BOVcC.cjs.map +1 -0
  215. package/dist/_shared/select-BwUUXpsb.js +85 -0
  216. package/dist/_shared/select-BwUUXpsb.js.map +1 -0
  217. package/dist/_shared/select-CG5Yq-6A.cjs +2 -0
  218. package/dist/_shared/select-CG5Yq-6A.cjs.map +1 -0
  219. package/dist/_shared/separator-B8FBp-7E.js +16 -0
  220. package/dist/_shared/separator-B8FBp-7E.js.map +1 -0
  221. package/dist/_shared/separator-q42IlFFA.cjs +2 -0
  222. package/dist/_shared/separator-q42IlFFA.cjs.map +1 -0
  223. package/dist/_shared/sheet-BKEfwhCn.js +100 -0
  224. package/dist/_shared/sheet-BKEfwhCn.js.map +1 -0
  225. package/dist/_shared/sheet-D4yWgkwC.cjs +2 -0
  226. package/dist/_shared/sheet-D4yWgkwC.cjs.map +1 -0
  227. package/dist/_shared/sidebar-BeWLjIRR.js +537 -0
  228. package/dist/_shared/sidebar-BeWLjIRR.js.map +1 -0
  229. package/dist/_shared/sidebar-Bl_KRk-S.cjs +2 -0
  230. package/dist/_shared/sidebar-Bl_KRk-S.cjs.map +1 -0
  231. package/dist/_shared/sidebar-DzzdJ2xk.cjs +2 -0
  232. package/dist/_shared/sidebar-DzzdJ2xk.cjs.map +1 -0
  233. package/dist/_shared/sidebar-ux-yk-Ph.js +382 -0
  234. package/dist/_shared/sidebar-ux-yk-Ph.js.map +1 -0
  235. package/dist/_shared/skeleton-CGQMeno1.js +14 -0
  236. package/dist/_shared/skeleton-CGQMeno1.js.map +1 -0
  237. package/dist/_shared/skeleton-D1c5OHXa.cjs +2 -0
  238. package/dist/_shared/skeleton-D1c5OHXa.cjs.map +1 -0
  239. package/dist/_shared/slot-C5EJicOc.js +18 -0
  240. package/dist/_shared/slot-C5EJicOc.js.map +1 -0
  241. package/dist/_shared/slot-D-Rwlrz2.cjs +2 -0
  242. package/dist/_shared/slot-D-Rwlrz2.cjs.map +1 -0
  243. package/dist/_shared/smart-card-DL7esK_y.cjs +2 -0
  244. package/dist/_shared/smart-card-DL7esK_y.cjs.map +1 -0
  245. package/dist/_shared/smart-card-eBfUvQ9r.js +360 -0
  246. package/dist/_shared/smart-card-eBfUvQ9r.js.map +1 -0
  247. package/dist/_shared/spinner-Bvjs1ybK.cjs +2 -0
  248. package/dist/_shared/spinner-Bvjs1ybK.cjs.map +1 -0
  249. package/dist/_shared/spinner-XcfVYbbp.js +67 -0
  250. package/dist/_shared/spinner-XcfVYbbp.js.map +1 -0
  251. package/dist/_shared/switch-BBP3u1z5.js +55 -0
  252. package/dist/_shared/switch-BBP3u1z5.js.map +1 -0
  253. package/dist/_shared/switch-zFZhhOEP.cjs +2 -0
  254. package/dist/_shared/switch-zFZhhOEP.cjs.map +1 -0
  255. package/dist/_shared/text-DzKt9cyb.cjs +2 -0
  256. package/dist/_shared/text-DzKt9cyb.cjs.map +1 -0
  257. package/dist/_shared/text-qsEg5GdP.js +74 -0
  258. package/dist/_shared/text-qsEg5GdP.js.map +1 -0
  259. package/dist/_shared/textarea-BAKapsLQ.cjs +2 -0
  260. package/dist/_shared/textarea-BAKapsLQ.cjs.map +1 -0
  261. package/dist/_shared/textarea-Bfv1KxBm.js +119 -0
  262. package/dist/_shared/textarea-Bfv1KxBm.js.map +1 -0
  263. package/dist/_shared/tooltip-CLr_sPX8.js +49 -0
  264. package/dist/_shared/tooltip-CLr_sPX8.js.map +1 -0
  265. package/dist/_shared/tooltip-mvxZV_Lu.cjs +2 -0
  266. package/dist/_shared/tooltip-mvxZV_Lu.cjs.map +1 -0
  267. package/dist/_shared/typography-4CSyoCj9.js +102 -0
  268. package/dist/_shared/typography-4CSyoCj9.js.map +1 -0
  269. package/dist/_shared/typography-DKn7P4wX.cjs +2 -0
  270. package/dist/_shared/typography-DKn7P4wX.cjs.map +1 -0
  271. package/dist/_shared/ui-provider-CQJ1glwN.js +85 -0
  272. package/dist/_shared/ui-provider-CQJ1glwN.js.map +1 -0
  273. package/dist/_shared/ui-provider-RIYE7O_V.cjs +2 -0
  274. package/dist/_shared/ui-provider-RIYE7O_V.cjs.map +1 -0
  275. package/dist/components/base/accordion/index.cjs +1 -1
  276. package/dist/components/base/accordion/index.js +2 -2
  277. package/dist/components/base/badge/badge.d.ts +1 -1
  278. package/dist/components/base/badge/badge.d.ts.map +1 -1
  279. package/dist/components/base/badge/index.cjs +1 -1
  280. package/dist/components/base/badge/index.js +1 -1
  281. package/dist/components/base/buttons/google-button.d.ts +1 -1
  282. package/dist/components/base/buttons/google-button.d.ts.map +1 -1
  283. package/dist/components/base/buttons/index.cjs +1 -1
  284. package/dist/components/base/buttons/index.js +2 -2
  285. package/dist/components/base/buttons/shopify-button.d.ts +1 -1
  286. package/dist/components/base/buttons/shopify-button.d.ts.map +1 -1
  287. package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
  288. package/dist/components/base/cards/index.cjs +1 -1
  289. package/dist/components/base/cards/index.js +1 -1
  290. package/dist/components/base/cards/partials/card-primitives.d.ts +6 -6
  291. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
  292. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +1 -1
  293. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts.map +1 -1
  294. package/dist/components/base/cards/partials/smart-card-alert.d.ts +1 -1
  295. package/dist/components/base/cards/partials/smart-card-alert.d.ts.map +1 -1
  296. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +1 -1
  297. package/dist/components/base/cards/partials/smart-card-header-row.d.ts.map +1 -1
  298. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +1 -1
  299. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts.map +1 -1
  300. package/dist/components/base/cards/smart-card.tokens.d.ts +1 -1
  301. package/dist/components/base/combobox/combobox.strings.d.ts.map +1 -1
  302. package/dist/components/base/combobox/components/highlighted-text.d.ts.map +1 -1
  303. package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -1
  304. package/dist/components/base/combobox/index.cjs +1 -1
  305. package/dist/components/base/combobox/index.js +1 -1
  306. package/dist/components/base/combobox/types.d.ts +2 -0
  307. package/dist/components/base/combobox/types.d.ts.map +1 -1
  308. package/dist/components/base/command/command.d.ts +5 -5
  309. package/dist/components/base/command/command.d.ts.map +1 -1
  310. package/dist/components/base/command/index.cjs +1 -1
  311. package/dist/components/base/command/index.js +2 -2
  312. package/dist/components/base/copyable/copyable.d.ts +1 -1
  313. package/dist/components/base/copyable/copyable.d.ts.map +1 -1
  314. package/dist/components/base/copyable/index.cjs +1 -1
  315. package/dist/components/base/copyable/index.js +1 -1
  316. package/dist/components/base/currency/currency-pair-preview.d.ts +1 -1
  317. package/dist/components/base/currency/currency-pair-preview.d.ts.map +1 -1
  318. package/dist/components/base/currency/index.cjs +1 -1
  319. package/dist/components/base/currency/index.js +1 -1
  320. package/dist/components/base/date-pickers/date-picker-footer.d.ts +2 -1
  321. package/dist/components/base/date-pickers/date-picker-footer.d.ts.map +1 -1
  322. package/dist/components/base/date-pickers/date-picker-header.d.ts +1 -1
  323. package/dist/components/base/date-pickers/date-picker-header.d.ts.map +1 -1
  324. package/dist/components/base/date-pickers/date-picker-helpers.d.ts +5 -1
  325. package/dist/components/base/date-pickers/date-picker-helpers.d.ts.map +1 -1
  326. package/dist/components/base/date-pickers/date-picker.d.ts +2 -1
  327. package/dist/components/base/date-pickers/date-picker.d.ts.map +1 -1
  328. package/dist/components/base/date-pickers/date-range-picker.d.ts +2 -1
  329. package/dist/components/base/date-pickers/date-range-picker.d.ts.map +1 -1
  330. package/dist/components/base/date-pickers/index.cjs +1 -1
  331. package/dist/components/base/date-pickers/index.js +3 -3
  332. package/dist/components/base/date-pickers/month-year-picker.d.ts +2 -1
  333. package/dist/components/base/date-pickers/month-year-picker.d.ts.map +1 -1
  334. package/dist/components/base/date-pickers/segmented-time-input.d.ts +2 -1
  335. package/dist/components/base/date-pickers/segmented-time-input.d.ts.map +1 -1
  336. package/dist/components/base/display/boolean-indicator.d.ts +1 -1
  337. package/dist/components/base/display/boolean-indicator.d.ts.map +1 -1
  338. package/dist/components/base/display/date-block.d.ts +1 -1
  339. package/dist/components/base/display/date-block.d.ts.map +1 -1
  340. package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts +1 -1
  341. package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts.map +1 -1
  342. package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -1
  343. package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts.map +1 -1
  344. package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts +1 -1
  345. package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts.map +1 -1
  346. package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -1
  347. package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts.map +1 -1
  348. package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts +1 -1
  349. package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts.map +1 -1
  350. package/dist/components/base/display/fields/email-display.d.ts +1 -1
  351. package/dist/components/base/display/fields/email-display.d.ts.map +1 -1
  352. package/dist/components/base/display/fields/phone-display.d.ts +1 -1
  353. package/dist/components/base/display/fields/phone-display.d.ts.map +1 -1
  354. package/dist/components/base/display/fields/url-display.d.ts +1 -1
  355. package/dist/components/base/display/fields/url-display.d.ts.map +1 -1
  356. package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
  357. package/dist/components/base/display/icon-badge/icon-badge.d.ts.map +1 -1
  358. package/dist/components/base/display/index.cjs +1 -1
  359. package/dist/components/base/display/index.js +12 -12
  360. package/dist/components/base/display/inline-stat/inline-stat.d.ts +1 -1
  361. package/dist/components/base/display/inline-stat/inline-stat.d.ts.map +1 -1
  362. package/dist/components/base/display/metadata/index.cjs +1 -1
  363. package/dist/components/base/display/metadata/index.js +1 -1
  364. package/dist/components/base/display/metadata/metadata-list.d.ts +1 -1
  365. package/dist/components/base/display/metadata/metadata-list.d.ts.map +1 -1
  366. package/dist/components/base/display/money-display.d.ts +1 -1
  367. package/dist/components/base/display/money-display.d.ts.map +1 -1
  368. package/dist/components/base/display/money-input.d.ts +1 -1
  369. package/dist/components/base/display/money-input.d.ts.map +1 -1
  370. package/dist/components/base/display/notification-banner.d.ts +1 -1
  371. package/dist/components/base/display/notification-banner.d.ts.map +1 -1
  372. package/dist/components/base/display/numeric-value/numeric-value.d.ts +1 -1
  373. package/dist/components/base/display/numeric-value/numeric-value.d.ts.map +1 -1
  374. package/dist/components/base/display/placeholder-pattern.d.ts +1 -1
  375. package/dist/components/base/display/placeholder-pattern.d.ts.map +1 -1
  376. package/dist/components/base/display/qr-code.d.ts +1 -1
  377. package/dist/components/base/display/qr-code.d.ts.map +1 -1
  378. package/dist/components/base/display/section-header/section-header.d.ts +1 -1
  379. package/dist/components/base/display/section-header/section-header.d.ts.map +1 -1
  380. package/dist/components/base/display/stacked-avatars.d.ts +1 -1
  381. package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
  382. package/dist/components/base/display/throttle-alert.d.ts +1 -1
  383. package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
  384. package/dist/components/base/display/user-cell/user-cell.d.ts +1 -1
  385. package/dist/components/base/display/user-cell/user-cell.d.ts.map +1 -1
  386. package/dist/components/base/display/visually-hidden.d.ts +1 -1
  387. package/dist/components/base/display/visually-hidden.d.ts.map +1 -1
  388. package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts +1 -1
  389. package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts.map +1 -1
  390. package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts +1 -1
  391. package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts.map +1 -1
  392. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts +1 -1
  393. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -1
  394. package/dist/components/base/event-calendar/event-calendar-header.d.ts +1 -1
  395. package/dist/components/base/event-calendar/event-calendar-header.d.ts.map +1 -1
  396. package/dist/components/base/event-calendar/event-calendar-legend.d.ts +1 -1
  397. package/dist/components/base/event-calendar/event-calendar-legend.d.ts.map +1 -1
  398. package/dist/components/base/event-calendar/event-calendar.d.ts +1 -1
  399. package/dist/components/base/event-calendar/event-calendar.d.ts.map +1 -1
  400. package/dist/components/base/event-calendar/index.cjs +1 -1
  401. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  402. package/dist/components/base/event-calendar/index.js +12 -12
  403. package/dist/components/base/event-calendar/index.js.map +1 -1
  404. package/dist/components/base/forms/fields/avatar-upload.d.ts.map +1 -1
  405. package/dist/components/base/forms/fields/card-checkbox-group.d.ts +1 -1
  406. package/dist/components/base/forms/fields/card-checkbox-group.d.ts.map +1 -1
  407. package/dist/components/base/forms/fields/card-radio-group.d.ts +1 -1
  408. package/dist/components/base/forms/fields/card-radio-group.d.ts.map +1 -1
  409. package/dist/components/base/forms/fields/coordinates-input.d.ts +1 -1
  410. package/dist/components/base/forms/fields/coordinates-input.d.ts.map +1 -1
  411. package/dist/components/base/forms/fields/date-time-input.d.ts +1 -1
  412. package/dist/components/base/forms/fields/date-time-input.d.ts.map +1 -1
  413. package/dist/components/base/forms/fields/dimensions-input.d.ts +1 -1
  414. package/dist/components/base/forms/fields/dimensions-input.d.ts.map +1 -1
  415. package/dist/components/base/forms/fields/key-value-editor.d.ts +1 -1
  416. package/dist/components/base/forms/fields/key-value-editor.d.ts.map +1 -1
  417. package/dist/components/base/forms/fields/list-radio-group.d.ts +1 -1
  418. package/dist/components/base/forms/fields/list-radio-group.d.ts.map +1 -1
  419. package/dist/components/base/forms/fields/list.d.ts +1 -1
  420. package/dist/components/base/forms/fields/list.d.ts.map +1 -1
  421. package/dist/components/base/forms/fields/localized-object-field.d.ts +1 -1
  422. package/dist/components/base/forms/fields/localized-object-field.d.ts.map +1 -1
  423. package/dist/components/base/forms/fields/localized-string-field.d.ts +1 -1
  424. package/dist/components/base/forms/fields/localized-string-field.d.ts.map +1 -1
  425. package/dist/components/base/forms/fields/localized-string-repeater.d.ts +1 -1
  426. package/dist/components/base/forms/fields/localized-string-repeater.d.ts.map +1 -1
  427. package/dist/components/base/forms/fields/media-gallery.d.ts +1 -1
  428. package/dist/components/base/forms/fields/media-gallery.d.ts.map +1 -1
  429. package/dist/components/base/forms/fields/object-repeater.d.ts +1 -1
  430. package/dist/components/base/forms/fields/object-repeater.d.ts.map +1 -1
  431. package/dist/components/base/forms/fields/pill-radio-group.d.ts +11 -1
  432. package/dist/components/base/forms/fields/pill-radio-group.d.ts.map +1 -1
  433. package/dist/components/base/forms/fields/repeater.d.ts +1 -1
  434. package/dist/components/base/forms/fields/repeater.d.ts.map +1 -1
  435. package/dist/components/base/forms/fields/rounding-mode-select.d.ts +1 -1
  436. package/dist/components/base/forms/fields/rounding-mode-select.d.ts.map +1 -1
  437. package/dist/components/base/forms/fields/string-repeater.d.ts +1 -1
  438. package/dist/components/base/forms/fields/string-repeater.d.ts.map +1 -1
  439. package/dist/components/base/forms/fields/switch-card.d.ts +2 -1
  440. package/dist/components/base/forms/fields/switch-card.d.ts.map +1 -1
  441. package/dist/components/base/forms/fields/switch.d.ts.map +1 -1
  442. package/dist/components/base/forms/fields/tags-input.d.ts +1 -1
  443. package/dist/components/base/forms/fields/tags-input.d.ts.map +1 -1
  444. package/dist/components/base/forms/fields/time-picker.d.ts +2 -1
  445. package/dist/components/base/forms/fields/time-picker.d.ts.map +1 -1
  446. package/dist/components/base/forms/fields/toggle-field.d.ts +1 -1
  447. package/dist/components/base/forms/fields/toggle-field.d.ts.map +1 -1
  448. package/dist/components/base/forms/fields/upload-progress-list.d.ts +1 -1
  449. package/dist/components/base/forms/fields/upload-progress-list.d.ts.map +1 -1
  450. package/dist/components/base/forms/fields/weight-input.d.ts +2 -1
  451. package/dist/components/base/forms/fields/weight-input.d.ts.map +1 -1
  452. package/dist/components/base/forms/form-field.d.ts +63 -2
  453. package/dist/components/base/forms/form-field.d.ts.map +1 -1
  454. package/dist/components/base/forms/index.cjs +1 -1
  455. package/dist/components/base/forms/index.js +6 -6
  456. package/dist/components/base/forms/operation-password-form.d.ts +1 -1
  457. package/dist/components/base/forms/operation-password-form.d.ts.map +1 -1
  458. package/dist/components/base/item/index.cjs +1 -1
  459. package/dist/components/base/item/index.js +1 -1
  460. package/dist/components/base/map/index.cjs +1 -1
  461. package/dist/components/base/map/index.cjs.map +1 -1
  462. package/dist/components/base/map/index.js +104 -85
  463. package/dist/components/base/map/index.js.map +1 -1
  464. package/dist/components/base/map/map.d.ts +31 -30
  465. package/dist/components/base/map/map.d.ts.map +1 -1
  466. package/dist/components/base/map/place-autocomplete.d.ts +1 -1
  467. package/dist/components/base/map/place-autocomplete.d.ts.map +1 -1
  468. package/dist/components/base/navigation/action-menu.d.ts +1 -1
  469. package/dist/components/base/navigation/aside-navigation-menu.d.ts +1 -1
  470. package/dist/components/base/navigation/aside-navigation-menu.d.ts.map +1 -1
  471. package/dist/components/base/navigation/breadcrumbs.d.ts +1 -1
  472. package/dist/components/base/navigation/breadcrumbs.d.ts.map +1 -1
  473. package/dist/components/base/navigation/index.cjs +1 -1
  474. package/dist/components/base/navigation/index.js +4 -4
  475. package/dist/components/base/navigation/language-switcher.d.ts +1 -1
  476. package/dist/components/base/navigation/language-switcher.d.ts.map +1 -1
  477. package/dist/components/base/navigation/navigation-tabs.d.ts +1 -1
  478. package/dist/components/base/navigation/navigation-tabs.d.ts.map +1 -1
  479. package/dist/components/base/navigation/overflow-tab-bar.d.ts +1 -1
  480. package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
  481. package/dist/components/base/navigation/page-header/page-header.d.ts +1 -1
  482. package/dist/components/base/navigation/page-header/page-header.d.ts.map +1 -1
  483. package/dist/components/base/navigation/section-nav/section-nav.d.ts +1 -1
  484. package/dist/components/base/navigation/section-nav/section-nav.d.ts.map +1 -1
  485. package/dist/components/base/navigation/side-nav.d.ts +1 -1
  486. package/dist/components/base/navigation/side-nav.d.ts.map +1 -1
  487. package/dist/components/base/navigation/tab-navigation-menu.d.ts +1 -1
  488. package/dist/components/base/navigation/tab-navigation-menu.d.ts.map +1 -1
  489. package/dist/components/base/popover/index.cjs +1 -1
  490. package/dist/components/base/popover/index.js +1 -1
  491. package/dist/components/base/popover/popover.d.ts +1 -1
  492. package/dist/components/base/popover/popover.d.ts.map +1 -1
  493. package/dist/components/base/popover-menu/index.cjs +1 -1
  494. package/dist/components/base/popover-menu/index.js +1 -1
  495. package/dist/components/base/popover-menu/popover-menu.d.ts +1 -1
  496. package/dist/components/base/popover-menu/popover-menu.d.ts.map +1 -1
  497. package/dist/components/base/sheet/index.cjs +1 -1
  498. package/dist/components/base/sheet/index.js +1 -1
  499. package/dist/components/base/sidebar/index.cjs +1 -1
  500. package/dist/components/base/sidebar/index.js +2 -2
  501. package/dist/components/base/sidebar/sidebar.d.ts +10 -9
  502. package/dist/components/base/sidebar/sidebar.d.ts.map +1 -1
  503. package/dist/components/base/spinner/index.cjs +1 -1
  504. package/dist/components/base/spinner/index.js +1 -1
  505. package/dist/components/base/table/column-visibility-toggle.d.ts +1 -1
  506. package/dist/components/base/table/column-visibility-toggle.d.ts.map +1 -1
  507. package/dist/components/base/table/data-table.d.ts +1 -1
  508. package/dist/components/base/table/data-table.d.ts.map +1 -1
  509. package/dist/components/base/table/filter-bar.d.ts +1 -1
  510. package/dist/components/base/table/filter-bar.d.ts.map +1 -1
  511. package/dist/components/base/table/index.cjs +1 -1
  512. package/dist/components/base/table/index.cjs.map +1 -1
  513. package/dist/components/base/table/index.js +23 -23
  514. package/dist/components/base/table/index.js.map +1 -1
  515. package/dist/components/base/table/pagination.d.ts +1 -1
  516. package/dist/components/base/table/pagination.d.ts.map +1 -1
  517. package/dist/components/base/table/partials/cell-renderers.d.ts +4 -4
  518. package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -1
  519. package/dist/components/base/table/partials/cell-value.d.ts +1 -1
  520. package/dist/components/base/table/partials/cell-value.d.ts.map +1 -1
  521. package/dist/components/base/table/partials/density-toggle.d.ts +1 -1
  522. package/dist/components/base/table/partials/density-toggle.d.ts.map +1 -1
  523. package/dist/components/base/table/partials/table-link.d.ts +1 -1
  524. package/dist/components/base/table/partials/table-link.d.ts.map +1 -1
  525. package/dist/components/base/table/table-actions.d.ts +1 -1
  526. package/dist/components/base/table/table-actions.d.ts.map +1 -1
  527. package/dist/components/base/table/table-body.d.ts +1 -1
  528. package/dist/components/base/table/table-body.d.ts.map +1 -1
  529. package/dist/components/base/table/table-header.d.ts +2 -1
  530. package/dist/components/base/table/table-header.d.ts.map +1 -1
  531. package/dist/components/base/table/table-helpers.d.ts +2 -2
  532. package/dist/components/base/table/table-helpers.d.ts.map +1 -1
  533. package/dist/components/base/table/table-pagination.d.ts +1 -1
  534. package/dist/components/base/table/table-pagination.d.ts.map +1 -1
  535. package/dist/components/base/table/table-toolbar.d.ts +1 -1
  536. package/dist/components/base/table/table-toolbar.d.ts.map +1 -1
  537. package/dist/components/base/toaster/index.cjs +1 -1
  538. package/dist/components/base/toaster/index.cjs.map +1 -1
  539. package/dist/components/base/toaster/index.js +1 -1
  540. package/dist/components/base/toaster/index.js.map +1 -1
  541. package/dist/components/base/toaster/toaster.d.ts +1 -1
  542. package/dist/components/base/toaster/toaster.d.ts.map +1 -1
  543. package/dist/components/composed/admin/conversation-row/conversation-row.d.ts +1 -1
  544. package/dist/components/composed/admin/conversation-row/conversation-row.d.ts.map +1 -1
  545. package/dist/components/composed/admin/index.cjs +1 -1
  546. package/dist/components/composed/admin/index.cjs.map +1 -1
  547. package/dist/components/composed/admin/index.js +159 -155
  548. package/dist/components/composed/admin/index.js.map +1 -1
  549. package/dist/components/composed/admin/inventory-level/inventory-level.d.ts +1 -1
  550. package/dist/components/composed/admin/inventory-level/inventory-level.d.ts.map +1 -1
  551. package/dist/components/composed/admin/role-permission/role-permission.d.ts +1 -1
  552. package/dist/components/composed/admin/role-permission/role-permission.d.ts.map +1 -1
  553. package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts +1 -1
  554. package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts.map +1 -1
  555. package/dist/components/composed/admin/team-member/team-member.d.ts +1 -1
  556. package/dist/components/composed/admin/team-member/team-member.d.ts.map +1 -1
  557. package/dist/components/composed/ai/ai-agent/ai-agent.d.ts +1 -1
  558. package/dist/components/composed/ai/ai-agent/ai-agent.d.ts.map +1 -1
  559. package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts +1 -1
  560. package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts.map +1 -1
  561. package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts +1 -1
  562. package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts.map +1 -1
  563. package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
  564. package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts.map +1 -1
  565. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts +1 -1
  566. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
  567. package/dist/components/composed/ai/ai-classification/ai-classification.d.ts +1 -1
  568. package/dist/components/composed/ai/ai-classification/ai-classification.d.ts.map +1 -1
  569. package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts +1 -1
  570. package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts.map +1 -1
  571. package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts +1 -1
  572. package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts.map +1 -1
  573. package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
  574. package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts.map +1 -1
  575. package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts +1 -1
  576. package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts.map +1 -1
  577. package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts +1 -1
  578. package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts.map +1 -1
  579. package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts +1 -1
  580. package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts.map +1 -1
  581. package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts +1 -1
  582. package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts.map +1 -1
  583. package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts +1 -1
  584. package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts.map +1 -1
  585. package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +1 -1
  586. package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts.map +1 -1
  587. package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts +1 -1
  588. package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  589. package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts +1 -1
  590. package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts.map +1 -1
  591. package/dist/components/composed/ai/ai-sources/ai-sources.d.ts +1 -1
  592. package/dist/components/composed/ai/ai-sources/ai-sources.d.ts.map +1 -1
  593. package/dist/components/composed/ai/ai-summary/ai-summary.d.ts +1 -1
  594. package/dist/components/composed/ai/ai-summary/ai-summary.d.ts.map +1 -1
  595. package/dist/components/composed/ai/ai-task/ai-task.d.ts +1 -1
  596. package/dist/components/composed/ai/ai-task/ai-task.d.ts.map +1 -1
  597. package/dist/components/composed/ai/ai-token-usage/ai-token-usage.d.ts +1 -1
  598. package/dist/components/composed/ai/ai-token-usage/ai-token-usage.d.ts.map +1 -1
  599. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
  600. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -1
  601. package/dist/components/composed/ai/index.cjs +1 -1
  602. package/dist/components/composed/ai/index.cjs.map +1 -1
  603. package/dist/components/composed/ai/index.js +34 -36
  604. package/dist/components/composed/ai/index.js.map +1 -1
  605. package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts +1 -1
  606. package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts.map +1 -1
  607. package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts +1 -1
  608. package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts.map +1 -1
  609. package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts +1 -1
  610. package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts.map +1 -1
  611. package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts +1 -1
  612. package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts.map +1 -1
  613. package/dist/components/composed/analytics/index.cjs +1 -1
  614. package/dist/components/composed/analytics/index.cjs.map +1 -1
  615. package/dist/components/composed/analytics/index.js +100 -111
  616. package/dist/components/composed/analytics/index.js.map +1 -1
  617. package/dist/components/composed/analytics/metric/metric.d.ts +1 -1
  618. package/dist/components/composed/analytics/metric/metric.d.ts.map +1 -1
  619. package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts +1 -1
  620. package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts.map +1 -1
  621. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts +1 -1
  622. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts.map +1 -1
  623. package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts +1 -1
  624. package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts.map +1 -1
  625. package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts +1 -1
  626. package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts.map +1 -1
  627. package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts +1 -1
  628. package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts.map +1 -1
  629. package/dist/components/composed/cards/contact-card/contact-card.d.ts +1 -1
  630. package/dist/components/composed/cards/contact-card/contact-card.d.ts.map +1 -1
  631. package/dist/components/composed/cards/course-card/course-card.d.ts +1 -1
  632. package/dist/components/composed/cards/course-card/course-card.d.ts.map +1 -1
  633. package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts +1 -1
  634. package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts.map +1 -1
  635. package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts +1 -1
  636. package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts.map +1 -1
  637. package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts +1 -1
  638. package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts.map +1 -1
  639. package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts +1 -1
  640. package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts.map +1 -1
  641. package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
  642. package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts.map +1 -1
  643. package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
  644. package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts.map +1 -1
  645. package/dist/components/composed/cards/gradient-card/gradient-card.d.ts +2 -2
  646. package/dist/components/composed/cards/gradient-card/gradient-card.d.ts.map +1 -1
  647. package/dist/components/composed/cards/index.cjs +1 -1
  648. package/dist/components/composed/cards/index.cjs.map +1 -1
  649. package/dist/components/composed/cards/index.js +492 -512
  650. package/dist/components/composed/cards/index.js.map +1 -1
  651. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts +1 -1
  652. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
  653. package/dist/components/composed/commerce/address-card/address-card.d.ts +1 -1
  654. package/dist/components/composed/commerce/address-card/address-card.d.ts.map +1 -1
  655. package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts +1 -1
  656. package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts.map +1 -1
  657. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts +1 -1
  658. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
  659. package/dist/components/composed/commerce/discount-stack/discount-stack.d.ts +1 -1
  660. package/dist/components/composed/commerce/discount-stack/discount-stack.d.ts.map +1 -1
  661. package/dist/components/composed/commerce/index.cjs +1 -1
  662. package/dist/components/composed/commerce/index.cjs.map +1 -1
  663. package/dist/components/composed/commerce/index.js +94 -98
  664. package/dist/components/composed/commerce/index.js.map +1 -1
  665. package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts +1 -1
  666. package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts.map +1 -1
  667. package/dist/components/composed/commerce/order-status/order-status.d.ts +1 -1
  668. package/dist/components/composed/commerce/order-status/order-status.d.ts.map +1 -1
  669. package/dist/components/composed/commerce/payment-method/payment-method.d.ts +1 -1
  670. package/dist/components/composed/commerce/payment-method/payment-method.d.ts.map +1 -1
  671. package/dist/components/composed/commerce/refund-status/refund-status.d.ts +1 -1
  672. package/dist/components/composed/commerce/refund-status/refund-status.d.ts.map +1 -1
  673. package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  674. package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts.map +1 -1
  675. package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts +1 -1
  676. package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts.map +1 -1
  677. package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  678. package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts.map +1 -1
  679. package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.d.ts +1 -1
  680. package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.d.ts.map +1 -1
  681. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts +1 -1
  682. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -1
  683. package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts +1 -1
  684. package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts.map +1 -1
  685. package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts +1 -1
  686. package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts.map +1 -1
  687. package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts +1 -1
  688. package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts.map +1 -1
  689. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  690. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  691. package/dist/components/composed/dark-surfaces/index.js +30 -27
  692. package/dist/components/composed/dark-surfaces/index.js.map +1 -1
  693. package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts +1 -1
  694. package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts.map +1 -1
  695. package/dist/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.d.ts +1 -1
  696. package/dist/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.d.ts.map +1 -1
  697. package/dist/components/composed/data-display/dense-info-card/helpers.d.ts +2 -2
  698. package/dist/components/composed/data-display/dense-info-card/helpers.d.ts.map +1 -1
  699. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
  700. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts.map +1 -1
  701. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
  702. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
  703. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
  704. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
  705. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
  706. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts.map +1 -1
  707. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
  708. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -1
  709. package/dist/components/composed/data-display/index.cjs +1 -1
  710. package/dist/components/composed/data-display/index.cjs.map +1 -1
  711. package/dist/components/composed/data-display/index.js +344 -319
  712. package/dist/components/composed/data-display/index.js.map +1 -1
  713. package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts +1 -1
  714. package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts.map +1 -1
  715. package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts +1 -1
  716. package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts.map +1 -1
  717. package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts +3 -3
  718. package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts.map +1 -1
  719. package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts +1 -1
  720. package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts.map +1 -1
  721. package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts +1 -1
  722. package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts.map +1 -1
  723. package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts +1 -1
  724. package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts.map +1 -1
  725. package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
  726. package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts.map +1 -1
  727. package/dist/components/composed/navigation/category-nav/category-nav.d.ts +1 -1
  728. package/dist/components/composed/navigation/category-nav/category-nav.d.ts.map +1 -1
  729. package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts +1 -1
  730. package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts.map +1 -1
  731. package/dist/components/composed/navigation/experience-activity/experience-activity.strings.d.ts +8 -0
  732. package/dist/components/composed/navigation/experience-activity/experience-activity.strings.d.ts.map +1 -0
  733. package/dist/components/composed/navigation/experience-activity/index.d.ts +1 -0
  734. package/dist/components/composed/navigation/experience-activity/index.d.ts.map +1 -1
  735. package/dist/components/composed/navigation/experience-activity/types.d.ts +2 -0
  736. package/dist/components/composed/navigation/experience-activity/types.d.ts.map +1 -1
  737. package/dist/components/composed/navigation/index.cjs +1 -1
  738. package/dist/components/composed/navigation/index.cjs.map +1 -1
  739. package/dist/components/composed/navigation/index.js +42 -35
  740. package/dist/components/composed/navigation/index.js.map +1 -1
  741. package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts +1 -1
  742. package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts.map +1 -1
  743. package/dist/components/composed/navigation/tab-switcher/tab-switcher.d.ts +1 -1
  744. package/dist/components/composed/navigation/tab-switcher/tab-switcher.d.ts.map +1 -1
  745. package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts +1 -1
  746. package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts.map +1 -1
  747. package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts +1 -1
  748. package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts.map +1 -1
  749. package/dist/components/composed/onboarding/checklist/checklist.d.ts.map +1 -1
  750. package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.d.ts +1 -1
  751. package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.d.ts.map +1 -1
  752. package/dist/components/composed/onboarding/index.cjs +1 -1
  753. package/dist/components/composed/onboarding/index.cjs.map +1 -1
  754. package/dist/components/composed/onboarding/index.js +60 -60
  755. package/dist/components/composed/onboarding/index.js.map +1 -1
  756. package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts +1 -1
  757. package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts.map +1 -1
  758. package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts +1 -1
  759. package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts.map +1 -1
  760. package/dist/components/composed/timelines/index.cjs +1 -1
  761. package/dist/components/composed/timelines/index.cjs.map +1 -1
  762. package/dist/components/composed/timelines/index.js +34 -7
  763. package/dist/components/composed/timelines/index.js.map +1 -1
  764. package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts +1 -1
  765. package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts.map +1 -1
  766. package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts +1 -1
  767. package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts.map +1 -1
  768. package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts +1 -1
  769. package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts.map +1 -1
  770. package/dist/components/composed/timelines/shared/timeline.d.ts +1 -1
  771. package/dist/components/composed/timelines/shared/timeline.d.ts.map +1 -1
  772. package/dist/components/composed/timelines/steps-card/steps-card.d.ts +2 -2
  773. package/dist/components/composed/timelines/steps-card/steps-card.d.ts.map +1 -1
  774. package/dist/components/features/activities/activities-feed.d.ts +1 -1
  775. package/dist/components/features/activities/activities-feed.d.ts.map +1 -1
  776. package/dist/components/features/activities/index.cjs +1 -1
  777. package/dist/components/features/activities/index.cjs.map +1 -1
  778. package/dist/components/features/activities/index.js +7 -7
  779. package/dist/components/features/activities/index.js.map +1 -1
  780. package/dist/components/features/activities/partials/activities-feed-card.d.ts +1 -1
  781. package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
  782. package/dist/components/features/activities/partials/activity-actions-menu.d.ts +1 -1
  783. package/dist/components/features/activities/partials/activity-actions-menu.d.ts.map +1 -1
  784. package/dist/components/features/activities/partials/activity-changes.d.ts +1 -1
  785. package/dist/components/features/activities/partials/activity-changes.d.ts.map +1 -1
  786. package/dist/components/features/activities/partials/activity-date-label.d.ts +1 -1
  787. package/dist/components/features/activities/partials/activity-date-label.d.ts.map +1 -1
  788. package/dist/components/features/activities/partials/activity-empty-state.d.ts +1 -1
  789. package/dist/components/features/activities/partials/activity-empty-state.d.ts.map +1 -1
  790. package/dist/components/features/activities/partials/activity-headline.d.ts +1 -1
  791. package/dist/components/features/activities/partials/activity-headline.d.ts.map +1 -1
  792. package/dist/components/features/activities/partials/activity-marker.d.ts +1 -1
  793. package/dist/components/features/activities/partials/activity-marker.d.ts.map +1 -1
  794. package/dist/components/features/activities/partials/activity-resource-tag.d.ts +1 -1
  795. package/dist/components/features/activities/partials/activity-resource-tag.d.ts.map +1 -1
  796. package/dist/components/features/activities/partials/activity-row.d.ts +1 -1
  797. package/dist/components/features/activities/partials/activity-row.d.ts.map +1 -1
  798. package/dist/components/features/ai-chat/ai-chat.d.ts +1 -1
  799. package/dist/components/features/ai-chat/ai-chat.d.ts.map +1 -1
  800. package/dist/components/features/ai-chat/index.cjs +1 -1
  801. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  802. package/dist/components/features/ai-chat/index.js +7 -7
  803. package/dist/components/features/ai-chat/index.js.map +1 -1
  804. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +1 -1
  805. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts.map +1 -1
  806. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +1 -1
  807. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts.map +1 -1
  808. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +1 -1
  809. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts.map +1 -1
  810. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +1 -1
  811. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts.map +1 -1
  812. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +1 -1
  813. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts.map +1 -1
  814. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +1 -1
  815. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts.map +1 -1
  816. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +1 -1
  817. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts.map +1 -1
  818. package/dist/components/features/card/booking-calendar-event-card.d.ts +1 -1
  819. package/dist/components/features/card/booking-calendar-event-card.d.ts.map +1 -1
  820. package/dist/components/features/card/index.cjs +1 -1
  821. package/dist/components/features/card/index.cjs.map +1 -1
  822. package/dist/components/features/card/index.js +4 -4
  823. package/dist/components/features/card/index.js.map +1 -1
  824. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts +4 -4
  825. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts.map +1 -1
  826. package/dist/components/features/card/shared-resource-card.d.ts +1 -1
  827. package/dist/components/features/card/shared-resource-card.d.ts.map +1 -1
  828. package/dist/components/features/comments/comments.d.ts +1 -1
  829. package/dist/components/features/comments/comments.d.ts.map +1 -1
  830. package/dist/components/features/comments/index.cjs +1 -1
  831. package/dist/components/features/comments/index.js +2 -2
  832. package/dist/components/features/comments/partials/comment-composer.d.ts.map +1 -1
  833. package/dist/components/features/event-log/event-log.d.ts +1 -1
  834. package/dist/components/features/event-log/event-log.d.ts.map +1 -1
  835. package/dist/components/features/event-log/index.cjs +1 -1
  836. package/dist/components/features/event-log/index.cjs.map +1 -1
  837. package/dist/components/features/event-log/index.js +5 -5
  838. package/dist/components/features/event-log/index.js.map +1 -1
  839. package/dist/components/features/filters/facets/async-select-facet.d.ts +1 -1
  840. package/dist/components/features/filters/facets/async-select-facet.d.ts.map +1 -1
  841. package/dist/components/features/filters/facets/date-facet.d.ts +1 -1
  842. package/dist/components/features/filters/facets/date-facet.d.ts.map +1 -1
  843. package/dist/components/features/filters/facets/range-facet.d.ts +1 -1
  844. package/dist/components/features/filters/facets/range-facet.d.ts.map +1 -1
  845. package/dist/components/features/filters/facets/search-facet.d.ts +1 -1
  846. package/dist/components/features/filters/facets/search-facet.d.ts.map +1 -1
  847. package/dist/components/features/filters/facets/select-facet.d.ts +1 -1
  848. package/dist/components/features/filters/facets/select-facet.d.ts.map +1 -1
  849. package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
  850. package/dist/components/features/filters/facets/tags-facet.d.ts.map +1 -1
  851. package/dist/components/features/filters/filter-context.d.ts +1 -1
  852. package/dist/components/features/filters/filter-context.d.ts.map +1 -1
  853. package/dist/components/features/filters/filter-layout.d.ts +1 -1
  854. package/dist/components/features/filters/filter-layout.d.ts.map +1 -1
  855. package/dist/components/features/filters/filters.strings.d.ts +1 -0
  856. package/dist/components/features/filters/filters.strings.d.ts.map +1 -1
  857. package/dist/components/features/filters/filters.types.d.ts +1 -1
  858. package/dist/components/features/filters/index.cjs +1 -1
  859. package/dist/components/features/filters/index.cjs.map +1 -1
  860. package/dist/components/features/filters/index.js +195 -188
  861. package/dist/components/features/filters/index.js.map +1 -1
  862. package/dist/components/features/filters/partials/active-filter-item.d.ts +2 -1
  863. package/dist/components/features/filters/partials/active-filter-item.d.ts.map +1 -1
  864. package/dist/components/features/filters/partials/async-filter-content.d.ts +1 -1
  865. package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
  866. package/dist/components/features/filters/partials/date-filter-content.d.ts +1 -1
  867. package/dist/components/features/filters/partials/date-filter-content.d.ts.map +1 -1
  868. package/dist/components/features/filters/partials/filter-error-boundary.d.ts +1 -1
  869. package/dist/components/features/filters/partials/filter-error-boundary.d.ts.map +1 -1
  870. package/dist/components/features/filters/partials/filter-list-content.d.ts +1 -1
  871. package/dist/components/features/filters/partials/filter-list-content.d.ts.map +1 -1
  872. package/dist/components/features/filters/partials/filter-list-item.d.ts +1 -1
  873. package/dist/components/features/filters/partials/filter-list-item.d.ts.map +1 -1
  874. package/dist/components/features/filters/partials/filter-operator-select.d.ts +2 -1
  875. package/dist/components/features/filters/partials/filter-operator-select.d.ts.map +1 -1
  876. package/dist/components/features/filters/partials/filter-pill.d.ts +1 -1
  877. package/dist/components/features/filters/partials/filter-pill.d.ts.map +1 -1
  878. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  879. package/dist/components/features/filters/partials/filter-popover-content.d.ts.map +1 -1
  880. package/dist/components/features/filters/partials/filter-tabs.d.ts +1 -1
  881. package/dist/components/features/filters/partials/filter-tabs.d.ts.map +1 -1
  882. package/dist/components/features/filters/partials/filter-value-display.d.ts +1 -1
  883. package/dist/components/features/filters/partials/filter-value-display.d.ts.map +1 -1
  884. package/dist/components/features/filters/partials/filters-button.d.ts +1 -1
  885. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
  886. package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
  887. package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
  888. package/dist/components/features/filters/partials/search-filters-list.d.ts +1 -1
  889. package/dist/components/features/filters/partials/search-filters-list.d.ts.map +1 -1
  890. package/dist/components/features/filters/partials/tags-filter-content.d.ts +1 -1
  891. package/dist/components/features/filters/partials/tags-filter-content.d.ts.map +1 -1
  892. package/dist/components/features/global-search/global-search.d.ts +22 -1
  893. package/dist/components/features/global-search/global-search.d.ts.map +1 -1
  894. package/dist/components/features/global-search/index.cjs +1 -1
  895. package/dist/components/features/global-search/index.cjs.map +1 -1
  896. package/dist/components/features/global-search/index.js +3 -3
  897. package/dist/components/features/global-search/index.js.map +1 -1
  898. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +1 -1
  899. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts.map +1 -1
  900. package/dist/components/features/global-search/partials/global-search-footer.d.ts +1 -1
  901. package/dist/components/features/global-search/partials/global-search-footer.d.ts.map +1 -1
  902. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  903. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts.map +1 -1
  904. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +2 -1
  905. package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -1
  906. package/dist/components/features/global-search/partials/global-search-tabs.d.ts +1 -1
  907. package/dist/components/features/global-search/partials/global-search-tabs.d.ts.map +1 -1
  908. package/dist/components/features/kanban/index.cjs +1 -1
  909. package/dist/components/features/kanban/index.cjs.map +1 -1
  910. package/dist/components/features/kanban/index.js +2 -2
  911. package/dist/components/features/kanban/index.js.map +1 -1
  912. package/dist/components/features/kanban/kanban.d.ts +7 -7
  913. package/dist/components/features/kanban/kanban.d.ts.map +1 -1
  914. package/dist/components/features/mentions/index.cjs +1 -1
  915. package/dist/components/features/mentions/index.js +1 -1
  916. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +1 -1
  917. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts.map +1 -1
  918. package/dist/components/features/mentions/partials/mention-picker.d.ts +1 -1
  919. package/dist/components/features/mentions/partials/mention-picker.d.ts.map +1 -1
  920. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  921. package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -1
  922. package/dist/components/features/overlays/dialog.d.ts +1 -1
  923. package/dist/components/features/overlays/dialog.d.ts.map +1 -1
  924. package/dist/components/features/overlays/drawer.d.ts +1 -1
  925. package/dist/components/features/overlays/drawer.d.ts.map +1 -1
  926. package/dist/components/features/overlays/index.cjs +1 -1
  927. package/dist/components/features/overlays/index.js +1 -1
  928. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  929. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts.map +1 -1
  930. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  931. package/dist/components/features/rich-text-editor/index.cjs.map +1 -1
  932. package/dist/components/features/rich-text-editor/index.js +1 -1
  933. package/dist/components/features/rich-text-editor/index.js.map +1 -1
  934. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +2 -2
  935. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts.map +1 -1
  936. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts.map +1 -1
  937. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts.map +1 -1
  938. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +1 -1
  939. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts.map +1 -1
  940. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +4 -0
  941. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts.map +1 -1
  942. package/dist/components/features/suggestions/index.cjs +1 -1
  943. package/dist/components/features/suggestions/index.cjs.map +1 -1
  944. package/dist/components/features/suggestions/index.js +1 -1
  945. package/dist/components/features/suggestions/index.js.map +1 -1
  946. package/dist/components/features/suggestions/suggestions.d.ts +1 -1
  947. package/dist/components/features/suggestions/suggestions.d.ts.map +1 -1
  948. package/dist/components/features/sync/index.cjs +1 -1
  949. package/dist/components/features/sync/index.cjs.map +1 -1
  950. package/dist/components/features/sync/index.js +3 -3
  951. package/dist/components/features/sync/index.js.map +1 -1
  952. package/dist/components/features/sync/sync-range-dialog-form.d.ts +1 -1
  953. package/dist/components/layout/app-shell/app-shell.types.d.ts +65 -0
  954. package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -0
  955. package/dist/components/layout/app-shell/index.cjs +1 -0
  956. package/dist/components/layout/app-shell/index.d.ts +3 -0
  957. package/dist/components/layout/app-shell/index.d.ts.map +1 -0
  958. package/dist/components/layout/app-shell/index.js +2 -0
  959. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +3 -0
  960. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -0
  961. package/dist/components/layout/containers/content-container.d.ts +1 -1
  962. package/dist/components/layout/containers/content-container.d.ts.map +1 -1
  963. package/dist/components/layout/containers/index.cjs +1 -1
  964. package/dist/components/layout/containers/index.js +2 -2
  965. package/dist/components/layout/containers/section.d.ts +1 -1
  966. package/dist/components/layout/containers/section.d.ts.map +1 -1
  967. package/dist/components/layout/header/header.d.ts +1 -1
  968. package/dist/components/layout/header/header.d.ts.map +1 -1
  969. package/dist/components/layout/header/index.cjs +1 -1
  970. package/dist/components/layout/header/index.js +1 -1
  971. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +3 -1
  972. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts.map +1 -1
  973. package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
  974. package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
  975. package/dist/components/layout/header/partials/header-search.d.ts +1 -1
  976. package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
  977. package/dist/components/layout/header/partials/header-user-menu.d.ts +1 -1
  978. package/dist/components/layout/header/partials/header-user-menu.d.ts.map +1 -1
  979. package/dist/components/layout/hooks/index.cjs +1 -1
  980. package/dist/components/layout/hooks/index.js +1 -1
  981. package/dist/components/layout/index.cjs +1 -1
  982. package/dist/components/layout/index.d.ts +1 -0
  983. package/dist/components/layout/index.d.ts.map +1 -1
  984. package/dist/components/layout/index.js +8 -7
  985. package/dist/components/layout/page/index.cjs +1 -1
  986. package/dist/components/layout/page/index.js +1 -1
  987. package/dist/components/layout/page/page-content.d.ts +1 -1
  988. package/dist/components/layout/page/page-content.d.ts.map +1 -1
  989. package/dist/components/layout/page/page.d.ts +1 -1
  990. package/dist/components/layout/page/page.d.ts.map +1 -1
  991. package/dist/components/layout/page/partials/page-actions.d.ts +1 -1
  992. package/dist/components/layout/page/partials/page-actions.d.ts.map +1 -1
  993. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  994. package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
  995. package/dist/components/layout/sidebar/app-sidebar.d.ts +6 -1
  996. package/dist/components/layout/sidebar/app-sidebar.d.ts.map +1 -1
  997. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  998. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
  999. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +1 -1
  1000. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts.map +1 -1
  1001. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
  1002. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts.map +1 -1
  1003. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +1 -1
  1004. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts.map +1 -1
  1005. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +3 -1
  1006. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts.map +1 -1
  1007. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +1 -1
  1008. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts.map +1 -1
  1009. package/dist/components/layout/sidebar/index.cjs +1 -1
  1010. package/dist/components/layout/sidebar/index.js +2 -2
  1011. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
  1012. package/dist/components/layout/sidebar/sidebar.context.d.ts.map +1 -1
  1013. package/dist/components/layout/sidebar/sidebar.d.ts +1 -1
  1014. package/dist/components/layout/sidebar/sidebar.d.ts.map +1 -1
  1015. package/dist/components/layout/sidebar/sidebar.utils.d.ts +2 -2
  1016. package/dist/components/layout/sidebar/sidebar.utils.d.ts.map +1 -1
  1017. package/dist/components/typography/heading.d.ts +1 -1
  1018. package/dist/components/typography/heading.d.ts.map +1 -1
  1019. package/dist/components/typography/index.cjs +1 -1
  1020. package/dist/components/typography/index.js +3 -3
  1021. package/dist/components/typography/label.d.ts +1 -1
  1022. package/dist/components/typography/label.d.ts.map +1 -1
  1023. package/dist/components/typography/text-link.d.ts +1 -1
  1024. package/dist/components/typography/text-link.d.ts.map +1 -1
  1025. package/dist/components/typography/text.d.ts +1 -1
  1026. package/dist/components/typography/text.d.ts.map +1 -1
  1027. package/dist/components/typography/typography.d.ts +3 -3
  1028. package/dist/components/typography/typography.d.ts.map +1 -1
  1029. package/dist/components/ui/accordion.d.ts +4 -4
  1030. package/dist/components/ui/accordion.d.ts.map +1 -1
  1031. package/dist/components/ui/alert.d.ts +4 -4
  1032. package/dist/components/ui/alert.d.ts.map +1 -1
  1033. package/dist/components/ui/avatar.d.ts +6 -6
  1034. package/dist/components/ui/avatar.d.ts.map +1 -1
  1035. package/dist/components/ui/badge.d.ts +1 -1
  1036. package/dist/components/ui/badge.d.ts.map +1 -1
  1037. package/dist/components/ui/breadcrumb.d.ts +7 -7
  1038. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  1039. package/dist/components/ui/button-group.d.ts +2 -2
  1040. package/dist/components/ui/button-group.d.ts.map +1 -1
  1041. package/dist/components/ui/button.d.ts +1 -1
  1042. package/dist/components/ui/button.d.ts.map +1 -1
  1043. package/dist/components/ui/calendar.d.ts +2 -2
  1044. package/dist/components/ui/calendar.d.ts.map +1 -1
  1045. package/dist/components/ui/card.d.ts +7 -7
  1046. package/dist/components/ui/card.d.ts.map +1 -1
  1047. package/dist/components/ui/chart.d.ts +4 -4
  1048. package/dist/components/ui/chart.d.ts.map +1 -1
  1049. package/dist/components/ui/checkbox.d.ts +1 -1
  1050. package/dist/components/ui/checkbox.d.ts.map +1 -1
  1051. package/dist/components/ui/collapsible.d.ts +4 -3
  1052. package/dist/components/ui/collapsible.d.ts.map +1 -1
  1053. package/dist/components/ui/combobox.d.ts +20 -20
  1054. package/dist/components/ui/combobox.d.ts.map +1 -1
  1055. package/dist/components/ui/command.d.ts +9 -9
  1056. package/dist/components/ui/command.d.ts.map +1 -1
  1057. package/dist/components/ui/context-menu.d.ts +15 -15
  1058. package/dist/components/ui/context-menu.d.ts.map +1 -1
  1059. package/dist/components/ui/dialog.d.ts +10 -10
  1060. package/dist/components/ui/dialog.d.ts.map +1 -1
  1061. package/dist/components/ui/dropdown-menu.d.ts +16 -16
  1062. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  1063. package/dist/components/ui/empty.d.ts +6 -6
  1064. package/dist/components/ui/empty.d.ts.map +1 -1
  1065. package/dist/components/ui/hover-card.d.ts +3 -3
  1066. package/dist/components/ui/hover-card.d.ts.map +1 -1
  1067. package/dist/components/ui/input-group.d.ts +6 -6
  1068. package/dist/components/ui/input-group.d.ts.map +1 -1
  1069. package/dist/components/ui/input.d.ts +1 -1
  1070. package/dist/components/ui/input.d.ts.map +1 -1
  1071. package/dist/components/ui/item.d.ts +9 -9
  1072. package/dist/components/ui/item.d.ts.map +1 -1
  1073. package/dist/components/ui/pagination.d.ts +7 -7
  1074. package/dist/components/ui/pagination.d.ts.map +1 -1
  1075. package/dist/components/ui/popover.d.ts +7 -7
  1076. package/dist/components/ui/popover.d.ts.map +1 -1
  1077. package/dist/components/ui/progress.d.ts +5 -5
  1078. package/dist/components/ui/progress.d.ts.map +1 -1
  1079. package/dist/components/ui/radio-group.d.ts +2 -2
  1080. package/dist/components/ui/radio-group.d.ts.map +1 -1
  1081. package/dist/components/ui/scroll-area.d.ts +2 -2
  1082. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  1083. package/dist/components/ui/select.d.ts +9 -9
  1084. package/dist/components/ui/select.d.ts.map +1 -1
  1085. package/dist/components/ui/separator.d.ts +1 -1
  1086. package/dist/components/ui/separator.d.ts.map +1 -1
  1087. package/dist/components/ui/sheet.d.ts +8 -8
  1088. package/dist/components/ui/sheet.d.ts.map +1 -1
  1089. package/dist/components/ui/sidebar.d.ts +19 -19
  1090. package/dist/components/ui/sidebar.d.ts.map +1 -1
  1091. package/dist/components/ui/skeleton.d.ts +1 -1
  1092. package/dist/components/ui/skeleton.d.ts.map +1 -1
  1093. package/dist/components/ui/slider.d.ts +2 -1
  1094. package/dist/components/ui/slider.d.ts.map +1 -1
  1095. package/dist/components/ui/sonner.d.ts +1 -1
  1096. package/dist/components/ui/sonner.d.ts.map +1 -1
  1097. package/dist/components/ui/spinner.d.ts +1 -1
  1098. package/dist/components/ui/spinner.d.ts.map +1 -1
  1099. package/dist/components/ui/switch.d.ts +1 -1
  1100. package/dist/components/ui/switch.d.ts.map +1 -1
  1101. package/dist/components/ui/table.d.ts +8 -8
  1102. package/dist/components/ui/table.d.ts.map +1 -1
  1103. package/dist/components/ui/tabs.d.ts +4 -4
  1104. package/dist/components/ui/tabs.d.ts.map +1 -1
  1105. package/dist/components/ui/textarea.d.ts +1 -1
  1106. package/dist/components/ui/textarea.d.ts.map +1 -1
  1107. package/dist/components/ui/toggle-group.d.ts +3 -2
  1108. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  1109. package/dist/components/ui/toggle.d.ts +1 -1
  1110. package/dist/components/ui/toggle.d.ts.map +1 -1
  1111. package/dist/components/ui/tooltip.d.ts +4 -4
  1112. package/dist/components/ui/tooltip.d.ts.map +1 -1
  1113. package/dist/index.cjs +1 -1
  1114. package/dist/index.js +1 -1
  1115. package/dist/lib/strings.cjs +1 -1
  1116. package/dist/lib/strings.cjs.map +1 -1
  1117. package/dist/lib/strings.js.map +1 -1
  1118. package/dist/lib/ui-provider/index.cjs +1 -1
  1119. package/dist/lib/ui-provider/index.js +1 -1
  1120. package/dist/lib/ui-provider/provider.d.ts +1 -1
  1121. package/dist/lib/ui-provider/provider.d.ts.map +1 -1
  1122. package/dist/lib/utils.cjs +1 -1
  1123. package/dist/lib/utils.cjs.map +1 -1
  1124. package/dist/lib/utils.js.map +1 -1
  1125. package/dist/showcase/assets/AreaChart-CzBEYPbz.js +6 -0
  1126. package/dist/showcase/assets/CSPContext-ImKusJJ_.js +1 -0
  1127. package/dist/showcase/assets/CompositeItem-C-DIOBdJ.js +1 -0
  1128. package/dist/showcase/assets/CompositeRoot-Ce4ORgG2.js +1 -0
  1129. package/dist/showcase/assets/Control.FullScreen-CwLQ1MMK.js +1 -0
  1130. package/dist/showcase/assets/DialogTrigger-DWvMs7dp.js +1 -0
  1131. package/dist/showcase/assets/FormContext-BeC1MJpT.js +1 -0
  1132. package/dist/showcase/assets/PreviewLayout-N1PTTyZK.js +1 -0
  1133. package/dist/showcase/assets/RadioGroup-DAWaa26D.js +1 -0
  1134. package/dist/showcase/assets/Separator-guDkmky0.js +1 -0
  1135. package/dist/showcase/assets/ToolbarRootContext-BJ7hWga8.js +1 -0
  1136. package/dist/showcase/assets/accordion-CiM9WhkT.js +172 -0
  1137. package/dist/showcase/assets/accordion-variants-C_sHrQ7C.js +1 -0
  1138. package/dist/showcase/assets/action-menu-mlWlGE5P.js +1 -0
  1139. package/dist/showcase/assets/activities-YWR4wh4f.js +501 -0
  1140. package/dist/showcase/assets/activities-feed-card-Cglnf5as.js +1 -0
  1141. package/dist/showcase/assets/admin-BtOtzPd4.js +80 -0
  1142. package/dist/showcase/assets/ai-8iNe0R1M.js +41 -0
  1143. package/dist/showcase/assets/ai-artifact-CQL5krnJ.js +2 -0
  1144. package/dist/showcase/assets/ai-chat-BzCdOOc6.js +568 -0
  1145. package/dist/showcase/assets/ai-elements-CBHy2xWU.js +379 -0
  1146. package/dist/showcase/assets/ai-new-CgL5NeVs.js +167 -0
  1147. package/dist/showcase/assets/ai-tool-call-D9AsaWJF.js +1 -0
  1148. package/dist/showcase/assets/alert-B2BuF4vZ.js +59 -0
  1149. package/dist/showcase/assets/alert-BkVaTONJ.js +1 -0
  1150. package/dist/showcase/assets/api-key-list-C-_59dli.js +73 -0
  1151. package/dist/showcase/assets/app-sidebar-BdOu5rVn.js +1 -0
  1152. package/dist/showcase/assets/arrow-down-BpVaq9-H.js +1 -0
  1153. package/dist/showcase/assets/arrow-left-C40rxfqj.js +1 -0
  1154. package/dist/showcase/assets/arrow-right-BclouSfP.js +1 -0
  1155. package/dist/showcase/assets/arrow-up-BpWEnkdX.js +1 -0
  1156. package/dist/showcase/assets/arrow-up-right-Z5sMa1HH.js +1 -0
  1157. package/dist/showcase/assets/avatar-CDNhh3rv.js +57 -0
  1158. package/dist/showcase/assets/avatar-QBwg3fvR.js +1 -0
  1159. package/dist/showcase/assets/badge-check-DXDQ3SaL.js +1 -0
  1160. package/dist/showcase/assets/badge-tAdYt--9.js +28 -0
  1161. package/dist/showcase/assets/bell-CVEeEWw4.js +1 -0
  1162. package/dist/showcase/assets/bot-Bcx5mNAQ.js +1 -0
  1163. package/dist/showcase/assets/box-Dgy2Xc70.js +1 -0
  1164. package/dist/showcase/assets/brain-DsoOsd7m.js +1 -0
  1165. package/dist/showcase/assets/brand-DAyuXNUz.js +40 -0
  1166. package/dist/showcase/assets/breadcrumb-CC4Z8eMY.js +1 -0
  1167. package/dist/showcase/assets/breadcrumb-DCbAzeMs.js +52 -0
  1168. package/dist/showcase/assets/breadcrumbs-DGZMpIoQ.js +1 -0
  1169. package/dist/showcase/assets/briefcase-2uLXCvAZ.js +1 -0
  1170. package/dist/showcase/assets/button-DhQ6rMPU.js +44 -0
  1171. package/dist/showcase/assets/button-group-Ce9vnZ1H.js +1 -0
  1172. package/dist/showcase/assets/buttons-CHja0LUL.js +270 -0
  1173. package/dist/showcase/assets/calendar-BbiK8AMZ.js +16 -0
  1174. package/dist/showcase/assets/calendar-BhZpIjCo.js +1 -0
  1175. package/dist/showcase/assets/calendar-oKaDsUIy.js +1 -0
  1176. package/dist/showcase/assets/card-DoU1VD79.js +1 -0
  1177. package/dist/showcase/assets/cards-3OgH8m3F.js +328 -0
  1178. package/dist/showcase/assets/chart-column-6Tn3WAT9.js +1 -0
  1179. package/dist/showcase/assets/chevron-down-x7TQsvYY.js +1 -0
  1180. package/dist/showcase/assets/chevron-left-CglzJgA2.js +1 -0
  1181. package/dist/showcase/assets/chevron-right-CDDMIkYP.js +1 -0
  1182. package/dist/showcase/assets/chevron-up-Dc3aAaGH.js +1 -0
  1183. package/dist/showcase/assets/chevrons-up-down-DJNnSBAj.js +1 -0
  1184. package/dist/showcase/assets/circle-BBmNFtO8.js +1 -0
  1185. package/dist/showcase/assets/circle-alert-DJevf3tT.js +1 -0
  1186. package/dist/showcase/assets/circle-check-BCxORlAM.js +1 -0
  1187. package/dist/showcase/assets/circle-check-big-tiuK2w0-.js +1 -0
  1188. package/dist/showcase/assets/circle-dot-BEVVQjgN.js +1 -0
  1189. package/dist/showcase/assets/circle-question-mark-BQrUUiKD.js +1 -0
  1190. package/dist/showcase/assets/circle-x-CoV_AUtZ.js +1 -0
  1191. package/dist/showcase/assets/clock-Bn2R4aDX.js +1 -0
  1192. package/dist/showcase/assets/code-xml-BVYp_JDX.js +1 -0
  1193. package/dist/showcase/assets/collapsible-Co2Y739_.js +27 -0
  1194. package/dist/showcase/assets/collapsible-DPbftgrO.js +1 -0
  1195. package/dist/showcase/assets/combobox-Cm4__LnJ.js +622 -0
  1196. package/dist/showcase/assets/command-DQFIxPN9.js +45 -0
  1197. package/dist/showcase/assets/command-KNncGgZW.js +1 -0
  1198. package/dist/showcase/assets/comment-composer-DTJtqYGP.js +1 -0
  1199. package/dist/showcase/assets/comment-item-DIEYMmV_.js +1 -0
  1200. package/dist/showcase/assets/comments-B0BbDp-3.js +357 -0
  1201. package/dist/showcase/assets/commerce-BOWBCLA-.js +79 -0
  1202. package/dist/showcase/assets/commerce-extras-C6CWYfpC.js +173 -0
  1203. package/dist/showcase/assets/composite-YicTVAO0.js +1 -0
  1204. package/dist/showcase/assets/contact-card-DQPRIlnJ.js +65 -0
  1205. package/dist/showcase/assets/content-container-CHXwWViz.js +1 -0
  1206. package/dist/showcase/assets/copyable-CjTwco9O.js +96 -0
  1207. package/dist/showcase/assets/course-card-CTQScd2C.js +113 -0
  1208. package/dist/showcase/assets/cpu-D52NjUWq.js +1 -0
  1209. package/dist/showcase/assets/credit-card-BoDfW0R8.js +1 -0
  1210. package/dist/showcase/assets/currency-BPREbpDA.js +149 -0
  1211. package/dist/showcase/assets/dark-surfaces-BCG45K2m.js +90 -0
  1212. package/dist/showcase/assets/database-DeGR0hed.js +1 -0
  1213. package/dist/showcase/assets/date-block-Bl1kXJrM.js +1 -0
  1214. package/dist/showcase/assets/date-picker-BHbZa4ML.js +1 -0
  1215. package/dist/showcase/assets/date-pickers-DumwUEXE.js +110 -0
  1216. package/dist/showcase/assets/dense-info-DxfgBw9Z.js +106 -0
  1217. package/dist/showcase/assets/dialog-BYHZvlL8.js +1 -0
  1218. package/dist/showcase/assets/display-BXMGOjL3.js +392 -0
  1219. package/dist/showcase/assets/dist-CnonIdcR.js +1 -0
  1220. package/dist/showcase/assets/dollar-sign-BipUTVXC.js +1 -0
  1221. package/dist/showcase/assets/download-CxspQgIc.js +1 -0
  1222. package/dist/showcase/assets/dropdown-menu-Q1BV3wPP.js +1 -0
  1223. package/dist/showcase/assets/dropzone-OivkuTPF.js +1 -0
  1224. package/dist/showcase/assets/ellipsis-Bn-XgoA7.js +1 -0
  1225. package/dist/showcase/assets/ellipsis-vertical-Bcl9HX9k.js +1 -0
  1226. package/dist/showcase/assets/empty-CcafLcw-.js +1 -0
  1227. package/dist/showcase/assets/empty-item-CiJeS8ZV.js +49 -0
  1228. package/dist/showcase/assets/empty-state-B1RYYjUP.js +188 -0
  1229. package/dist/showcase/assets/enhanced-activities-IB811DS6.js +361 -0
  1230. package/dist/showcase/assets/esm-CAF_uoYd.js +2 -0
  1231. package/dist/showcase/assets/event-calendar-C2VCfcUz.js +138 -0
  1232. package/dist/showcase/assets/event-log-ckmsCPmG.js +330 -0
  1233. package/dist/showcase/assets/example-C6-_Sy6B.js +1 -0
  1234. package/dist/showcase/assets/external-link-Bg-_8Uq7.js +1 -0
  1235. package/dist/showcase/assets/eye-JVsUA85G.js +1 -0
  1236. package/dist/showcase/assets/feature-announcement-C4aRXesF.js +34 -0
  1237. package/dist/showcase/assets/fetchers-DHuMQ6PN.js +1 -0
  1238. package/dist/showcase/assets/file-4pOq58jl.js +1 -0
  1239. package/dist/showcase/assets/file-text-BIi71mZ1.js +1 -0
  1240. package/dist/showcase/assets/filters-CxrcnmLU.js +78 -0
  1241. package/dist/showcase/assets/flag-DeiJmomk.js +1 -0
  1242. package/dist/showcase/assets/folder-open-zMXBpVNs.js +1 -0
  1243. package/dist/showcase/assets/form-sizing-B8jbL5tL.js +1 -0
  1244. package/dist/showcase/assets/format-BG4laCmp.js +1 -0
  1245. package/dist/showcase/assets/format-metric-value-B94EDo8X.js +1 -0
  1246. package/dist/showcase/assets/forms-PsN5zTLx.js +793 -0
  1247. package/dist/showcase/assets/generic-BH5YLC_H.js +1 -0
  1248. package/dist/showcase/assets/getPseudoElementBounds-B7wr19E1.js +1 -0
  1249. package/dist/showcase/assets/gift-CKFIh1Wh.js +1 -0
  1250. package/dist/showcase/assets/giftcard-cards-BfOlIHmA.js +85 -0
  1251. package/dist/showcase/assets/git-branch-BO9i8XkJ.js +1 -0
  1252. package/dist/showcase/assets/global-search-CNmUraNa.js +90 -0
  1253. package/dist/showcase/assets/global-search-DkJkQ0Vs.js +1 -0
  1254. package/dist/showcase/assets/globe-47T22W56.js +1 -0
  1255. package/dist/showcase/assets/gradient-card-CXSY29TZ.js +58 -0
  1256. package/dist/showcase/assets/header-eZHN-s6P.js +1 -0
  1257. package/dist/showcase/assets/header-notifications-Caa9i87J.js +1 -0
  1258. package/dist/showcase/assets/heart-DjKkkUsX.js +1 -0
  1259. package/dist/showcase/assets/house-DKxCiHyB.js +1 -0
  1260. package/dist/showcase/assets/icon-badge-Bcm8TlJi.js +1 -0
  1261. package/dist/showcase/assets/image-r-gMI33G.js +1 -0
  1262. package/dist/showcase/assets/inbox-ZxSy1pgX.js +1 -0
  1263. package/dist/showcase/assets/index-B8DVXCmf.js +10 -0
  1264. package/dist/showcase/assets/index-DbLs6mcj.css +2 -0
  1265. package/dist/showcase/assets/inertValue-i0cAMG-0.js +1 -0
  1266. package/dist/showcase/assets/info-B1KV2DkO.js +1 -0
  1267. package/dist/showcase/assets/inline-stat-D0sE-A4C.js +1 -0
  1268. package/dist/showcase/assets/input-25epjsiD.js +1 -0
  1269. package/dist/showcase/assets/input-CnwMt9Sr.js +1 -0
  1270. package/dist/showcase/assets/input-group-DSKyV7we.js +47 -0
  1271. package/dist/showcase/assets/input-group-x5eWeAZg.js +1 -0
  1272. package/dist/showcase/assets/inputs-B2Maxr14.js +49 -0
  1273. package/dist/showcase/assets/invoice-header-Gxl--yFu.js +36 -0
  1274. package/dist/showcase/assets/invoice-items-BtoaGNjE.js +36 -0
  1275. package/dist/showcase/assets/invoice-mini-DHFSZegy.js +14 -0
  1276. package/dist/showcase/assets/invoice-table-6dmU_KrL.js +30 -0
  1277. package/dist/showcase/assets/isSameDay-BrDHfKHm.js +1 -0
  1278. package/dist/showcase/assets/isToday-VtoSc1IH.js +1 -0
  1279. package/dist/showcase/assets/italic-CXkAsf6H.js +1 -0
  1280. package/dist/showcase/assets/item-CGOThKAx.js +1 -0
  1281. package/dist/showcase/assets/item-CMRbW6s-.js +1 -0
  1282. package/dist/showcase/assets/item-sw6fAZcn.js +117 -0
  1283. package/dist/showcase/assets/kanban-CKGYTXji.js +175 -0
  1284. package/dist/showcase/assets/label-BmKD22pm.js +1 -0
  1285. package/dist/showcase/assets/layout-app-shell-CeMHzVNn.js +501 -0
  1286. package/dist/showcase/assets/layout-containers-8Drow5f9.js +96 -0
  1287. package/dist/showcase/assets/layout-header-BlBw4JAV.js +170 -0
  1288. package/dist/showcase/assets/layout-page-BQfgHFau.js +122 -0
  1289. package/dist/showcase/assets/layout-sidebar-DZer5Uuh.js +224 -0
  1290. package/dist/showcase/assets/layout-users-nuioUkeu.js +104 -0
  1291. package/dist/showcase/assets/leaflet-src-S_KZeH2q.js +1 -0
  1292. package/dist/showcase/assets/lib-DMGme4uo.js +1 -0
  1293. package/dist/showcase/assets/lock-DQcZ9cEj.js +1 -0
  1294. package/dist/showcase/assets/mail-yNXDtmNr.js +1 -0
  1295. package/dist/showcase/assets/map-JMM1F9VR.js +124 -0
  1296. package/dist/showcase/assets/map-pin-2WS7oVo3.js +1 -0
  1297. package/dist/showcase/assets/menus-mK-FeNki.js +89 -0
  1298. package/dist/showcase/assets/message-square-DGTAjNJG.js +1 -0
  1299. package/dist/showcase/assets/metadata-list-CBxuQjVO.js +278 -0
  1300. package/dist/showcase/assets/metric-BWGrmyD6.js +1 -0
  1301. package/dist/showcase/assets/metric-grid-CewIJQvo.js +1 -0
  1302. package/dist/showcase/assets/metric-trend-chip-kLBN8u5z.js +1 -0
  1303. package/dist/showcase/assets/metrics-analytics-bar-COnc7VN9.js +44 -0
  1304. package/dist/showcase/assets/metrics-analytics-cards-BR83UVqi.js +77 -0
  1305. package/dist/showcase/assets/metrics-comparison-C0SUjdMg.js +76 -0
  1306. package/dist/showcase/assets/metrics-heatmap-Orq1hLk-.js +27 -0
  1307. package/dist/showcase/assets/metrics-inline-badge-C924q2Xx.js +17 -0
  1308. package/dist/showcase/assets/metrics-kpi-row-Cwi05ruK.js +31 -0
  1309. package/dist/showcase/assets/metrics-micro-grid-D97nkrge.js +42 -0
  1310. package/dist/showcase/assets/metrics-overview-BOc8y3QX.js +192 -0
  1311. package/dist/showcase/assets/metrics-stat-cards-Cilh-A5D.js +54 -0
  1312. package/dist/showcase/assets/minus-DvrDGcTv.js +1 -0
  1313. package/dist/showcase/assets/money-display-0egZ_O76.js +1 -0
  1314. package/dist/showcase/assets/month-year-picker-2cWfwnmP.js +1 -0
  1315. package/dist/showcase/assets/navigation-BnYme-Wj.js +90 -0
  1316. package/dist/showcase/assets/navigation-CLQWl32A.js +230 -0
  1317. package/dist/showcase/assets/navigation-extras-BPDoAdXF.js +43 -0
  1318. package/dist/showcase/assets/onboarding-checklist-26XVWgDF.js +119 -0
  1319. package/dist/showcase/assets/overlays-2sVGhanu.js +88 -0
  1320. package/dist/showcase/assets/overlays-BaR6HDwB.js +394 -0
  1321. package/dist/showcase/assets/package-CUNvdlBi.js +1 -0
  1322. package/dist/showcase/assets/page-action-button-DgvZVtzx.js +1 -0
  1323. package/dist/showcase/assets/page-header-4F_iaFPW.js +1 -0
  1324. package/dist/showcase/assets/pagination-CDjZ6jiZ.js +42 -0
  1325. package/dist/showcase/assets/pagination-g1NQaN42.js +1 -0
  1326. package/dist/showcase/assets/paperclip-CDxdf8Os.js +1 -0
  1327. package/dist/showcase/assets/pencil-Ddc5JwBe.js +1 -0
  1328. package/dist/showcase/assets/phone-NIZ5SwgK.js +1 -0
  1329. package/dist/showcase/assets/plus-C9kwz7rW.js +1 -0
  1330. package/dist/showcase/assets/popover-DtnuOBgr.js +1 -0
  1331. package/dist/showcase/assets/popover-T85aV4zW.js +1 -0
  1332. package/dist/showcase/assets/popover-menu-BRGSZe4f.js +1 -0
  1333. package/dist/showcase/assets/progress-CcZjuzK3.js +1 -0
  1334. package/dist/showcase/assets/progress-DbouniUl.js +18 -0
  1335. package/dist/showcase/assets/props-table-CM_1cocj.js +1 -0
  1336. package/dist/showcase/assets/props.generated-Bg627Jai.json +32829 -0
  1337. package/dist/showcase/assets/quote-vjygm2-7.js +1 -0
  1338. package/dist/showcase/assets/react-dom-Bz4cALsF.js +1 -0
  1339. package/dist/showcase/assets/receipt-CfMgwFPl.js +1 -0
  1340. package/dist/showcase/assets/refresh-cw-Tu5E_cGA.js +1 -0
  1341. package/dist/showcase/assets/resolveValueLabel-CipUZh6i.js +1 -0
  1342. package/dist/showcase/assets/rich-text-editor-BMZUyuQX.js +143 -0
  1343. package/dist/showcase/assets/rich-text-editor-HwYIeWYW.js +124 -0
  1344. package/dist/showcase/assets/rotate-ccw-B4Wi4ws7.js +1 -0
  1345. package/dist/showcase/assets/scroll-area-CuB_woqF.js +1 -0
  1346. package/dist/showcase/assets/scroll-area-I4mSIpRq.js +32 -0
  1347. package/dist/showcase/assets/select-CF3cKjCo.js +1 -0
  1348. package/dist/showcase/assets/send-Blu_n6xl.js +1 -0
  1349. package/dist/showcase/assets/separator-9mrRf_DZ.js +28 -0
  1350. package/dist/showcase/assets/separator-DUKleOvU.js +1 -0
  1351. package/dist/showcase/assets/settings-DlKX-bZT.js +1 -0
  1352. package/dist/showcase/assets/sheet-CwcLVoF3.js +1 -0
  1353. package/dist/showcase/assets/shield-BD0Y8Jj3.js +1 -0
  1354. package/dist/showcase/assets/shield-alert-DNOTmkwG.js +1 -0
  1355. package/dist/showcase/assets/shield-check-Sbul0dUK.js +1 -0
  1356. package/dist/showcase/assets/shopping-bag-EDVpxI9n.js +1 -0
  1357. package/dist/showcase/assets/sidebar-JWZ88xw5.js +1 -0
  1358. package/dist/showcase/assets/sidebar.context-D3P7qppn.js +1 -0
  1359. package/dist/showcase/assets/skeleton-CIS1Kaas.js +1 -0
  1360. package/dist/showcase/assets/skeleton-CJCJDQFt.js +29 -0
  1361. package/dist/showcase/assets/smart-card-7szg_qSt.js +1 -0
  1362. package/dist/showcase/assets/sonner-DMHXr9Ce.js +22 -0
  1363. package/dist/showcase/assets/sortable.esm-DVuzVA1U.js +5 -0
  1364. package/dist/showcase/assets/sparkles-BEa1AgNq.js +1 -0
  1365. package/dist/showcase/assets/spinner-Bi-T9etI.js +30 -0
  1366. package/dist/showcase/assets/spinner-C77XIUVf.js +1 -0
  1367. package/dist/showcase/assets/spinner-DK9BAT6K.js +49 -0
  1368. package/dist/showcase/assets/square-pen-N0mq-vPu.js +1 -0
  1369. package/dist/showcase/assets/stacked-avatars-DORVEni2.js +1 -0
  1370. package/dist/showcase/assets/star-Dbtxr60S.js +1 -0
  1371. package/dist/showcase/assets/startOfDay-BJgxz4yq.js +1 -0
  1372. package/dist/showcase/assets/styles-CwW4IBUg.js +1 -0
  1373. package/dist/showcase/assets/switch-B4iRxZFU.js +1 -0
  1374. package/dist/showcase/assets/switch-B_rnbXwy.js +1 -0
  1375. package/dist/showcase/assets/table-BJ9HSK6H.js +1 -0
  1376. package/dist/showcase/assets/table-IB0MEYf4.js +389 -0
  1377. package/dist/showcase/assets/tabs-D02JL-Fa.js +1 -0
  1378. package/dist/showcase/assets/tabs-XpsVS3ff.js +19 -0
  1379. package/dist/showcase/assets/text-button-BWCgXGnr.js +1 -0
  1380. package/dist/showcase/assets/text-link-TzuDnSCF.js +1 -0
  1381. package/dist/showcase/assets/textarea-B7DUIiH_.js +1 -0
  1382. package/dist/showcase/assets/textarea-CV5gNzXf.js +1 -0
  1383. package/dist/showcase/assets/timelines-CF0UYhwm.js +200 -0
  1384. package/dist/showcase/assets/toggle-group-CK8mBx6E.js +1 -0
  1385. package/dist/showcase/assets/toggles-CqJSApnF.js +71 -0
  1386. package/dist/showcase/assets/toggles-group-v0JijMzG.js +32 -0
  1387. package/dist/showcase/assets/trash-2-_xF5j-Ya.js +1 -0
  1388. package/dist/showcase/assets/trending-up-BCzmjYzm.js +1 -0
  1389. package/dist/showcase/assets/truck-CryH-5dx.js +1 -0
  1390. package/dist/showcase/assets/typography-D3PFbRpb.js +215 -0
  1391. package/dist/showcase/assets/ui-badge-ByyFPLOB.js +28 -0
  1392. package/dist/showcase/assets/ui-card-DYLLiD89.js +30 -0
  1393. package/dist/showcase/assets/ui-table-DW4QIwxK.js +42 -0
  1394. package/dist/showcase/assets/upload-tray-ZdL_dzc0.js +138 -0
  1395. package/dist/showcase/assets/useAnchoredPopupScrollLock-AFPLx3SZ.js +1 -0
  1396. package/dist/showcase/assets/useCollapsiblePanel-CeHRY8U2.js +1 -0
  1397. package/dist/showcase/assets/useCompositeItem-C-1zP8zD.js +1 -0
  1398. package/dist/showcase/assets/useCompositeListItem-D4ugfKLB.js +1 -0
  1399. package/dist/showcase/assets/useControlled-Cpg8gDqb.js +1 -0
  1400. package/dist/showcase/assets/useLabelableId-CSxAHpU-.js +1 -0
  1401. package/dist/showcase/assets/useOpenInteractionType-BLV8Pa2n.js +1 -0
  1402. package/dist/showcase/assets/useRender-DparzvOu.js +1 -0
  1403. package/dist/showcase/assets/useTriggerFocusGuards-CrYLO2g5.js +1 -0
  1404. package/dist/showcase/assets/useValueChanged-DwgbaueK.js +1 -0
  1405. package/dist/showcase/assets/user-CGcV8Ppb.js +1 -0
  1406. package/dist/showcase/assets/user-plus-iOsntM6P.js +1 -0
  1407. package/dist/showcase/assets/users-DzgXeZbf.js +1 -0
  1408. package/dist/showcase/assets/vendor-profile-DbFPkGn9.js +37 -0
  1409. package/dist/showcase/assets/wrench-1Ra9xb3d.js +1 -0
  1410. package/dist/showcase/assets/x-CE8oevyh.js +1 -0
  1411. package/dist/showcase/assets/zap-se3n2YVD.js +1 -0
  1412. package/dist/showcase/index.html +4 -3
  1413. package/dist/style.css +2 -2
  1414. package/package.json +9 -3
  1415. package/scripts/audit-consumer.mjs +17 -6
  1416. package/src/App.css +28 -0
  1417. package/dist/_shared/accordion-CztqyaIN.js +0 -130
  1418. package/dist/_shared/accordion-CztqyaIN.js.map +0 -1
  1419. package/dist/_shared/accordion-D5uTCLCB.cjs +0 -2
  1420. package/dist/_shared/accordion-D5uTCLCB.cjs.map +0 -1
  1421. package/dist/_shared/action-menu-Yrj6VzFS.js +0 -96
  1422. package/dist/_shared/action-menu-Yrj6VzFS.js.map +0 -1
  1423. package/dist/_shared/action-menu-eVP8GGlv.cjs +0 -2
  1424. package/dist/_shared/action-menu-eVP8GGlv.cjs.map +0 -1
  1425. package/dist/_shared/ai-artifact-DaHXJTKg.cjs +0 -3
  1426. package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +0 -1
  1427. package/dist/_shared/ai-artifact-DyLn3JAs.js +0 -1068
  1428. package/dist/_shared/ai-artifact-DyLn3JAs.js.map +0 -1
  1429. package/dist/_shared/alert-BVw4Mq6H.js +0 -48
  1430. package/dist/_shared/alert-BVw4Mq6H.js.map +0 -1
  1431. package/dist/_shared/alert-DXSlR9ja.cjs +0 -2
  1432. package/dist/_shared/alert-DXSlR9ja.cjs.map +0 -1
  1433. package/dist/_shared/avatar-CpBz9pTv.js +0 -52
  1434. package/dist/_shared/avatar-CpBz9pTv.js.map +0 -1
  1435. package/dist/_shared/avatar-dg20YFFs.cjs +0 -2
  1436. package/dist/_shared/avatar-dg20YFFs.cjs.map +0 -1
  1437. package/dist/_shared/badge-BVCh_hfL.js +0 -108
  1438. package/dist/_shared/badge-BVCh_hfL.js.map +0 -1
  1439. package/dist/_shared/badge-C49SSz-6.cjs +0 -2
  1440. package/dist/_shared/badge-C49SSz-6.cjs.map +0 -1
  1441. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +0 -2
  1442. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +0 -1
  1443. package/dist/_shared/breadcrumbs-Dc93fqqE.js +0 -111
  1444. package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +0 -1
  1445. package/dist/_shared/button-2xglT7yf.cjs +0 -2
  1446. package/dist/_shared/button-2xglT7yf.cjs.map +0 -1
  1447. package/dist/_shared/button-ChCkwoOD.js +0 -176
  1448. package/dist/_shared/button-ChCkwoOD.js.map +0 -1
  1449. package/dist/_shared/button-D0nF99a9.cjs +0 -2
  1450. package/dist/_shared/button-D0nF99a9.cjs.map +0 -1
  1451. package/dist/_shared/button-DBR4QI9E.js +0 -46
  1452. package/dist/_shared/button-DBR4QI9E.js.map +0 -1
  1453. package/dist/_shared/buttons-Bcnt1md_.js +0 -143
  1454. package/dist/_shared/buttons-Bcnt1md_.js.map +0 -1
  1455. package/dist/_shared/buttons-km9xqXJv.cjs +0 -2
  1456. package/dist/_shared/buttons-km9xqXJv.cjs.map +0 -1
  1457. package/dist/_shared/card-radio-group-BGH93O5-.js +0 -158
  1458. package/dist/_shared/card-radio-group-BGH93O5-.js.map +0 -1
  1459. package/dist/_shared/card-radio-group-Vq741uhL.cjs +0 -2
  1460. package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +0 -1
  1461. package/dist/_shared/chunk-D3uCBrYO.cjs +0 -1
  1462. package/dist/_shared/combobox-BgXAxjU2.js +0 -746
  1463. package/dist/_shared/combobox-BgXAxjU2.js.map +0 -1
  1464. package/dist/_shared/combobox-DuIyh3xJ.cjs +0 -2
  1465. package/dist/_shared/combobox-DuIyh3xJ.cjs.map +0 -1
  1466. package/dist/_shared/command-BbiijN61.js +0 -39
  1467. package/dist/_shared/command-BbiijN61.js.map +0 -1
  1468. package/dist/_shared/command-D7zTvyBJ.cjs +0 -2
  1469. package/dist/_shared/command-D7zTvyBJ.cjs.map +0 -1
  1470. package/dist/_shared/command-DGNtTI-V.cjs +0 -2
  1471. package/dist/_shared/command-DGNtTI-V.cjs.map +0 -1
  1472. package/dist/_shared/command-jKbwFRtS.js +0 -123
  1473. package/dist/_shared/command-jKbwFRtS.js.map +0 -1
  1474. package/dist/_shared/comments-CNUsdwGW.cjs +0 -2
  1475. package/dist/_shared/comments-CNUsdwGW.cjs.map +0 -1
  1476. package/dist/_shared/comments-CvmS7zG3.js +0 -945
  1477. package/dist/_shared/comments-CvmS7zG3.js.map +0 -1
  1478. package/dist/_shared/containers-BFDv7cCV.cjs +0 -2
  1479. package/dist/_shared/containers-BFDv7cCV.cjs.map +0 -1
  1480. package/dist/_shared/containers-C1-A_2PT.js +0 -19
  1481. package/dist/_shared/containers-C1-A_2PT.js.map +0 -1
  1482. package/dist/_shared/content-container-CwqFnaI0.cjs +0 -2
  1483. package/dist/_shared/content-container-CwqFnaI0.cjs.map +0 -1
  1484. package/dist/_shared/content-container-D_3JGBSc.js +0 -33
  1485. package/dist/_shared/content-container-D_3JGBSc.js.map +0 -1
  1486. package/dist/_shared/copyable-CHhCGMfW.js +0 -38
  1487. package/dist/_shared/copyable-CHhCGMfW.js.map +0 -1
  1488. package/dist/_shared/copyable-ndaiocYq.cjs +0 -2
  1489. package/dist/_shared/copyable-ndaiocYq.cjs.map +0 -1
  1490. package/dist/_shared/date-picker-B8O_qbik.js +0 -1353
  1491. package/dist/_shared/date-picker-B8O_qbik.js.map +0 -1
  1492. package/dist/_shared/date-picker-BnOjyuKS.cjs +0 -2
  1493. package/dist/_shared/date-picker-BnOjyuKS.cjs.map +0 -1
  1494. package/dist/_shared/date-pickers-Cas9cPlj.js +0 -330
  1495. package/dist/_shared/date-pickers-Cas9cPlj.js.map +0 -1
  1496. package/dist/_shared/date-pickers-Dk-G3RMy.cjs +0 -2
  1497. package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +0 -1
  1498. package/dist/_shared/dialog-67GmkMLC.js +0 -101
  1499. package/dist/_shared/dialog-67GmkMLC.js.map +0 -1
  1500. package/dist/_shared/dialog-BF_4uAhE.cjs +0 -2
  1501. package/dist/_shared/dialog-BF_4uAhE.cjs.map +0 -1
  1502. package/dist/_shared/display-B9xVWboG.cjs +0 -8
  1503. package/dist/_shared/display-B9xVWboG.cjs.map +0 -1
  1504. package/dist/_shared/display-BM_GxDAo.js +0 -1237
  1505. package/dist/_shared/display-BM_GxDAo.js.map +0 -1
  1506. package/dist/_shared/dropdown-menu-4nxEBMnd.js +0 -147
  1507. package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +0 -1
  1508. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +0 -2
  1509. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +0 -1
  1510. package/dist/_shared/form-field-BQlki-8s.js +0 -319
  1511. package/dist/_shared/form-field-BQlki-8s.js.map +0 -1
  1512. package/dist/_shared/form-field-DzpwVS99.cjs +0 -2
  1513. package/dist/_shared/form-field-DzpwVS99.cjs.map +0 -1
  1514. package/dist/_shared/form-sizing-CcbB-OHF.js +0 -21
  1515. package/dist/_shared/form-sizing-CcbB-OHF.js.map +0 -1
  1516. package/dist/_shared/form-sizing-Cw12UeI6.cjs +0 -2
  1517. package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +0 -1
  1518. package/dist/_shared/format-B2AdSQVn.cjs +0 -2
  1519. package/dist/_shared/format-B2AdSQVn.cjs.map +0 -1
  1520. package/dist/_shared/format-CP65h1vK.js +0 -48
  1521. package/dist/_shared/format-CP65h1vK.js.map +0 -1
  1522. package/dist/_shared/forms-B8aaNG44.cjs +0 -2
  1523. package/dist/_shared/forms-B8aaNG44.cjs.map +0 -1
  1524. package/dist/_shared/forms-BusuTZZ2.js +0 -3374
  1525. package/dist/_shared/forms-BusuTZZ2.js.map +0 -1
  1526. package/dist/_shared/header-DWfOUjFL.cjs +0 -2
  1527. package/dist/_shared/header-DWfOUjFL.cjs.map +0 -1
  1528. package/dist/_shared/header-KpdoLtP9.js +0 -369
  1529. package/dist/_shared/header-KpdoLtP9.js.map +0 -1
  1530. package/dist/_shared/heading-BprqyzDs.js +0 -39
  1531. package/dist/_shared/heading-BprqyzDs.js.map +0 -1
  1532. package/dist/_shared/heading-mZc_jan1.cjs +0 -2
  1533. package/dist/_shared/heading-mZc_jan1.cjs.map +0 -1
  1534. package/dist/_shared/hooks-C-uWoRq5.cjs +0 -2
  1535. package/dist/_shared/hooks-C-uWoRq5.cjs.map +0 -1
  1536. package/dist/_shared/hooks-D5HJtvvP.js +0 -118
  1537. package/dist/_shared/hooks-D5HJtvvP.js.map +0 -1
  1538. package/dist/_shared/icon-badge-BBqDyAUz.cjs +0 -2
  1539. package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +0 -1
  1540. package/dist/_shared/icon-badge-Bi63T-bj.js +0 -52
  1541. package/dist/_shared/icon-badge-Bi63T-bj.js.map +0 -1
  1542. package/dist/_shared/input-B2YXTHqz.cjs +0 -2
  1543. package/dist/_shared/input-B2YXTHqz.cjs.map +0 -1
  1544. package/dist/_shared/input-BJb10xb9.cjs +0 -2
  1545. package/dist/_shared/input-BJb10xb9.cjs.map +0 -1
  1546. package/dist/_shared/input-CZxP5Xgj.js +0 -17
  1547. package/dist/_shared/input-CZxP5Xgj.js.map +0 -1
  1548. package/dist/_shared/input-DQahu2sm.js +0 -182
  1549. package/dist/_shared/input-DQahu2sm.js.map +0 -1
  1550. package/dist/_shared/item-Cu5JbZyZ.js +0 -224
  1551. package/dist/_shared/item-Cu5JbZyZ.js.map +0 -1
  1552. package/dist/_shared/item-Cx_7QZ2o.cjs +0 -2
  1553. package/dist/_shared/item-Cx_7QZ2o.cjs.map +0 -1
  1554. package/dist/_shared/mentions-CS3rIhze.js +0 -493
  1555. package/dist/_shared/mentions-CS3rIhze.js.map +0 -1
  1556. package/dist/_shared/mentions-D7gnP3Nf.cjs +0 -2
  1557. package/dist/_shared/mentions-D7gnP3Nf.cjs.map +0 -1
  1558. package/dist/_shared/metadata-CRsVWE8Y.cjs +0 -2
  1559. package/dist/_shared/metadata-CRsVWE8Y.cjs.map +0 -1
  1560. package/dist/_shared/metadata-CfG0FdFZ.js +0 -236
  1561. package/dist/_shared/metadata-CfG0FdFZ.js.map +0 -1
  1562. package/dist/_shared/money-display-Bd0rkjc9.js +0 -198
  1563. package/dist/_shared/money-display-Bd0rkjc9.js.map +0 -1
  1564. package/dist/_shared/money-display-DSFft9Mi.cjs +0 -2
  1565. package/dist/_shared/money-display-DSFft9Mi.cjs.map +0 -1
  1566. package/dist/_shared/navigation-Do9k5Xh1.js +0 -420
  1567. package/dist/_shared/navigation-Do9k5Xh1.js.map +0 -1
  1568. package/dist/_shared/navigation-QAAD3HJd.cjs +0 -2
  1569. package/dist/_shared/navigation-QAAD3HJd.cjs.map +0 -1
  1570. package/dist/_shared/overlays-B8AH8fNv.js +0 -633
  1571. package/dist/_shared/overlays-B8AH8fNv.js.map +0 -1
  1572. package/dist/_shared/overlays-DOcoRy8k.cjs +0 -2
  1573. package/dist/_shared/overlays-DOcoRy8k.cjs.map +0 -1
  1574. package/dist/_shared/page-BPCeKX9X.js +0 -263
  1575. package/dist/_shared/page-BPCeKX9X.js.map +0 -1
  1576. package/dist/_shared/page-DMM32sxi.cjs +0 -2
  1577. package/dist/_shared/page-DMM32sxi.cjs.map +0 -1
  1578. package/dist/_shared/popover-B1f_EUQS.cjs +0 -2
  1579. package/dist/_shared/popover-B1f_EUQS.cjs.map +0 -1
  1580. package/dist/_shared/popover-CgRGcFk9.js +0 -83
  1581. package/dist/_shared/popover-CgRGcFk9.js.map +0 -1
  1582. package/dist/_shared/popover-menu-BEKIT3LR.cjs +0 -2
  1583. package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +0 -1
  1584. package/dist/_shared/popover-menu-BHdHLEVL.js +0 -95
  1585. package/dist/_shared/popover-menu-BHdHLEVL.js.map +0 -1
  1586. package/dist/_shared/rich-text-editor-0uoIoYXU.js +0 -608
  1587. package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +0 -1
  1588. package/dist/_shared/rich-text-editor-wTiARGuB.cjs +0 -2
  1589. package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +0 -1
  1590. package/dist/_shared/scroll-area-Bo17wtZD.cjs +0 -2
  1591. package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +0 -1
  1592. package/dist/_shared/scroll-area-Cj-hmB5D.js +0 -41
  1593. package/dist/_shared/scroll-area-Cj-hmB5D.js.map +0 -1
  1594. package/dist/_shared/select-07RRiTWc.js +0 -85
  1595. package/dist/_shared/select-07RRiTWc.js.map +0 -1
  1596. package/dist/_shared/select-BfiU7a4n.cjs +0 -2
  1597. package/dist/_shared/select-BfiU7a4n.cjs.map +0 -1
  1598. package/dist/_shared/separator-CN9zAJfs.cjs +0 -2
  1599. package/dist/_shared/separator-CN9zAJfs.cjs.map +0 -1
  1600. package/dist/_shared/separator-DR0uUMKa.js +0 -16
  1601. package/dist/_shared/separator-DR0uUMKa.js.map +0 -1
  1602. package/dist/_shared/sheet-B5FoGJAZ.cjs +0 -2
  1603. package/dist/_shared/sheet-B5FoGJAZ.cjs.map +0 -1
  1604. package/dist/_shared/sheet-cUI8cypP.js +0 -100
  1605. package/dist/_shared/sheet-cUI8cypP.js.map +0 -1
  1606. package/dist/_shared/sidebar-Bq7yKLrG.cjs +0 -2
  1607. package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +0 -1
  1608. package/dist/_shared/sidebar-Da20tCUc.cjs +0 -2
  1609. package/dist/_shared/sidebar-Da20tCUc.cjs.map +0 -1
  1610. package/dist/_shared/sidebar-Q6TYE8Ux.js +0 -371
  1611. package/dist/_shared/sidebar-Q6TYE8Ux.js.map +0 -1
  1612. package/dist/_shared/sidebar-WmnQ55YY.js +0 -537
  1613. package/dist/_shared/sidebar-WmnQ55YY.js.map +0 -1
  1614. package/dist/_shared/skeleton-B3HWEc6G.js +0 -14
  1615. package/dist/_shared/skeleton-B3HWEc6G.js.map +0 -1
  1616. package/dist/_shared/skeleton-Cz_l8-fc.cjs +0 -2
  1617. package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +0 -1
  1618. package/dist/_shared/slot-BgnZtKR5.js +0 -18
  1619. package/dist/_shared/slot-BgnZtKR5.js.map +0 -1
  1620. package/dist/_shared/slot-Dac1ipUC.cjs +0 -2
  1621. package/dist/_shared/slot-Dac1ipUC.cjs.map +0 -1
  1622. package/dist/_shared/smart-card-Bm_VxYUG.cjs +0 -2
  1623. package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +0 -1
  1624. package/dist/_shared/smart-card-MT6JjkoI.js +0 -360
  1625. package/dist/_shared/smart-card-MT6JjkoI.js.map +0 -1
  1626. package/dist/_shared/spinner-BQjxJ_Kx.js +0 -67
  1627. package/dist/_shared/spinner-BQjxJ_Kx.js.map +0 -1
  1628. package/dist/_shared/spinner-Dvaa6GUm.cjs +0 -2
  1629. package/dist/_shared/spinner-Dvaa6GUm.cjs.map +0 -1
  1630. package/dist/_shared/switch-C0yyhsXZ.js +0 -51
  1631. package/dist/_shared/switch-C0yyhsXZ.js.map +0 -1
  1632. package/dist/_shared/switch-DozkSQNn.cjs +0 -2
  1633. package/dist/_shared/switch-DozkSQNn.cjs.map +0 -1
  1634. package/dist/_shared/text-DBnY6fcL.cjs +0 -2
  1635. package/dist/_shared/text-DBnY6fcL.cjs.map +0 -1
  1636. package/dist/_shared/text-DIxMTECE.js +0 -74
  1637. package/dist/_shared/text-DIxMTECE.js.map +0 -1
  1638. package/dist/_shared/textarea-Cgl-FPwu.js +0 -119
  1639. package/dist/_shared/textarea-Cgl-FPwu.js.map +0 -1
  1640. package/dist/_shared/textarea-D8wC0XlZ.cjs +0 -2
  1641. package/dist/_shared/textarea-D8wC0XlZ.cjs.map +0 -1
  1642. package/dist/_shared/tooltip-Cws4BiPT.js +0 -49
  1643. package/dist/_shared/tooltip-Cws4BiPT.js.map +0 -1
  1644. package/dist/_shared/tooltip-DyUi-Tac.cjs +0 -2
  1645. package/dist/_shared/tooltip-DyUi-Tac.cjs.map +0 -1
  1646. package/dist/_shared/typography-BW7iZBx7.cjs +0 -2
  1647. package/dist/_shared/typography-BW7iZBx7.cjs.map +0 -1
  1648. package/dist/_shared/typography-a3hydyvI.js +0 -102
  1649. package/dist/_shared/typography-a3hydyvI.js.map +0 -1
  1650. package/dist/_shared/ui-provider-4qKSKMPd.js +0 -85
  1651. package/dist/_shared/ui-provider-4qKSKMPd.js.map +0 -1
  1652. package/dist/_shared/ui-provider-uiQgATj1.cjs +0 -2
  1653. package/dist/_shared/ui-provider-uiQgATj1.cjs.map +0 -1
  1654. package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +0 -6
  1655. package/dist/showcase/assets/CSPContext-BA7DfnCI.js +0 -1
  1656. package/dist/showcase/assets/CompositeItem-PwzgE4va.js +0 -1
  1657. package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +0 -1
  1658. package/dist/showcase/assets/Control.FullScreen-B9vseC57.js +0 -1
  1659. package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +0 -1
  1660. package/dist/showcase/assets/FormContext-ChygLayp.js +0 -1
  1661. package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +0 -1
  1662. package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +0 -1
  1663. package/dist/showcase/assets/Separator-Dk4eN76U.js +0 -1
  1664. package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +0 -1
  1665. package/dist/showcase/assets/accordion-dQszzfmw.js +0 -172
  1666. package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +0 -1
  1667. package/dist/showcase/assets/action-menu-CBi2Eiy0.js +0 -1
  1668. package/dist/showcase/assets/activities-DoXsgP4G.js +0 -501
  1669. package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +0 -1
  1670. package/dist/showcase/assets/admin-CxklUqAG.js +0 -80
  1671. package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +0 -2
  1672. package/dist/showcase/assets/ai-chat-B6PuqkEu.js +0 -568
  1673. package/dist/showcase/assets/ai-elements-D_rpj_ds.js +0 -379
  1674. package/dist/showcase/assets/ai-new-CUPrAbOK.js +0 -167
  1675. package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +0 -1
  1676. package/dist/showcase/assets/ai-zxF_msJF.js +0 -41
  1677. package/dist/showcase/assets/alert-771BE3Ny.js +0 -59
  1678. package/dist/showcase/assets/alert-CG42DAlX.js +0 -1
  1679. package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +0 -73
  1680. package/dist/showcase/assets/arrow-down-CUoXUyN1.js +0 -1
  1681. package/dist/showcase/assets/arrow-left-Cdq69X6h.js +0 -1
  1682. package/dist/showcase/assets/arrow-right-i25q9L2H.js +0 -1
  1683. package/dist/showcase/assets/arrow-up-pnezegnF.js +0 -1
  1684. package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +0 -1
  1685. package/dist/showcase/assets/avatar-LPmQqZQv.js +0 -1
  1686. package/dist/showcase/assets/avatar-ZVFIQouy.js +0 -57
  1687. package/dist/showcase/assets/badge-DK4bsgZC.js +0 -28
  1688. package/dist/showcase/assets/badge-check-Cw5gkVcG.js +0 -1
  1689. package/dist/showcase/assets/bell-BvJELoaV.js +0 -1
  1690. package/dist/showcase/assets/bot-DRj6sdSR.js +0 -1
  1691. package/dist/showcase/assets/box-BNND3M2m.js +0 -1
  1692. package/dist/showcase/assets/brain-Cy3o-12l.js +0 -1
  1693. package/dist/showcase/assets/brand-DvipEpFn.js +0 -40
  1694. package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +0 -1
  1695. package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +0 -52
  1696. package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +0 -1
  1697. package/dist/showcase/assets/briefcase-LcAwoEmu.js +0 -1
  1698. package/dist/showcase/assets/button-CuwcGzk1.js +0 -44
  1699. package/dist/showcase/assets/button-group-CAImjDrl.js +0 -1
  1700. package/dist/showcase/assets/buttons-DTjNHCMl.js +0 -259
  1701. package/dist/showcase/assets/calendar-B1zW0q6I.js +0 -1
  1702. package/dist/showcase/assets/calendar-Dlv72ytt.js +0 -1
  1703. package/dist/showcase/assets/calendar-ls2A08Pn.js +0 -16
  1704. package/dist/showcase/assets/card-BhtkM1BT.js +0 -1
  1705. package/dist/showcase/assets/cards-BRpRXzGk.js +0 -328
  1706. package/dist/showcase/assets/chart-column-BpQkEi1H.js +0 -1
  1707. package/dist/showcase/assets/chevron-down-DyObdfSb.js +0 -1
  1708. package/dist/showcase/assets/chevron-left-T7dHNxYM.js +0 -1
  1709. package/dist/showcase/assets/chevron-right-D_EcqHpT.js +0 -1
  1710. package/dist/showcase/assets/chevron-up-B38ivdGO.js +0 -1
  1711. package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +0 -1
  1712. package/dist/showcase/assets/circle-BrCPAmDA.js +0 -1
  1713. package/dist/showcase/assets/circle-alert-DdhzLPY_.js +0 -1
  1714. package/dist/showcase/assets/circle-check-DlA6zidQ.js +0 -1
  1715. package/dist/showcase/assets/circle-check-big-DFGJANQF.js +0 -1
  1716. package/dist/showcase/assets/circle-dot-BKmnVUqM.js +0 -1
  1717. package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +0 -1
  1718. package/dist/showcase/assets/circle-x-C45QjHEs.js +0 -1
  1719. package/dist/showcase/assets/clock-D1nKQzQo.js +0 -1
  1720. package/dist/showcase/assets/code-xml-B8N3GRSu.js +0 -1
  1721. package/dist/showcase/assets/collapsible-4TfcWyNs.js +0 -1
  1722. package/dist/showcase/assets/collapsible-CKbZtvTj.js +0 -27
  1723. package/dist/showcase/assets/combobox-DTdGPaU0.js +0 -622
  1724. package/dist/showcase/assets/command-DymTXwL1.js +0 -1
  1725. package/dist/showcase/assets/command-ksVIHQKJ.js +0 -45
  1726. package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +0 -1
  1727. package/dist/showcase/assets/comment-item-CAmKnJa7.js +0 -1
  1728. package/dist/showcase/assets/comments-Benk-2mV.js +0 -349
  1729. package/dist/showcase/assets/commerce-Qz-mq8mQ.js +0 -78
  1730. package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +0 -179
  1731. package/dist/showcase/assets/composite-DBDXLPyz.js +0 -1
  1732. package/dist/showcase/assets/contact-card-DkL2nI3r.js +0 -65
  1733. package/dist/showcase/assets/content-container-mRm6oJEa.js +0 -1
  1734. package/dist/showcase/assets/copyable-DmLlmwzy.js +0 -96
  1735. package/dist/showcase/assets/course-card-CJJoeZj9.js +0 -113
  1736. package/dist/showcase/assets/cpu-BXJnF2Xy.js +0 -1
  1737. package/dist/showcase/assets/credit-card-BQK3KKb2.js +0 -1
  1738. package/dist/showcase/assets/currency-DBPUh8ee.js +0 -149
  1739. package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +0 -90
  1740. package/dist/showcase/assets/database-BZerpzGE.js +0 -1
  1741. package/dist/showcase/assets/date-block-iiHUpbNX.js +0 -1
  1742. package/dist/showcase/assets/date-picker-BQeBGL7T.js +0 -1
  1743. package/dist/showcase/assets/date-pickers-CKcUEMMF.js +0 -110
  1744. package/dist/showcase/assets/dense-info-DATmxRU8.js +0 -106
  1745. package/dist/showcase/assets/dialog-Bqu5KDYH.js +0 -1
  1746. package/dist/showcase/assets/display-Bj7uPXD4.js +0 -392
  1747. package/dist/showcase/assets/dist-QK7JxeYv.js +0 -1
  1748. package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +0 -1
  1749. package/dist/showcase/assets/download-5oGw_WbW.js +0 -1
  1750. package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +0 -1
  1751. package/dist/showcase/assets/dropzone-Co1uhsDn.js +0 -1
  1752. package/dist/showcase/assets/ellipsis-cKRcvuyL.js +0 -1
  1753. package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +0 -1
  1754. package/dist/showcase/assets/empty-Y2-4nCBr.js +0 -1
  1755. package/dist/showcase/assets/empty-item-USa6xcUv.js +0 -49
  1756. package/dist/showcase/assets/empty-state-DfhZ9AT5.js +0 -188
  1757. package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +0 -359
  1758. package/dist/showcase/assets/esm-BeGQ_ZTM.js +0 -2
  1759. package/dist/showcase/assets/event-calendar-D-jGrrZS.js +0 -138
  1760. package/dist/showcase/assets/event-log-tA_i4eR9.js +0 -326
  1761. package/dist/showcase/assets/example-6phCHGsN.js +0 -1
  1762. package/dist/showcase/assets/external-link-BuVHkCy0.js +0 -1
  1763. package/dist/showcase/assets/eye-DC5HfGm6.js +0 -1
  1764. package/dist/showcase/assets/feature-announcement-DwvxLytd.js +0 -34
  1765. package/dist/showcase/assets/fetchers-SLCIqgnM.js +0 -1
  1766. package/dist/showcase/assets/file-D-xM4vLy.js +0 -1
  1767. package/dist/showcase/assets/file-text-tmG5vNbr.js +0 -1
  1768. package/dist/showcase/assets/filters-CrGRXmq6.js +0 -78
  1769. package/dist/showcase/assets/flag-CWrEtkY5.js +0 -1
  1770. package/dist/showcase/assets/folder-open-Br-x1pjP.js +0 -1
  1771. package/dist/showcase/assets/form-sizing-Bb5hiM45.js +0 -1
  1772. package/dist/showcase/assets/format-D_ETCyg4.js +0 -1
  1773. package/dist/showcase/assets/format-metric-value-cyOYS377.js +0 -1
  1774. package/dist/showcase/assets/forms-B_MkQ3rm.js +0 -790
  1775. package/dist/showcase/assets/generic-CdmsyXV3.js +0 -1
  1776. package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +0 -1
  1777. package/dist/showcase/assets/gift-NkuklfU2.js +0 -1
  1778. package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +0 -85
  1779. package/dist/showcase/assets/git-branch-B_CBqPeO.js +0 -1
  1780. package/dist/showcase/assets/global-search-D9teAbPe.js +0 -90
  1781. package/dist/showcase/assets/globe-gzw45GU2.js +0 -1
  1782. package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +0 -58
  1783. package/dist/showcase/assets/header-notifications-_aZCpE5A.js +0 -1
  1784. package/dist/showcase/assets/heart-CEMKbRaZ.js +0 -1
  1785. package/dist/showcase/assets/house-BlGXAcMH.js +0 -1
  1786. package/dist/showcase/assets/icon-badge-z6N9reH_.js +0 -1
  1787. package/dist/showcase/assets/image-B8mzmVBr.js +0 -1
  1788. package/dist/showcase/assets/inbox-qdSnP4UV.js +0 -1
  1789. package/dist/showcase/assets/index-B4ubXfly.js +0 -10
  1790. package/dist/showcase/assets/index-Cu3Ssz5r.css +0 -2
  1791. package/dist/showcase/assets/inertValue-D5Q8cLku.js +0 -1
  1792. package/dist/showcase/assets/info-DBvvNjc_.js +0 -1
  1793. package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +0 -1
  1794. package/dist/showcase/assets/input-CBQR0aeX.js +0 -1
  1795. package/dist/showcase/assets/input-OrUzpI55.js +0 -1
  1796. package/dist/showcase/assets/input-group-DhqOen2N.js +0 -47
  1797. package/dist/showcase/assets/input-group-l8xa5nUq.js +0 -1
  1798. package/dist/showcase/assets/inputs-DbiJ0qy2.js +0 -49
  1799. package/dist/showcase/assets/invoice-header-C6youIbL.js +0 -36
  1800. package/dist/showcase/assets/invoice-items-g6dgryF-.js +0 -36
  1801. package/dist/showcase/assets/invoice-mini-0iWhufpt.js +0 -14
  1802. package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +0 -30
  1803. package/dist/showcase/assets/isSameDay-BpZEtJe8.js +0 -1
  1804. package/dist/showcase/assets/isToday-F0CS28oK.js +0 -1
  1805. package/dist/showcase/assets/italic-CJOEwjdc.js +0 -1
  1806. package/dist/showcase/assets/item-BiMm1PPB.js +0 -1
  1807. package/dist/showcase/assets/item-CN0cwdj_.js +0 -1
  1808. package/dist/showcase/assets/item-DNqEUYLT.js +0 -117
  1809. package/dist/showcase/assets/kanban-DxePEUiQ.js +0 -175
  1810. package/dist/showcase/assets/label-Dx4WO-fg.js +0 -1
  1811. package/dist/showcase/assets/layout-containers-DDl8rG8S.js +0 -96
  1812. package/dist/showcase/assets/layout-header-Bu6IcDWu.js +0 -170
  1813. package/dist/showcase/assets/layout-page-D-88Qnoy.js +0 -122
  1814. package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +0 -224
  1815. package/dist/showcase/assets/layout-users-DtbZduBG.js +0 -104
  1816. package/dist/showcase/assets/leaflet-src-9EZQ14iG.js +0 -1
  1817. package/dist/showcase/assets/lib-D9BoOYUd.js +0 -1
  1818. package/dist/showcase/assets/lock-CHurDI0n.js +0 -1
  1819. package/dist/showcase/assets/mail-DZ1o1RLW.js +0 -1
  1820. package/dist/showcase/assets/map-C8xiyT9X.js +0 -124
  1821. package/dist/showcase/assets/map-pin-CAKaoYod.js +0 -1
  1822. package/dist/showcase/assets/menus-C6mnp636.js +0 -89
  1823. package/dist/showcase/assets/message-square-Zo5J_zU1.js +0 -1
  1824. package/dist/showcase/assets/metadata-list-W83-UMhc.js +0 -278
  1825. package/dist/showcase/assets/metric-BSvxidIX.js +0 -1
  1826. package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +0 -1
  1827. package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +0 -1
  1828. package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +0 -44
  1829. package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +0 -77
  1830. package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +0 -76
  1831. package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +0 -27
  1832. package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +0 -17
  1833. package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +0 -31
  1834. package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +0 -42
  1835. package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +0 -192
  1836. package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +0 -54
  1837. package/dist/showcase/assets/minus-C6eBW-2t.js +0 -1
  1838. package/dist/showcase/assets/money-display-DjGRJ16l.js +0 -1
  1839. package/dist/showcase/assets/month-year-picker-DTDebPqf.js +0 -1
  1840. package/dist/showcase/assets/navigation-BrG8Chig.js +0 -86
  1841. package/dist/showcase/assets/navigation-CfXQJbyM.js +0 -230
  1842. package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +0 -43
  1843. package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +0 -119
  1844. package/dist/showcase/assets/overlays-2AB9-S1Z.js +0 -88
  1845. package/dist/showcase/assets/overlays-CYt9o3Xq.js +0 -393
  1846. package/dist/showcase/assets/package-BJMP-Fcr.js +0 -1
  1847. package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +0 -1
  1848. package/dist/showcase/assets/page-header-B_rqHJhe.js +0 -1
  1849. package/dist/showcase/assets/pagination-BHiQvvka.js +0 -1
  1850. package/dist/showcase/assets/pagination-Dq0GruQd.js +0 -42
  1851. package/dist/showcase/assets/paperclip-BMYKrUQo.js +0 -1
  1852. package/dist/showcase/assets/pencil-BJ3VS_FO.js +0 -1
  1853. package/dist/showcase/assets/phone-CsRIyvep.js +0 -1
  1854. package/dist/showcase/assets/plus-D2JuXYLg.js +0 -1
  1855. package/dist/showcase/assets/popover-DNT9755r.js +0 -1
  1856. package/dist/showcase/assets/popover-KvGgcPNg.js +0 -1
  1857. package/dist/showcase/assets/popover-menu-CJx30R65.js +0 -1
  1858. package/dist/showcase/assets/progress-B7WuXcJR.js +0 -1
  1859. package/dist/showcase/assets/progress-CweCSAUv.js +0 -18
  1860. package/dist/showcase/assets/props-table-uDY4eIzt.js +0 -1
  1861. package/dist/showcase/assets/props.generated-BqPfiNI-.json +0 -32423
  1862. package/dist/showcase/assets/quote-DAyyfzQd.js +0 -1
  1863. package/dist/showcase/assets/receipt-C0mMZGbF.js +0 -1
  1864. package/dist/showcase/assets/refresh-cw-X06JbXb-.js +0 -1
  1865. package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +0 -1
  1866. package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +0 -124
  1867. package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +0 -141
  1868. package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +0 -1
  1869. package/dist/showcase/assets/scroll-area-0rT06pXZ.js +0 -1
  1870. package/dist/showcase/assets/scroll-area-YXwdzGpN.js +0 -32
  1871. package/dist/showcase/assets/select-BoWQDtUf.js +0 -1
  1872. package/dist/showcase/assets/send-DJsk3cr1.js +0 -1
  1873. package/dist/showcase/assets/separator-CLSnRcJa.js +0 -28
  1874. package/dist/showcase/assets/separator-DWv-twD-.js +0 -1
  1875. package/dist/showcase/assets/settings-Cb2MsAmN.js +0 -1
  1876. package/dist/showcase/assets/sheet-Dn1-MYus.js +0 -1
  1877. package/dist/showcase/assets/shield-DwLjF5ch.js +0 -1
  1878. package/dist/showcase/assets/shield-alert-D8i6gzMK.js +0 -1
  1879. package/dist/showcase/assets/shield-check-D5YRSBIz.js +0 -1
  1880. package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +0 -1
  1881. package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +0 -1
  1882. package/dist/showcase/assets/skeleton-CeNPp4hr.js +0 -1
  1883. package/dist/showcase/assets/skeleton-QPsnM_NR.js +0 -29
  1884. package/dist/showcase/assets/smart-card-BisUbLPt.js +0 -1
  1885. package/dist/showcase/assets/sonner-B7GzbBK2.js +0 -22
  1886. package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +0 -5
  1887. package/dist/showcase/assets/sparkles-CF9P5Tqh.js +0 -1
  1888. package/dist/showcase/assets/spinner-BeamEyJd.js +0 -49
  1889. package/dist/showcase/assets/spinner-DoYBfalR.js +0 -1
  1890. package/dist/showcase/assets/spinner-UsLsOYzn.js +0 -30
  1891. package/dist/showcase/assets/square-pen-BGTVdnt1.js +0 -1
  1892. package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +0 -1
  1893. package/dist/showcase/assets/star-NsPNO9gR.js +0 -1
  1894. package/dist/showcase/assets/startOfDay-zJBpxLuW.js +0 -1
  1895. package/dist/showcase/assets/styles-DA7a7hVy.js +0 -1
  1896. package/dist/showcase/assets/switch-C62S4U2o.js +0 -1
  1897. package/dist/showcase/assets/switch-CYQcinJZ.js +0 -1
  1898. package/dist/showcase/assets/table-w4IABkpa.js +0 -1
  1899. package/dist/showcase/assets/table-xgB63UrY.js +0 -390
  1900. package/dist/showcase/assets/tabs-BFTEaTXj.js +0 -19
  1901. package/dist/showcase/assets/tabs-oMJn9Ujq.js +0 -1
  1902. package/dist/showcase/assets/text-button-BgcutPuu.js +0 -1
  1903. package/dist/showcase/assets/text-link-CS9thOWL.js +0 -1
  1904. package/dist/showcase/assets/textarea-BOBx4EM6.js +0 -1
  1905. package/dist/showcase/assets/textarea-CTzYZZqa.js +0 -1
  1906. package/dist/showcase/assets/timelines-CK07mEBK.js +0 -186
  1907. package/dist/showcase/assets/toggle-group-CSPdPT6G.js +0 -1
  1908. package/dist/showcase/assets/toggles-DDSdl-gA.js +0 -71
  1909. package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +0 -32
  1910. package/dist/showcase/assets/trash-2-C-FAptQP.js +0 -1
  1911. package/dist/showcase/assets/trending-up-BmLhdF_w.js +0 -1
  1912. package/dist/showcase/assets/truck-pZdUS_as.js +0 -1
  1913. package/dist/showcase/assets/typography-CnBH2z7f.js +0 -214
  1914. package/dist/showcase/assets/ui-badge-Cl6INRO5.js +0 -28
  1915. package/dist/showcase/assets/ui-card-B5P-thNu.js +0 -30
  1916. package/dist/showcase/assets/ui-table-B32RILKk.js +0 -42
  1917. package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +0 -138
  1918. package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +0 -1
  1919. package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +0 -1
  1920. package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +0 -1
  1921. package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +0 -1
  1922. package/dist/showcase/assets/useControlled-ZjqBfPCn.js +0 -1
  1923. package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +0 -1
  1924. package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +0 -1
  1925. package/dist/showcase/assets/useRender-zuKv6JQF.js +0 -1
  1926. package/dist/showcase/assets/useRole-08KeyiD3.js +0 -1
  1927. package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +0 -1
  1928. package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +0 -1
  1929. package/dist/showcase/assets/user-Bgc2t2_e.js +0 -1
  1930. package/dist/showcase/assets/user-plus-F_TfagnP.js +0 -1
  1931. package/dist/showcase/assets/users-B7G4yTCR.js +0 -1
  1932. package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +0 -37
  1933. package/dist/showcase/assets/wrench-BdzICmjR.js +0 -1
  1934. package/dist/showcase/assets/x-B156Wr-5.js +0 -1
  1935. package/dist/showcase/assets/zap-B3iByjNV.js +0 -1
  1936. /package/dist/showcase/assets/{analytics.strings-BcotPUad.js → analytics.strings-B9262Jmq.js} +0 -0
  1937. /package/dist/showcase/assets/{chunk-CilyBKbf.js → chunk-QTnfLwEv.js} +0 -0
  1938. /package/dist/showcase/assets/{customers-BETQwFRp.js → customers-DvBxRjHv.js} +0 -0
  1939. /package/dist/showcase/assets/{format-DoQ4Wqkq.js → format-C_LjuBUs.js} +0 -0
  1940. /package/dist/showcase/assets/{isElementDisabled-BLmk_uhf.js → isElementDisabled-KSuuBj8D.js} +0 -0
  1941. /package/dist/showcase/assets/{leaflet.draw-CwFqqsDc.js → leaflet.draw-lpeKTWFs.js} +0 -0
  1942. /package/dist/showcase/assets/{orders-DNn7r9k_.js → orders-BFwWtubb.js} +0 -0
  1943. /package/dist/showcase/assets/{resolveAriaLabelledBy-DmY5COAB.js → resolveAriaLabelledBy-B6CR9UP2.js} +0 -0
  1944. /package/dist/showcase/assets/{valueToPercent-CDF3aNnc.js → valueToPercent-B5BHWU68.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ui/table.tsx","../../../../src/components/ui/pagination.tsx","../../../../src/components/base/table/table.strings.ts","../../../../src/components/base/table/pagination.tsx","../../../../src/components/base/table/table-actions.tsx","../../../../src/components/base/table/table-helpers.tsx","../../../../src/components/base/table/table-body.tsx","../../../../src/components/base/table/table-header.tsx","../../../../src/components/base/table/table-toolbar.tsx","../../../../src/components/base/table/data-table.tsx","../../../../src/components/base/table/filter-bar.tsx","../../../../src/components/base/table/table-pagination.tsx","../../../../src/components/base/table/column-visibility-toggle.tsx","../../../../src/components/base/table/partials/cell-value.tsx","../../../../src/components/base/table/partials/table-link.tsx","../../../../src/components/base/table/partials/cell-renderers.tsx","../../../../src/components/base/table/hooks.ts","../../../../src/components/base/table/partials/density-toggle.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n containerClassName?: string\n}\n\nfunction Table({ className, containerClassName, ...props }: TableProps) {\n return (\n <div\n data-slot=\"table-container\"\n className={cn(\"relative w-full overflow-x-auto\", containerClassName)}\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\n \"mx-auto flex w-full justify-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"gap-1 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"outline\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-2!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" />\n <span className=\"hidden sm:block\">\n {text}\n </span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-2!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4 flex items-center justify-center\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","import { type DataTableStrings, type DataTableStringsOverride } from './table.types';\n\nconst fallbackTitleCase = (value: string): string => {\n const formatted = value\n .replace(/[_-]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n\n if (!formatted) {\n return 'Column';\n }\n\n return formatted.replace(/\\b\\w/g, (char) => char.toUpperCase());\n};\n\nconst formatColumnLabel = (columnId: string, currentLabel?: string | null): string => {\n if (currentLabel && currentLabel.trim().length > 0) {\n return currentLabel;\n }\n\n return fallbackTitleCase(columnId);\n};\n\nexport const defaultDataTableStrings: DataTableStrings = {\n emptyState: {\n message: 'No results found.',\n },\n actions: {\n triggerLabel: 'Actions',\n srLabel: 'Row actions menu',\n },\n filter: {\n searchPlaceholder: 'Filter...',\n columnsButton: 'Columns',\n },\n columnVisibility: {\n title: 'Toggle columns',\n triggerLabel: 'Columns',\n formatLabel: formatColumnLabel,\n },\n toolbar: {\n scrollLeft: 'Scroll left',\n scrollRight: 'Scroll right',\n columns: 'Toggle columns',\n dense: 'Compact view',\n comfortable: 'Comfortable view',\n },\n pagination: {\n showing: 'Showing',\n to: 'to',\n of: 'of',\n entries: 'results',\n previous: 'Previous',\n next: 'Next',\n page: 'Page',\n rowsPerPage: 'Rows per page',\n ariaLabel: 'Pagination navigation',\n },\n selection: {\n summary: (selected, total) => `${selected} of ${total} row${total === 1 ? '' : 's'} selected.`,\n row: (index) => `Select row ${index + 1}`,\n selectAll: 'Select all rows',\n },\n} as const;\n\nconst mergeNested = <T extends object>(defaults: T, overrides?: Partial<T>): T => ({\n ...defaults,\n ...(overrides ?? {}),\n});\n\nexport const mergeDataTableStrings = (overrides?: DataTableStringsOverride): DataTableStrings => {\n if (!overrides) {\n return defaultDataTableStrings;\n }\n\n return {\n emptyState: mergeNested(defaultDataTableStrings.emptyState, overrides.emptyState),\n actions: mergeNested(defaultDataTableStrings.actions, overrides.actions),\n filter: mergeNested(defaultDataTableStrings.filter, overrides.filter),\n columnVisibility: mergeNested(defaultDataTableStrings.columnVisibility, overrides.columnVisibility),\n toolbar: mergeNested(defaultDataTableStrings.toolbar, overrides.toolbar),\n pagination: mergeNested(defaultDataTableStrings.pagination, overrides.pagination),\n selection: mergeNested(defaultDataTableStrings.selection, overrides.selection),\n };\n};\n","import { useCallback } from 'react';\nimport {\n\tPagination as PaginationRoot,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n} from '@/components/ui/pagination';\nimport { Text } from '@/components/typography';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type ServerPaginationProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\n/**\n * Generate a window of page numbers with ellipsis gaps.\n *\n * Always shows first page, last page, and up to 1 sibling\n * on each side of the current page.\n */\nfunction generatePageNumbers(\n\tcurrentPage: number,\n\tlastPage: number,\n): (number | 'ellipsis')[] {\n\tif (lastPage <= 7) {\n\t\treturn Array.from({ length: lastPage }, (_, i) => i + 1);\n\t}\n\n\tconst pages: (number | 'ellipsis')[] = [1];\n\n\tif (currentPage > 3) {\n\t\tpages.push('ellipsis');\n\t}\n\n\tconst start = Math.max(2, currentPage - 1);\n\tconst end = Math.min(lastPage - 1, currentPage + 1);\n\n\tfor (let i = start; i <= end; i++) {\n\t\tpages.push(i);\n\t}\n\n\tif (currentPage < lastPage - 2) {\n\t\tpages.push('ellipsis');\n\t}\n\n\tpages.push(lastPage);\n\n\treturn pages;\n}\n\nfunction buildPageUrl(basePath: string, page: number, queryKey: string): string {\n\t// Build a URL without inheriting the current location's query string —\n\t// the library is framework-agnostic and must not read browser globals\n\t// to decide what to put in href. Consumers that need their own params\n\t// merged should compute and pass the URL via the pagination object.\n\tconst params = new URLSearchParams();\n\tparams.set(queryKey, String(page));\n\treturn `${basePath}?${params.toString()}`;\n}\n\nexport function Pagination({\n\tpagination,\n\tonPageChange,\n\tlabels = {},\n\tpageQueryKey,\n}: ServerPaginationProps) {\n\tconst paginationLabels = {\n\t\t...defaultDataTableStrings.pagination,\n\t\t...labels,\n\t} as typeof defaultDataTableStrings.pagination;\n\tconst queryKey = pageQueryKey ?? 'page';\n\n\tconst firstItem = (pagination.current_page - 1) * pagination.per_page + 1;\n\tconst lastItem = Math.min(\n\t\tpagination.current_page * pagination.per_page,\n\t\tpagination.total,\n\t);\n\n\tconst navigateToPage = useCallback(\n\t\t(page: number, url: string | null) => {\n\t\t\tif (!url) return;\n\t\t\t// The library never navigates on its own. Consumers wire their\n\t\t\t// router (Inertia, Tanstack Router, RR7, Next, …) through\n\t\t\t// `onPageChange`. When it's absent the click is a no-op — the\n\t\t\t// `href` attribute on the underlying anchor remains the only\n\t\t\t// fallback path (browsers will navigate it if JS doesn't run).\n\t\t\tonPageChange?.(page, url, pagination.path || '');\n\t\t},\n\t\t[onPageChange, pagination.path],\n\t);\n\n\tconst hasPrevious = pagination.prev_page_url !== null;\n\tconst hasNext = pagination.next_page_url !== null;\n\tconst pages = generatePageNumbers(pagination.current_page, pagination.last_page);\n\n\treturn (\n\t\t<div className={cn('pagination--component', 'flex items-center justify-between px-5 py-3')}>\n\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"tabular-nums tracking-tight\">\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" className=\"text-foreground\">{firstItem}&ndash;{lastItem}</Text>{' '}\n\t\t\t\t{paginationLabels.of}{' '}\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" className=\"text-foreground\">{pagination.total}</Text>{' '}\n\t\t\t\t{paginationLabels.entries}\n\t\t\t</Text>\n\n\t\t\t<PaginationRoot aria-label={paginationLabels.ariaLabel} className=\"w-auto mx-0\">\n\t\t\t\t<PaginationContent className=\"gap-0.5\">\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationPrevious\n\t\t\t\t\t\t\ttext={paginationLabels.previous}\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\tpagination.current_page - 1,\n\t\t\t\t\t\t\t\t\tpagination.prev_page_url,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-disabled={!hasPrevious}\n\t\t\t\t\t\t\tclassName={`h-8 text-xs ${!hasPrevious ? 'pointer-events-none opacity-40' : ''}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{pages.map((page, index) => {\n\t\t\t\t\t\tconst isEllipsis = page === 'ellipsis';\n\t\t\t\t\t\tconst itemKey = isEllipsis\n\t\t\t\t\t\t\t? `ellipsis-${pagination.current_page}-${index}`\n\t\t\t\t\t\t\t: `page-${page}`;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t<PaginationItem key={itemKey}>\n\t\t\t\t\t\t\t{isEllipsis ? (\n\t\t\t\t\t\t\t\t<PaginationEllipsis className=\"size-8\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<PaginationLink\n\t\t\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t\t\tisActive={page === pagination.current_page}\n\t\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t\tbuildPageUrl(pagination.path, page, queryKey),\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tclassName=\"size-8 text-xs\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t</PaginationLink>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationNext\n\t\t\t\t\t\t\ttext={paginationLabels.next}\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\tpagination.current_page + 1,\n\t\t\t\t\t\t\t\t\tpagination.next_page_url,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-disabled={!hasNext}\n\t\t\t\t\t\t\tclassName={`h-8 text-xs ${!hasNext ? 'pointer-events-none opacity-40' : ''}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</PaginationContent>\n\t\t\t</PaginationRoot>\n\t\t</div>\n\t);\n}\n\nPagination.displayName = 'Pagination';\n","import { MoreHorizontal, type LucideIcon } from 'lucide-react';\nimport { isValidElement, useEffect, useMemo, useState } from 'react';\nimport { Button, type ButtonVariant, type ButtonStyle } from '@/components/base/buttons';\nimport {\n ActionMenu,\n MenuAction,\n type MenuActionProps\n} from '@/components/base/navigation/action-menu';\nimport { cn } from '@/lib/utils';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableActionsProps, type ActionItem, type ActionVariant } from './table.types';\n\nexport function DataTableActions<TData>(props: DataTableActionsProps<TData>) {\n const {\n row,\n actions,\n menuLabel,\n displayMode = 'menu', // preserve existing behavior\n responsiveBreakpoint = 1040,\n strings: providedStrings\n } = props;\n\n const strings = providedStrings ?? defaultDataTableStrings;\n const resolvedMenuLabel = menuLabel ?? strings.actions.triggerLabel;\n\n // Resolve actions array\n const resolvedActions = useMemo<ActionItem<TData>[]>(() => {\n const base = typeof actions === 'function' ? actions(row) : actions;\n return Array.isArray(base) ? base : [];\n }, [actions, row]);\n\n // Filter visibility and compute disabled by predicate/boolean\n const visibleActions = useMemo(() => {\n const evalFlag = (flag: boolean | ((r: TData) => boolean) | undefined): boolean | undefined => {\n if (typeof flag === 'function') return flag(row);\n return flag;\n };\n return resolvedActions\n .filter(a => {\n const v = evalFlag(a.isVisible);\n return v === undefined ? true : v;\n })\n .map(a => ({\n ...a,\n disabled: evalFlag(a.isDisabled) ?? a.disabled ?? false\n }));\n }, [resolvedActions, row]);\n\n // No actions to render\n const hasVisibleActions = visibleActions.length > 0;\n\n // Responsive auto mode: inline over breakpoint, menu under\n const [isNarrow, setIsNarrow] = useState(false);\n\n // 1. Split by variant\n const nonDestructive = visibleActions.filter((action) => action.variant !== 'destructive');\n const destructive = visibleActions.filter((action) => action.variant === 'destructive');\n\n // 2. Combine them (non-destructive first, destructive last)\n const sortedActions = [...nonDestructive, ...destructive];\n\n useEffect(() => {\n if (displayMode !== 'auto' || !hasVisibleActions) {\n setIsNarrow(false);\n return;\n }\n\n const handleResize = () => {\n try {\n setIsNarrow(window.innerWidth <= responsiveBreakpoint);\n } catch {\n setIsNarrow(false);\n }\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [displayMode, hasVisibleActions, responsiveBreakpoint]);\n\n if (!hasVisibleActions) return null;\n\n const mode: 'menu' | 'inline' = displayMode === 'auto' ? (isNarrow ? 'menu' : 'inline') : displayMode;\n\n const resolveMenuIcon = (icon: ActionItem<TData>['icon']): LucideIcon | undefined => {\n if (!icon) return undefined;\n if (typeof icon === 'function') {\n return icon as LucideIcon;\n }\n\n if (isValidElement(icon) && typeof icon.type === 'function') {\n return icon.type as LucideIcon;\n }\n\n return undefined;\n };\n\n const resolveActionButtonVariant = (variant?: ActionVariant): {\n variant: ButtonVariant;\n buttonStyle: ButtonStyle;\n className?: string\n } => {\n switch (variant) {\n case 'destructive':\n return { variant: 'error', buttonStyle: 'solid' };\n case 'outline':\n return { variant: 'secondary', buttonStyle: 'outline' };\n case 'secondary':\n return { variant: 'secondary', buttonStyle: 'solid' };\n case 'ghost':\n return { variant: 'secondary', buttonStyle: 'ghost' };\n case 'link':\n return { variant: 'secondary', buttonStyle: 'ghost', className: 'underline underline-offset-4' };\n case 'default':\n default:\n return { variant: 'primary', buttonStyle: 'solid' };\n }\n };\n\n const resolveMenuActionVariant = (\n variant?: ActionVariant\n ): NonNullable<MenuActionProps['variant']> => {\n switch (variant) {\n case 'default':\n return 'primary';\n case 'destructive':\n return 'error';\n default:\n return 'secondary';\n }\n };\n\n if (mode === 'inline') {\n return (\n <div className={cn('table-actions--component', 'flex items-center gap-1')}>\n {sortedActions.map((action, idx) => {\n const key = action.id || `${action.label}-${idx}`;\n const resolved = resolveActionButtonVariant(action.variant ?? 'ghost');\n const onClick = () => {\n action.onClick?.(row);\n };\n return (\n <Button\n key={key}\n variant={resolved.variant}\n buttonStyle={resolved.buttonStyle}\n className={cn('h-8 text-inherit leading-4', resolved.className)}\n disabled={!!action.disabled}\n onClick={onClick}\n >\n {!!action.icon && <span className=\"mr-2 inline-flex\">{action.icon}</span>}\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n }\n\n\n // menu mode (default) using our ActionMenu implementation\n return (\n <ActionMenu\n label={undefined}\n icon={MoreHorizontal}\n srText={resolvedMenuLabel || strings.actions.srLabel}\n closeOnSelect={true}\n align=\"end\"\n density=\"table\"\n >\n {sortedActions.map((action, idx) => {\n const key = action.id || `${action.label}-${idx}`;\n const onClick = () => {\n action.onClick?.(row);\n };\n const menuIcon = resolveMenuIcon(action.icon);\n const inlineIcon = action.icon\n ? <span className=\"inline-flex items-center\">{action.icon}</span>\n : null;\n const fallbackContent = menuIcon ? null : (\n <div className=\"flex w-full items-center gap-2\">\n {inlineIcon}\n <span>{action.label}</span>\n </div>\n );\n\n const menuActionVariant = resolveMenuActionVariant(\n action.variant\n );\n\n return (\n <MenuAction\n key={key}\n label={action.label}\n icon={menuIcon}\n variant={menuActionVariant}\n disabled={!!action.disabled}\n onClick={onClick}\n >\n {fallbackContent}\n </MenuAction>\n );\n })}\n </ActionMenu>\n );\n}\n\nDataTableActions.displayName = 'DataTableActions';\n","import type {\n\tSortingState,\n\tRowSelectionState,\n\tVisibilityState,\n\tTable,\n\tRow,\n\tUpdater,\n\tColumnDef,\n} from '@tanstack/react-table';\nimport React from 'react';\nimport { defaultDataTableStrings } from './table.strings';\nimport type { DataTableStrings } from './table.types';\n\n/**\n * Helper function for handling row selection changes with OnChangeFn compatibility\n */\nexport const handleRowSelectionChange = (\n\tupdatedSelection: Updater<RowSelectionState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<RowSelectionState>>,\n\texternalHandler?: (state: RowSelectionState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedSelection === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (\n\t\t\t\tupdatedSelection as (prev: RowSelectionState) => RowSelectionState\n\t\t\t)(prevState);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedSelection);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedSelection);\n\t\t}\n\t}\n};\n\n/**\n * Helper function for handling sorting changes with OnChangeFn compatibility\n */\nexport const handleSortingChange = (\n\tupdatedSorting: Updater<SortingState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<SortingState>>,\n\texternalHandler?: (state: SortingState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedSorting === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (updatedSorting as (prev: SortingState) => SortingState)(\n\t\t\t\tprevState,\n\t\t\t);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedSorting);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedSorting);\n\t\t}\n\t}\n};\n\n/**\n * Helper function for handling column visibility changes\n */\nexport const handleColumnVisibilityChange = (\n\tupdatedVisibility: Updater<VisibilityState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<VisibilityState>>,\n\texternalHandler?: (state: VisibilityState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedVisibility === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (\n\t\t\t\tupdatedVisibility as (prev: VisibilityState) => VisibilityState\n\t\t\t)(prevState);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedVisibility);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedVisibility);\n\t\t}\n\t}\n};\n\n/**\n * Get row class name based on selection state and custom function\n */\nexport const getRowClassName = <TData,>(\n\trow: Row<TData>,\n\tindex: number,\n\trowClassName?: string | ((row: Row<TData>, index: number) => string),\n\tisSelected?: boolean,\n): string => {\n\tlet className = '';\n\n\t// Add selected class if the row is selected\n\tif (isSelected) {\n\t\tclassName += 'bg-primary/5 ';\n\t}\n\n\t// Add custom class name\n\tif (typeof rowClassName === 'function') {\n\t\tclassName += rowClassName(row, index) + ' ';\n\t} else if (rowClassName) {\n\t\tclassName += rowClassName + ' ';\n\t}\n\n\treturn className.trim();\n};\n\n/**\n * Get cell class name including sticky column handling\n */\nexport const getCellClassName = <TData,>(\n\tcolumnId: string,\n\trow: Row<TData> | null,\n\tcellClassName?: string | ((column: string, row: Row<TData> | null) => string),\n\tstickyFirstColumn?: boolean,\n\tisFirstColumn?: boolean,\n): string => {\n\tlet baseClassName = '';\n\n\t// Add base class name\n\tif (typeof cellClassName === 'string') {\n\t\tbaseClassName = cellClassName;\n\t} else if (cellClassName && row) {\n\t\tbaseClassName = cellClassName(columnId, row);\n\t}\n\n\t// Add sticky class if it's the first column and sticky first column is enabled\n\tif (stickyFirstColumn && isFirstColumn) {\n\t\treturn `${baseClassName} sticky left-0 z-10 bg-card`;\n\t}\n\n\treturn baseClassName;\n};\n\n/**\n * Get selected rows data from the table\n */\nexport const getSelectedRowsData = <T extends object>(table: Table<T>): T[] => {\n\treturn table.getSelectedRowModel().rows.map((row) => row.original);\n};\n\n/**\n * Create row selection component for a row\n */\nexport const createRowSelectionCheckbox = <TData,>(\n\trow: Row<TData>,\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => (\n\t<div className=\"px-1\">\n\t\t<input\n\t\t\ttype=\"checkbox\"\n\t\t\tclassName=\"size-3.5 rounded border-border text-primary accent-primary focus-visible:ring-ring focus-visible:ring-offset-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-40\"\n\t\t\tchecked={row.getIsSelected()}\n\t\t\tdisabled={!row.getCanSelect()}\n\t\t\tonChange={row.getToggleSelectedHandler()}\n\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\taria-label={strings.selection.row(row.index)}\n\t\t/>\n\t</div>\n);\n\n/**\n * Create header selection checkbox\n */\nexport const createHeaderSelectionCheckbox = <TData,>(\n\ttable: Table<TData>,\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => (\n\t<div className=\"px-1\">\n\t\t<input\n\t\t\ttype=\"checkbox\"\n\t\t\tclassName=\"size-3.5 rounded border-border text-primary accent-primary focus-visible:ring-ring focus-visible:ring-offset-1 cursor-pointer\"\n\t\t\tchecked={table.getIsAllPageRowsSelected()}\n\t\t\tonChange={table.getToggleAllPageRowsSelectedHandler()}\n\t\t\taria-label={strings.selection.selectAll}\n\t\t/>\n\t</div>\n);\n\n/**\n * Add selection column to columns\n */\nexport const addSelectionColumn = <TData, TValue = unknown>(\n\tcolumns: ColumnDef<TData, TValue>[],\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => {\n\tconst selectionColumn = {\n\t\tid: 'selection',\n\t\theader: ({ table }: { table: Table<TData> }) =>\n\t\t\tcreateHeaderSelectionCheckbox(table, strings),\n\t\tcell: ({ row }: { row: Row<TData> }) => createRowSelectionCheckbox(row, strings),\n\t\tenableSorting: false,\n\t\tenableResizing: false,\n\t\tsize: 40,\n\t} as ColumnDef<TData, TValue>;\n\n\treturn [selectionColumn, ...columns];\n};\n","/**\n * DataTableBody — body rows, selection highlighting, hover, empty state,\n * and (optional) loading skeleton. Stronger hover + selection contrast than\n * the original implementation so rows feel interactive at a glance.\n */\nimport { flexRender } from '@tanstack/react-table';\nimport { TableBody, TableCell, TableRow } from '@/components/ui/table';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport {\n\tgetCellClassName,\n\tgetRowClassName,\n} from './table-helpers';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableBodyProps } from './table.types';\n\nexport function DataTableBody<TData>({\n\ttable,\n\tonRowClick,\n\temptyStateMessage,\n\temptyStateAction,\n\tcellClassName = '',\n\trowClassName = '',\n\tstickyFirstColumn = false,\n\tstriped = false,\n\tdense = false,\n\tstrings,\n}: DataTableBodyProps<TData>) {\n\tconst tableRows = table.getRowModel().rows;\n\tconst resolvedEmptyStateMessage =\n\t\temptyStateMessage ??\n\t\tstrings?.emptyState.message ??\n\t\tdefaultDataTableStrings.emptyState.message;\n\n\tconst handleRowClick = (row: TData) => {\n\t\tif (onRowClick) {\n\t\t\tonRowClick(row);\n\t\t}\n\t};\n\n\tif (!tableRows.length) {\n\t\treturn (\n\t\t\t<TableBody className=\"table-body--component\">\n\t\t\t\t<TableRow className=\"hover:bg-transparent\">\n\t\t\t\t\t<TableCell\n\t\t\t\t\t\tclassName=\"h-24 text-center\"\n\t\t\t\t\t\tcolSpan={table.getAllColumns().length}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex flex-col items-center justify-center py-12 space-y-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-center size-10 rounded-full bg-muted mb-1\">\n\t\t\t\t\t\t\t\t<svg className=\"size-5 text-muted-foreground/60\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n\t\t\t\t\t\t\t\t\t<path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m6 4.125l2.25 2.25m0 0l2.25-2.25M12 13.875V7.5M3.75 7.5h16.5\" />\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{resolvedEmptyStateMessage}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t{!!emptyStateAction && (\n\t\t\t\t\t\t\t\t<div className=\"mt-1\">{emptyStateAction}</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</TableCell>\n\t\t\t\t</TableRow>\n\t\t\t</TableBody>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TableBody>\n\t\t\t{tableRows.map((row, rowIndex) => {\n\t\t\t\tconst isRowSelected = row.getIsSelected();\n\t\t\t\tconst rowCells = row.getVisibleCells();\n\t\t\t\tconst computedRowClassName = getRowClassName(\n\t\t\t\t\trow,\n\t\t\t\t\trowIndex,\n\t\t\t\t\trowClassName,\n\t\t\t\t\tisRowSelected,\n\t\t\t\t);\n\t\t\t\tconst handleRowSelection = () => {\n\t\t\t\t\tif (onRowClick) {\n\t\t\t\t\t\thandleRowClick(row.original);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst zebraClass = striped && rowIndex % 2 !== 0 ? 'bg-muted/30' : '';\n\t\t\t\tconst cursorClass = onRowClick ? 'cursor-pointer' : '';\n\t\t\t\tconst rowClasses = cn(\n\t\t\t\t\tcomputedRowClassName,\n\t\t\t\t\tzebraClass,\n\t\t\t\t\t'transition-colors duration-100',\n\t\t\t\t\t'hover:bg-accent/40 data-[state=selected]:bg-primary/5 data-[state=selected]:hover:bg-primary/10',\n\t\t\t\t\tcursorClass,\n\t\t\t\t\t'border-b border-border last:border-b-0',\n\t\t\t\t);\n\t\t\t\tconst rowState = isRowSelected ? 'selected' : null;\n\n\t\t\t\treturn (\n\t\t\t\t\t<TableRow\n\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\tdata-state={rowState}\n\t\t\t\t\t\tclassName={rowClasses}\n\t\t\t\t\t\tonClick={handleRowSelection}\n\t\t\t\t\t>\n\t\t\t\t\t\t{rowCells.map((cell, cellIndex) => (\n\t\t\t\t\t\t\t<TableCell\n\t\t\t\t\t\t\t\tkey={cell.id}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\tgetCellClassName(\n\t\t\t\t\t\t\t\t\t\tcell.column.id,\n\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\tcellClassName,\n\t\t\t\t\t\t\t\t\t\tstickyFirstColumn,\n\t\t\t\t\t\t\t\t\t\tcellIndex === 0,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'first:pl-5 last:pr-5',\n\t\t\t\t\t\t\t\t\tdense && 'py-1.5 px-2 first:pl-3 last:pr-3 text-xxs leading-3',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</TableRow>\n\t\t\t\t);\n\t\t\t})}\n\t\t</TableBody>\n\t);\n}\n\nDataTableBody.displayName = 'DataTableBody';\n","/**\n * DataTableHeader — column-group row, primary header row, sort indicators,\n * and (optionally) resize handles. Sortable columns render as a button with\n * an inline up / down / both arrow icon driven by TanStack `column.getIsSorted()`.\n */\nimport { flexRender } from '@tanstack/react-table';\nimport { ArrowDown, ArrowUp, ChevronsUpDown } from 'lucide-react';\nimport React from 'react';\nimport { TableHead, TableHeader, TableRow } from '@/components/ui/table';\nimport { cn } from '@/lib/utils';\nimport { getCellClassName } from './table-helpers';\nimport { type DataTableHeaderProps } from './table.types';\n\nexport function DataTableHeader<TData>(\n\t{\n\t\ttable,\n\t\tenableResizing = false,\n\t\tstickyHeader = false,\n\t\theaderClassName = '',\n\t\tcellClassName = '',\n\t\tstickyFirstColumn = false,\n\t\tcolumnGroups,\n\t\tdense = false,\n\t\theaderTransparent = false,\n\t}: DataTableHeaderProps<TData>) {\n\n\tconst headerGroups = table.getHeaderGroups();\n\n\tconst getColumnGroup = (columnId: string) => {\n\t\tif (!columnGroups) return null;\n\t\treturn columnGroups.find(group => group.columns.includes(columnId));\n\t};\n\n\tconst renderGroupHeaderRow = () => {\n\t\tif (!columnGroups || columnGroups.length === 0 || headerGroups.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst headers = headerGroups[0].headers;\n\t\tlet currentGroup: string | null = null;\n\t\tlet groupSpan = 0;\n\t\tconst groupCells: React.ReactNode[] = [];\n\n\t\theaders.forEach((header, index) => {\n\t\t\tconst group = getColumnGroup(header.id);\n\t\t\tconst groupName = group?.header || '';\n\n\t\t\tif (groupName !== currentGroup) {\n\t\t\t\tif (currentGroup !== null && groupSpan > 0) {\n\t\t\t\t\tgroupCells.push(\n\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\tkey={`group-${currentGroup}-${groupCells.length}`}\n\t\t\t\t\t\t\tcolSpan={groupSpan}\n\t\t\t\t\t\t\tclassName=\"text-center border-r border-border/60 last:border-r-0 px-3 py-2 text-xxs font-bold uppercase tracking-widest text-muted-foreground/70 bg-muted/40\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{currentGroup || ''}\n\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcurrentGroup = groupName;\n\t\t\t\tgroupSpan = 1;\n\t\t\t} else {\n\t\t\t\tgroupSpan++;\n\t\t\t}\n\n\t\t\tif (index === headers.length - 1 && groupSpan > 0) {\n\t\t\t\tgroupCells.push(\n\t\t\t\t\t<TableHead\n\t\t\t\t\t\tkey={`group-${currentGroup}-${groupCells.length}`}\n\t\t\t\t\t\tcolSpan={groupSpan}\n\t\t\t\t\t\tclassName=\"text-center border-r border-border/60 last:border-r-0 px-3 py-2 text-xxs font-bold uppercase tracking-widest text-muted-foreground/70 bg-muted/40 whitespace-nowrap\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{currentGroup || ''}\n\t\t\t\t\t</TableHead>\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\treturn (\n\t\t\t<TableRow className={cn('table-header--component', 'border-b border-border')}>\n\t\t\t\t{groupCells}\n\t\t\t</TableRow>\n\t\t);\n\t};\n\n\treturn (\n\t\t<TableHeader\n\t\t\tclassName={cn(\n\t\t\t\tstickyHeader &&\n\t\t\t\t\t(headerTransparent\n\t\t\t\t\t\t? 'sticky top-[var(--topbar-height)] z-10 bg-background/80 backdrop-blur-md shadow-[0_1px_0_0_var(--border)]'\n\t\t\t\t\t\t: 'sticky top-[var(--topbar-height)] z-10 bg-muted backdrop-blur-md shadow-[0_1px_0_0_var(--border)]'),\n\t\t\t\theaderClassName,\n\t\t\t)}\n\t\t>\n\t\t\t{renderGroupHeaderRow()}\n\t\t\t{headerGroups.map((headerGroup) => (\n\t\t\t\t<TableRow\n\t\t\t\t\tkey={headerGroup.id}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'border-b border-border',\n\t\t\t\t\t\theaderTransparent\n\t\t\t\t\t\t\t? 'bg-transparent hover:bg-transparent'\n\t\t\t\t\t\t\t: 'bg-muted hover:bg-muted',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{headerGroup.headers.map((header, index) => {\n\t\t\t\t\t\tconst cellClasses = cn(\n\t\t\t\t\t\t\tgetCellClassName(\n\t\t\t\t\t\t\t\theader.id,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tcellClassName,\n\t\t\t\t\t\t\t\tstickyFirstColumn,\n\t\t\t\t\t\t\t\tindex === 0,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t'first:pl-5 last:pr-5',\n\t\t\t\t\t\t\tdense && 'px-2 py-1.5 first:pl-3 last:pr-3 text-xxs',\n\t\t\t\t\t\t\t'text-muted-foreground font-medium uppercase tracking-wider whitespace-nowrap',\n\t\t\t\t\t\t\t'bg-transparent',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst headerStyle = enableResizing\n\t\t\t\t\t\t\t? { position: 'relative' as const }\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tconst resizeHandler = header.getResizeHandler();\n\t\t\t\t\t\tconst isResizing = header.column.getIsResizing();\n\t\t\t\t\t\tconst columnLabel = (() => {\n\t\t\t\t\t\t\tconst rawHeader = header.column.columnDef.header;\n\t\t\t\t\t\t\tif (typeof rawHeader === 'string') {\n\t\t\t\t\t\t\t\treturn rawHeader;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn typeof header.id === 'string' ? header.id : 'column';\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\tclassName={cellClasses}\n\t\t\t\t\t\t\t\tstyle={headerStyle}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst canSort = header.column.getCanSort();\n\t\t\t\t\t\t\t\t\t\t\tconst sortDir = header.column.getIsSorted();\n\t\t\t\t\t\t\t\t\t\t\tconst headerNode = flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tconst SortIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tsortDir === 'asc'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ArrowUp\n\t\t\t\t\t\t\t\t\t\t\t\t\t: sortDir === 'desc'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? ArrowDown\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ChevronsUpDown;\n\t\t\t\t\t\t\t\t\t\t\tif (!canSort) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn <div className=\"flex items-center\">{headerNode}</div>;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={header.column.getToggleSortingHandler()}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'group inline-flex items-center gap-1.5 select-none -ml-1 px-1 rounded',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'hover:text-foreground transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsortDir && 'text-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={`Sort ${columnLabel}`}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{headerNode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SortIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-3 shrink-0 transition-opacity',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsortDir\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'opacity-100'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'opacity-30 group-hover:opacity-70',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\n\n\t\t\t\t\t\t\t\t\t\t{!!enableResizing && (\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'absolute top-0 right-0 h-full w-1 cursor-col-resize select-none touch-none bg-foreground bg-opacity-50 opacity-0 hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none',\n\t\t\t\t\t\t\t\t\t\t\t\t\tisResizing &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'!bg-primary-600 bg-opacity-100',\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={`Resize ${columnLabel}`}\n\t\t\t\t\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseDown={resizeHandler}\n\t\t\t\t\t\t\t\t\t\t\t\tonTouchStart={resizeHandler}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</TableRow>\n\t\t\t))}\n\t\t</TableHeader>\n\t);\n}\n\nDataTableHeader.displayName = 'DataTableHeader';\n","import { ChevronLeft, ChevronRight, Columns3, Maximize2, Minimize2 } from 'lucide-react';\nimport type { Column } from '@tanstack/react-table';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableToolbarProps } from './table.types';\n\nconst SCROLL_AMOUNT = 300;\n\nconst btnBase = 'inline-flex items-center justify-center h-7 w-7 rounded-none text-muted-foreground/70 hover:bg-muted hover:text-foreground transition-colors duration-150 disabled:opacity-30 disabled:pointer-events-none';\n\ninterface ToolbarIconButtonProps {\n label: string;\n onClick: () => void;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction ToolbarIconButton({ label, onClick, disabled, className, children }: ToolbarIconButtonProps) {\n return (\n <button\n type=\"button\"\n aria-label={label}\n className={cn('table-toolbar--component', btnBase, className)}\n onClick={onClick}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n\n/**\n * Finds the actual horizontally-scrollable element inside the table area.\n * The Table primitive renders: <div data-slot=\"table-container\" class=\"overflow-x-auto\">\n */\nfunction getScrollContainer(tableArea: HTMLDivElement | null): HTMLDivElement | null {\n if (!tableArea) return null;\n return tableArea.querySelector<HTMLDivElement>('[data-slot=\"table-container\"]');\n}\n\nexport function DataTableToolbar<TData>({\n table,\n tableAreaRef,\n dense,\n onDenseChange,\n enableColumnVisibility = false,\n strings = defaultDataTableStrings,\n}: DataTableToolbarProps<TData>) {\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const rafRef = useRef(0);\n const cleanupRef = useRef<(() => void) | null>(null);\n\n // --- Scroll overflow detection ---\n const checkOverflow = useCallback(() => {\n const el = getScrollContainer(tableAreaRef.current);\n if (!el) {\n setCanScrollLeft(false);\n setCanScrollRight(false);\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, [tableAreaRef]);\n\n useEffect(() => {\n // Defer slightly to ensure the Table primitive has rendered its container\n const timerId = window.setTimeout(() => {\n const el = getScrollContainer(tableAreaRef.current);\n if (!el) return;\n\n // Initial check\n checkOverflow();\n\n const handleScroll = () => {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = requestAnimationFrame(checkOverflow);\n };\n\n el.addEventListener('scroll', handleScroll, { passive: true });\n\n // ResizeObserver to detect when table width changes\n const ro = new ResizeObserver(checkOverflow);\n ro.observe(el);\n if (el.firstElementChild) {\n ro.observe(el.firstElementChild);\n }\n\n // Store cleanup references\n cleanupRef.current = () => {\n el.removeEventListener('scroll', handleScroll);\n cancelAnimationFrame(rafRef.current);\n ro.disconnect();\n };\n }, 0);\n\n return () => {\n window.clearTimeout(timerId);\n cleanupRef.current?.();\n };\n // Re-run when dense mode changes (layout shift can affect overflow)\n\n }, [tableAreaRef, checkOverflow, dense]);\n\n // --- Scroll handlers ---\n const handleScrollLeft = useCallback(() => {\n getScrollContainer(tableAreaRef.current)?.scrollBy({ left: -SCROLL_AMOUNT, behavior: 'smooth' });\n }, [tableAreaRef]);\n\n const handleScrollRight = useCallback(() => {\n getScrollContainer(tableAreaRef.current)?.scrollBy({ left: SCROLL_AMOUNT, behavior: 'smooth' });\n }, [tableAreaRef]);\n\n // --- Dense toggle ---\n const handleDenseToggle = useCallback(() => {\n onDenseChange(!dense);\n }, [dense, onDenseChange]);\n\n // --- Column visibility ---\n const columns = enableColumnVisibility\n ? table.getAllColumns().filter((column) => column.getCanHide())\n : [];\n\n const hasScrollArrows = canScrollLeft || canScrollRight;\n const hasColumns = enableColumnVisibility && columns.length > 0;\n const denseToggleLabel = dense\n ? strings.toolbar.comfortable\n : strings.toolbar.dense;\n\n return (\n <div className=\"flex items-center rounded-md border border-border bg-card\">\n {/* Scroll arrows - only rendered when overflow exists */}\n {!!hasScrollArrows && (\n <>\n <ToolbarIconButton\n label={strings.toolbar.scrollLeft}\n onClick={handleScrollLeft}\n disabled={!canScrollLeft}\n className=\"rounded-l-[calc(theme(borderRadius.md)-1px)]\"\n >\n <ChevronLeft className=\"h-3.5 w-3.5\" />\n </ToolbarIconButton>\n <ToolbarIconButton\n label={strings.toolbar.scrollRight}\n onClick={handleScrollRight}\n disabled={!canScrollRight}\n >\n <ChevronRight className=\"h-3.5 w-3.5\" />\n </ToolbarIconButton>\n <div className=\"h-4 w-px bg-border\" />\n </>\n )}\n\n {/* Column visibility dropdown */}\n {!!hasColumns && (\n <>\n <ColumnVisibilityDropdown\n columns={columns}\n strings={strings}\n roundLeft={!hasScrollArrows}\n />\n <div className=\"h-4 w-px bg-border\" />\n </>\n )}\n\n {/* Dense/compact toggle */}\n <ToolbarIconButton\n label={denseToggleLabel}\n onClick={handleDenseToggle}\n className={cn(\n 'rounded-r-[calc(theme(borderRadius.md)-1px)]',\n !hasScrollArrows && !hasColumns && 'rounded-l-[calc(theme(borderRadius.md)-1px)]',\n )}\n >\n {dense\n ? <Maximize2 className=\"h-3.5 w-3.5\" />\n : <Minimize2 className=\"h-3.5 w-3.5\" />\n }\n </ToolbarIconButton>\n </div>\n );\n}\n\n/** Extracted dropdown to keep the parent component clean */\nfunction ColumnVisibilityDropdown<TData>({\n columns,\n strings,\n roundLeft,\n}: {\n columns: Array<Column<TData, unknown>>;\n strings: NonNullable<DataTableToolbarProps<TData>['strings']>;\n roundLeft: boolean;\n}) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <button\n {...triggerProps}\n type=\"button\"\n aria-label={strings.toolbar.columns}\n className={cn(\n btnBase,\n (triggerProps as Record<string, unknown>).className as string,\n roundLeft && 'rounded-l-[calc(theme(borderRadius.md)-1px)]',\n )}\n >\n <Columns3 className=\"h-3.5 w-3.5\" />\n </button>\n )}\n />\n <DropdownMenuContent align=\"end\" className=\"w-[200px]\">\n <DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => {\n const header = column.columnDef.header;\n const columnName = strings.columnVisibility.formatLabel(\n column.id,\n typeof header === 'string' ? header : undefined,\n );\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(checked) => column.toggleVisibility(!!checked)}\n >\n {columnName}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nDataTableToolbar.displayName = 'DataTableToolbar';\n","/**\n * DataTable — TanStack-powered data table with sorting, row selection, column\n * visibility, server-side pagination, dense mode, sticky header / first column,\n * and pluggable row actions (menu / inline / responsive).\n *\n * Strings are overridable through the `strings` prop and a default set in\n * `./table.strings`. Column visibility and dense mode persist to localStorage\n * when a `storageKey` is provided.\n *\n * Use the cell renderers exported from `./partials/cell-renderers`\n * (`StatusCell`, `DateCell`, `CurrencyCell`, `AvatarCell`) for visually\n * consistent cells across pages.\n */\nimport {\n\tgetCoreRowModel,\n\tuseReactTable,\n\ttype SortingState,\n\ttype VisibilityState,\n\ttype Updater,\n\ttype ColumnDef,\n\ttype RowSelectionState,\n} from '@tanstack/react-table';\nimport { createContext, useContext, useState, useMemo, useCallback, useRef } from 'react';\nimport { Table } from '@/components/ui/table';\nimport { useTableConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\n/**\n * Context exposing the current `<DataTable size>` to descendant cell renderers\n * so consumer-built cells can stay typographically aligned with the table\n * (instead of hardcoding `<Text>` and breaking the unification the\n * `size` prop is supposed to give).\n *\n * Use it from custom cells:\n * const size = useDataTableSize();\n * return <Text className=\"data-table--component\" size={size}>{value}</Text>;\n *\n * The built-in renderers in `partials/cell-renderers` consume this hook.\n */\nconst DataTableSizeContext = createContext<'xs' | 'sm' | 'base'>('xs');\n\nexport function useDataTableSize(): 'xs' | 'sm' | 'base' {\n\treturn useContext(DataTableSizeContext);\n}\nimport { Pagination } from './pagination';\nimport { DataTableActions } from './table-actions';\nimport { DataTableBody } from './table-body';\nimport { DataTableHeader } from './table-header';\nimport { DataTableToolbar } from './table-toolbar';\nimport { addSelectionColumn, handleSortingChange, handleColumnVisibilityChange } from './table-helpers';\nimport { mergeDataTableStrings } from './table.strings';\nimport { type DataTableProps } from './table.types';\nimport { Separator } from '@/components/base/display/separator';\n\n// Class applied to the `<table>` element.\n//\n// Body cells get an explicit `[&_td]:text-{size}` so deeply nested\n// elements that use `<Text size=\"inherit\">` (or any plain `<span>`)\n// inherit the right font-size from the cell rather than relying on\n// the table-level inheritance chain (which breaks the moment any\n// descendant has its own text-size class).\n//\n// Header cells stay at `text-xxs` regardless of body density — the\n// canonical admin pattern is \"tiny uppercase eyebrow header,\n// variable body density.\" A consumer who wants matched header sizing\n// can override via `headerClassName`.\nconst sizeClassByDataTableSize: Record<NonNullable<DataTableProps<object, unknown>['size']>, string> = {\n\txs: '[&_th]:text-xxs [&_td]:text-xs [&_th]:py-1.5 [&_td]:py-1.5 [&_th]:px-2 [&_td]:px-2 [&_th]:h-8',\n\tsm: '[&_th]:text-xxs [&_td]:text-sm [&_th]:py-2 [&_td]:py-2 [&_th]:px-2.5 [&_td]:px-2.5 [&_th]:h-10',\n\tbase: '[&_th]:text-xs [&_td]:text-base [&_th]:py-3 [&_td]:py-3 [&_th]:px-3 [&_td]:px-3 [&_th]:h-12',\n};\n\nexport function DataTable<TData extends object, TValue = unknown>({\n\tsize,\n\tsurface = 'card',\n\theaderTransparent = false,\n\tcolumns,\n\tdata,\n\tcolumnGroups,\n\trowActions,\n\trowActionsMenuLabel,\n\trowActionsDisplayMode,\n\trowActionsBreakpoint,\n\tenableSorting = false,\n\tmanualSorting = false,\n\tenableColumnVisibility = false,\n\tenableRowSelection = false,\n\tenableMultiRowSelection = true,\n\tenableSubRowSelection = false,\n\tpagination,\n\tpageQueryKey,\n\tonPageChange,\n\tonSort,\n\tonRowClick,\n\tonRowSelectionChange,\n\tstickyHeader = false,\n\tstickyFirstColumn = false,\n\temptyStateMessage,\n\temptyStateAction,\n\tclassName = '',\n\trowClassName = '',\n\tcellClassName = '',\n\theaderClassName = '',\n\twrapperClassName = '',\n\tinnerClassName = 'overflow-hidden',\n\ttableContainerClassName = '',\n\tgetRowId,\n\trowSelection: controlledRowSelection,\n\tinitialState,\n\tonColumnVisibilityChange,\n\tstrings: stringsOverride,\n\ttopbarContent,\n\tstorageKey,\n}: DataTableProps<TData, TValue>) {\n\tconst { defaultSize } = useTableConfig();\n\tconst resolvedSize: NonNullable<DataTableProps<TData, TValue>['size']> =\n\t\tsize ?? defaultSize ?? 'xs';\n\n\tconst strings = useMemo(\n\t\t() => mergeDataTableStrings(stringsOverride),\n\t\t[stringsOverride],\n\t);\n\n\tconst tableRowClasses = cn('bg-card', rowClassName)\n\tconst resolvedEmptyStateMessage = emptyStateMessage ?? strings.emptyState.message;\n\tconst resolvedRowActionsMenuLabel =\n\t\trowActionsMenuLabel ?? strings.actions.triggerLabel;\n\tconst resolvedPageQueryKey = pageQueryKey ?? 'page';\n\n\t\t// --- Detect and resolve tuple pattern for columns ---\n\t\tconst resolvedColumns = (() => {\n\t\t\t// Tuple pattern detected: [columns, deps]\n\t\t\tif (Array.isArray(columns) && columns.length === 2 && Array.isArray(columns[1])) {\n\t\t\t\treturn columns[0] as ColumnDef<TData, TValue>[];\n\t\t\t}\n\n\t\t\t// Regular pattern: just columns array\n\t\t\treturn columns as ColumnDef<TData, TValue>[];\n\t\t})();\n\n\t// --- Format storage key internally ---\n\tconst formattedStorageKey = useMemo(() => {\n\t\treturn storageKey ? `dt.${storageKey}.columns` : null;\n\t}, [storageKey]);\n\n\t// --- Dense mode storage key ---\n\tconst denseStorageKey = useMemo(() => {\n\t\treturn storageKey ? `dt.${storageKey}.dense` : null;\n\t}, [storageKey]);\n\n\t// --- Load initial column visibility from localStorage if persistence enabled ---\n\tconst initialColumnVisibility = useMemo<VisibilityState>(() => {\n\t\t// If persistence is disabled or we're in SSR, use initialState or empty object\n\t\tif (!formattedStorageKey || typeof window === 'undefined') {\n\t\t\treturn initialState?.columnVisibility || {};\n\t\t}\n\n\t\ttry {\n\t\t\tconst stored = window.localStorage.getItem(formattedStorageKey);\n\t\t\tconst parsed = stored ? (JSON.parse(stored) as VisibilityState) : {};\n\t\t\t// Merge with initialState if provided\n\t\t\treturn { ...parsed, ...(initialState?.columnVisibility || {}) };\n\t\t} catch {\n\t\t\t// If parsing fails, fall back to initialState\n\t\t\treturn initialState?.columnVisibility || {};\n\t\t}\n\t}, [formattedStorageKey, initialState?.columnVisibility]);\n\n\t// --- Load initial dense mode from localStorage ---\n\tconst initialDense = useMemo(() => {\n\t\tif (!denseStorageKey || typeof window === 'undefined') return false;\n\t\ttry {\n\t\t\treturn window.localStorage.getItem(denseStorageKey) === '1';\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, [denseStorageKey]);\n\n\t// --- State for sorting, visibility, and dense mode ---\n\tconst [sorting, setSorting] = useState<SortingState>(initialState?.sorting || []);\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>(\n\t\tinitialColumnVisibility,\n\t);\n\tconst [internalRowSelection, setInternalRowSelection] = useState<RowSelectionState>(\n\t\tinitialState?.rowSelection || {},\n\t);\n\tconst [dense, setDense] = useState(initialDense);\n\tconst rowSelection = controlledRowSelection ?? internalRowSelection;\n\n\t// --- Refs ---\n\tconst tableAreaRef = useRef<HTMLDivElement>(null);\n\n\t// --- Callbacks ---\n\tconst handleSortingChangeCallback = useCallback(\n\t\t(updater: Updater<SortingState>) => {\n\t\t\thandleSortingChange(updater, setSorting, onSort);\n\t\t},\n\t\t[onSort],\n\t);\n\n\tconst handleVisibilityChangeCallback = useCallback(\n\t\t(updater: Updater<VisibilityState>) => {\n\t\t\thandleColumnVisibilityChange(\n\t\t\t\tupdater,\n\t\t\t\tsetColumnVisibility,\n\t\t\t\t(newState) => {\n\t\t\t\t\t// Persist to localStorage if enabled\n\t\t\t\t\tif (formattedStorageKey && typeof window !== 'undefined') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\t\t\tformattedStorageKey,\n\t\t\t\t\t\t\t\tJSON.stringify(newState),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Silent fail - quota exceeded or other localStorage errors\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Call user-provided handler\n\t\t\t\t\tif (onColumnVisibilityChange) {\n\t\t\t\t\t\tonColumnVisibilityChange(newState);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t[formattedStorageKey, onColumnVisibilityChange],\n\t);\n\n\tconst handleRowSelectionChangeCallback = useCallback(\n\t\t(updater: Updater<RowSelectionState>) => {\n\t\t\tconst nextRowSelection =\n\t\t\t\ttypeof updater === 'function' ? updater(rowSelection) : updater;\n\n\t\t\tif (controlledRowSelection === undefined) {\n\t\t\t\tsetInternalRowSelection(nextRowSelection);\n\t\t\t}\n\n\t\t\tonRowSelectionChange?.(nextRowSelection);\n\t\t},\n\t\t[controlledRowSelection, onRowSelectionChange, rowSelection],\n\t);\n\n\tconst handleDenseChange = useCallback(\n\t\t(value: boolean) => {\n\t\t\tsetDense(value);\n\t\t\tif (denseStorageKey && typeof window !== 'undefined') {\n\t\t\t\ttry {\n\t\t\t\t\twindow.localStorage.setItem(denseStorageKey, value ? '1' : '0');\n\t\t\t\t} catch {\n\t\t\t\t\t// Silent fail\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[denseStorageKey],\n\t);\n\n\tconst columnsWithActions = useMemo<ColumnDef<TData, TValue>[]>(() => {\n\t\tconst baseColumns = enableRowSelection\n\t\t\t? addSelectionColumn<TData, TValue>(resolvedColumns, strings)\n\t\t\t: resolvedColumns;\n\n\t\t// if no actions, leave cols untouched\n\t\tif (!rowActions) {\n\t\t\treturn baseColumns;\n\t\t}\n\n\t\t// otherwise append a fixed Actions column:\n\t\tconst actionCol: ColumnDef<TData, TValue> = {\n\t\t\tid: 'actions',\n\t\t\theader: strings.actions.triggerLabel,\n\t\t\t// NOTE: just hand `rowActions` array, not a call\n\t\t\tcell: ({ row }: { row: { original: TData } }) => (\n\t\t\t\t<DataTableActions\n\t\t\t\t\trow={row.original}\n\t\t\t\t\tactions={rowActions}\n\t\t\t\t\tmenuLabel={resolvedRowActionsMenuLabel}\n\t\t\t\t\tdisplayMode={rowActionsDisplayMode}\n\t\t\t\t\tresponsiveBreakpoint={rowActionsBreakpoint}\n\t\t\t\t\tstrings={strings}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tenableSorting: false,\n\t\t\tenableHiding: false,\n\t\t\tsize: 40,\n\t\t};\n\n\t\treturn [...baseColumns, actionCol];\n\t}, [\n\t\tresolvedColumns,\n\t\tenableRowSelection,\n\t\trowActions,\n\t\tresolvedRowActionsMenuLabel,\n\t\trowActionsBreakpoint,\n\t\trowActionsDisplayMode,\n\t\tstrings,\n\t]);\n\n\t// --- Configure table ---\n\tconst table = useReactTable({\n\t\tdata,\n\t\tcolumns: columnsWithActions,\n\t\tstate: { sorting, columnVisibility, rowSelection },\n\t\tenableSorting,\n\t\tmanualSorting,\n\t\tenableRowSelection,\n\t\tenableMultiRowSelection,\n\t\tenableSubRowSelection,\n\t\tonSortingChange:\n\t\t\tenableSorting && manualSorting ? handleSortingChangeCallback : undefined,\n\t\tonRowSelectionChange:\n\t\t\tenableRowSelection ? handleRowSelectionChangeCallback : undefined,\n\t\tonColumnVisibilityChange: handleVisibilityChangeCallback,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetRowId,\n\t});\n\n\t// --- Determine server pagination ---\n\tconst shouldShow = pagination && pagination.last_page > 1;\n\n\tconst Provider = DataTableSizeContext.Provider;\n\n\treturn (\n\t\t<Provider value={resolvedSize}>\n\t\t<div className={cn(\n\t\t\tdense\n\t\t\t\t? 'fixed inset-0 z-50 bg-background flex flex-col overflow-hidden p-6'\n\t\t\t\t: cn(\n\t\t\t\t\t'w-full',\n\t\t\t\t\tsurface === 'card' &&\n\t\t\t\t\t\t'rounded-xl overflow-hidden border border-border bg-card shadow-[0_1px_3px_0_rgb(0_0_0/0.04)]',\n\t\t\t\t\tsurface === 'glass' &&\n\t\t\t\t\t\t'rounded-md overflow-hidden border border-border/60',\n\t\t\t\t\t// `flat` renders no chrome — consumer wraps.\n\t\t\t\t\twrapperClassName,\n\t\t\t\t),\n\t\t)}>\n\t\t\t{!!(topbarContent || enableColumnVisibility) && (\n\t\t\t\t<div className=\"relative\">\n\n <div className={cn(\n 'data-table-topbar flex items-end justify-between gap-4 px-5 py-3.5',\n dense ? 'mb-3 shrink-0' : 'mb-0',\n )}>\n <div className=\"data-table-topbar-left flex-1\">{topbarContent}</div>\n <div className=\"data-table-topbar-right flex items-center justify-end\">\n <DataTableToolbar\n table={table}\n tableAreaRef={tableAreaRef}\n dense={dense}\n onDenseChange={handleDenseChange}\n enableColumnVisibility={enableColumnVisibility}\n strings={strings}\n />\n </div>\n\n </div>\n <Separator />\n </div>\n\t\t\t)}\n\n\n\t\t\t<div\n\t\t\t\tref={tableAreaRef}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'',\n\t\t\t\t\tdense ? 'flex-1 overflow-auto min-h-0' : innerClassName,\n\t\t\t\t)}\n\t\t\t>\n\n\t\t\t\t<Table className={cn(\n\t\t\t\t\t'relative',\n\t\t\t\t\tsizeClassByDataTableSize[resolvedSize],\n\t\t\t\t\tclassName,\n\t\t\t\t)} containerClassName={tableContainerClassName}>\n\t\t\t\t\t<DataTableHeader\n\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\tstickyHeader={stickyHeader}\n\t\t\t\t\t\theaderClassName={headerClassName}\n\t\t\t\t\t\tcellClassName={cellClassName}\n\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\tcolumnGroups={columnGroups}\n\t\t\t\t\t\tdense={dense}\n\t\t\t\t\t\theaderTransparent={headerTransparent}\n\t\t\t\t\t/>\n\t\t\t\t\t<DataTableBody\n\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\temptyStateMessage={resolvedEmptyStateMessage}\n\t\t\t\t\t\temptyStateAction={emptyStateAction}\n\t\t\t\t\t\tcellClassName={cellClassName}\n\t\t\t\t\t\trowClassName={tableRowClasses}\n\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\tdense={dense}\n\t\t\t\t\t/>\n\t\t\t\t</Table>\n\t\t\t</div>\n\t\t\t{!!shouldShow && (\n\t\t\t\t<>\n <Separator />\n <Pagination\n pagination={pagination}\n onPageChange={onPageChange}\n pageQueryKey={resolvedPageQueryKey}\n labels={strings.pagination}\n />\n </>\n\t\t\t)}\n\t\t</div>\n\t\t</Provider>\n\t);\n}\n\nDataTable.displayName = 'DataTable';\n","import { Button } from '@/components/base/buttons';\nimport { Input } from '@/components/base/forms/fields';\nimport {\n\tDropdownMenu,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuContent,\n\tDropdownMenuLabel,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableFilterBarProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\nexport function DataTableFilterBar<TData>({\n\t\t\t\t\t\t\t\t\t\t\t table,\n\t\t\t\t\t\t\t\t\t\t\t filterColumn,\n\t\t\t\t\t\t\t\t\t\t\t filterPlaceholder,\n\t\t\t\t\t\t\t\t\t\t\t enableColumnVisibility = false,\n\t\t\t\t\t\t\t\t\t\t\t customContent,\n\t\t\t\t\t\t\t\t\t\t strings = defaultDataTableStrings,\n\t\t\t\t\t\t\t\t\t }: DataTableFilterBarProps<TData>) {\n\tif (!filterColumn && !enableColumnVisibility && !customContent) {\n\t\treturn null;\n\t}\n\n\tconst searchPlaceholder = filterPlaceholder ?? strings.filter.searchPlaceholder;\n\n\treturn (\n\t\t<div className={cn('filter-bar--component', 'flex items-center justify-between p-4')}>\n\t\t\t<div className=\"flex flex-1 items-center space-x-2\">\n\t\t\t\t{/* Filter input */}\n\t\t\t\t{!!filterColumn && (\n\t <Input\n\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t\tvalue={(table.getColumn(filterColumn)?.getFilterValue() as string) ?? ''}\n\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\tconst value = event.target.value;\n\t\t\t\t\t\t\ttable.getColumn(filterColumn)?.setFilterValue(value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName=\"max-w-sm\"\n\t\t\t\t\t/>\n\t )}\n\n\t\t\t\t{/* Custom content */}\n\t\t\t\t{customContent}\n\t\t\t</div>\n\n\t\t\t{/* Column visibility toggle */}\n\t\t\t\t{!!enableColumnVisibility && (\n\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\t\t\tclassName=\"ml-auto\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{strings.columnVisibility.triggerLabel}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<DropdownMenuContent align=\"end\">\n\t\t\t\t\t\t\t<DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n\t\t\t\t\t\t\t{table\n\t\t\t\t\t\t\t\t.getAllColumns()\n\t\t\t\t\t\t\t\t.filter((column) => column.getCanHide())\n\t\t\t\t\t\t\t\t.map((column) => {\n\t\t\t\t\t\t\t\t\tconst header = column.columnDef.header;\n\t\t\t\t\t\t\t\t\tconst columnName = strings.columnVisibility.formatLabel(\n\t\t\t\t\t\t\t\t\t\tcolumn.id,\n\t\t\t\t\t\t\t\t\t\ttypeof header === 'string' ? header : undefined,\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\t\t\t\t\t\tkey={column.id}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"capitalize\"\n\t\t\t\t\t\t\t\t\t\t\tchecked={column.getIsVisible()}\n\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\t\t\t\t\t\t\t\t\t\t\tcolumn.toggleVisibility(!!checked)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{columnName}\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t)}\n\t\t</div>\n\t);\n}\n\nDataTableFilterBar.displayName = 'DataTableFilterBar';\n","import { Button } from '@/components/base/buttons';\nimport Text from '@/components/typography/text';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTablePaginationProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\nexport function DataTablePagination({ table, selectedRowCount, totalRowCount, strings = defaultDataTableStrings }: DataTablePaginationProps) {\n // Use provided counts or get from table\n const selected = selectedRowCount ?? table.getFilteredSelectedRowModel().rows.length;\n const total = totalRowCount ?? table.getFilteredRowModel().rows.length;\n const summary = strings.selection.summary(selected, total);\n\n return (\n <div className={cn('table-pagination--component', 'flex items-center justify-end space-x-2 px-4 py-4')}>\n <div className=\"flex-1\">\n <Text type=\"secondary\">\n {summary}\n </Text>\n </div>\n <Button variant=\"secondary\" buttonStyle=\"outline\" onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()}>\n {strings.pagination.previous}\n </Button>\n <Button variant=\"secondary\" buttonStyle=\"outline\" onClick={() => table.nextPage()} disabled={!table.getCanNextPage()}>\n {strings.pagination.next}\n </Button>\n </div>\n );\n}\n\nDataTablePagination.displayName = 'DataTablePagination';\n","import { Settings2 } from 'lucide-react';\nimport { Button } from '@/components/base/buttons';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport { defaultDataTableStrings } from './table.strings';\nimport { type ColumnVisibilityToggleProps } from './table.types';\n\nexport function ColumnVisibilityToggle<TData>({\n table,\n className,\n align = 'end',\n strings = defaultDataTableStrings,\n}: ColumnVisibilityToggleProps<TData>) {\n const columns = table.getAllColumns()\n .filter((column) => column.getCanHide());\n\n if (columns.length === 0) return null;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <Button\n {...triggerProps}\n variant=\"secondary\"\n buttonStyle=\"outline\"\n className={cn(\n 'column-visibility-toggle--component',\n 'h-8 flex items-center gap-2',\n \n (triggerProps as { className?: string }).className,\n className,\n )}\n >\n { }\n {(triggerProps as { children?: React.ReactNode }).children}\n </Button>\n )}\n >\n <Settings2 className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">{strings.columnVisibility.triggerLabel}</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} className=\"w-[200px]\">\n <DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => {\n const header = column.columnDef.header;\n const columnName = strings.columnVisibility.formatLabel(\n column.id,\n typeof header === 'string' ? header : undefined,\n );\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(checked) => column.toggleVisibility(!!checked)}\n >\n {columnName}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nColumnVisibilityToggle.displayName = 'ColumnVisibilityToggle';\n","import type { ReactNode } from 'react';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\ninterface CellValueProps {\n /** The value to display. When falsy, renders fallback with muted styling. */\n value?: string | number | null | undefined;\n /** Text shown when value is missing. Defaults to '--'. */\n fallback?: string;\n /** Force missing state regardless of value truthiness. */\n missing?: boolean;\n /** Additional class names (e.g. 'tabular-nums', 'font-mono'). */\n className?: string;\n /** Children override — when provided, renders children directly with missing styling applied. */\n children?: ReactNode;\n}\n\n/**\n * Table cell value with automatic missing-value treatment.\n *\n * When the value is falsy (or `missing` is explicitly true), renders\n * the fallback text at reduced opacity. Otherwise renders the value\n * with inherited table cell styling.\n *\n * @example\n * // Auto-detect missing\n * <CellValue value={phone} fallback={t('shared.tables.ui.empty')} />\n *\n * // Explicit missing flag\n * <CellValue missing={!defaultBusiness} fallback={t('vendors.tables.ui.no_default_business')} />\n *\n * // With formatting class\n * <CellValue value={date} className=\"tabular-nums\" />\n *\n * // Custom children with missing styling\n * <CellValue missing={!phone}>\n * {phone || 'No items to display'}\n * </CellValue>\n */\nexport function CellValue({ value, fallback = '--', missing, className, children }: CellValueProps) {\n const isMissing = missing ?? (value === null || value === undefined || value === '');\n\n if (children !== undefined) {\n return (\n <Text\n tag=\"span\"\n size=\"inherit\"\n type={isMissing ? 'secondary' : 'main'}\n className={cn(isMissing && 'opacity-60', className)}\n >\n {children}\n </Text>\n );\n }\n\n if (isMissing) {\n return (\n <Text tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n {fallback}\n </Text>\n );\n }\n\n return (\n <Text tag=\"span\" size=\"inherit\" className={className}>\n {String(value)}\n </Text>\n );\n}\n\nCellValue.displayName = 'CellValue';\n","import type { AnchorHTMLAttributes } from 'react';\n\ntype TableLinkProps = AnchorHTMLAttributes<HTMLAnchorElement>;\n\nexport const TableLink = (props: TableLinkProps) => {\n\treturn (\n\t\t<a\n\t\t\tclassName=\"text-foreground underline decoration-border decoration-dotted underline-offset-2 transition-colors duration-150 hover:text-foreground hover:decoration-muted-foreground\"\n\t\t\t{...props}\n\t\t>\n\t\t\t{props.children}\n\t\t</a>\n\t);\n};\n","/**\n * Reusable cell renderers for DataTable columns.\n *\n * Use these from `column.cell` definitions to keep table preview pages and\n * production code consistent. Every renderer is presentational (no data\n * fetching) and accepts the value plus optional formatting hints.\n *\n * { accessorKey: 'status', cell: ({ getValue }) => <StatusCell value={getValue()} map={STATUS_MAP} /> }\n * { accessorKey: 'createdAt', cell: ({ getValue }) => <DateCell value={getValue()} /> }\n * { accessorKey: 'amount', cell: ({ getValue }) => <CurrencyCell value={getValue()} currency=\"USD\" /> }\n * { accessorKey: 'owner', cell: ({ getValue }) => <AvatarCell name={getValue()} /> }\n */\nimport type { ComponentType, ReactNode } from 'react';\nimport { Calendar, Mail, type LucideIcon } from 'lucide-react';\n\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\n\n// ──────────────────────────────────────────────────────────────\n// StatusCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface StatusCellEntry {\n\tlabel: ReactNode;\n\tvariant?: ComposedBadgeVariant;\n\ticon?: LucideIcon;\n\tdot?: boolean;\n}\n\nexport interface StatusCellProps<TStatus extends string> {\n\tvalue?: TStatus | null;\n\tmap: Record<TStatus, StatusCellEntry>;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nexport function StatusCell<TStatus extends string>({\n\tvalue,\n\tmap,\n\temptyLabel = EMPTY,\n\tclassName,\n}: StatusCellProps<TStatus>) {\n\tif (!value || !(value in map)) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst entry = map[value];\n\tconst Icon = entry.icon;\n\treturn (\n\t\t<Badge\n\t\t\tvariant={entry.variant ?? 'secondary'}\n\t\t\tclassName={cn('gap-1.5', className)}\n\t\t>\n\t\t\t{!!Icon && <Icon className=\"size-3\" />}\n\t\t\t{entry.label}\n\t\t</Badge>\n\t);\n}\n\nStatusCell.displayName = 'StatusCell';\n\n// ──────────────────────────────────────────────────────────────\n// DateCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface DateCellProps {\n\tvalue?: string | number | Date | null;\n\t/** A Intl.DateTimeFormatOptions preset. Default: short month + day + year. */\n\toptions?: Intl.DateTimeFormatOptions;\n\tlocale?: string;\n\tshowIcon?: boolean;\n\ticon?: ComponentType<{ className?: string }>;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nconst DEFAULT_DATE_OPTIONS: Intl.DateTimeFormatOptions = {\n\tmonth: 'short',\n\tday: 'numeric',\n\tyear: 'numeric',\n};\n\nexport function DateCell({\n\tvalue,\n\toptions = DEFAULT_DATE_OPTIONS,\n\tlocale,\n\tshowIcon = true,\n\ticon: IconComponent = Calendar,\n\temptyLabel = EMPTY,\n\tclassName,\n}: DateCellProps) {\n\tif (value === null || value === undefined || value === '') {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst date = value instanceof Date ? value : new Date(value);\n\tif (Number.isNaN(date.getTime())) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst formatter = new Intl.DateTimeFormat(locale, options);\n\treturn (\n\t\t<span className={cn('inline-flex items-center gap-1.5 tabular-nums', className)}>\n\t\t\t{!!showIcon && <IconComponent className=\"size-3.5 text-muted-foreground\" />}\n\t\t\t<Text size=\"inherit\" type=\"secondary\">\n\t\t\t\t{formatter.format(date)}\n\t\t\t</Text>\n\t\t</span>\n\t);\n}\n\nDateCell.displayName = 'DateCell';\n\n// ──────────────────────────────────────────────────────────────\n// CurrencyCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface CurrencyCellProps {\n\tvalue?: number | string | null;\n\tcurrency?: string;\n\tlocale?: string;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n\tweight?: 'regular' | 'medium' | 'semibold' | 'bold';\n}\n\nexport function CurrencyCell({\n\tvalue,\n\tcurrency,\n\tlocale,\n\temptyLabel = EMPTY,\n\tclassName,\n\tweight = 'semibold',\n}: CurrencyCellProps) {\n\tconst numeric = typeof value === 'number' ? value : Number.parseFloat(String(value ?? ''));\n\tif (!Number.isFinite(numeric)) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst formatted = currency\n\t\t? new Intl.NumberFormat(locale, {\n\t\t\t\tstyle: 'currency',\n\t\t\t\tcurrency,\n\t\t\t\tmaximumFractionDigits: 2,\n\t\t\t}).format(numeric)\n\t\t: numeric.toFixed(2);\n\treturn (\n\t\t<Text\n\t\t\ttag=\"span\"\n\t\t\tsize=\"inherit\"\n\t\t\tweight={weight}\n\t\t\tclassName={cn('tabular-nums', className)}\n\t\t>\n\t\t\t{formatted}\n\t\t</Text>\n\t);\n}\n\nCurrencyCell.displayName = 'CurrencyCell';\n\n// ──────────────────────────────────────────────────────────────\n// AvatarCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface AvatarCellProps {\n\tname?: string | null;\n\timageUrl?: string;\n\ticon?: ComponentType<{ className?: string }>;\n\tsubtitle?: ReactNode;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nfunction getInitials(name: string): string {\n\treturn name\n\t\t.split(/\\s+/)\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.map((p) => p[0]!.toUpperCase())\n\t\t.join('');\n}\n\nexport function AvatarCell({\n\tname,\n\timageUrl,\n\ticon: IconComponent = Mail,\n\tsubtitle,\n\temptyLabel = EMPTY,\n\tclassName,\n}: AvatarCellProps) {\n\tif (!name || name.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn (\n\t\t<span className={cn('inline-flex items-center gap-2', className)}>\n\t\t\t<span className=\"relative inline-flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground\">\n\t\t\t\t{imageUrl ? (\n\t\t\t\t\t<img src={imageUrl} alt={name} className=\"absolute inset-0 size-full object-cover\" />\n\t\t\t\t) : name.length > 0 ? (\n\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"leading-none\">\n\t\t\t\t\t\t{getInitials(name)}\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<IconComponent className=\"size-3.5\" />\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t<span className=\"min-w-0 inline-flex flex-col\">\n\t\t\t\t<Text size=\"inherit\" weight=\"medium\" className=\"truncate\">\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n}\n\nAvatarCell.displayName = 'AvatarCell';\n","/**\n * Reusable hooks for DataTable consumers building custom toolbars or chrome.\n *\n * The default `DataTableToolbar` already wires these internally; expose them\n * for consumers that need horizontal-scroll arrows / dense toggle in a\n * custom layout (e.g. inside a hero banner above the table).\n */\nimport { useCallback, useEffect, useRef, useState, type RefObject } from 'react';\n\nconst SCROLL_AMOUNT_DEFAULT = 300;\n\n/**\n * Locate the actual horizontally-scrollable element inside a `tableArea`\n * wrapper. The shadcn-style Table primitive renders a\n * `<div data-slot=\"table-container\" class=\"overflow-x-auto\">` we target.\n */\nexport function getDataTableScrollContainer(\n\ttableArea: HTMLDivElement | null,\n): HTMLDivElement | null {\n\tif (!tableArea) return null;\n\treturn tableArea.querySelector<HTMLDivElement>('[data-slot=\"table-container\"]');\n}\n\nexport interface UseDataTableScrollStateReturn {\n\tcanScrollLeft: boolean;\n\tcanScrollRight: boolean;\n\tscrollBy: (delta: number) => void;\n\tscrollLeft: () => void;\n\tscrollRight: () => void;\n}\n\n/**\n * Track horizontal-overflow state for a DataTable wrapper. Returns booleans\n * for whether each scroll direction is available, plus helpers to nudge the\n * scroll container by a fixed amount.\n *\n * Pass the same `RefObject<HTMLDivElement>` you pass to `<DataTable>` as\n * `tableAreaRef`.\n */\nexport function useDataTableScrollState(\n\ttableAreaRef: RefObject<HTMLDivElement | null>,\n\toptions: { stepPx?: number; deps?: ReadonlyArray<unknown> } = {},\n): UseDataTableScrollStateReturn {\n\tconst { stepPx = SCROLL_AMOUNT_DEFAULT, deps = [] } = options;\n\tconst [canScrollLeft, setCanScrollLeft] = useState(false);\n\tconst [canScrollRight, setCanScrollRight] = useState(false);\n\tconst rafRef = useRef(0);\n\n\tconst measure = useCallback(() => {\n\t\tconst el = getDataTableScrollContainer(tableAreaRef.current);\n\t\tif (!el) {\n\t\t\tsetCanScrollLeft(false);\n\t\t\tsetCanScrollRight(false);\n\t\t\treturn;\n\t\t}\n\t\tconst { scrollLeft, scrollWidth, clientWidth } = el;\n\t\tsetCanScrollLeft(scrollLeft > 1);\n\t\tsetCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n\t}, [tableAreaRef]);\n\n\tuseEffect(() => {\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tconst el = getDataTableScrollContainer(tableAreaRef.current);\n\t\t\tif (!el) return;\n\n\t\t\tmeasure();\n\n\t\t\tconst handleScroll = () => {\n\t\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\t\trafRef.current = requestAnimationFrame(measure);\n\t\t\t};\n\n\t\t\tel.addEventListener('scroll', handleScroll, { passive: true });\n\t\t\tconst ro = new ResizeObserver(measure);\n\t\t\tro.observe(el);\n\t\t\tif (el.firstElementChild) ro.observe(el.firstElementChild);\n\n\t\t\treturn () => {\n\t\t\t\tel.removeEventListener('scroll', handleScroll);\n\t\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\t\tro.disconnect();\n\t\t\t};\n\t\t}, 0);\n\n\t\treturn () => window.clearTimeout(timerId);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [tableAreaRef, measure, ...deps]);\n\n\tconst scrollBy = useCallback(\n\t\t(delta: number) => {\n\t\t\tgetDataTableScrollContainer(tableAreaRef.current)?.scrollBy({\n\t\t\t\tleft: delta,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t},\n\t\t[tableAreaRef],\n\t);\n\n\tconst scrollLeft = useCallback(() => scrollBy(-stepPx), [scrollBy, stepPx]);\n\tconst scrollRight = useCallback(() => scrollBy(stepPx), [scrollBy, stepPx]);\n\n\treturn { canScrollLeft, canScrollRight, scrollBy, scrollLeft, scrollRight };\n}\n\n/**\n * localStorage-backed boolean state for the dense / comfortable toggle.\n * `null` storageKey disables persistence (the value is purely in-memory).\n */\nexport function usePersistentDensity(\n\tstorageKey: string | null,\n\tdefaultDense = false,\n): [boolean, (next: boolean) => void] {\n\tconst initial = (() => {\n\t\tif (!storageKey || typeof window === 'undefined') return defaultDense;\n\t\ttry {\n\t\t\tconst raw = window.localStorage.getItem(storageKey);\n\t\t\tif (raw === '1') return true;\n\t\t\tif (raw === '0') return false;\n\t\t\treturn defaultDense;\n\t\t} catch {\n\t\t\treturn defaultDense;\n\t\t}\n\t})();\n\n\tconst [dense, setDenseState] = useState(initial);\n\n\tconst setDense = useCallback(\n\t\t(next: boolean) => {\n\t\t\tsetDenseState(next);\n\t\t\tif (storageKey && typeof window !== 'undefined') {\n\t\t\t\ttry {\n\t\t\t\t\twindow.localStorage.setItem(storageKey, next ? '1' : '0');\n\t\t\t\t} catch {\n\t\t\t\t\t/* ignore quota / disabled-storage errors */\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[storageKey],\n\t);\n\n\treturn [dense, setDense];\n}\n","/**\n * DensityToggle — small icon button that flips between \"dense\" and\n * \"comfortable\" table modes. Stateless: render-time `dense` boolean +\n * `onChange` callback. Pair with `usePersistentDensity` from `../hooks`\n * when you want to persist the choice to localStorage.\n *\n * Used internally by `DataTableToolbar`; exposed for consumers building\n * custom toolbars.\n */\nimport { Maximize2, Minimize2 } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nconst buttonClass =\n\t'inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground/70 transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-30';\n\nexport interface DensityToggleProps {\n\tdense: boolean;\n\tonChange: (next: boolean) => void;\n\tdenseLabel?: string;\n\tcomfortableLabel?: string;\n\tclassName?: string;\n}\n\nexport function DensityToggle({\n\tdense,\n\tonChange,\n\tdenseLabel = 'Dense',\n\tcomfortableLabel = 'Comfortable',\n\tclassName,\n}: DensityToggleProps) {\n\tconst label = dense ? comfortableLabel : denseLabel;\n\tconst Icon = dense ? Maximize2 : Minimize2;\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-label={label}\n\t\t\taria-pressed={dense}\n\t\t\tonClick={() => onChange(!dense)}\n\t\t\tclassName={cn(buttonClass, className)}\n\t\t>\n\t\t\t<Icon className=\"size-3.5\" />\n\t\t</button>\n\t);\n}\n\nDensityToggle.displayName = 'DensityToggle';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ui/table.tsx","../../../../src/components/ui/pagination.tsx","../../../../src/components/base/table/table.strings.ts","../../../../src/components/base/table/pagination.tsx","../../../../src/components/base/table/table-actions.tsx","../../../../src/components/base/table/table-helpers.tsx","../../../../src/components/base/table/table-body.tsx","../../../../src/components/base/table/table-header.tsx","../../../../src/components/base/table/table-toolbar.tsx","../../../../src/components/base/table/data-table.tsx","../../../../src/components/base/table/filter-bar.tsx","../../../../src/components/base/table/table-pagination.tsx","../../../../src/components/base/table/column-visibility-toggle.tsx","../../../../src/components/base/table/partials/cell-value.tsx","../../../../src/components/base/table/partials/table-link.tsx","../../../../src/components/base/table/partials/cell-renderers.tsx","../../../../src/components/base/table/hooks.ts","../../../../src/components/base/table/partials/density-toggle.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n containerClassName?: string\n}\n\nfunction Table({ className, containerClassName, ...props }: TableProps) {\n return (\n <div\n data-slot=\"table-container\"\n className={cn(\"relative w-full overflow-x-auto\", containerClassName)}\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\n \"mx-auto flex w-full justify-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"gap-1 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"outline\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-2!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" />\n <span className=\"hidden sm:block\">\n {text}\n </span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-2!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4 flex items-center justify-center\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","import { type DataTableStrings, type DataTableStringsOverride } from './table.types';\n\nconst fallbackTitleCase = (value: string): string => {\n const formatted = value\n .replace(/[_-]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n\n if (!formatted) {\n return 'Column';\n }\n\n return formatted.replace(/\\b\\w/g, (char) => char.toUpperCase());\n};\n\nconst formatColumnLabel = (columnId: string, currentLabel?: string | null): string => {\n if (currentLabel && currentLabel.trim().length > 0) {\n return currentLabel;\n }\n\n return fallbackTitleCase(columnId);\n};\n\nexport const defaultDataTableStrings: DataTableStrings = {\n emptyState: {\n message: 'No results found.',\n },\n actions: {\n triggerLabel: 'Actions',\n srLabel: 'Row actions menu',\n },\n filter: {\n searchPlaceholder: 'Filter...',\n columnsButton: 'Columns',\n },\n columnVisibility: {\n title: 'Toggle columns',\n triggerLabel: 'Columns',\n formatLabel: formatColumnLabel,\n },\n toolbar: {\n scrollLeft: 'Scroll left',\n scrollRight: 'Scroll right',\n columns: 'Toggle columns',\n dense: 'Compact view',\n comfortable: 'Comfortable view',\n },\n pagination: {\n showing: 'Showing',\n to: 'to',\n of: 'of',\n entries: 'results',\n previous: 'Previous',\n next: 'Next',\n page: 'Page',\n rowsPerPage: 'Rows per page',\n ariaLabel: 'Pagination navigation',\n },\n selection: {\n summary: (selected, total) => `${selected} of ${total} row${total === 1 ? '' : 's'} selected.`,\n row: (index) => `Select row ${index + 1}`,\n selectAll: 'Select all rows',\n },\n} as const;\n\nconst mergeNested = <T extends object>(defaults: T, overrides?: Partial<T>): T => ({\n ...defaults,\n ...(overrides ?? {}),\n});\n\nexport const mergeDataTableStrings = (overrides?: DataTableStringsOverride): DataTableStrings => {\n if (!overrides) {\n return defaultDataTableStrings;\n }\n\n return {\n emptyState: mergeNested(defaultDataTableStrings.emptyState, overrides.emptyState),\n actions: mergeNested(defaultDataTableStrings.actions, overrides.actions),\n filter: mergeNested(defaultDataTableStrings.filter, overrides.filter),\n columnVisibility: mergeNested(defaultDataTableStrings.columnVisibility, overrides.columnVisibility),\n toolbar: mergeNested(defaultDataTableStrings.toolbar, overrides.toolbar),\n pagination: mergeNested(defaultDataTableStrings.pagination, overrides.pagination),\n selection: mergeNested(defaultDataTableStrings.selection, overrides.selection),\n };\n};\n","import { useCallback } from 'react';\nimport {\n\tPagination as PaginationRoot,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n} from '@/components/ui/pagination';\nimport { Text } from '@/components/typography';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type ServerPaginationProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\n/**\n * Generate a window of page numbers with ellipsis gaps.\n *\n * Always shows first page, last page, and up to 1 sibling\n * on each side of the current page.\n */\nfunction generatePageNumbers(\n\tcurrentPage: number,\n\tlastPage: number,\n): (number | 'ellipsis')[] {\n\tif (lastPage <= 7) {\n\t\treturn Array.from({ length: lastPage }, (_, i) => i + 1);\n\t}\n\n\tconst pages: (number | 'ellipsis')[] = [1];\n\n\tif (currentPage > 3) {\n\t\tpages.push('ellipsis');\n\t}\n\n\tconst start = Math.max(2, currentPage - 1);\n\tconst end = Math.min(lastPage - 1, currentPage + 1);\n\n\tfor (let i = start; i <= end; i++) {\n\t\tpages.push(i);\n\t}\n\n\tif (currentPage < lastPage - 2) {\n\t\tpages.push('ellipsis');\n\t}\n\n\tpages.push(lastPage);\n\n\treturn pages;\n}\n\nfunction buildPageUrl(basePath: string, page: number, queryKey: string): string {\n\t// Build a URL without inheriting the current location's query string —\n\t// the library is framework-agnostic and must not read browser globals\n\t// to decide what to put in href. Consumers that need their own params\n\t// merged should compute and pass the URL via the pagination object.\n\tconst params = new URLSearchParams();\n\tparams.set(queryKey, String(page));\n\treturn `${basePath}?${params.toString()}`;\n}\n\nexport function Pagination({\n\tpagination,\n\tonPageChange,\n\tlabels = {},\n\tpageQueryKey,\n}: ServerPaginationProps) {\n\tconst paginationLabels = {\n\t\t...defaultDataTableStrings.pagination,\n\t\t...labels,\n\t} as typeof defaultDataTableStrings.pagination;\n\tconst queryKey = pageQueryKey ?? 'page';\n\n\tconst firstItem = (pagination.current_page - 1) * pagination.per_page + 1;\n\tconst lastItem = Math.min(\n\t\tpagination.current_page * pagination.per_page,\n\t\tpagination.total,\n\t);\n\n\tconst navigateToPage = useCallback(\n\t\t(page: number, url: string | null) => {\n\t\t\tif (!url) return;\n\t\t\t// The library never navigates on its own. Consumers wire their\n\t\t\t// router (Inertia, Tanstack Router, RR7, Next, …) through\n\t\t\t// `onPageChange`. When it's absent the click is a no-op — the\n\t\t\t// `href` attribute on the underlying anchor remains the only\n\t\t\t// fallback path (browsers will navigate it if JS doesn't run).\n\t\t\tonPageChange?.(page, url, pagination.path || '');\n\t\t},\n\t\t[onPageChange, pagination.path],\n\t);\n\n\tconst hasPrevious = pagination.prev_page_url !== null;\n\tconst hasNext = pagination.next_page_url !== null;\n\tconst pages = generatePageNumbers(pagination.current_page, pagination.last_page);\n\n\treturn (\n\t\t<div className={cn('pagination--component', 'flex items-center justify-between px-5 py-3')}>\n\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"tabular-nums tracking-tight\">\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" className=\"text-foreground\">{firstItem}&ndash;{lastItem}</Text>{' '}\n\t\t\t\t{paginationLabels.of}{' '}\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" className=\"text-foreground\">{pagination.total}</Text>{' '}\n\t\t\t\t{paginationLabels.entries}\n\t\t\t</Text>\n\n\t\t\t<PaginationRoot aria-label={paginationLabels.ariaLabel} className=\"w-auto mx-0\">\n\t\t\t\t<PaginationContent className=\"gap-0.5\">\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationPrevious\n\t\t\t\t\t\t\ttext={paginationLabels.previous}\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\tpagination.current_page - 1,\n\t\t\t\t\t\t\t\t\tpagination.prev_page_url,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-disabled={!hasPrevious}\n\t\t\t\t\t\t\tclassName={`h-8 text-xs ${!hasPrevious ? 'pointer-events-none opacity-40' : ''}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{pages.map((page, index) => {\n\t\t\t\t\t\tconst isEllipsis = page === 'ellipsis';\n\t\t\t\t\t\tconst itemKey = isEllipsis\n\t\t\t\t\t\t\t? `ellipsis-${pagination.current_page}-${index}`\n\t\t\t\t\t\t\t: `page-${page}`;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t<PaginationItem key={itemKey}>\n\t\t\t\t\t\t\t{isEllipsis ? (\n\t\t\t\t\t\t\t\t<PaginationEllipsis className=\"size-8\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<PaginationLink\n\t\t\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t\t\tisActive={page === pagination.current_page}\n\t\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t\tbuildPageUrl(pagination.path, page, queryKey),\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tclassName=\"size-8 text-xs\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t</PaginationLink>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationNext\n\t\t\t\t\t\t\ttext={paginationLabels.next}\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tnavigateToPage(\n\t\t\t\t\t\t\t\t\tpagination.current_page + 1,\n\t\t\t\t\t\t\t\t\tpagination.next_page_url,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-disabled={!hasNext}\n\t\t\t\t\t\t\tclassName={`h-8 text-xs ${!hasNext ? 'pointer-events-none opacity-40' : ''}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</PaginationContent>\n\t\t\t</PaginationRoot>\n\t\t</div>\n\t);\n}\n\nPagination.displayName = 'Pagination';\n","import { MoreHorizontal, type LucideIcon } from 'lucide-react';\nimport { isValidElement, useEffect, useMemo, useState } from 'react';\nimport { Button, type ButtonVariant, type ButtonStyle } from '@/components/base/buttons';\nimport {\n ActionMenu,\n MenuAction,\n type MenuActionProps\n} from '@/components/base/navigation/action-menu';\nimport { cn } from '@/lib/utils';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableActionsProps, type ActionItem, type ActionVariant } from './table.types';\n\nexport function DataTableActions<TData>(props: DataTableActionsProps<TData>) {\n const {\n row,\n actions,\n menuLabel,\n displayMode = 'menu', // preserve existing behavior\n responsiveBreakpoint = 1040,\n strings: providedStrings\n } = props;\n\n const strings = providedStrings ?? defaultDataTableStrings;\n const resolvedMenuLabel = menuLabel ?? strings.actions.triggerLabel;\n\n // Resolve actions array\n const resolvedActions = useMemo<ActionItem<TData>[]>(() => {\n const base = typeof actions === 'function' ? actions(row) : actions;\n return Array.isArray(base) ? base : [];\n }, [actions, row]);\n\n // Filter visibility and compute disabled by predicate/boolean\n const visibleActions = useMemo(() => {\n const evalFlag = (flag: boolean | ((r: TData) => boolean) | undefined): boolean | undefined => {\n if (typeof flag === 'function') return flag(row);\n return flag;\n };\n return resolvedActions\n .filter(a => {\n const v = evalFlag(a.isVisible);\n return v === undefined ? true : v;\n })\n .map(a => ({\n ...a,\n disabled: evalFlag(a.isDisabled) ?? a.disabled ?? false\n }));\n }, [resolvedActions, row]);\n\n // No actions to render\n const hasVisibleActions = visibleActions.length > 0;\n\n // Responsive auto mode: inline over breakpoint, menu under\n const [isNarrow, setIsNarrow] = useState(false);\n\n // 1. Split by variant\n const nonDestructive = visibleActions.filter((action) => action.variant !== 'destructive');\n const destructive = visibleActions.filter((action) => action.variant === 'destructive');\n\n // 2. Combine them (non-destructive first, destructive last)\n const sortedActions = [...nonDestructive, ...destructive];\n\n useEffect(() => {\n if (displayMode !== 'auto' || !hasVisibleActions) {\n setIsNarrow(false);\n return;\n }\n\n const handleResize = () => {\n try {\n setIsNarrow(window.innerWidth <= responsiveBreakpoint);\n } catch {\n setIsNarrow(false);\n }\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [displayMode, hasVisibleActions, responsiveBreakpoint]);\n\n if (!hasVisibleActions) return null;\n\n const mode: 'menu' | 'inline' = displayMode === 'auto' ? (isNarrow ? 'menu' : 'inline') : displayMode;\n\n const resolveMenuIcon = (icon: ActionItem<TData>['icon']): LucideIcon | undefined => {\n if (!icon) return undefined;\n if (typeof icon === 'function') {\n return icon as LucideIcon;\n }\n\n if (isValidElement(icon) && typeof icon.type === 'function') {\n return icon.type as LucideIcon;\n }\n\n return undefined;\n };\n\n const resolveActionButtonVariant = (variant?: ActionVariant): {\n variant: ButtonVariant;\n buttonStyle: ButtonStyle;\n className?: string\n } => {\n switch (variant) {\n case 'destructive':\n return { variant: 'error', buttonStyle: 'solid' };\n case 'outline':\n return { variant: 'secondary', buttonStyle: 'outline' };\n case 'secondary':\n return { variant: 'secondary', buttonStyle: 'solid' };\n case 'ghost':\n return { variant: 'secondary', buttonStyle: 'ghost' };\n case 'link':\n return { variant: 'secondary', buttonStyle: 'ghost', className: 'underline underline-offset-4' };\n case 'default':\n default:\n return { variant: 'primary', buttonStyle: 'solid' };\n }\n };\n\n const resolveMenuActionVariant = (\n variant?: ActionVariant\n ): NonNullable<MenuActionProps['variant']> => {\n switch (variant) {\n case 'default':\n return 'primary';\n case 'destructive':\n return 'error';\n default:\n return 'secondary';\n }\n };\n\n if (mode === 'inline') {\n return (\n <div className={cn('table-actions--component', 'flex items-center gap-1')}>\n {sortedActions.map((action, idx) => {\n const key = action.id || `${action.label}-${idx}`;\n const resolved = resolveActionButtonVariant(action.variant ?? 'ghost');\n const onClick = () => {\n action.onClick?.(row);\n };\n return (\n <Button\n key={key}\n variant={resolved.variant}\n buttonStyle={resolved.buttonStyle}\n className={cn('h-8 text-inherit leading-4', resolved.className)}\n disabled={!!action.disabled}\n onClick={onClick}\n >\n {!!action.icon && <span className=\"mr-2 inline-flex\">{action.icon}</span>}\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n }\n\n\n // menu mode (default) using our ActionMenu implementation\n return (\n <ActionMenu\n label={undefined}\n icon={MoreHorizontal}\n srText={resolvedMenuLabel || strings.actions.srLabel}\n closeOnSelect={true}\n align=\"end\"\n density=\"table\"\n >\n {sortedActions.map((action, idx) => {\n const key = action.id || `${action.label}-${idx}`;\n const onClick = () => {\n action.onClick?.(row);\n };\n const menuIcon = resolveMenuIcon(action.icon);\n const inlineIcon = action.icon\n ? <span className=\"inline-flex items-center\">{action.icon}</span>\n : null;\n const fallbackContent = menuIcon ? null : (\n <div className=\"flex w-full items-center gap-2\">\n {inlineIcon}\n <span>{action.label}</span>\n </div>\n );\n\n const menuActionVariant = resolveMenuActionVariant(\n action.variant\n );\n\n return (\n <MenuAction\n key={key}\n label={action.label}\n icon={menuIcon}\n variant={menuActionVariant}\n disabled={!!action.disabled}\n onClick={onClick}\n >\n {fallbackContent}\n </MenuAction>\n );\n })}\n </ActionMenu>\n );\n}\n\nDataTableActions.displayName = 'DataTableActions';\n","import type {\n\tSortingState,\n\tRowSelectionState,\n\tVisibilityState,\n\tTable,\n\tRow,\n\tUpdater,\n\tColumnDef,\n} from '@tanstack/react-table';\nimport React from 'react';\nimport { defaultDataTableStrings } from './table.strings';\nimport type { DataTableStrings } from './table.types';\n\n/**\n * Helper function for handling row selection changes with OnChangeFn compatibility\n */\nexport const handleRowSelectionChange = (\n\tupdatedSelection: Updater<RowSelectionState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<RowSelectionState>>,\n\texternalHandler?: (state: RowSelectionState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedSelection === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (\n\t\t\t\tupdatedSelection as (prev: RowSelectionState) => RowSelectionState\n\t\t\t)(prevState);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedSelection);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedSelection);\n\t\t}\n\t}\n};\n\n/**\n * Helper function for handling sorting changes with OnChangeFn compatibility\n */\nexport const handleSortingChange = (\n\tupdatedSorting: Updater<SortingState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<SortingState>>,\n\texternalHandler?: (state: SortingState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedSorting === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (updatedSorting as (prev: SortingState) => SortingState)(\n\t\t\t\tprevState,\n\t\t\t);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedSorting);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedSorting);\n\t\t}\n\t}\n};\n\n/**\n * Helper function for handling column visibility changes\n */\nexport const handleColumnVisibilityChange = (\n\tupdatedVisibility: Updater<VisibilityState>,\n\tsetInternalState: React.Dispatch<React.SetStateAction<VisibilityState>>,\n\texternalHandler?: (state: VisibilityState) => void,\n) => {\n\t// Handle both direct values and updater functions\n\tif (typeof updatedVisibility === 'function') {\n\t\t// If it's a function, use setState with function argument\n\t\tsetInternalState((prevState) => {\n\t\t\tconst newState = (\n\t\t\t\tupdatedVisibility as (prev: VisibilityState) => VisibilityState\n\t\t\t)(prevState);\n\t\t\tif (externalHandler) {\n\t\t\t\texternalHandler(newState);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t} else {\n\t\t// If it's a direct value, just use it\n\t\tsetInternalState(updatedVisibility);\n\t\tif (externalHandler) {\n\t\t\texternalHandler(updatedVisibility);\n\t\t}\n\t}\n};\n\n/**\n * Get row class name based on selection state and custom function\n */\nexport const getRowClassName = <TData,>(\n\trow: Row<TData>,\n\tindex: number,\n\trowClassName?: string | ((row: Row<TData>, index: number) => string),\n\tisSelected?: boolean,\n): string => {\n\tlet className = '';\n\n\t// Add selected class if the row is selected\n\tif (isSelected) {\n\t\tclassName += 'bg-primary/5 ';\n\t}\n\n\t// Add custom class name\n\tif (typeof rowClassName === 'function') {\n\t\tclassName += rowClassName(row, index) + ' ';\n\t} else if (rowClassName) {\n\t\tclassName += rowClassName + ' ';\n\t}\n\n\treturn className.trim();\n};\n\n/**\n * Get cell class name including sticky column handling\n */\nexport const getCellClassName = <TData,>(\n\tcolumnId: string,\n\trow: Row<TData> | null,\n\tcellClassName?: string | ((column: string, row: Row<TData> | null) => string),\n\tstickyFirstColumn?: boolean,\n\tisFirstColumn?: boolean,\n): string => {\n\tlet baseClassName = '';\n\n\t// Add base class name\n\tif (typeof cellClassName === 'string') {\n\t\tbaseClassName = cellClassName;\n\t} else if (cellClassName && row) {\n\t\tbaseClassName = cellClassName(columnId, row);\n\t}\n\n\t// Add sticky class if it's the first column and sticky first column is enabled\n\tif (stickyFirstColumn && isFirstColumn) {\n\t\treturn `${baseClassName} sticky left-0 z-10 bg-card`;\n\t}\n\n\treturn baseClassName;\n};\n\n/**\n * Get selected rows data from the table\n */\nexport const getSelectedRowsData = <T extends object>(table: Table<T>): T[] => {\n\treturn table.getSelectedRowModel().rows.map((row) => row.original);\n};\n\n/**\n * Create row selection component for a row\n */\nexport const createRowSelectionCheckbox = <TData,>(\n\trow: Row<TData>,\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => (\n\t<div className=\"px-1\">\n\t\t<input\n\t\t\ttype=\"checkbox\"\n\t\t\tclassName=\"size-3.5 rounded border-border text-primary accent-primary focus-visible:ring-ring focus-visible:ring-offset-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-40\"\n\t\t\tchecked={row.getIsSelected()}\n\t\t\tdisabled={!row.getCanSelect()}\n\t\t\tonChange={row.getToggleSelectedHandler()}\n\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\taria-label={strings.selection.row(row.index)}\n\t\t/>\n\t</div>\n);\n\n/**\n * Create header selection checkbox\n */\nexport const createHeaderSelectionCheckbox = <TData,>(\n\ttable: Table<TData>,\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => (\n\t<div className=\"px-1\">\n\t\t<input\n\t\t\ttype=\"checkbox\"\n\t\t\tclassName=\"size-3.5 rounded border-border text-primary accent-primary focus-visible:ring-ring focus-visible:ring-offset-1 cursor-pointer\"\n\t\t\tchecked={table.getIsAllPageRowsSelected()}\n\t\t\tonChange={table.getToggleAllPageRowsSelectedHandler()}\n\t\t\taria-label={strings.selection.selectAll}\n\t\t/>\n\t</div>\n);\n\n/**\n * Add selection column to columns\n */\nexport const addSelectionColumn = <TData, TValue = unknown>(\n\tcolumns: ColumnDef<TData, TValue>[],\n\tstrings: DataTableStrings = defaultDataTableStrings,\n) => {\n\tconst selectionColumn = {\n\t\tid: 'selection',\n\t\theader: ({ table }: { table: Table<TData> }) =>\n\t\t\tcreateHeaderSelectionCheckbox(table, strings),\n\t\tcell: ({ row }: { row: Row<TData> }) => createRowSelectionCheckbox(row, strings),\n\t\tenableSorting: false,\n\t\tenableResizing: false,\n\t\tsize: 40,\n\t} as ColumnDef<TData, TValue>;\n\n\treturn [selectionColumn, ...columns];\n};\n","/**\n * DataTableBody — body rows, selection highlighting, hover, empty state,\n * and (optional) loading skeleton. Stronger hover + selection contrast than\n * the original implementation so rows feel interactive at a glance.\n */\nimport { flexRender } from '@tanstack/react-table';\nimport { TableBody, TableCell, TableRow } from '@/components/ui/table';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport {\n\tgetCellClassName,\n\tgetRowClassName,\n} from './table-helpers';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableBodyProps } from './table.types';\n\nexport function DataTableBody<TData>({\n\ttable,\n\tonRowClick,\n\temptyStateMessage,\n\temptyStateAction,\n\tcellClassName = '',\n\trowClassName = '',\n\tstickyFirstColumn = false,\n\tstriped = false,\n\tdense = false,\n\tstrings,\n}: DataTableBodyProps<TData>) {\n\tconst tableRows = table.getRowModel().rows;\n\tconst resolvedEmptyStateMessage =\n\t\temptyStateMessage ??\n\t\tstrings?.emptyState.message ??\n\t\tdefaultDataTableStrings.emptyState.message;\n\n\tconst handleRowClick = (row: TData) => {\n\t\tif (onRowClick) {\n\t\t\tonRowClick(row);\n\t\t}\n\t};\n\n\tif (!tableRows.length) {\n\t\treturn (\n\t\t\t<TableBody className=\"table-body--component\">\n\t\t\t\t<TableRow className=\"hover:bg-transparent\">\n\t\t\t\t\t<TableCell\n\t\t\t\t\t\tclassName=\"h-24 text-center\"\n\t\t\t\t\t\tcolSpan={table.getAllColumns().length}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex flex-col items-center justify-center py-12 space-y-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-center size-10 rounded-full bg-muted mb-1\">\n\t\t\t\t\t\t\t\t<svg className=\"size-5 text-muted-foreground/60\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n\t\t\t\t\t\t\t\t\t<path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m6 4.125l2.25 2.25m0 0l2.25-2.25M12 13.875V7.5M3.75 7.5h16.5\" />\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{resolvedEmptyStateMessage}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t{!!emptyStateAction && (\n\t\t\t\t\t\t\t\t<div className=\"mt-1\">{emptyStateAction}</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</TableCell>\n\t\t\t\t</TableRow>\n\t\t\t</TableBody>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TableBody>\n\t\t\t{tableRows.map((row, rowIndex) => {\n\t\t\t\tconst isRowSelected = row.getIsSelected();\n\t\t\t\tconst rowCells = row.getVisibleCells();\n\t\t\t\tconst computedRowClassName = getRowClassName(\n\t\t\t\t\trow,\n\t\t\t\t\trowIndex,\n\t\t\t\t\trowClassName,\n\t\t\t\t\tisRowSelected,\n\t\t\t\t);\n\t\t\t\tconst handleRowSelection = () => {\n\t\t\t\t\tif (onRowClick) {\n\t\t\t\t\t\thandleRowClick(row.original);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst zebraClass = striped && rowIndex % 2 !== 0 ? 'bg-muted/30' : '';\n\t\t\t\tconst cursorClass = onRowClick ? 'cursor-pointer' : '';\n\t\t\t\tconst rowClasses = cn(\n\t\t\t\t\tcomputedRowClassName,\n\t\t\t\t\tzebraClass,\n\t\t\t\t\t'transition-colors duration-100',\n\t\t\t\t\t'hover:bg-accent/40 data-[state=selected]:bg-primary/5 data-[state=selected]:hover:bg-primary/10',\n\t\t\t\t\tcursorClass,\n\t\t\t\t\t'border-b border-border last:border-b-0',\n\t\t\t\t);\n\t\t\t\tconst rowState = isRowSelected ? 'selected' : null;\n\n\t\t\t\treturn (\n\t\t\t\t\t<TableRow\n\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\tdata-state={rowState}\n\t\t\t\t\t\tclassName={rowClasses}\n\t\t\t\t\t\tonClick={handleRowSelection}\n\t\t\t\t\t>\n\t\t\t\t\t\t{rowCells.map((cell, cellIndex) => (\n\t\t\t\t\t\t\t<TableCell\n\t\t\t\t\t\t\t\tkey={cell.id}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\tgetCellClassName(\n\t\t\t\t\t\t\t\t\t\tcell.column.id,\n\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\tcellClassName,\n\t\t\t\t\t\t\t\t\t\tstickyFirstColumn,\n\t\t\t\t\t\t\t\t\t\tcellIndex === 0,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'first:pl-5 last:pr-5',\n\t\t\t\t\t\t\t\t\tdense && 'py-1.5 px-2 first:pl-3 last:pr-3 text-xxs leading-3',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</TableRow>\n\t\t\t\t);\n\t\t\t})}\n\t\t</TableBody>\n\t);\n}\n\nDataTableBody.displayName = 'DataTableBody';\n","/**\n * DataTableHeader — column-group row, primary header row, sort indicators,\n * and (optionally) resize handles. Sortable columns render as a button with\n * an inline up / down / both arrow icon driven by TanStack `column.getIsSorted()`.\n */\nimport { flexRender } from '@tanstack/react-table';\nimport { ArrowDown, ArrowUp, ChevronsUpDown } from 'lucide-react';\nimport React from 'react';\nimport { TableHead, TableHeader, TableRow } from '@/components/ui/table';\nimport { cn } from '@/lib/utils';\nimport { getCellClassName } from './table-helpers';\nimport { type DataTableHeaderProps } from './table.types';\n\nexport function DataTableHeader<TData>(\n\t{\n\t\ttable,\n\t\tenableResizing = false,\n\t\tstickyHeader = false,\n\t\theaderClassName = '',\n\t\tcellClassName = '',\n\t\tstickyFirstColumn = false,\n\t\tcolumnGroups,\n\t\tdense = false,\n\t\theaderTransparent = false,\n\t}: DataTableHeaderProps<TData>) {\n\n\tconst headerGroups = table.getHeaderGroups();\n\n\tconst getColumnGroup = (columnId: string) => {\n\t\tif (!columnGroups) return null;\n\t\treturn columnGroups.find(group => group.columns.includes(columnId));\n\t};\n\n\tconst renderGroupHeaderRow = () => {\n\t\tif (!columnGroups || columnGroups.length === 0 || headerGroups.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst headers = headerGroups[0].headers;\n\t\tlet currentGroup: string | null = null;\n\t\tlet groupSpan = 0;\n\t\tconst groupCells: React.ReactNode[] = [];\n\n\t\theaders.forEach((header, index) => {\n\t\t\tconst group = getColumnGroup(header.id);\n\t\t\tconst groupName = group?.header || '';\n\n\t\t\tif (groupName !== currentGroup) {\n\t\t\t\tif (currentGroup !== null && groupSpan > 0) {\n\t\t\t\t\tgroupCells.push(\n\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\tkey={`group-${currentGroup}-${groupCells.length}`}\n\t\t\t\t\t\t\tcolSpan={groupSpan}\n\t\t\t\t\t\t\tclassName=\"text-center border-r border-border/60 last:border-r-0 px-3 py-2 text-xxs font-bold uppercase tracking-widest text-muted-foreground/70 bg-muted/40\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{currentGroup || ''}\n\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcurrentGroup = groupName;\n\t\t\t\tgroupSpan = 1;\n\t\t\t} else {\n\t\t\t\tgroupSpan++;\n\t\t\t}\n\n\t\t\tif (index === headers.length - 1 && groupSpan > 0) {\n\t\t\t\tgroupCells.push(\n\t\t\t\t\t<TableHead\n\t\t\t\t\t\tkey={`group-${currentGroup}-${groupCells.length}`}\n\t\t\t\t\t\tcolSpan={groupSpan}\n\t\t\t\t\t\tclassName=\"text-center border-r border-border/60 last:border-r-0 px-3 py-2 text-xxs font-bold uppercase tracking-widest text-muted-foreground/70 bg-muted/40 whitespace-nowrap\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{currentGroup || ''}\n\t\t\t\t\t</TableHead>\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\treturn (\n\t\t\t<TableRow className={cn('table-header--component', 'border-b border-border')}>\n\t\t\t\t{groupCells}\n\t\t\t</TableRow>\n\t\t);\n\t};\n\n\treturn (\n\t\t<TableHeader\n\t\t\tclassName={cn(\n\t\t\t\tstickyHeader &&\n\t\t\t\t\t(headerTransparent\n\t\t\t\t\t\t? 'sticky top-[var(--topbar-height)] z-10 bg-background/80 backdrop-blur-md shadow-[0_1px_0_0_var(--border)]'\n\t\t\t\t\t\t: 'sticky top-[var(--topbar-height)] z-10 bg-muted backdrop-blur-md shadow-[0_1px_0_0_var(--border)]'),\n\t\t\t\theaderClassName,\n\t\t\t)}\n\t\t>\n\t\t\t{renderGroupHeaderRow()}\n\t\t\t{headerGroups.map((headerGroup) => (\n\t\t\t\t<TableRow\n\t\t\t\t\tkey={headerGroup.id}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'border-b border-border',\n\t\t\t\t\t\theaderTransparent\n\t\t\t\t\t\t\t? 'bg-transparent hover:bg-transparent'\n\t\t\t\t\t\t\t: 'bg-muted hover:bg-muted',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{headerGroup.headers.map((header, index) => {\n\t\t\t\t\t\tconst cellClasses = cn(\n\t\t\t\t\t\t\tgetCellClassName(\n\t\t\t\t\t\t\t\theader.id,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tcellClassName,\n\t\t\t\t\t\t\t\tstickyFirstColumn,\n\t\t\t\t\t\t\t\tindex === 0,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t'first:pl-5 last:pr-5',\n\t\t\t\t\t\t\tdense && 'px-2 py-1.5 first:pl-3 last:pr-3 text-xxs',\n\t\t\t\t\t\t\t'text-muted-foreground font-medium uppercase tracking-wider whitespace-nowrap',\n\t\t\t\t\t\t\t'bg-transparent',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst headerStyle = enableResizing\n\t\t\t\t\t\t\t? { position: 'relative' as const }\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tconst resizeHandler = header.getResizeHandler();\n\t\t\t\t\t\tconst isResizing = header.column.getIsResizing();\n\t\t\t\t\t\tconst columnLabel = (() => {\n\t\t\t\t\t\t\tconst rawHeader = header.column.columnDef.header;\n\t\t\t\t\t\t\tif (typeof rawHeader === 'string') {\n\t\t\t\t\t\t\t\treturn rawHeader;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn typeof header.id === 'string' ? header.id : 'column';\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\tclassName={cellClasses}\n\t\t\t\t\t\t\t\tstyle={headerStyle}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst canSort = header.column.getCanSort();\n\t\t\t\t\t\t\t\t\t\t\tconst sortDir = header.column.getIsSorted();\n\t\t\t\t\t\t\t\t\t\t\tconst headerNode = flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tconst SortIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tsortDir === 'asc'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ArrowUp\n\t\t\t\t\t\t\t\t\t\t\t\t\t: sortDir === 'desc'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? ArrowDown\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ChevronsUpDown;\n\t\t\t\t\t\t\t\t\t\t\tif (!canSort) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn <div className=\"flex items-center\">{headerNode}</div>;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={header.column.getToggleSortingHandler()}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'group inline-flex items-center gap-1.5 select-none -ml-1 px-1 rounded',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'hover:text-foreground transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsortDir && 'text-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={`Sort ${columnLabel}`}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{headerNode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SortIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-3 shrink-0 transition-opacity',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsortDir\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'opacity-100'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'opacity-30 group-hover:opacity-70',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\n\n\t\t\t\t\t\t\t\t\t\t{!!enableResizing && (\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'absolute top-0 right-0 h-full w-1 cursor-col-resize select-none touch-none bg-foreground bg-opacity-50 opacity-0 hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none',\n\t\t\t\t\t\t\t\t\t\t\t\t\tisResizing &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'!bg-primary-600 bg-opacity-100',\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={`Resize ${columnLabel}`}\n\t\t\t\t\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseDown={resizeHandler}\n\t\t\t\t\t\t\t\t\t\t\t\tonTouchStart={resizeHandler}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</TableRow>\n\t\t\t))}\n\t\t</TableHeader>\n\t);\n}\n\nDataTableHeader.displayName = 'DataTableHeader';\n","import { ChevronLeft, ChevronRight, Columns3, Maximize2, Minimize2 } from 'lucide-react';\nimport type { Column } from '@tanstack/react-table';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableToolbarProps } from './table.types';\n\nconst SCROLL_AMOUNT = 300;\n\nconst btnBase = 'inline-flex items-center justify-center h-7 w-7 rounded-none text-muted-foreground/70 hover:bg-muted hover:text-foreground transition-colors duration-150 disabled:opacity-30 disabled:pointer-events-none';\n\ninterface ToolbarIconButtonProps {\n label: string;\n onClick: () => void;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction ToolbarIconButton({ label, onClick, disabled, className, children }: ToolbarIconButtonProps) {\n return (\n <button\n type=\"button\"\n aria-label={label}\n className={cn('table-toolbar--component', btnBase, className)}\n onClick={onClick}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n\n/**\n * Finds the actual horizontally-scrollable element inside the table area.\n * The Table primitive renders: <div data-slot=\"table-container\" class=\"overflow-x-auto\">\n */\nfunction getScrollContainer(tableArea: HTMLDivElement | null): HTMLDivElement | null {\n if (!tableArea) return null;\n return tableArea.querySelector<HTMLDivElement>('[data-slot=\"table-container\"]');\n}\n\nexport function DataTableToolbar<TData>({\n table,\n tableAreaRef,\n dense,\n onDenseChange,\n enableColumnVisibility = false,\n strings = defaultDataTableStrings,\n}: DataTableToolbarProps<TData>) {\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const rafRef = useRef(0);\n const cleanupRef = useRef<(() => void) | null>(null);\n\n // --- Scroll overflow detection ---\n const checkOverflow = useCallback(() => {\n const el = getScrollContainer(tableAreaRef.current);\n if (!el) {\n setCanScrollLeft(false);\n setCanScrollRight(false);\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, [tableAreaRef]);\n\n useEffect(() => {\n // Defer slightly to ensure the Table primitive has rendered its container\n const timerId = window.setTimeout(() => {\n const el = getScrollContainer(tableAreaRef.current);\n if (!el) return;\n\n // Initial check\n checkOverflow();\n\n const handleScroll = () => {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = requestAnimationFrame(checkOverflow);\n };\n\n el.addEventListener('scroll', handleScroll, { passive: true });\n\n // ResizeObserver to detect when table width changes\n const ro = new ResizeObserver(checkOverflow);\n ro.observe(el);\n if (el.firstElementChild) {\n ro.observe(el.firstElementChild);\n }\n\n // Store cleanup references\n cleanupRef.current = () => {\n el.removeEventListener('scroll', handleScroll);\n cancelAnimationFrame(rafRef.current);\n ro.disconnect();\n };\n }, 0);\n\n return () => {\n window.clearTimeout(timerId);\n cleanupRef.current?.();\n };\n // Re-run when dense mode changes (layout shift can affect overflow)\n\n }, [tableAreaRef, checkOverflow, dense]);\n\n // --- Scroll handlers ---\n const handleScrollLeft = useCallback(() => {\n getScrollContainer(tableAreaRef.current)?.scrollBy({ left: -SCROLL_AMOUNT, behavior: 'smooth' });\n }, [tableAreaRef]);\n\n const handleScrollRight = useCallback(() => {\n getScrollContainer(tableAreaRef.current)?.scrollBy({ left: SCROLL_AMOUNT, behavior: 'smooth' });\n }, [tableAreaRef]);\n\n // --- Dense toggle ---\n const handleDenseToggle = useCallback(() => {\n onDenseChange(!dense);\n }, [dense, onDenseChange]);\n\n // --- Column visibility ---\n const columns = enableColumnVisibility\n ? table.getAllColumns().filter((column) => column.getCanHide())\n : [];\n\n const hasScrollArrows = canScrollLeft || canScrollRight;\n const hasColumns = enableColumnVisibility && columns.length > 0;\n const denseToggleLabel = dense\n ? strings.toolbar.comfortable\n : strings.toolbar.dense;\n\n return (\n <div className=\"flex items-center rounded-md border border-border bg-card\">\n {/* Scroll arrows - only rendered when overflow exists */}\n {!!hasScrollArrows && (\n <>\n <ToolbarIconButton\n label={strings.toolbar.scrollLeft}\n onClick={handleScrollLeft}\n disabled={!canScrollLeft}\n className=\"rounded-l-[calc(theme(borderRadius.md)-1px)]\"\n >\n <ChevronLeft className=\"h-3.5 w-3.5\" />\n </ToolbarIconButton>\n <ToolbarIconButton\n label={strings.toolbar.scrollRight}\n onClick={handleScrollRight}\n disabled={!canScrollRight}\n >\n <ChevronRight className=\"h-3.5 w-3.5\" />\n </ToolbarIconButton>\n <div className=\"h-4 w-px bg-border\" />\n </>\n )}\n\n {/* Column visibility dropdown */}\n {!!hasColumns && (\n <>\n <ColumnVisibilityDropdown\n columns={columns}\n strings={strings}\n roundLeft={!hasScrollArrows}\n />\n <div className=\"h-4 w-px bg-border\" />\n </>\n )}\n\n {/* Dense/compact toggle */}\n <ToolbarIconButton\n label={denseToggleLabel}\n onClick={handleDenseToggle}\n className={cn(\n 'rounded-r-[calc(theme(borderRadius.md)-1px)]',\n !hasScrollArrows && !hasColumns && 'rounded-l-[calc(theme(borderRadius.md)-1px)]',\n )}\n >\n {dense\n ? <Maximize2 className=\"h-3.5 w-3.5\" />\n : <Minimize2 className=\"h-3.5 w-3.5\" />\n }\n </ToolbarIconButton>\n </div>\n );\n}\n\n/** Extracted dropdown to keep the parent component clean */\nfunction ColumnVisibilityDropdown<TData>({\n columns,\n strings,\n roundLeft,\n}: {\n columns: Array<Column<TData, unknown>>;\n strings: NonNullable<DataTableToolbarProps<TData>['strings']>;\n roundLeft: boolean;\n}) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <button\n {...triggerProps}\n type=\"button\"\n aria-label={strings.toolbar.columns}\n className={cn(\n btnBase,\n (triggerProps as Record<string, unknown>).className as string,\n roundLeft && 'rounded-l-[calc(theme(borderRadius.md)-1px)]',\n )}\n >\n <Columns3 className=\"h-3.5 w-3.5\" />\n </button>\n )}\n />\n <DropdownMenuContent align=\"end\" className=\"w-[200px]\">\n <DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => {\n const header = column.columnDef.header;\n const columnName = strings.columnVisibility.formatLabel(\n column.id,\n typeof header === 'string' ? header : undefined,\n );\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(checked) => column.toggleVisibility(!!checked)}\n >\n {columnName}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nDataTableToolbar.displayName = 'DataTableToolbar';\n","/**\n * DataTable — TanStack-powered data table with sorting, row selection, column\n * visibility, server-side pagination, dense mode, sticky header / first column,\n * and pluggable row actions (menu / inline / responsive).\n *\n * Strings are overridable through the `strings` prop and a default set in\n * `./table.strings`. Column visibility and dense mode persist to localStorage\n * when a `storageKey` is provided.\n *\n * Use the cell renderers exported from `./partials/cell-renderers`\n * (`StatusCell`, `DateCell`, `CurrencyCell`, `AvatarCell`) for visually\n * consistent cells across pages.\n */\nimport {\n\tgetCoreRowModel,\n\tuseReactTable,\n\ttype SortingState,\n\ttype VisibilityState,\n\ttype Updater,\n\ttype ColumnDef,\n\ttype RowSelectionState,\n} from '@tanstack/react-table';\nimport { createContext, useContext, useState, useMemo, useCallback, useRef } from 'react';\nimport { Table } from '@/components/ui/table';\nimport { useTableConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\n/**\n * Context exposing the current `<DataTable size>` to descendant cell renderers\n * so consumer-built cells can stay typographically aligned with the table\n * (instead of hardcoding `<Text>` and breaking the unification the\n * `size` prop is supposed to give).\n *\n * Use it from custom cells:\n * const size = useDataTableSize();\n * return <Text className=\"data-table--component\" size={size}>{value}</Text>;\n *\n * The built-in renderers in `partials/cell-renderers` consume this hook.\n */\nconst DataTableSizeContext = createContext<'xs' | 'sm' | 'base'>('xs');\n\nexport function useDataTableSize(): 'xs' | 'sm' | 'base' {\n\treturn useContext(DataTableSizeContext);\n}\nimport { Pagination } from './pagination';\nimport { DataTableActions } from './table-actions';\nimport { DataTableBody } from './table-body';\nimport { DataTableHeader } from './table-header';\nimport { DataTableToolbar } from './table-toolbar';\nimport { addSelectionColumn, handleSortingChange, handleColumnVisibilityChange } from './table-helpers';\nimport { mergeDataTableStrings } from './table.strings';\nimport { type DataTableProps } from './table.types';\nimport { Separator } from '@/components/base/display/separator';\n\n// Class applied to the `<table>` element.\n//\n// Body cells get an explicit `[&_td]:text-{size}` so deeply nested\n// elements that use `<Text size=\"inherit\">` (or any plain `<span>`)\n// inherit the right font-size from the cell rather than relying on\n// the table-level inheritance chain (which breaks the moment any\n// descendant has its own text-size class).\n//\n// Header cells stay at `text-xxs` regardless of body density — the\n// canonical admin pattern is \"tiny uppercase eyebrow header,\n// variable body density.\" A consumer who wants matched header sizing\n// can override via `headerClassName`.\nconst sizeClassByDataTableSize: Record<NonNullable<DataTableProps<object, unknown>['size']>, string> = {\n\txs: '[&_th]:text-xxs [&_td]:text-xs [&_th]:py-1.5 [&_td]:py-1.5 [&_th]:px-2 [&_td]:px-2 [&_th]:h-8',\n\tsm: '[&_th]:text-xxs [&_td]:text-sm [&_th]:py-2 [&_td]:py-2 [&_th]:px-2.5 [&_td]:px-2.5 [&_th]:h-10',\n\tbase: '[&_th]:text-xs [&_td]:text-base [&_th]:py-3.5 [&_td]:py-3 [&_th]:px-4 [&_td]:px-3 [&_th]:h-14',\n};\n\nexport function DataTable<TData extends object, TValue = unknown>({\n\tsize,\n\tsurface = 'card',\n\theaderTransparent = false,\n\tcolumns,\n\tdata,\n\tcolumnGroups,\n\trowActions,\n\trowActionsMenuLabel,\n\trowActionsDisplayMode,\n\trowActionsBreakpoint,\n\tenableSorting = false,\n\tmanualSorting = false,\n\tenableColumnVisibility = false,\n\tenableRowSelection = false,\n\tenableMultiRowSelection = true,\n\tenableSubRowSelection = false,\n\tpagination,\n\tpageQueryKey,\n\tonPageChange,\n\tonSort,\n\tonRowClick,\n\tonRowSelectionChange,\n\tstickyHeader = false,\n\tstickyFirstColumn = false,\n\temptyStateMessage,\n\temptyStateAction,\n\tclassName = '',\n\trowClassName = '',\n\tcellClassName = '',\n\theaderClassName = '',\n\twrapperClassName = '',\n\tinnerClassName = 'overflow-x-auto',\n\ttableContainerClassName = '',\n\tgetRowId,\n\trowSelection: controlledRowSelection,\n\tinitialState,\n\tonColumnVisibilityChange,\n\tstrings: stringsOverride,\n\ttopbarContent,\n\tstorageKey,\n}: DataTableProps<TData, TValue>) {\n\tconst { defaultSize } = useTableConfig();\n\tconst resolvedSize: NonNullable<DataTableProps<TData, TValue>['size']> =\n\t\tsize ?? defaultSize ?? 'xs';\n\n\tconst strings = useMemo(\n\t\t() => mergeDataTableStrings(stringsOverride),\n\t\t[stringsOverride],\n\t);\n\n\tconst tableRowClasses = cn('bg-card', rowClassName)\n\tconst resolvedEmptyStateMessage = emptyStateMessage ?? strings.emptyState.message;\n\tconst resolvedRowActionsMenuLabel =\n\t\trowActionsMenuLabel ?? strings.actions.triggerLabel;\n\tconst resolvedPageQueryKey = pageQueryKey ?? 'page';\n\n\t\t// --- Detect and resolve tuple pattern for columns ---\n\t\tconst resolvedColumns = (() => {\n\t\t\t// Tuple pattern detected: [columns, deps]\n\t\t\tif (Array.isArray(columns) && columns.length === 2 && Array.isArray(columns[1])) {\n\t\t\t\treturn columns[0] as ColumnDef<TData, TValue>[];\n\t\t\t}\n\n\t\t\t// Regular pattern: just columns array\n\t\t\treturn columns as ColumnDef<TData, TValue>[];\n\t\t})();\n\n\t// --- Format storage key internally ---\n\tconst formattedStorageKey = useMemo(() => {\n\t\treturn storageKey ? `dt.${storageKey}.columns` : null;\n\t}, [storageKey]);\n\n\t// --- Dense mode storage key ---\n\tconst denseStorageKey = useMemo(() => {\n\t\treturn storageKey ? `dt.${storageKey}.dense` : null;\n\t}, [storageKey]);\n\n\t// --- Load initial column visibility from localStorage if persistence enabled ---\n\tconst initialColumnVisibility = useMemo<VisibilityState>(() => {\n\t\t// If persistence is disabled or we're in SSR, use initialState or empty object\n\t\tif (!formattedStorageKey || typeof window === 'undefined') {\n\t\t\treturn initialState?.columnVisibility || {};\n\t\t}\n\n\t\ttry {\n\t\t\tconst stored = window.localStorage.getItem(formattedStorageKey);\n\t\t\tconst parsed = stored ? (JSON.parse(stored) as VisibilityState) : {};\n\t\t\t// Merge with initialState if provided\n\t\t\treturn { ...parsed, ...(initialState?.columnVisibility || {}) };\n\t\t} catch {\n\t\t\t// If parsing fails, fall back to initialState\n\t\t\treturn initialState?.columnVisibility || {};\n\t\t}\n\t}, [formattedStorageKey, initialState?.columnVisibility]);\n\n\t// --- Load initial dense mode from localStorage ---\n\tconst initialDense = useMemo(() => {\n\t\tif (!denseStorageKey || typeof window === 'undefined') return false;\n\t\ttry {\n\t\t\treturn window.localStorage.getItem(denseStorageKey) === '1';\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, [denseStorageKey]);\n\n\t// --- State for sorting, visibility, and dense mode ---\n\tconst [sorting, setSorting] = useState<SortingState>(initialState?.sorting || []);\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>(\n\t\tinitialColumnVisibility,\n\t);\n\tconst [internalRowSelection, setInternalRowSelection] = useState<RowSelectionState>(\n\t\tinitialState?.rowSelection || {},\n\t);\n\tconst [dense, setDense] = useState(initialDense);\n\tconst rowSelection = controlledRowSelection ?? internalRowSelection;\n\n\t// --- Refs ---\n\tconst tableAreaRef = useRef<HTMLDivElement>(null);\n\n\t// --- Callbacks ---\n\tconst handleSortingChangeCallback = useCallback(\n\t\t(updater: Updater<SortingState>) => {\n\t\t\thandleSortingChange(updater, setSorting, onSort);\n\t\t},\n\t\t[onSort],\n\t);\n\n\tconst handleVisibilityChangeCallback = useCallback(\n\t\t(updater: Updater<VisibilityState>) => {\n\t\t\thandleColumnVisibilityChange(\n\t\t\t\tupdater,\n\t\t\t\tsetColumnVisibility,\n\t\t\t\t(newState) => {\n\t\t\t\t\t// Persist to localStorage if enabled\n\t\t\t\t\tif (formattedStorageKey && typeof window !== 'undefined') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\t\t\tformattedStorageKey,\n\t\t\t\t\t\t\t\tJSON.stringify(newState),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Silent fail - quota exceeded or other localStorage errors\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Call user-provided handler\n\t\t\t\t\tif (onColumnVisibilityChange) {\n\t\t\t\t\t\tonColumnVisibilityChange(newState);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t[formattedStorageKey, onColumnVisibilityChange],\n\t);\n\n\tconst handleRowSelectionChangeCallback = useCallback(\n\t\t(updater: Updater<RowSelectionState>) => {\n\t\t\tconst nextRowSelection =\n\t\t\t\ttypeof updater === 'function' ? updater(rowSelection) : updater;\n\n\t\t\tif (controlledRowSelection === undefined) {\n\t\t\t\tsetInternalRowSelection(nextRowSelection);\n\t\t\t}\n\n\t\t\tonRowSelectionChange?.(nextRowSelection);\n\t\t},\n\t\t[controlledRowSelection, onRowSelectionChange, rowSelection],\n\t);\n\n\tconst handleDenseChange = useCallback(\n\t\t(value: boolean) => {\n\t\t\tsetDense(value);\n\t\t\tif (denseStorageKey && typeof window !== 'undefined') {\n\t\t\t\ttry {\n\t\t\t\t\twindow.localStorage.setItem(denseStorageKey, value ? '1' : '0');\n\t\t\t\t} catch {\n\t\t\t\t\t// Silent fail\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[denseStorageKey],\n\t);\n\n\tconst columnsWithActions = useMemo<ColumnDef<TData, TValue>[]>(() => {\n\t\tconst baseColumns = enableRowSelection\n\t\t\t? addSelectionColumn<TData, TValue>(resolvedColumns, strings)\n\t\t\t: resolvedColumns;\n\n\t\t// if no actions, leave cols untouched\n\t\tif (!rowActions) {\n\t\t\treturn baseColumns;\n\t\t}\n\n\t\t// otherwise append a fixed Actions column:\n\t\tconst actionCol: ColumnDef<TData, TValue> = {\n\t\t\tid: 'actions',\n\t\t\theader: strings.actions.triggerLabel,\n\t\t\t// NOTE: just hand `rowActions` array, not a call\n\t\t\tcell: ({ row }: { row: { original: TData } }) => (\n\t\t\t\t<DataTableActions\n\t\t\t\t\trow={row.original}\n\t\t\t\t\tactions={rowActions}\n\t\t\t\t\tmenuLabel={resolvedRowActionsMenuLabel}\n\t\t\t\t\tdisplayMode={rowActionsDisplayMode}\n\t\t\t\t\tresponsiveBreakpoint={rowActionsBreakpoint}\n\t\t\t\t\tstrings={strings}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tenableSorting: false,\n\t\t\tenableHiding: false,\n\t\t\tsize: 40,\n\t\t};\n\n\t\treturn [...baseColumns, actionCol];\n\t}, [\n\t\tresolvedColumns,\n\t\tenableRowSelection,\n\t\trowActions,\n\t\tresolvedRowActionsMenuLabel,\n\t\trowActionsBreakpoint,\n\t\trowActionsDisplayMode,\n\t\tstrings,\n\t]);\n\n\t// --- Configure table ---\n\tconst table = useReactTable({\n\t\tdata,\n\t\tcolumns: columnsWithActions,\n\t\tstate: { sorting, columnVisibility, rowSelection },\n\t\tenableSorting,\n\t\tmanualSorting,\n\t\tenableRowSelection,\n\t\tenableMultiRowSelection,\n\t\tenableSubRowSelection,\n\t\tonSortingChange:\n\t\t\tenableSorting && manualSorting ? handleSortingChangeCallback : undefined,\n\t\tonRowSelectionChange:\n\t\t\tenableRowSelection ? handleRowSelectionChangeCallback : undefined,\n\t\tonColumnVisibilityChange: handleVisibilityChangeCallback,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetRowId,\n\t});\n\n\t// --- Determine server pagination ---\n\tconst shouldShow = pagination && pagination.last_page > 1;\n\n\tconst Provider = DataTableSizeContext.Provider;\n\n\treturn (\n\t\t<Provider value={resolvedSize}>\n\t\t<div className={cn(\n\t\t\tdense\n\t\t\t\t? 'fixed inset-0 z-50 bg-background flex flex-col overflow-hidden p-6'\n\t\t\t\t: cn(\n\t\t\t\t\t'w-full min-w-0 max-w-full',\n\t\t\t\t\tsurface === 'card' &&\n\t\t\t\t\t\t'overflow-hidden rounded-lg border border-border bg-card shadow-[0_1px_3px_0_rgb(0_0_0/0.04)]',\n\t\t\t\t\tsurface === 'glass' &&\n\t\t\t\t\t\t'rounded-md overflow-hidden border border-border/60',\n\t\t\t\t\t// `flat` renders no chrome — consumer wraps.\n\t\t\t\t\twrapperClassName,\n\t\t\t\t),\n\t\t)}>\n\t\t\t{!!(topbarContent || enableColumnVisibility) && (\n\t\t\t\t<div className=\"relative\">\n\n <div className={cn(\n 'data-table-topbar flex items-end justify-between gap-4 px-5 py-3.5',\n dense ? 'mb-3 shrink-0' : 'mb-0',\n )}>\n <div className=\"data-table-topbar-left flex-1\">{topbarContent}</div>\n <div className=\"data-table-topbar-right flex items-center justify-end\">\n <DataTableToolbar\n table={table}\n tableAreaRef={tableAreaRef}\n dense={dense}\n onDenseChange={handleDenseChange}\n enableColumnVisibility={enableColumnVisibility}\n strings={strings}\n />\n </div>\n\n </div>\n <Separator />\n </div>\n\t\t\t)}\n\n\n\t\t\t<div\n\t\t\t\tref={tableAreaRef}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'',\n\t\t\t\t\tdense ? 'flex-1 overflow-auto min-h-0' : innerClassName,\n\t\t\t\t)}\n\t\t\t>\n\n\t\t\t\t<Table className={cn(\n\t\t\t\t\t'relative',\n\t\t\t\t\tsizeClassByDataTableSize[resolvedSize],\n\t\t\t\t\tclassName,\n\t\t\t\t)} containerClassName={tableContainerClassName}>\n\t\t\t\t\t<DataTableHeader\n\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\tstickyHeader={stickyHeader}\n\t\t\t\t\t\theaderClassName={headerClassName}\n\t\t\t\t\t\tcellClassName={cellClassName}\n\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\tcolumnGroups={columnGroups}\n\t\t\t\t\t\tdense={dense}\n\t\t\t\t\t\theaderTransparent={headerTransparent}\n\t\t\t\t\t/>\n\t\t\t\t\t<DataTableBody\n\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\temptyStateMessage={resolvedEmptyStateMessage}\n\t\t\t\t\t\temptyStateAction={emptyStateAction}\n\t\t\t\t\t\tcellClassName={cellClassName}\n\t\t\t\t\t\trowClassName={tableRowClasses}\n\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\tdense={dense}\n\t\t\t\t\t/>\n\t\t\t\t</Table>\n\t\t\t</div>\n\t\t\t{!!shouldShow && (\n\t\t\t\t<>\n <Separator />\n <Pagination\n pagination={pagination}\n onPageChange={onPageChange}\n pageQueryKey={resolvedPageQueryKey}\n labels={strings.pagination}\n />\n </>\n\t\t\t)}\n\t\t</div>\n\t\t</Provider>\n\t);\n}\n\nDataTable.displayName = 'DataTable';\n","import { Button } from '@/components/base/buttons';\nimport { Input } from '@/components/base/forms/fields';\nimport {\n\tDropdownMenu,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuContent,\n\tDropdownMenuLabel,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableFilterBarProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\nexport function DataTableFilterBar<TData>({\n\t\t\t\t\t\t\t\t\t\t\t table,\n\t\t\t\t\t\t\t\t\t\t\t filterColumn,\n\t\t\t\t\t\t\t\t\t\t\t filterPlaceholder,\n\t\t\t\t\t\t\t\t\t\t\t enableColumnVisibility = false,\n\t\t\t\t\t\t\t\t\t\t\t customContent,\n\t\t\t\t\t\t\t\t\t\t strings = defaultDataTableStrings,\n\t\t\t\t\t\t\t\t\t }: DataTableFilterBarProps<TData>) {\n\tif (!filterColumn && !enableColumnVisibility && !customContent) {\n\t\treturn null;\n\t}\n\n\tconst searchPlaceholder = filterPlaceholder ?? strings.filter.searchPlaceholder;\n\n\treturn (\n\t\t<div className={cn('filter-bar--component', 'flex items-center justify-between p-4')}>\n\t\t\t<div className=\"flex flex-1 items-center space-x-2\">\n\t\t\t\t{/* Filter input */}\n\t\t\t\t{!!filterColumn && (\n\t <Input\n\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t\tvalue={(table.getColumn(filterColumn)?.getFilterValue() as string) ?? ''}\n\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\tconst value = event.target.value;\n\t\t\t\t\t\t\ttable.getColumn(filterColumn)?.setFilterValue(value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName=\"max-w-sm\"\n\t\t\t\t\t/>\n\t )}\n\n\t\t\t\t{/* Custom content */}\n\t\t\t\t{customContent}\n\t\t\t</div>\n\n\t\t\t{/* Column visibility toggle */}\n\t\t\t\t{!!enableColumnVisibility && (\n\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\t\t\tclassName=\"ml-auto\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{strings.columnVisibility.triggerLabel}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<DropdownMenuContent align=\"end\">\n\t\t\t\t\t\t\t<DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n\t\t\t\t\t\t\t{table\n\t\t\t\t\t\t\t\t.getAllColumns()\n\t\t\t\t\t\t\t\t.filter((column) => column.getCanHide())\n\t\t\t\t\t\t\t\t.map((column) => {\n\t\t\t\t\t\t\t\t\tconst header = column.columnDef.header;\n\t\t\t\t\t\t\t\t\tconst columnName = strings.columnVisibility.formatLabel(\n\t\t\t\t\t\t\t\t\t\tcolumn.id,\n\t\t\t\t\t\t\t\t\t\ttypeof header === 'string' ? header : undefined,\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\t\t\t\t\t\tkey={column.id}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"capitalize\"\n\t\t\t\t\t\t\t\t\t\t\tchecked={column.getIsVisible()}\n\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\t\t\t\t\t\t\t\t\t\t\tcolumn.toggleVisibility(!!checked)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{columnName}\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t)}\n\t\t</div>\n\t);\n}\n\nDataTableFilterBar.displayName = 'DataTableFilterBar';\n","import { Button } from '@/components/base/buttons';\nimport Text from '@/components/typography/text';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTablePaginationProps } from './table.types';\n\nimport { cn } from '@/lib/utils';\nexport function DataTablePagination({ table, selectedRowCount, totalRowCount, strings = defaultDataTableStrings }: DataTablePaginationProps) {\n // Use provided counts or get from table\n const selected = selectedRowCount ?? table.getFilteredSelectedRowModel().rows.length;\n const total = totalRowCount ?? table.getFilteredRowModel().rows.length;\n const summary = strings.selection.summary(selected, total);\n\n return (\n <div className={cn('table-pagination--component', 'flex items-center justify-end space-x-2 px-4 py-4')}>\n <div className=\"flex-1\">\n <Text type=\"secondary\">\n {summary}\n </Text>\n </div>\n <Button variant=\"secondary\" buttonStyle=\"outline\" onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()}>\n {strings.pagination.previous}\n </Button>\n <Button variant=\"secondary\" buttonStyle=\"outline\" onClick={() => table.nextPage()} disabled={!table.getCanNextPage()}>\n {strings.pagination.next}\n </Button>\n </div>\n );\n}\n\nDataTablePagination.displayName = 'DataTablePagination';\n","import { Settings2 } from 'lucide-react';\nimport { Button } from '@/components/base/buttons';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport { defaultDataTableStrings } from './table.strings';\nimport { type ColumnVisibilityToggleProps } from './table.types';\n\nexport function ColumnVisibilityToggle<TData>({\n table,\n className,\n align = 'end',\n strings = defaultDataTableStrings,\n}: ColumnVisibilityToggleProps<TData>) {\n const columns = table.getAllColumns()\n .filter((column) => column.getCanHide());\n\n if (columns.length === 0) return null;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <Button\n {...triggerProps}\n variant=\"secondary\"\n buttonStyle=\"outline\"\n className={cn(\n 'column-visibility-toggle--component',\n 'h-8 flex items-center gap-2',\n \n (triggerProps as { className?: string }).className,\n className,\n )}\n >\n { }\n {(triggerProps as { children?: React.ReactNode }).children}\n </Button>\n )}\n >\n <Settings2 className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">{strings.columnVisibility.triggerLabel}</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} className=\"w-[200px]\">\n <DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => {\n const header = column.columnDef.header;\n const columnName = strings.columnVisibility.formatLabel(\n column.id,\n typeof header === 'string' ? header : undefined,\n );\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(checked) => column.toggleVisibility(!!checked)}\n >\n {columnName}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nColumnVisibilityToggle.displayName = 'ColumnVisibilityToggle';\n","import type { ReactNode } from 'react';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\ninterface CellValueProps {\n /** The value to display. When falsy, renders fallback with muted styling. */\n value?: string | number | null | undefined;\n /** Text shown when value is missing. Defaults to '--'. */\n fallback?: string;\n /** Force missing state regardless of value truthiness. */\n missing?: boolean;\n /** Additional class names (e.g. 'tabular-nums', 'font-mono'). */\n className?: string;\n /** Children override — when provided, renders children directly with missing styling applied. */\n children?: ReactNode;\n}\n\n/**\n * Table cell value with automatic missing-value treatment.\n *\n * When the value is falsy (or `missing` is explicitly true), renders\n * the fallback text at reduced opacity. Otherwise renders the value\n * with inherited table cell styling.\n *\n * @example\n * // Auto-detect missing\n * <CellValue value={phone} fallback={t('shared.tables.ui.empty')} />\n *\n * // Explicit missing flag\n * <CellValue missing={!defaultBusiness} fallback={t('vendors.tables.ui.no_default_business')} />\n *\n * // With formatting class\n * <CellValue value={date} className=\"tabular-nums\" />\n *\n * // Custom children with missing styling\n * <CellValue missing={!phone}>\n * {phone || 'No items to display'}\n * </CellValue>\n */\nexport function CellValue({ value, fallback = '--', missing, className, children }: CellValueProps) {\n const isMissing = missing ?? (value === null || value === undefined || value === '');\n\n if (children !== undefined) {\n return (\n <Text\n tag=\"span\"\n size=\"inherit\"\n type={isMissing ? 'secondary' : 'main'}\n className={cn(isMissing && 'opacity-60', className)}\n >\n {children}\n </Text>\n );\n }\n\n if (isMissing) {\n return (\n <Text tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n {fallback}\n </Text>\n );\n }\n\n return (\n <Text tag=\"span\" size=\"inherit\" className={className}>\n {String(value)}\n </Text>\n );\n}\n\nCellValue.displayName = 'CellValue';\n","import type { AnchorHTMLAttributes } from 'react';\n\ntype TableLinkProps = AnchorHTMLAttributes<HTMLAnchorElement>;\n\nexport const TableLink = (props: TableLinkProps) => {\n\treturn (\n\t\t<a\n\t\t\tclassName=\"text-foreground underline decoration-border decoration-dotted underline-offset-2 transition-colors duration-150 hover:text-foreground hover:decoration-muted-foreground\"\n\t\t\t{...props}\n\t\t>\n\t\t\t{props.children}\n\t\t</a>\n\t);\n};\n","/**\n * Reusable cell renderers for DataTable columns.\n *\n * Use these from `column.cell` definitions to keep table preview pages and\n * production code consistent. Every renderer is presentational (no data\n * fetching) and accepts the value plus optional formatting hints.\n *\n * { accessorKey: 'status', cell: ({ getValue }) => <StatusCell value={getValue()} map={STATUS_MAP} /> }\n * { accessorKey: 'createdAt', cell: ({ getValue }) => <DateCell value={getValue()} /> }\n * { accessorKey: 'amount', cell: ({ getValue }) => <CurrencyCell value={getValue()} currency=\"USD\" /> }\n * { accessorKey: 'owner', cell: ({ getValue }) => <AvatarCell name={getValue()} /> }\n */\nimport type { ComponentType, ReactNode } from 'react';\nimport { Calendar, Mail, type LucideIcon } from 'lucide-react';\n\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\n\n// ──────────────────────────────────────────────────────────────\n// StatusCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface StatusCellEntry {\n\tlabel: ReactNode;\n\tvariant?: ComposedBadgeVariant;\n\ticon?: LucideIcon;\n\tdot?: boolean;\n}\n\nexport interface StatusCellProps<TStatus extends string> {\n\tvalue?: TStatus | null;\n\tmap: Record<TStatus, StatusCellEntry>;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nexport function StatusCell<TStatus extends string>({\n\tvalue,\n\tmap,\n\temptyLabel = EMPTY,\n\tclassName,\n}: StatusCellProps<TStatus>) {\n\tif (!value || !(value in map)) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst entry = map[value];\n\tconst Icon = entry.icon;\n\treturn (\n\t\t<Badge\n\t\t\tvariant={entry.variant ?? 'secondary'}\n\t\t\tclassName={cn('gap-1.5', className)}\n\t\t>\n\t\t\t{!!Icon && <Icon className=\"size-3\" />}\n\t\t\t{entry.label}\n\t\t</Badge>\n\t);\n}\n\nStatusCell.displayName = 'StatusCell';\n\n// ──────────────────────────────────────────────────────────────\n// DateCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface DateCellProps {\n\tvalue?: string | number | Date | null;\n\t/** A Intl.DateTimeFormatOptions preset. Default: short month + day + year. */\n\toptions?: Intl.DateTimeFormatOptions;\n\tlocale?: string;\n\tshowIcon?: boolean;\n\ticon?: ComponentType<{ className?: string }>;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nconst DEFAULT_DATE_OPTIONS: Intl.DateTimeFormatOptions = {\n\tmonth: 'short',\n\tday: 'numeric',\n\tyear: 'numeric',\n};\n\nexport function DateCell({\n\tvalue,\n\toptions = DEFAULT_DATE_OPTIONS,\n\tlocale,\n\tshowIcon = true,\n\ticon: IconComponent = Calendar,\n\temptyLabel = EMPTY,\n\tclassName,\n}: DateCellProps) {\n\tif (value === null || value === undefined || value === '') {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst date = value instanceof Date ? value : new Date(value);\n\tif (Number.isNaN(date.getTime())) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst formatter = new Intl.DateTimeFormat(locale, options);\n\treturn (\n\t\t<span className={cn('inline-flex items-center gap-1.5 tabular-nums', className)}>\n\t\t\t{!!showIcon && <IconComponent className=\"size-3.5 text-muted-foreground\" />}\n\t\t\t<Text size=\"inherit\" type=\"secondary\">\n\t\t\t\t{formatter.format(date)}\n\t\t\t</Text>\n\t\t</span>\n\t);\n}\n\nDateCell.displayName = 'DateCell';\n\n// ──────────────────────────────────────────────────────────────\n// CurrencyCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface CurrencyCellProps {\n\tvalue?: number | string | null;\n\tcurrency?: string;\n\tlocale?: string;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n\tweight?: 'regular' | 'medium' | 'semibold' | 'bold';\n}\n\nexport function CurrencyCell({\n\tvalue,\n\tcurrency,\n\tlocale,\n\temptyLabel = EMPTY,\n\tclassName,\n\tweight = 'semibold',\n}: CurrencyCellProps) {\n\tconst numeric = typeof value === 'number' ? value : Number.parseFloat(String(value ?? ''));\n\tif (!Number.isFinite(numeric)) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst formatted = currency\n\t\t? new Intl.NumberFormat(locale, {\n\t\t\t\tstyle: 'currency',\n\t\t\t\tcurrency,\n\t\t\t\tmaximumFractionDigits: 2,\n\t\t\t}).format(numeric)\n\t\t: numeric.toFixed(2);\n\treturn (\n\t\t<Text\n\t\t\ttag=\"span\"\n\t\t\tsize=\"inherit\"\n\t\t\tweight={weight}\n\t\t\tclassName={cn('tabular-nums', className)}\n\t\t>\n\t\t\t{formatted}\n\t\t</Text>\n\t);\n}\n\nCurrencyCell.displayName = 'CurrencyCell';\n\n// ──────────────────────────────────────────────────────────────\n// AvatarCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface AvatarCellProps {\n\tname?: string | null;\n\timageUrl?: string;\n\ticon?: ComponentType<{ className?: string }>;\n\tsubtitle?: ReactNode;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n}\n\nfunction getInitials(name: string): string {\n\treturn name\n\t\t.split(/\\s+/)\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.map((p) => p[0]!.toUpperCase())\n\t\t.join('');\n}\n\nexport function AvatarCell({\n\tname,\n\timageUrl,\n\ticon: IconComponent = Mail,\n\tsubtitle,\n\temptyLabel = EMPTY,\n\tclassName,\n}: AvatarCellProps) {\n\tif (!name || name.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('opacity-60', className)}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn (\n\t\t<span className={cn('inline-flex items-center gap-2', className)}>\n\t\t\t<span className=\"relative inline-flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground\">\n\t\t\t\t{imageUrl ? (\n\t\t\t\t\t<img src={imageUrl} alt={name} className=\"absolute inset-0 size-full object-cover\" />\n\t\t\t\t) : name.length > 0 ? (\n\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"leading-none\">\n\t\t\t\t\t\t{getInitials(name)}\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<IconComponent className=\"size-3.5\" />\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t<span className=\"min-w-0 inline-flex flex-col\">\n\t\t\t\t<Text size=\"inherit\" weight=\"medium\" className=\"truncate\">\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n}\n\nAvatarCell.displayName = 'AvatarCell';\n","/**\n * Reusable hooks for DataTable consumers building custom toolbars or chrome.\n *\n * The default `DataTableToolbar` already wires these internally; expose them\n * for consumers that need horizontal-scroll arrows / dense toggle in a\n * custom layout (e.g. inside a hero banner above the table).\n */\nimport { useCallback, useEffect, useRef, useState, type RefObject } from 'react';\n\nconst SCROLL_AMOUNT_DEFAULT = 300;\n\n/**\n * Locate the actual horizontally-scrollable element inside a `tableArea`\n * wrapper. The shadcn-style Table primitive renders a\n * `<div data-slot=\"table-container\" class=\"overflow-x-auto\">` we target.\n */\nexport function getDataTableScrollContainer(\n\ttableArea: HTMLDivElement | null,\n): HTMLDivElement | null {\n\tif (!tableArea) return null;\n\treturn tableArea.querySelector<HTMLDivElement>('[data-slot=\"table-container\"]');\n}\n\nexport interface UseDataTableScrollStateReturn {\n\tcanScrollLeft: boolean;\n\tcanScrollRight: boolean;\n\tscrollBy: (delta: number) => void;\n\tscrollLeft: () => void;\n\tscrollRight: () => void;\n}\n\n/**\n * Track horizontal-overflow state for a DataTable wrapper. Returns booleans\n * for whether each scroll direction is available, plus helpers to nudge the\n * scroll container by a fixed amount.\n *\n * Pass the same `RefObject<HTMLDivElement>` you pass to `<DataTable>` as\n * `tableAreaRef`.\n */\nexport function useDataTableScrollState(\n\ttableAreaRef: RefObject<HTMLDivElement | null>,\n\toptions: { stepPx?: number; deps?: ReadonlyArray<unknown> } = {},\n): UseDataTableScrollStateReturn {\n\tconst { stepPx = SCROLL_AMOUNT_DEFAULT, deps = [] } = options;\n\tconst [canScrollLeft, setCanScrollLeft] = useState(false);\n\tconst [canScrollRight, setCanScrollRight] = useState(false);\n\tconst rafRef = useRef(0);\n\n\tconst measure = useCallback(() => {\n\t\tconst el = getDataTableScrollContainer(tableAreaRef.current);\n\t\tif (!el) {\n\t\t\tsetCanScrollLeft(false);\n\t\t\tsetCanScrollRight(false);\n\t\t\treturn;\n\t\t}\n\t\tconst { scrollLeft, scrollWidth, clientWidth } = el;\n\t\tsetCanScrollLeft(scrollLeft > 1);\n\t\tsetCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n\t}, [tableAreaRef]);\n\n\tuseEffect(() => {\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tconst el = getDataTableScrollContainer(tableAreaRef.current);\n\t\t\tif (!el) return;\n\n\t\t\tmeasure();\n\n\t\t\tconst handleScroll = () => {\n\t\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\t\trafRef.current = requestAnimationFrame(measure);\n\t\t\t};\n\n\t\t\tel.addEventListener('scroll', handleScroll, { passive: true });\n\t\t\tconst ro = new ResizeObserver(measure);\n\t\t\tro.observe(el);\n\t\t\tif (el.firstElementChild) ro.observe(el.firstElementChild);\n\n\t\t\treturn () => {\n\t\t\t\tel.removeEventListener('scroll', handleScroll);\n\t\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\t\tro.disconnect();\n\t\t\t};\n\t\t}, 0);\n\n\t\treturn () => window.clearTimeout(timerId);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [tableAreaRef, measure, ...deps]);\n\n\tconst scrollBy = useCallback(\n\t\t(delta: number) => {\n\t\t\tgetDataTableScrollContainer(tableAreaRef.current)?.scrollBy({\n\t\t\t\tleft: delta,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t},\n\t\t[tableAreaRef],\n\t);\n\n\tconst scrollLeft = useCallback(() => scrollBy(-stepPx), [scrollBy, stepPx]);\n\tconst scrollRight = useCallback(() => scrollBy(stepPx), [scrollBy, stepPx]);\n\n\treturn { canScrollLeft, canScrollRight, scrollBy, scrollLeft, scrollRight };\n}\n\n/**\n * localStorage-backed boolean state for the dense / comfortable toggle.\n * `null` storageKey disables persistence (the value is purely in-memory).\n */\nexport function usePersistentDensity(\n\tstorageKey: string | null,\n\tdefaultDense = false,\n): [boolean, (next: boolean) => void] {\n\tconst initial = (() => {\n\t\tif (!storageKey || typeof window === 'undefined') return defaultDense;\n\t\ttry {\n\t\t\tconst raw = window.localStorage.getItem(storageKey);\n\t\t\tif (raw === '1') return true;\n\t\t\tif (raw === '0') return false;\n\t\t\treturn defaultDense;\n\t\t} catch {\n\t\t\treturn defaultDense;\n\t\t}\n\t})();\n\n\tconst [dense, setDenseState] = useState(initial);\n\n\tconst setDense = useCallback(\n\t\t(next: boolean) => {\n\t\t\tsetDenseState(next);\n\t\t\tif (storageKey && typeof window !== 'undefined') {\n\t\t\t\ttry {\n\t\t\t\t\twindow.localStorage.setItem(storageKey, next ? '1' : '0');\n\t\t\t\t} catch {\n\t\t\t\t\t/* ignore quota / disabled-storage errors */\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[storageKey],\n\t);\n\n\treturn [dense, setDense];\n}\n","/**\n * DensityToggle — small icon button that flips between \"dense\" and\n * \"comfortable\" table modes. Stateless: render-time `dense` boolean +\n * `onChange` callback. Pair with `usePersistentDensity` from `../hooks`\n * when you want to persist the choice to localStorage.\n *\n * Used internally by `DataTableToolbar`; exposed for consumers building\n * custom toolbars.\n */\nimport { Maximize2, Minimize2 } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nconst buttonClass =\n\t'inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground/70 transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-30';\n\nexport interface DensityToggleProps {\n\tdense: boolean;\n\tonChange: (next: boolean) => void;\n\tdenseLabel?: string;\n\tcomfortableLabel?: string;\n\tclassName?: string;\n}\n\nexport function DensityToggle({\n\tdense,\n\tonChange,\n\tdenseLabel = 'Dense',\n\tcomfortableLabel = 'Comfortable',\n\tclassName,\n}: DensityToggleProps) {\n\tconst label = dense ? comfortableLabel : denseLabel;\n\tconst Icon = dense ? Maximize2 : Minimize2;\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-label={label}\n\t\t\taria-pressed={dense}\n\t\t\tonClick={() => onChange(!dense)}\n\t\t\tclassName={cn(buttonClass, className)}\n\t\t>\n\t\t\t<Icon className=\"size-3.5\" />\n\t\t</button>\n\t);\n}\n\nDensityToggle.displayName = 'DensityToggle';\n"],"mappings":"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"}