admin-ui-starter-kit 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1745) hide show
  1. package/.agents/skills/admin-ui-components/SKILL.md +71 -0
  2. package/.agents/skills/admin-ui-components/agents/openai.yaml +4 -0
  3. package/.agents/skills/admin-ui-components/references/selection-checklist.md +23 -0
  4. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +50 -12
  5. package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +20 -1
  6. package/.agents/skills/component-library-rules/SKILL.md +39 -24
  7. package/.agents/skills/component-library-rules/references/audit-followups.md +6 -5
  8. package/.agents/skills/component-library-rules/references/base-wrapper.md +1 -1
  9. package/.agents/skills/component-library-rules/references/components/INDEX.json +25 -14
  10. package/.agents/skills/component-library-rules/references/components/INDEX.md +29 -12
  11. package/.agents/skills/component-library-rules/references/components/base__accordion.md +1 -1
  12. package/.agents/skills/component-library-rules/references/components/base__alert.md +3 -3
  13. package/.agents/skills/component-library-rules/references/components/base__avatar.md +118 -0
  14. package/.agents/skills/component-library-rules/references/components/base__buttons.md +21 -17
  15. package/.agents/skills/component-library-rules/references/components/base__cards.md +50 -14
  16. package/.agents/skills/component-library-rules/references/components/base__carousel.md +5 -5
  17. package/.agents/skills/component-library-rules/references/components/base__combobox.md +25 -78
  18. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +810 -0
  19. package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +427 -0
  20. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  21. package/.agents/skills/component-library-rules/references/components/base__forms.md +8 -2
  22. package/.agents/skills/component-library-rules/references/components/base__icon-badge.md +84 -0
  23. package/.agents/skills/component-library-rules/references/components/base__item.md +10 -1
  24. package/.agents/skills/component-library-rules/references/components/base__navigation.md +7 -6
  25. package/.agents/skills/component-library-rules/references/components/base__spinner.md +2 -0
  26. package/.agents/skills/component-library-rules/references/components/base__table.md +270 -112
  27. package/.agents/skills/component-library-rules/references/components/base__tooltip.md +76 -0
  28. package/.agents/skills/component-library-rules/references/components/composed__ai.md +34 -2
  29. package/.agents/skills/component-library-rules/references/components/composed__commerce.md +44 -2
  30. package/.agents/skills/component-library-rules/references/components/composed__empty-state.md +313 -0
  31. package/.agents/skills/component-library-rules/references/components/composed__inline-stat.md +63 -0
  32. package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +433 -0
  33. package/.agents/skills/component-library-rules/references/components/composed__onboarding-checklist.md +1 -1
  34. package/.agents/skills/component-library-rules/references/components/composed__resource-selector-card.md +23 -19
  35. package/.agents/skills/component-library-rules/references/components/docs__design-system-consistency.md +413 -0
  36. package/.agents/skills/component-library-rules/references/components/docs__installation.md +221 -0
  37. package/.agents/skills/component-library-rules/references/components/docs__overview.md +266 -0
  38. package/.agents/skills/component-library-rules/references/components/docs__refinement-guide.md +280 -0
  39. package/.agents/skills/component-library-rules/references/components/docs__showcase.md +197 -0
  40. package/.agents/skills/component-library-rules/references/components/features__activities.md +87 -88
  41. package/.agents/skills/component-library-rules/references/components/features__ai-chat.md +7 -7
  42. package/.agents/skills/component-library-rules/references/components/features__data-view.md +175 -0
  43. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +51 -55
  44. package/.agents/skills/component-library-rules/references/components/features__kanban.md +37 -35
  45. package/.agents/skills/component-library-rules/references/components/features__media-library.md +9 -3
  46. package/.agents/skills/component-library-rules/references/components/features__overlays.md +1 -1
  47. package/.agents/skills/component-library-rules/references/components/features__products.md +91 -75
  48. package/.agents/skills/component-library-rules/references/components/features__resource.md +194 -0
  49. package/.agents/skills/component-library-rules/references/components/features__schema-form.md +12 -10
  50. package/.agents/skills/component-library-rules/references/components/features__suggestions.md +6 -6
  51. package/.agents/skills/component-library-rules/references/components/features__sync.md +30 -12
  52. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +14 -14
  53. package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +224 -188
  54. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +2 -2
  55. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +8 -8
  56. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +136 -95
  57. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +4 -4
  58. package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +4 -4
  59. package/.agents/skills/component-library-rules/references/components/layout__layout-workspace.md +19 -11
  60. package/.agents/skills/component-library-rules/references/components/services__actions.md +443 -0
  61. package/.agents/skills/component-library-rules/references/components/services__hooks.md +326 -0
  62. package/.agents/skills/component-library-rules/references/components/ui__button.md +1 -1
  63. package/.agents/skills/component-library-rules/references/components/ui__empty-item.md +1 -1
  64. package/.agents/skills/component-library-rules/references/components/ui__inputs.md +1 -1
  65. package/.agents/skills/component-library-rules/references/components/ui__menus.md +15 -9
  66. package/.agents/skills/component-library-rules/references/components/ui__skeleton.md +3 -3
  67. package/.agents/skills/component-library-rules/references/consumer-wiring.md +2 -2
  68. package/.agents/skills/component-library-rules/references/history.md +10 -10
  69. package/.agents/skills/component-library-rules/references/import-paths.md +3 -3
  70. package/.agents/skills/component-library-rules/references/item-pattern.md +3 -3
  71. package/.agents/skills/component-library-rules/references/layout.md +7 -5
  72. package/.agents/skills/component-library-rules/references/testing.md +5 -5
  73. package/.agents/skills/component-library-rules/references/ui-provider.md +11 -12
  74. package/.agents/skills/component-library-rules/references/visual-eval.md +1 -1
  75. package/.agents/skills/token-system/SKILL.md +81 -0
  76. package/.agents/skills/token-system/agents/openai.yaml +4 -0
  77. package/.agents/skills/token-system/references/consumer-overrides.md +68 -0
  78. package/AGENTS.md +42 -17
  79. package/COMPONENT_SELECTION.md +18 -8
  80. package/INTEGRATION.md +45 -4
  81. package/MIGRATION.md +32 -0
  82. package/README.md +54 -20
  83. package/dist/_shared/accordion-B9EjlZLY.js +135 -0
  84. package/dist/_shared/accordion-B9EjlZLY.js.map +1 -0
  85. package/dist/_shared/accordion-IFDIc0E7.cjs +2 -0
  86. package/dist/_shared/accordion-IFDIc0E7.cjs.map +1 -0
  87. package/dist/_shared/action-menu-B6yFRDz1.cjs +2 -0
  88. package/dist/_shared/action-menu-B6yFRDz1.cjs.map +1 -0
  89. package/dist/_shared/action-menu-CNS-fwQr.js +96 -0
  90. package/dist/_shared/action-menu-CNS-fwQr.js.map +1 -0
  91. package/dist/_shared/ai-artifact-B3qhuiKC.js +1099 -0
  92. package/dist/_shared/ai-artifact-B3qhuiKC.js.map +1 -0
  93. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +3 -0
  94. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +1 -0
  95. package/dist/_shared/alert-V0V36Sny.cjs +2 -0
  96. package/dist/_shared/alert-V0V36Sny.cjs.map +1 -0
  97. package/dist/_shared/alert-m-4s0Hqq.js +81 -0
  98. package/dist/_shared/alert-m-4s0Hqq.js.map +1 -0
  99. package/dist/_shared/app-shell-D3eGUtL-.js +69 -0
  100. package/dist/_shared/app-shell-D3eGUtL-.js.map +1 -0
  101. package/dist/_shared/app-shell-QJHARDMB.cjs +2 -0
  102. package/dist/_shared/app-shell-QJHARDMB.cjs.map +1 -0
  103. package/dist/_shared/auth-B_KVUjsB.cjs +2 -0
  104. package/dist/_shared/auth-B_KVUjsB.cjs.map +1 -0
  105. package/dist/_shared/auth-C_TgyzDl.js +643 -0
  106. package/dist/_shared/auth-C_TgyzDl.js.map +1 -0
  107. package/dist/_shared/avatar-BagPbPuD.js +105 -0
  108. package/dist/_shared/avatar-BagPbPuD.js.map +1 -0
  109. package/dist/_shared/avatar-BnKM_o2d.cjs +2 -0
  110. package/dist/_shared/avatar-BnKM_o2d.cjs.map +1 -0
  111. package/dist/_shared/badge-BeSKxX1u.cjs +2 -0
  112. package/dist/_shared/badge-BeSKxX1u.cjs.map +1 -0
  113. package/dist/_shared/badge-a2Z3K5aQ.js +110 -0
  114. package/dist/_shared/badge-a2Z3K5aQ.js.map +1 -0
  115. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +2 -0
  116. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +1 -0
  117. package/dist/_shared/breadcrumbs-B57Unsoe.js +105 -0
  118. package/dist/_shared/breadcrumbs-B57Unsoe.js.map +1 -0
  119. package/dist/_shared/button-Bd5bEIiB.cjs +2 -0
  120. package/dist/_shared/button-Bd5bEIiB.cjs.map +1 -0
  121. package/dist/_shared/button-DHksjMvc.js +189 -0
  122. package/dist/_shared/button-DHksjMvc.js.map +1 -0
  123. package/dist/_shared/buttons-C8jy-jMd.cjs +2 -0
  124. package/dist/_shared/buttons-C8jy-jMd.cjs.map +1 -0
  125. package/dist/_shared/buttons-MxvdokeK.js +137 -0
  126. package/dist/_shared/buttons-MxvdokeK.js.map +1 -0
  127. package/dist/_shared/card-radio-group-C2p_iBal.cjs +2 -0
  128. package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +1 -0
  129. package/dist/_shared/card-radio-group-Fdi1Cz1j.js +150 -0
  130. package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +1 -0
  131. package/dist/_shared/cards-BKFwMTjM.cjs +2 -0
  132. package/dist/_shared/cards-BKFwMTjM.cjs.map +1 -0
  133. package/dist/_shared/cards-CtBoSZG9.js +355 -0
  134. package/dist/_shared/cards-CtBoSZG9.js.map +1 -0
  135. package/dist/_shared/checkbox-Cbh5x6ad.js +31 -0
  136. package/dist/_shared/checkbox-Cbh5x6ad.js.map +1 -0
  137. package/dist/_shared/checkbox-ECGg8wjW.cjs +2 -0
  138. package/dist/_shared/checkbox-ECGg8wjW.cjs.map +1 -0
  139. package/dist/_shared/combobox-BIe72dV3.js +954 -0
  140. package/dist/_shared/combobox-BIe72dV3.js.map +1 -0
  141. package/dist/_shared/combobox-CJiFDoTi.cjs +2 -0
  142. package/dist/_shared/combobox-CJiFDoTi.cjs.map +1 -0
  143. package/dist/_shared/command-ByedBajF.js +39 -0
  144. package/dist/_shared/command-ByedBajF.js.map +1 -0
  145. package/dist/_shared/command-EGR0nhGc.cjs +2 -0
  146. package/dist/_shared/command-EGR0nhGc.cjs.map +1 -0
  147. package/dist/_shared/comments-C8iXy9XO.cjs +2 -0
  148. package/dist/_shared/comments-C8iXy9XO.cjs.map +1 -0
  149. package/dist/_shared/comments-DGBxF9fD.js +952 -0
  150. package/dist/_shared/comments-DGBxF9fD.js.map +1 -0
  151. package/dist/_shared/copyable-Dopk9pEJ.js +38 -0
  152. package/dist/_shared/copyable-Dopk9pEJ.js.map +1 -0
  153. package/dist/_shared/copyable-rQwxsTJ3.cjs +2 -0
  154. package/dist/_shared/copyable-rQwxsTJ3.cjs.map +1 -0
  155. package/dist/_shared/data-display-CRFaMkxT.js +1873 -0
  156. package/dist/_shared/data-display-CRFaMkxT.js.map +1 -0
  157. package/dist/_shared/data-display-C_44_V-W.cjs +2 -0
  158. package/dist/_shared/data-display-C_44_V-W.cjs.map +1 -0
  159. package/dist/_shared/date-picker-BiUgIkjP.cjs +2 -0
  160. package/dist/_shared/date-picker-BiUgIkjP.cjs.map +1 -0
  161. package/dist/_shared/date-picker-DFkLiveH.js +1361 -0
  162. package/dist/_shared/date-picker-DFkLiveH.js.map +1 -0
  163. package/dist/_shared/date-pickers-C86tVD8e.cjs +2 -0
  164. package/dist/_shared/date-pickers-C86tVD8e.cjs.map +1 -0
  165. package/dist/_shared/date-pickers-D4oxOOHE.js +329 -0
  166. package/dist/_shared/date-pickers-D4oxOOHE.js.map +1 -0
  167. package/dist/_shared/display-B0wLVN8t.js +986 -0
  168. package/dist/_shared/display-B0wLVN8t.js.map +1 -0
  169. package/dist/_shared/display-Bin2vVex.cjs +2 -0
  170. package/dist/_shared/display-Bin2vVex.cjs.map +1 -0
  171. package/dist/_shared/form-sizing-C51oI3Di.js +42 -0
  172. package/dist/_shared/form-sizing-C51oI3Di.js.map +1 -0
  173. package/dist/_shared/form-sizing-Co53Drri.cjs +2 -0
  174. package/dist/_shared/form-sizing-Co53Drri.cjs.map +1 -0
  175. package/dist/_shared/forms-qnwoUqxf.js +3533 -0
  176. package/dist/_shared/forms-qnwoUqxf.js.map +1 -0
  177. package/dist/_shared/forms-rmKcy5uO.cjs +2 -0
  178. package/dist/_shared/forms-rmKcy5uO.cjs.map +1 -0
  179. package/dist/_shared/header-CxhEtk9M.cjs +2 -0
  180. package/dist/_shared/header-CxhEtk9M.cjs.map +1 -0
  181. package/dist/_shared/header-h3f14vQx.js +447 -0
  182. package/dist/_shared/header-h3f14vQx.js.map +1 -0
  183. package/dist/_shared/hooks-CS55-w3h.js +95 -0
  184. package/dist/_shared/hooks-CS55-w3h.js.map +1 -0
  185. package/dist/_shared/hooks-sfHAyDgD.cjs +2 -0
  186. package/dist/_shared/hooks-sfHAyDgD.cjs.map +1 -0
  187. package/dist/_shared/icon-badge-CU6ZkcER.cjs +2 -0
  188. package/dist/_shared/icon-badge-CU6ZkcER.cjs.map +1 -0
  189. package/dist/_shared/icon-badge-dZQPvuas.js +48 -0
  190. package/dist/_shared/icon-badge-dZQPvuas.js.map +1 -0
  191. package/dist/_shared/input-CB6hxh-5.cjs +2 -0
  192. package/dist/_shared/input-CB6hxh-5.cjs.map +1 -0
  193. package/dist/_shared/input-CfnHBT--.js +182 -0
  194. package/dist/_shared/input-CfnHBT--.js.map +1 -0
  195. package/dist/_shared/item-Xs-fgzaT.js +226 -0
  196. package/dist/_shared/item-Xs-fgzaT.js.map +1 -0
  197. package/dist/_shared/item-eUP9Rtmg.cjs +2 -0
  198. package/dist/_shared/item-eUP9Rtmg.cjs.map +1 -0
  199. package/dist/_shared/mentions-BahbwDwU.js +506 -0
  200. package/dist/_shared/mentions-BahbwDwU.js.map +1 -0
  201. package/dist/_shared/mentions-aHalksbt.cjs +2 -0
  202. package/dist/_shared/mentions-aHalksbt.cjs.map +1 -0
  203. package/dist/_shared/money-display-BLPNMmiT.cjs +2 -0
  204. package/dist/_shared/money-display-BLPNMmiT.cjs.map +1 -0
  205. package/dist/_shared/money-display-D_-Cb8-9.js +198 -0
  206. package/dist/_shared/money-display-D_-Cb8-9.js.map +1 -0
  207. package/dist/_shared/navigation-BcYAwgzo.js +436 -0
  208. package/dist/_shared/navigation-BcYAwgzo.js.map +1 -0
  209. package/dist/_shared/navigation-DAB7uuBj.cjs +2 -0
  210. package/dist/_shared/navigation-DAB7uuBj.cjs.map +1 -0
  211. package/dist/_shared/overlays-CdtMAkKG.js +648 -0
  212. package/dist/_shared/overlays-CdtMAkKG.js.map +1 -0
  213. package/dist/_shared/overlays-Diy_H0Au.cjs +2 -0
  214. package/dist/_shared/overlays-Diy_H0Au.cjs.map +1 -0
  215. package/dist/_shared/page-C6EzwvTz.cjs +2 -0
  216. package/dist/_shared/page-C6EzwvTz.cjs.map +1 -0
  217. package/dist/_shared/page-DCW1eWCJ.js +262 -0
  218. package/dist/_shared/page-DCW1eWCJ.js.map +1 -0
  219. package/dist/_shared/popover-dWR7-MzY.cjs +2 -0
  220. package/dist/_shared/popover-dWR7-MzY.cjs.map +1 -0
  221. package/dist/_shared/popover-menu-qxBZlTck.js +93 -0
  222. package/dist/_shared/popover-menu-qxBZlTck.js.map +1 -0
  223. package/dist/_shared/popover-menu-z9QTjl4o.cjs +2 -0
  224. package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +1 -0
  225. package/dist/_shared/popover-xVENY0Ax.js +83 -0
  226. package/dist/_shared/popover-xVENY0Ax.js.map +1 -0
  227. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +2 -0
  228. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +1 -0
  229. package/dist/_shared/rich-text-editor-VIBlL0x3.js +620 -0
  230. package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +1 -0
  231. package/dist/_shared/scroll-area-B32KwU9k.js +43 -0
  232. package/dist/_shared/scroll-area-B32KwU9k.js.map +1 -0
  233. package/dist/_shared/scroll-area-CIRXK7s0.cjs +2 -0
  234. package/dist/_shared/scroll-area-CIRXK7s0.cjs.map +1 -0
  235. package/dist/_shared/settings-DbAyxMrX.cjs +2 -0
  236. package/dist/_shared/settings-DbAyxMrX.cjs.map +1 -0
  237. package/dist/_shared/settings-QOBrbgdN.js +143 -0
  238. package/dist/_shared/settings-QOBrbgdN.js.map +1 -0
  239. package/dist/_shared/sidebar-BRg39UF1.js +389 -0
  240. package/dist/_shared/sidebar-BRg39UF1.js.map +1 -0
  241. package/dist/_shared/sidebar-Cwhom9QE.cjs +2 -0
  242. package/dist/_shared/sidebar-Cwhom9QE.cjs.map +1 -0
  243. package/dist/_shared/sidebar-DfToCaiC.cjs +2 -0
  244. package/dist/_shared/sidebar-DfToCaiC.cjs.map +1 -0
  245. package/dist/_shared/sidebar-DhpRdTZH.js +541 -0
  246. package/dist/_shared/sidebar-DhpRdTZH.js.map +1 -0
  247. package/dist/_shared/spinner-D35zNriU.cjs +2 -0
  248. package/dist/_shared/spinner-D35zNriU.cjs.map +1 -0
  249. package/dist/_shared/spinner-DMC2IIml.js +67 -0
  250. package/dist/_shared/spinner-DMC2IIml.js.map +1 -0
  251. package/dist/_shared/table-CUA_A-oO.js +1377 -0
  252. package/dist/_shared/table-CUA_A-oO.js.map +1 -0
  253. package/dist/_shared/table-mPchjiRn.cjs +2 -0
  254. package/dist/_shared/table-mPchjiRn.cjs.map +1 -0
  255. package/dist/_shared/textarea-B24qgdmd.cjs +2 -0
  256. package/dist/_shared/textarea-B24qgdmd.cjs.map +1 -0
  257. package/dist/_shared/textarea-ChLRmmVU.js +118 -0
  258. package/dist/_shared/textarea-ChLRmmVU.js.map +1 -0
  259. package/dist/_shared/typography-CO9uwZhF.cjs +2 -0
  260. package/dist/_shared/typography-CO9uwZhF.cjs.map +1 -0
  261. package/dist/_shared/typography-DE0NGEIE.js +201 -0
  262. package/dist/_shared/typography-DE0NGEIE.js.map +1 -0
  263. package/dist/_shared/ui-provider-DZWtUXf2.cjs +2 -0
  264. package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +1 -0
  265. package/dist/_shared/ui-provider-Dj6OSOZi.js +81 -0
  266. package/dist/_shared/ui-provider-Dj6OSOZi.js.map +1 -0
  267. package/dist/_shared/workspace-BgtWS9fA.cjs +2 -0
  268. package/dist/_shared/workspace-BgtWS9fA.cjs.map +1 -0
  269. package/dist/_shared/workspace-D2jJ0PlS.js +357 -0
  270. package/dist/_shared/workspace-D2jJ0PlS.js.map +1 -0
  271. package/dist/components/base/accordion/accordion-variants.d.ts +10 -9
  272. package/dist/components/base/accordion/accordion-variants.d.ts.map +1 -1
  273. package/dist/components/base/accordion/accordion.d.ts +1 -1
  274. package/dist/components/base/accordion/index.cjs +1 -1
  275. package/dist/components/base/accordion/index.js +1 -1
  276. package/dist/components/base/accordion/smart-accordion.d.ts.map +1 -1
  277. package/dist/components/base/badge/badge.d.ts.map +1 -1
  278. package/dist/components/base/badge/index.cjs +1 -1
  279. package/dist/components/base/badge/index.js +1 -1
  280. package/dist/components/base/buttons/base-button.d.ts.map +1 -1
  281. package/dist/components/base/buttons/index.cjs +1 -1
  282. package/dist/components/base/buttons/index.js +2 -2
  283. package/dist/components/base/buttons/loader-button.d.ts.map +1 -1
  284. package/dist/components/base/buttons/page-action-button.d.ts +1 -1
  285. package/dist/components/base/buttons/page-action-button.d.ts.map +1 -1
  286. package/dist/components/base/buttons/text-button.d.ts +3 -6
  287. package/dist/components/base/buttons/text-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.map +1 -1
  291. package/dist/components/base/cards/smart-card.d.ts.map +1 -1
  292. package/dist/components/base/cards/smart-card.tokens.d.ts +3 -4
  293. package/dist/components/base/cards/smart-card.tokens.d.ts.map +1 -1
  294. package/dist/components/base/cards/smart-card.types.d.ts +4 -4
  295. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
  296. package/dist/components/base/carousel/index.cjs +1 -1
  297. package/dist/components/base/carousel/index.cjs.map +1 -1
  298. package/dist/components/base/carousel/index.js +4 -4
  299. package/dist/components/base/carousel/index.js.map +1 -1
  300. package/dist/components/base/combobox/components/combobox-dropdown.d.ts.map +1 -1
  301. package/dist/components/base/combobox/components/error-message.d.ts.map +1 -1
  302. package/dist/components/base/combobox/constants.d.ts +1 -1
  303. package/dist/components/base/combobox/constants.d.ts.map +1 -1
  304. package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -1
  305. package/dist/components/base/combobox/index.cjs +1 -1
  306. package/dist/components/base/combobox/index.js +1 -1
  307. package/dist/components/base/combobox/types.d.ts +1 -1
  308. package/dist/components/base/combobox/types.d.ts.map +1 -1
  309. package/dist/components/base/command/command.d.ts +1 -1
  310. package/dist/components/base/command/index.cjs +1 -1
  311. package/dist/components/base/command/index.js +1 -1
  312. package/dist/components/base/copyable/index.cjs +1 -1
  313. package/dist/components/base/copyable/index.js +1 -1
  314. package/dist/components/base/currency/index.cjs +1 -1
  315. package/dist/components/base/currency/index.js +1 -1
  316. package/dist/components/base/date-pickers/date-picker.d.ts +1 -1
  317. package/dist/components/base/date-pickers/index.cjs +1 -1
  318. package/dist/components/base/date-pickers/index.js +2 -2
  319. package/dist/components/base/date-pickers/segmented-time-input.d.ts.map +1 -1
  320. package/dist/components/base/display/avatar.d.ts +24 -1
  321. package/dist/components/base/display/avatar.d.ts.map +1 -1
  322. package/dist/components/base/display/boolean-indicator.d.ts +2 -1
  323. package/dist/components/base/display/boolean-indicator.d.ts.map +1 -1
  324. package/dist/components/base/display/chart.cjs +2 -2
  325. package/dist/components/base/display/chart.cjs.map +1 -1
  326. package/dist/components/base/display/chart.js +4 -4
  327. package/dist/components/base/display/chart.js.map +1 -1
  328. package/dist/components/base/display/date-block.d.ts +2 -1
  329. package/dist/components/base/display/date-block.d.ts.map +1 -1
  330. package/dist/components/base/display/empty.d.ts +8 -0
  331. package/dist/components/base/display/empty.d.ts.map +1 -0
  332. package/dist/components/base/display/icon-badge/icon-badge.d.ts +2 -1
  333. package/dist/components/base/display/icon-badge/icon-badge.d.ts.map +1 -1
  334. package/dist/components/base/display/index.cjs +1 -1
  335. package/dist/components/base/display/index.d.ts +1 -7
  336. package/dist/components/base/display/index.d.ts.map +1 -1
  337. package/dist/components/base/display/index.js +10 -11
  338. package/dist/components/base/display/scroll-area.d.ts +10 -1
  339. package/dist/components/base/display/scroll-area.d.ts.map +1 -1
  340. package/dist/components/base/display/stacked-avatars.d.ts +2 -1
  341. package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
  342. package/dist/components/base/display/throttle-alert.d.ts +2 -1
  343. package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
  344. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts +2 -1
  345. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -1
  346. package/dist/components/base/event-calendar/index.cjs +1 -1
  347. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  348. package/dist/components/base/event-calendar/index.js +37 -37
  349. package/dist/components/base/event-calendar/index.js.map +1 -1
  350. package/dist/components/base/forms/fields/avatar-upload.d.ts +4 -2
  351. package/dist/components/base/forms/fields/avatar-upload.d.ts.map +1 -1
  352. package/dist/components/base/forms/fields/checkbox.d.ts +14 -1
  353. package/dist/components/base/forms/fields/checkbox.d.ts.map +1 -1
  354. package/dist/components/base/forms/fields/choice-types.d.ts +3 -2
  355. package/dist/components/base/forms/fields/choice-types.d.ts.map +1 -1
  356. package/dist/components/base/forms/fields/coordinates-input.d.ts.map +1 -1
  357. package/dist/components/base/forms/fields/decimal-input.d.ts.map +1 -1
  358. package/dist/components/base/forms/fields/dropzone.d.ts +4 -2
  359. package/dist/components/base/forms/fields/dropzone.d.ts.map +1 -1
  360. package/dist/components/base/forms/fields/file-upload.d.ts +2 -1
  361. package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -1
  362. package/dist/components/base/forms/fields/image-upload.d.ts +2 -1
  363. package/dist/components/base/forms/fields/image-upload.d.ts.map +1 -1
  364. package/dist/components/base/forms/fields/input.d.ts.map +1 -1
  365. package/dist/components/base/forms/fields/key-value-editor.d.ts +2 -1
  366. package/dist/components/base/forms/fields/key-value-editor.d.ts.map +1 -1
  367. package/dist/components/base/forms/fields/list.d.ts.map +1 -1
  368. package/dist/components/base/forms/fields/localized-string-repeater.d.ts.map +1 -1
  369. package/dist/components/base/forms/fields/media-gallery.d.ts +2 -1
  370. package/dist/components/base/forms/fields/media-gallery.d.ts.map +1 -1
  371. package/dist/components/base/forms/fields/object-repeater.d.ts +2 -1
  372. package/dist/components/base/forms/fields/object-repeater.d.ts.map +1 -1
  373. package/dist/components/base/forms/fields/select.d.ts.map +1 -1
  374. package/dist/components/base/forms/fields/string-repeater.d.ts +2 -1
  375. package/dist/components/base/forms/fields/string-repeater.d.ts.map +1 -1
  376. package/dist/components/base/forms/fields/tags-input.d.ts +2 -1
  377. package/dist/components/base/forms/fields/tags-input.d.ts.map +1 -1
  378. package/dist/components/base/forms/fields/time-picker.d.ts.map +1 -1
  379. package/dist/components/base/forms/fields/upload-progress-list.d.ts +2 -1
  380. package/dist/components/base/forms/fields/upload-progress-list.d.ts.map +1 -1
  381. package/dist/components/base/forms/fields/weight-input.d.ts.map +1 -1
  382. package/dist/components/base/forms/form-sizing.d.ts +8 -0
  383. package/dist/components/base/forms/form-sizing.d.ts.map +1 -1
  384. package/dist/components/base/forms/index.cjs +1 -1
  385. package/dist/components/base/forms/index.js +7 -7
  386. package/dist/components/base/forms/workflow.d.ts.map +1 -1
  387. package/dist/components/base/index.d.ts.map +1 -1
  388. package/dist/components/base/item/index.cjs +1 -1
  389. package/dist/components/base/item/index.js +1 -1
  390. package/dist/components/base/item/item.d.ts.map +1 -1
  391. package/dist/components/base/map/index.cjs +1 -1
  392. package/dist/components/base/map/index.cjs.map +1 -1
  393. package/dist/components/base/map/index.js +55 -54
  394. package/dist/components/base/map/index.js.map +1 -1
  395. package/dist/components/base/map/map.d.ts.map +1 -1
  396. package/dist/components/base/navigation/breadcrumbs.d.ts +2 -1
  397. package/dist/components/base/navigation/breadcrumbs.d.ts.map +1 -1
  398. package/dist/components/base/navigation/index.cjs +1 -1
  399. package/dist/components/base/navigation/index.js +3 -3
  400. package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
  401. package/dist/components/base/popover/index.cjs +1 -1
  402. package/dist/components/base/popover/index.js +1 -1
  403. package/dist/components/base/popover/popover.d.ts +2 -2
  404. package/dist/components/base/popover-menu/index.cjs +1 -1
  405. package/dist/components/base/popover-menu/index.js +1 -1
  406. package/dist/components/base/sidebar/index.cjs +1 -1
  407. package/dist/components/base/sidebar/index.js +1 -1
  408. package/dist/components/base/spinner/index.cjs +1 -1
  409. package/dist/components/base/spinner/index.js +1 -1
  410. package/dist/components/base/table/column-visibility-toggle.d.ts.map +1 -1
  411. package/dist/components/base/table/data-table.d.ts +1 -1
  412. package/dist/components/base/table/data-table.d.ts.map +1 -1
  413. package/dist/components/base/table/filter-bar.d.ts.map +1 -1
  414. package/dist/components/base/table/index.cjs +1 -1
  415. package/dist/components/base/table/index.js +2 -2
  416. package/dist/components/base/table/table-actions.d.ts.map +1 -1
  417. package/dist/components/base/table/table-header.d.ts.map +1 -1
  418. package/dist/components/base/table/table-toolbar.d.ts.map +1 -1
  419. package/dist/components/base/table/table.strings.d.ts.map +1 -1
  420. package/dist/components/base/table/table.types.d.ts +12 -8
  421. package/dist/components/base/table/table.types.d.ts.map +1 -1
  422. package/dist/components/base/toaster/index.cjs +1 -1
  423. package/dist/components/base/toaster/index.js +1 -1
  424. package/dist/components/composed/admin/action-surfaces/index.d.ts.map +1 -1
  425. package/dist/components/composed/admin/index.cjs +1 -1
  426. package/dist/components/composed/admin/index.cjs.map +1 -1
  427. package/dist/components/composed/admin/index.js +32 -33
  428. package/dist/components/composed/admin/index.js.map +1 -1
  429. package/dist/components/composed/ai/ai-agent/types.d.ts +2 -1
  430. package/dist/components/composed/ai/ai-agent/types.d.ts.map +1 -1
  431. package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts.map +1 -1
  432. package/dist/components/composed/ai/ai-artifact/types.d.ts +2 -1
  433. package/dist/components/composed/ai/ai-artifact/types.d.ts.map +1 -1
  434. package/dist/components/composed/ai/ai-attachment/types.d.ts +2 -1
  435. package/dist/components/composed/ai/ai-attachment/types.d.ts.map +1 -1
  436. package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts +2 -1
  437. package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts.map +1 -1
  438. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
  439. package/dist/components/composed/ai/ai-citation/types.d.ts +2 -1
  440. package/dist/components/composed/ai/ai-citation/types.d.ts.map +1 -1
  441. package/dist/components/composed/ai/ai-classification/ai-classification.d.ts.map +1 -1
  442. package/dist/components/composed/ai/ai-code-block/types.d.ts +2 -1
  443. package/dist/components/composed/ai/ai-code-block/types.d.ts.map +1 -1
  444. package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts.map +1 -1
  445. package/dist/components/composed/ai/ai-confidence/types.d.ts +2 -1
  446. package/dist/components/composed/ai/ai-confidence/types.d.ts.map +1 -1
  447. package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts.map +1 -1
  448. package/dist/components/composed/ai/ai-confirmation/types.d.ts +2 -1
  449. package/dist/components/composed/ai/ai-confirmation/types.d.ts.map +1 -1
  450. package/dist/components/composed/ai/ai-feedback/types.d.ts +2 -1
  451. package/dist/components/composed/ai/ai-feedback/types.d.ts.map +1 -1
  452. package/dist/components/composed/ai/ai-file-tree/types.d.ts +2 -1
  453. package/dist/components/composed/ai/ai-file-tree/types.d.ts.map +1 -1
  454. package/dist/components/composed/ai/ai-inline-citation/types.d.ts +2 -1
  455. package/dist/components/composed/ai/ai-inline-citation/types.d.ts.map +1 -1
  456. package/dist/components/composed/ai/ai-message-bubble/types.d.ts +2 -1
  457. package/dist/components/composed/ai/ai-message-bubble/types.d.ts.map +1 -1
  458. package/dist/components/composed/ai/ai-package-info/types.d.ts +2 -1
  459. package/dist/components/composed/ai/ai-package-info/types.d.ts.map +1 -1
  460. package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts +2 -1
  461. package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts.map +1 -1
  462. package/dist/components/composed/ai/ai-reasoning/types.d.ts +2 -1
  463. package/dist/components/composed/ai/ai-reasoning/types.d.ts.map +1 -1
  464. package/dist/components/composed/ai/ai-sources/types.d.ts +2 -1
  465. package/dist/components/composed/ai/ai-sources/types.d.ts.map +1 -1
  466. package/dist/components/composed/ai/ai-summary/ai-summary.d.ts.map +1 -1
  467. package/dist/components/composed/ai/ai-task/types.d.ts +2 -1
  468. package/dist/components/composed/ai/ai-task/types.d.ts.map +1 -1
  469. package/dist/components/composed/ai/ai-token-usage/types.d.ts +2 -1
  470. package/dist/components/composed/ai/ai-token-usage/types.d.ts.map +1 -1
  471. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -1
  472. package/dist/components/composed/ai/ai-tool-call/types.d.ts +2 -1
  473. package/dist/components/composed/ai/ai-tool-call/types.d.ts.map +1 -1
  474. package/dist/components/composed/ai/index.cjs +1 -1
  475. package/dist/components/composed/ai/index.cjs.map +1 -1
  476. package/dist/components/composed/ai/index.js +115 -109
  477. package/dist/components/composed/ai/index.js.map +1 -1
  478. package/dist/components/composed/analytics/activity-heatmap/types.d.ts +2 -1
  479. package/dist/components/composed/analytics/activity-heatmap/types.d.ts.map +1 -1
  480. package/dist/components/composed/analytics/index.cjs +1 -1
  481. package/dist/components/composed/analytics/index.cjs.map +1 -1
  482. package/dist/components/composed/analytics/index.js +87 -87
  483. package/dist/components/composed/analytics/index.js.map +1 -1
  484. package/dist/components/composed/cards/contact-card/types.d.ts +2 -1
  485. package/dist/components/composed/cards/contact-card/types.d.ts.map +1 -1
  486. package/dist/components/composed/cards/course-card/types.d.ts +2 -1
  487. package/dist/components/composed/cards/course-card/types.d.ts.map +1 -1
  488. package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts.map +1 -1
  489. package/dist/components/composed/cards/giftcard-card/types.d.ts +2 -1
  490. package/dist/components/composed/cards/giftcard-card/types.d.ts.map +1 -1
  491. package/dist/components/composed/cards/index.cjs +1 -1
  492. package/dist/components/composed/cards/index.cjs.map +1 -1
  493. package/dist/components/composed/cards/index.js +186 -190
  494. package/dist/components/composed/cards/index.js.map +1 -1
  495. package/dist/components/composed/cards/vendor-profile/types.d.ts +2 -1
  496. package/dist/components/composed/cards/vendor-profile/types.d.ts.map +1 -1
  497. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
  498. package/dist/components/composed/commerce/address-card/types.d.ts +2 -1
  499. package/dist/components/composed/commerce/address-card/types.d.ts.map +1 -1
  500. package/dist/components/composed/commerce/cart-summary/types.d.ts +2 -1
  501. package/dist/components/composed/commerce/cart-summary/types.d.ts.map +1 -1
  502. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
  503. package/dist/components/composed/commerce/coupon-input/types.d.ts +2 -1
  504. package/dist/components/composed/commerce/coupon-input/types.d.ts.map +1 -1
  505. package/dist/components/composed/commerce/discount-stack/types.d.ts +2 -1
  506. package/dist/components/composed/commerce/discount-stack/types.d.ts.map +1 -1
  507. package/dist/components/composed/commerce/index.cjs +1 -1
  508. package/dist/components/composed/commerce/index.cjs.map +1 -1
  509. package/dist/components/composed/commerce/index.js +197 -202
  510. package/dist/components/composed/commerce/index.js.map +1 -1
  511. package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts.map +1 -1
  512. package/dist/components/composed/commerce/loyalty-points/types.d.ts +2 -1
  513. package/dist/components/composed/commerce/loyalty-points/types.d.ts.map +1 -1
  514. package/dist/components/composed/commerce/order-status/types.d.ts +2 -1
  515. package/dist/components/composed/commerce/order-status/types.d.ts.map +1 -1
  516. package/dist/components/composed/commerce/payment-method/types.d.ts +2 -1
  517. package/dist/components/composed/commerce/payment-method/types.d.ts.map +1 -1
  518. package/dist/components/composed/commerce/refund-status/refund-status.d.ts.map +1 -1
  519. package/dist/components/composed/commerce/refund-status/types.d.ts +2 -1
  520. package/dist/components/composed/commerce/refund-status/types.d.ts.map +1 -1
  521. package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts.map +1 -1
  522. package/dist/components/composed/commerce/subscription-summary/types.d.ts +2 -1
  523. package/dist/components/composed/commerce/subscription-summary/types.d.ts.map +1 -1
  524. package/dist/components/composed/commerce/tax-breakdown/types.d.ts +2 -1
  525. package/dist/components/composed/commerce/tax-breakdown/types.d.ts.map +1 -1
  526. package/dist/components/composed/commerce/voucher-entry/types.d.ts +2 -1
  527. package/dist/components/composed/commerce/voucher-entry/types.d.ts.map +1 -1
  528. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -1
  529. package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts.map +1 -1
  530. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  531. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  532. package/dist/components/composed/dark-surfaces/index.js +71 -72
  533. package/dist/components/composed/dark-surfaces/index.js.map +1 -1
  534. package/dist/components/composed/data-display/empty-state/empty-state.d.ts.map +1 -0
  535. package/dist/components/composed/data-display/empty-state/empty-state.strings.d.ts.map +1 -0
  536. package/dist/components/composed/data-display/empty-state/empty-state.types.d.ts +85 -0
  537. package/dist/components/composed/data-display/empty-state/empty-state.types.d.ts.map +1 -0
  538. package/dist/components/composed/data-display/empty-state/index.d.ts.map +1 -0
  539. package/dist/components/composed/data-display/empty-state/partials/illustrations/document-stack.d.ts.map +1 -0
  540. package/dist/components/composed/data-display/empty-state/partials/illustrations/inbox-clean.d.ts.map +1 -0
  541. package/dist/components/composed/data-display/empty-state/partials/illustrations/index.d.ts.map +1 -0
  542. package/dist/components/composed/data-display/empty-state/partials/illustrations/search-glass.d.ts.map +1 -0
  543. package/dist/components/composed/data-display/empty-state/partials/illustrations/stacked-cards.d.ts.map +1 -0
  544. package/dist/components/composed/data-display/empty-state/partials/illustrations/users-circle.d.ts.map +1 -0
  545. package/dist/components/composed/data-display/fields/email-display.d.ts +23 -0
  546. package/dist/components/composed/data-display/fields/email-display.d.ts.map +1 -0
  547. package/dist/components/composed/data-display/fields/index.d.ts.map +1 -0
  548. package/dist/components/composed/data-display/fields/phone-display.d.ts +23 -0
  549. package/dist/components/composed/data-display/fields/phone-display.d.ts.map +1 -0
  550. package/dist/components/composed/data-display/fields/url-display.d.ts +29 -0
  551. package/dist/components/composed/data-display/fields/url-display.d.ts.map +1 -0
  552. package/dist/components/composed/data-display/index.cjs +1 -2
  553. package/dist/components/composed/data-display/index.d.ts +7 -0
  554. package/dist/components/composed/data-display/index.d.ts.map +1 -1
  555. package/dist/components/composed/data-display/index.js +2 -1165
  556. package/dist/components/composed/data-display/inline-stat/index.d.ts.map +1 -0
  557. package/dist/components/composed/data-display/inline-stat/inline-stat.d.ts.map +1 -0
  558. package/dist/components/composed/data-display/invoice-header/types.d.ts +2 -1
  559. package/dist/components/composed/data-display/invoice-header/types.d.ts.map +1 -1
  560. package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts.map +1 -1
  561. package/dist/components/composed/data-display/invoice-mini/types.d.ts +2 -1
  562. package/dist/components/composed/data-display/invoice-mini/types.d.ts.map +1 -1
  563. package/dist/components/composed/data-display/invoice-table/types.d.ts +2 -1
  564. package/dist/components/composed/data-display/invoice-table/types.d.ts.map +1 -1
  565. package/dist/components/composed/data-display/metadata/index.d.ts.map +1 -0
  566. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -0
  567. package/dist/components/composed/data-display/metadata/metadata-list.strings.d.ts.map +1 -0
  568. package/dist/components/composed/data-display/numeric-value/index.d.ts.map +1 -0
  569. package/dist/components/composed/data-display/numeric-value/numeric-value.d.ts.map +1 -0
  570. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
  571. package/dist/components/composed/data-display/section-header/index.d.ts.map +1 -0
  572. package/dist/components/composed/data-display/section-header/section-header.d.ts.map +1 -0
  573. package/dist/components/composed/data-display/user-cell/index.d.ts.map +1 -0
  574. package/dist/components/composed/data-display/user-cell/user-cell.d.ts +20 -0
  575. package/dist/components/composed/data-display/user-cell/user-cell.d.ts.map +1 -0
  576. package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts +2 -1
  577. package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts.map +1 -1
  578. package/dist/components/composed/navigation/index.cjs +1 -1
  579. package/dist/components/composed/navigation/index.cjs.map +1 -1
  580. package/dist/components/composed/navigation/index.js +12 -12
  581. package/dist/components/composed/navigation/index.js.map +1 -1
  582. package/dist/components/composed/onboarding/index.cjs +1 -1
  583. package/dist/components/composed/onboarding/index.cjs.map +1 -1
  584. package/dist/components/composed/onboarding/index.js +3 -3
  585. package/dist/components/composed/timelines/activity-stream/types.d.ts +2 -1
  586. package/dist/components/composed/timelines/activity-stream/types.d.ts.map +1 -1
  587. package/dist/components/composed/timelines/changelog/types.d.ts +2 -1
  588. package/dist/components/composed/timelines/changelog/types.d.ts.map +1 -1
  589. package/dist/components/composed/timelines/index.cjs +1 -1
  590. package/dist/components/composed/timelines/index.cjs.map +1 -1
  591. package/dist/components/composed/timelines/index.js +6 -6
  592. package/dist/components/composed/timelines/index.js.map +1 -1
  593. package/dist/components/composed/timelines/milestones/types.d.ts +2 -1
  594. package/dist/components/composed/timelines/milestones/types.d.ts.map +1 -1
  595. package/dist/components/features/activities/activities.types.d.ts +3 -2
  596. package/dist/components/features/activities/activities.types.d.ts.map +1 -1
  597. package/dist/components/features/activities/index.cjs +1 -1
  598. package/dist/components/features/activities/index.cjs.map +1 -1
  599. package/dist/components/features/activities/index.js +33 -30
  600. package/dist/components/features/activities/index.js.map +1 -1
  601. package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
  602. package/dist/components/features/ai-chat/index.cjs +2 -2
  603. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  604. package/dist/components/features/ai-chat/index.js +42 -42
  605. package/dist/components/features/ai-chat/index.js.map +1 -1
  606. package/dist/components/features/card/index.cjs +1 -1
  607. package/dist/components/features/card/index.cjs.map +1 -1
  608. package/dist/components/features/card/index.js +6 -6
  609. package/dist/components/features/card/index.js.map +1 -1
  610. package/dist/components/features/comments/index.cjs +1 -1
  611. package/dist/components/features/comments/index.js +2 -2
  612. package/dist/components/features/data-view/data-view.d.ts.map +1 -0
  613. package/dist/components/features/data-view/data-view.strings.d.ts.map +1 -0
  614. package/dist/components/features/data-view/data-view.types.d.ts.map +1 -0
  615. package/dist/components/features/data-view/index.cjs +2 -0
  616. package/dist/components/features/data-view/index.cjs.map +1 -0
  617. package/dist/components/features/data-view/index.d.ts.map +1 -0
  618. package/dist/components/features/data-view/index.js +146 -0
  619. package/dist/components/features/data-view/index.js.map +1 -0
  620. package/dist/components/features/event-log/index.cjs +1 -1
  621. package/dist/components/features/event-log/index.cjs.map +1 -1
  622. package/dist/components/features/event-log/index.js +6 -6
  623. package/dist/components/features/event-log/index.js.map +1 -1
  624. package/dist/components/features/filters/filter-context.d.ts +5 -0
  625. package/dist/components/features/filters/filter-context.d.ts.map +1 -1
  626. package/dist/components/features/filters/filter-layout.d.ts.map +1 -1
  627. package/dist/components/features/filters/filters.types.d.ts +1 -1
  628. package/dist/components/features/filters/filters.types.d.ts.map +1 -1
  629. package/dist/components/features/filters/index.cjs +1 -1
  630. package/dist/components/features/filters/index.cjs.map +1 -1
  631. package/dist/components/features/filters/index.js +333 -308
  632. package/dist/components/features/filters/index.js.map +1 -1
  633. package/dist/components/features/filters/partials/active-filter-item.d.ts.map +1 -1
  634. package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
  635. package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
  636. package/dist/components/features/filters/partials/tags-filter-content.d.ts.map +1 -1
  637. package/dist/components/features/global-search/global-search.d.ts.map +1 -1
  638. package/dist/components/features/global-search/index.cjs +1 -1
  639. package/dist/components/features/global-search/index.cjs.map +1 -1
  640. package/dist/components/features/global-search/index.js +36 -28
  641. package/dist/components/features/global-search/index.js.map +1 -1
  642. package/dist/components/features/global-search/partials/global-search-input.d.ts.map +1 -1
  643. package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -1
  644. package/dist/components/features/index.d.ts.map +1 -1
  645. package/dist/components/features/kanban/index.cjs +1 -1
  646. package/dist/components/features/kanban/index.cjs.map +1 -1
  647. package/dist/components/features/kanban/index.js +5 -5
  648. package/dist/components/features/kanban/index.js.map +1 -1
  649. package/dist/components/features/media-library/index.cjs +1 -1
  650. package/dist/components/features/media-library/index.cjs.map +1 -1
  651. package/dist/components/features/media-library/index.js +27 -27
  652. package/dist/components/features/media-library/index.js.map +1 -1
  653. package/dist/components/features/mentions/index.cjs +1 -1
  654. package/dist/components/features/mentions/index.js +1 -1
  655. package/dist/components/features/overlays/index.cjs +1 -1
  656. package/dist/components/features/overlays/index.js +1 -1
  657. package/dist/components/features/products/components/product-contract-overview.d.ts.map +1 -1
  658. package/dist/components/features/products/components/product-details-card.d.ts.map +1 -1
  659. package/dist/components/features/products/components/product-quote-preview-card.d.ts.map +1 -1
  660. package/dist/components/features/products/components/product-readiness-card.d.ts.map +1 -1
  661. package/dist/components/features/products/index.cjs +1 -1
  662. package/dist/components/features/products/index.cjs.map +1 -1
  663. package/dist/components/features/products/index.js +135 -135
  664. package/dist/components/features/products/index.js.map +1 -1
  665. package/dist/components/features/products/products.types.d.ts +1 -1
  666. package/dist/components/features/products/products.types.d.ts.map +1 -1
  667. package/dist/components/features/resource/index.cjs +2 -0
  668. package/dist/components/features/resource/index.cjs.map +1 -0
  669. package/dist/components/features/resource/index.d.ts.map +1 -0
  670. package/dist/components/features/resource/index.js +240 -0
  671. package/dist/components/features/resource/index.js.map +1 -0
  672. package/dist/components/features/resource/resource.d.ts.map +1 -0
  673. package/dist/components/features/resource/resource.types.d.ts +87 -0
  674. package/dist/components/features/resource/resource.types.d.ts.map +1 -0
  675. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  676. package/dist/components/features/rich-text-editor/index.js +1 -1
  677. package/dist/components/features/schema-form/index.cjs +1 -1
  678. package/dist/components/features/schema-form/index.cjs.map +1 -1
  679. package/dist/components/features/schema-form/index.js +23 -23
  680. package/dist/components/features/suggestions/index.cjs +1 -1
  681. package/dist/components/features/suggestions/index.js +1 -1
  682. package/dist/components/features/sync/index.cjs +1 -1
  683. package/dist/components/features/sync/index.cjs.map +1 -1
  684. package/dist/components/features/sync/index.js +53 -31
  685. package/dist/components/features/sync/index.js.map +1 -1
  686. package/dist/components/features/sync/sync-range-dialog-form.d.ts.map +1 -1
  687. package/dist/components/features/sync/sync.strings.d.ts +6 -0
  688. package/dist/components/features/sync/sync.strings.d.ts.map +1 -1
  689. package/dist/components/layout/app-shell/app-shell.types.d.ts +7 -7
  690. package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -1
  691. package/dist/components/layout/app-shell/index.cjs +1 -1
  692. package/dist/components/layout/app-shell/index.js +1 -1
  693. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -1
  694. package/dist/components/layout/auth/index.cjs +1 -1
  695. package/dist/components/layout/auth/index.js +1 -1
  696. package/dist/components/layout/header/index.cjs +1 -1
  697. package/dist/components/layout/header/index.js +1 -1
  698. package/dist/components/layout/hooks/index.cjs +1 -1
  699. package/dist/components/layout/hooks/index.js +1 -1
  700. package/dist/components/layout/index.cjs +1 -1
  701. package/dist/components/layout/index.d.ts +0 -1
  702. package/dist/components/layout/index.d.ts.map +1 -1
  703. package/dist/components/layout/index.js +11 -12
  704. package/dist/components/layout/page/index.cjs +1 -1
  705. package/dist/components/layout/page/index.js +1 -1
  706. package/dist/components/layout/page/page.types.d.ts +2 -1
  707. package/dist/components/layout/page/page.types.d.ts.map +1 -1
  708. package/dist/components/layout/settings/index.cjs +1 -1
  709. package/dist/components/layout/settings/index.js +1 -1
  710. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
  711. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +2 -1
  712. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts.map +1 -1
  713. package/dist/components/layout/sidebar/index.cjs +1 -1
  714. package/dist/components/layout/sidebar/index.js +2 -2
  715. package/dist/components/layout/sidebar/sidebar.d.ts +2 -1
  716. package/dist/components/layout/sidebar/sidebar.d.ts.map +1 -1
  717. package/dist/components/layout/sidebar/sidebar.types.d.ts +3 -2
  718. package/dist/components/layout/sidebar/sidebar.types.d.ts.map +1 -1
  719. package/dist/components/layout/workspace/index.cjs +1 -1
  720. package/dist/components/layout/workspace/index.js +1 -1
  721. package/dist/components/layout/workspace/workspace.d.ts.map +1 -1
  722. package/dist/components/typography/index.cjs +1 -1
  723. package/dist/components/typography/index.js +2 -3
  724. package/dist/components/typography/label.d.ts.map +1 -1
  725. package/dist/components/ui/button.d.ts +1 -1
  726. package/dist/components/ui/input-group.d.ts +1 -1
  727. package/dist/index.cjs +1 -1
  728. package/dist/index.js +3 -3
  729. package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
  730. package/dist/lib/ui-provider/hooks.d.ts +1 -2
  731. package/dist/lib/ui-provider/hooks.d.ts.map +1 -1
  732. package/dist/lib/ui-provider/index.cjs +1 -1
  733. package/dist/lib/ui-provider/index.d.ts +2 -2
  734. package/dist/lib/ui-provider/index.d.ts.map +1 -1
  735. package/dist/lib/ui-provider/index.js +2 -2
  736. package/dist/lib/ui-provider/types.d.ts +13 -14
  737. package/dist/lib/ui-provider/types.d.ts.map +1 -1
  738. package/dist/lib/utils.cjs +1 -1
  739. package/dist/lib/utils.cjs.map +1 -1
  740. package/dist/lib/utils.d.ts.map +1 -1
  741. package/dist/lib/utils.js +31 -10
  742. package/dist/lib/utils.js.map +1 -1
  743. package/dist/services/actions/index.cjs +1 -1
  744. package/dist/services/actions/index.js +1 -1
  745. package/dist/showcase/assets/AreaChart-CGkuyNyy.js +6 -0
  746. package/dist/showcase/assets/CSPContext-Bfs88_eg.js +1 -0
  747. package/dist/showcase/assets/CompositeItem-DAQ048AO.js +1 -0
  748. package/dist/showcase/assets/CompositeRoot-8-OuCMMq.js +1 -0
  749. package/dist/showcase/assets/DialogTrigger-1P-jwcoH.js +1 -0
  750. package/dist/showcase/assets/FieldItemContext-ChrM5Ge4.js +1 -0
  751. package/dist/showcase/assets/LabelableContext-BDyZArAc.js +1 -0
  752. package/dist/showcase/assets/PreviewLayout-wYGhlcJt.js +1 -0
  753. package/dist/showcase/assets/RadioGroup-DuiI4W--.js +1 -0
  754. package/dist/showcase/assets/ScrollAreaCorner-Df5uTkWT.js +1 -0
  755. package/dist/showcase/assets/Separator-BuTBo5a_.js +1 -0
  756. package/dist/showcase/assets/ToolbarRootContext-B4S4Fn7d.js +1 -0
  757. package/dist/showcase/assets/accordion-D3beuJpC.js +171 -0
  758. package/dist/showcase/assets/accordion-variants-BTMpfSPI.js +1 -0
  759. package/dist/showcase/assets/action-menu-DsAr1OqF.js +1 -0
  760. package/dist/showcase/assets/actions-BzyHAEZR.js +310 -0
  761. package/dist/showcase/assets/activities-BgoelWKu.js +500 -0
  762. package/dist/showcase/assets/activities-feed-card-DI4MIm3-.js +1 -0
  763. package/dist/showcase/assets/admin-n-JemkNh.js +140 -0
  764. package/dist/showcase/assets/ai-BXyk1mT0.js +207 -0
  765. package/dist/showcase/assets/ai-artifact-C8CmZ94f.js +2 -0
  766. package/dist/showcase/assets/ai-chat-CTQQ4e4X.js +568 -0
  767. package/dist/showcase/assets/ai-elements-DGnlBq8E.js +387 -0
  768. package/dist/showcase/assets/ai-tool-call-bHnWNBtN.js +1 -0
  769. package/dist/showcase/assets/alert-CIHGXUul.js +62 -0
  770. package/dist/showcase/assets/alert-N79A6qIx.js +93 -0
  771. package/dist/showcase/assets/alert-bPnj3_cC.js +1 -0
  772. package/dist/showcase/assets/api-key-list-Bf1KoRJq.js +1 -0
  773. package/dist/showcase/assets/api-key-list-DyZ_DaRx.js +73 -0
  774. package/dist/showcase/assets/app-sidebar-Co0LUSvz.js +1 -0
  775. package/dist/showcase/assets/arrow-down-BttnoDxP.js +1 -0
  776. package/dist/showcase/assets/arrow-left-B1kFGJ8v.js +1 -0
  777. package/dist/showcase/assets/arrow-right-Md96ra7v.js +1 -0
  778. package/dist/showcase/assets/arrow-up-B9e9cP-q.js +1 -0
  779. package/dist/showcase/assets/arrow-up-right-BOHJNdrp.js +1 -0
  780. package/dist/showcase/assets/avatar-CJaCYGWf.js +1 -0
  781. package/dist/showcase/assets/avatar-CxwFyL4T.js +57 -0
  782. package/dist/showcase/assets/avatar-D3kvVy00.js +1 -0
  783. package/dist/showcase/assets/avatar-DKLsNeBi.js +67 -0
  784. package/dist/showcase/assets/badge-CSMmwDLr.js +31 -0
  785. package/dist/showcase/assets/badge-check-TQRmqI7C.js +1 -0
  786. package/dist/showcase/assets/bell-CwRy7zpP.js +1 -0
  787. package/dist/showcase/assets/bot-Bt02Uzhq.js +1 -0
  788. package/dist/showcase/assets/box-Bfv5RQBf.js +1 -0
  789. package/dist/showcase/assets/braces-CxUoAPd4.js +1 -0
  790. package/dist/showcase/assets/brain-CNapE0CP.js +1 -0
  791. package/dist/showcase/assets/brand-CBq1YoS0.js +36 -0
  792. package/dist/showcase/assets/breadcrumb-DRioiUd_.js +1 -0
  793. package/dist/showcase/assets/breadcrumb-DyXpErBT.js +52 -0
  794. package/dist/showcase/assets/breadcrumbs-BzHeoItO.js +1 -0
  795. package/dist/showcase/assets/briefcase-N74Hu0O2.js +1 -0
  796. package/dist/showcase/assets/building-2-D81ygy-F.js +1 -0
  797. package/dist/showcase/assets/button-Bgqg7AmN.js +44 -0
  798. package/dist/showcase/assets/button-group-DPV1XIW3.js +1 -0
  799. package/dist/showcase/assets/buttons-qpZWlILG.js +272 -0
  800. package/dist/showcase/assets/calendar-BXG5CwbY.js +1 -0
  801. package/dist/showcase/assets/calendar-D-CSqGtC.js +16 -0
  802. package/dist/showcase/assets/calendar-DcYyOrNY.js +1 -0
  803. package/dist/showcase/assets/calendar-days-CNNiyV9e.js +1 -0
  804. package/dist/showcase/assets/camera-D0yVo0xC.js +1 -0
  805. package/dist/showcase/assets/card-Bl-y9-8y.js +1 -0
  806. package/dist/showcase/assets/card-CH7Ev3xS.js +188 -0
  807. package/dist/showcase/assets/card-primitives-CiU5lL3a.js +1 -0
  808. package/dist/showcase/assets/card-radio-group-DpeIWyiO.js +1 -0
  809. package/dist/showcase/assets/cards-7xave3ub.js +354 -0
  810. package/dist/showcase/assets/carousel--kHTFkC7.js +449 -0
  811. package/dist/showcase/assets/cell-renderers-Cx8rAZln.js +1 -0
  812. package/dist/showcase/assets/chart-DU8INHbt.js +358 -0
  813. package/dist/showcase/assets/chart-column-Dbekq8cy.js +1 -0
  814. package/dist/showcase/assets/checkbox-ClPnzko9.js +1 -0
  815. package/dist/showcase/assets/checkbox-Qhh92dbS.js +1 -0
  816. package/dist/showcase/assets/chevron-down-BqrI6QzQ.js +1 -0
  817. package/dist/showcase/assets/chevron-left-TJKYH3rG.js +1 -0
  818. package/dist/showcase/assets/chevron-up-CPuAmh-d.js +1 -0
  819. package/dist/showcase/assets/chevrons-up-down-DZB44PVY.js +1 -0
  820. package/dist/showcase/assets/circle-CY0DkTje.js +1 -0
  821. package/dist/showcase/assets/circle-alert-9j29FrsT.js +1 -0
  822. package/dist/showcase/assets/circle-check-BkFKejsY.js +1 -0
  823. package/dist/showcase/assets/circle-check-big-vu3Znqdx.js +1 -0
  824. package/dist/showcase/assets/circle-dot-CsBIkbEH.js +1 -0
  825. package/dist/showcase/assets/circle-question-mark-BRiF5RV4.js +1 -0
  826. package/dist/showcase/assets/circle-x-BF20gddw.js +1 -0
  827. package/dist/showcase/assets/clock-3-mhWDhdka.js +1 -0
  828. package/dist/showcase/assets/clock-Dd-urPd2.js +1 -0
  829. package/dist/showcase/assets/code-xml-D2f-X63y.js +1 -0
  830. package/dist/showcase/assets/collapsible-CF0oQTVS.js +1 -0
  831. package/dist/showcase/assets/collapsible-Ru5-bssh.js +27 -0
  832. package/dist/showcase/assets/combobox-DpJTW_Rq.js +685 -0
  833. package/dist/showcase/assets/command-Dno8Ogez.js +1 -0
  834. package/dist/showcase/assets/command-LRFStKBy.js +1 -0
  835. package/dist/showcase/assets/comment-composer-Dht7nfbv.js +1 -0
  836. package/dist/showcase/assets/comment-item-B6IgQsMr.js +1 -0
  837. package/dist/showcase/assets/comments-B3ksV3Mn.js +357 -0
  838. package/dist/showcase/assets/commerce-B1_Offbz.js +267 -0
  839. package/dist/showcase/assets/composite-BjQWIYF-.js +1 -0
  840. package/dist/showcase/assets/contact-card-Bss4YHZz.js +65 -0
  841. package/dist/showcase/assets/content-container-D4BM1Zro.js +1 -0
  842. package/dist/showcase/assets/copyable-C0J88R_R.js +96 -0
  843. package/dist/showcase/assets/copyable-Dst8oaw5.js +1 -0
  844. package/dist/showcase/assets/course-card-BuqwjqtO.js +77 -0
  845. package/dist/showcase/assets/cpu-CFy0M0rN.js +1 -0
  846. package/dist/showcase/assets/credit-card-CFq0S1Ma.js +1 -0
  847. package/dist/showcase/assets/css-variables-BAALjDwD.js +1190 -0
  848. package/dist/showcase/assets/currency-BZzZRv2_.js +149 -0
  849. package/dist/showcase/assets/dark-surfaces-CVKt2Yww.js +90 -0
  850. package/dist/showcase/assets/data-view-Be0uoLqL.js +4 -0
  851. package/dist/showcase/assets/data-view-D6_zyFwk.js +124 -0
  852. package/dist/showcase/assets/database-DSC-ysYT.js +1 -0
  853. package/dist/showcase/assets/date-block-Bgu_LMxB.js +1 -0
  854. package/dist/showcase/assets/date-picker-ByYEZGMg.js +1 -0
  855. package/dist/showcase/assets/date-pickers-DzSQrvWs.js +73 -0
  856. package/dist/showcase/assets/dense-info-BhFkOQbt.js +106 -0
  857. package/dist/showcase/assets/design-system-consistency-D6iCJLcr.js +264 -0
  858. package/dist/showcase/assets/dialog-C1heXuxu.js +1 -0
  859. package/dist/showcase/assets/dialog-DzrcsKvl.js +1 -0
  860. package/dist/showcase/assets/display-utilities-eu-EVMrx.js +267 -0
  861. package/dist/showcase/assets/dist-BlIID0_L.js +1 -0
  862. package/dist/showcase/assets/dist-DV4Tv32d.js +45 -0
  863. package/dist/showcase/assets/dollar-sign-qp4G3P_K.js +1 -0
  864. package/dist/showcase/assets/download-zlcHjSdS.js +1 -0
  865. package/dist/showcase/assets/dropdown-menu-DZ47rJaE.js +1 -0
  866. package/dist/showcase/assets/dropzone-Dx4EqBHu.js +1 -0
  867. package/dist/showcase/assets/earth-BuXqXHh6.js +1 -0
  868. package/dist/showcase/assets/ellipsis-DgAjMZHc.js +1 -0
  869. package/dist/showcase/assets/ellipsis-vertical-BA8_YMyV.js +1 -0
  870. package/dist/showcase/assets/empty-DXjKmyNv.js +1 -0
  871. package/dist/showcase/assets/empty-item-DIGWYsI0.js +49 -0
  872. package/dist/showcase/assets/empty-state-BSc0tQNC.js +190 -0
  873. package/dist/showcase/assets/empty-state-CkixFVN1.js +1 -0
  874. package/dist/showcase/assets/enhanced-activities-CKbHgR4f.js +357 -0
  875. package/dist/showcase/assets/enhanced-combobox-DAKQyFUg.js +1 -0
  876. package/dist/showcase/assets/esm-C3PfkuOc.js +2 -0
  877. package/dist/showcase/assets/event-calendar-rNju8jaT.js +138 -0
  878. package/dist/showcase/assets/event-log-BUK1blGb.js +330 -0
  879. package/dist/showcase/assets/example-PsbgbESI.js +1 -0
  880. package/dist/showcase/assets/external-link-CgB9zfWz.js +1 -0
  881. package/dist/showcase/assets/eye-YnIHbdKe.js +1 -0
  882. package/dist/showcase/assets/feature-announcement-CWwjAPI1.js +34 -0
  883. package/dist/showcase/assets/file-3Z2xkc-8.js +1 -0
  884. package/dist/showcase/assets/file-text-BQeGXxPG.js +1 -0
  885. package/dist/showcase/assets/filter-layout-D7YskzbC.js +1 -0
  886. package/dist/showcase/assets/filters-2YY_wVwq.js +139 -0
  887. package/dist/showcase/assets/flag-Bw3wwRgF.js +1 -0
  888. package/dist/showcase/assets/folder-open-CZ5Bq4lK.js +1 -0
  889. package/dist/showcase/assets/form-field-AWNJL9FM.js +1 -0
  890. package/dist/showcase/assets/form-sizing-C3UG5WKC.js +1 -0
  891. package/dist/showcase/assets/format-DUU7-42g.js +1 -0
  892. package/dist/showcase/assets/forms-CWJ3HBbk.js +915 -0
  893. package/dist/showcase/assets/funnel-vxNNph7w.js +1 -0
  894. package/dist/showcase/assets/generic-DlyFJDj6.js +1 -0
  895. package/dist/showcase/assets/getPseudoElementBounds-CibNto5h.js +1 -0
  896. package/dist/showcase/assets/gift-BjRHqTcQ.js +1 -0
  897. package/dist/showcase/assets/giftcard-cards-DcujCFff.js +85 -0
  898. package/dist/showcase/assets/git-branch-B7XnpQE0.js +1 -0
  899. package/dist/showcase/assets/global-search-CWvNfmpe.js +1 -0
  900. package/dist/showcase/assets/global-search-Ct7I1Xd2.js +215 -0
  901. package/dist/showcase/assets/globe-CHleXWd2.js +1 -0
  902. package/dist/showcase/assets/gradient-card-Bw4oJljh.js +58 -0
  903. package/dist/showcase/assets/hash-BVGqnm6_.js +1 -0
  904. package/dist/showcase/assets/header-CgApizpk.js +1 -0
  905. package/dist/showcase/assets/header-notifications-B2v1Mdri.js +1 -0
  906. package/dist/showcase/assets/heart-BwvHCA-d.js +1 -0
  907. package/dist/showcase/assets/hooks-A_AQLIRZ.js +217 -0
  908. package/dist/showcase/assets/house-opqNxOmP.js +1 -0
  909. package/dist/showcase/assets/icon-badge-CsG95J1Z.js +37 -0
  910. package/dist/showcase/assets/icon-badge-ognVhKWR.js +1 -0
  911. package/dist/showcase/assets/image-apDSlTAx.js +1 -0
  912. package/dist/showcase/assets/inbox-WrbeTKEw.js +1 -0
  913. package/dist/showcase/assets/index-CCxHwV7T.css +2 -0
  914. package/dist/showcase/assets/index-QESvAJrb.js +10 -0
  915. package/dist/showcase/assets/index.esm-BXmcbSs7.js +1 -0
  916. package/dist/showcase/assets/inertValue-DrANZiJk.js +1 -0
  917. package/dist/showcase/assets/info-C3G9KRCx.js +1 -0
  918. package/dist/showcase/assets/inline-stat-BnjUqzDM.js +15 -0
  919. package/dist/showcase/assets/inline-stat-CO01t7SJ.js +1 -0
  920. package/dist/showcase/assets/input-CBJy1dMs.js +1 -0
  921. package/dist/showcase/assets/input-group-CZyYSq4r.js +47 -0
  922. package/dist/showcase/assets/input-group-Dfqufdp4.js +1 -0
  923. package/dist/showcase/assets/input-yYoqWQQ7.js +1 -0
  924. package/dist/showcase/assets/inputs-Bhw_FGDY.js +155 -0
  925. package/dist/showcase/assets/installation-DnvS2ZUn.js +134 -0
  926. package/dist/showcase/assets/invoice-header-B9Ak8GXX.js +36 -0
  927. package/dist/showcase/assets/invoice-items-DY5zUZhE.js +36 -0
  928. package/dist/showcase/assets/invoice-mini-BAryECEH.js +14 -0
  929. package/dist/showcase/assets/invoice-table-BUvjee74.js +30 -0
  930. package/dist/showcase/assets/isSameDay-DVP1ae2V.js +1 -0
  931. package/dist/showcase/assets/isToday-CNAQB-p9.js +1 -0
  932. package/dist/showcase/assets/italic-CjQCLJci.js +1 -0
  933. package/dist/showcase/assets/item-BMSdEK3V.js +1 -0
  934. package/dist/showcase/assets/item-D1Jxrpia.js +1 -0
  935. package/dist/showcase/assets/item-DxPwk321.js +139 -0
  936. package/dist/showcase/assets/kanban-DXWCGieQ.js +188 -0
  937. package/dist/showcase/assets/key-round-DpuhXiJQ.js +1 -0
  938. package/dist/showcase/assets/label-D1wLK5nY.js +1 -0
  939. package/dist/showcase/assets/languages-CGYZVmbV.js +1 -0
  940. package/dist/showcase/assets/layers-DJZSVGAu.js +1 -0
  941. package/dist/showcase/assets/layout-app-shell-UX63nzTO.js +608 -0
  942. package/dist/showcase/assets/layout-auth-Bav5BBqp.js +790 -0
  943. package/dist/showcase/assets/layout-containers-DMHD2zdV.js +101 -0
  944. package/dist/showcase/assets/layout-header-CGesu_kM.js +203 -0
  945. package/dist/showcase/assets/layout-page-DHXu8SIv.js +314 -0
  946. package/dist/showcase/assets/layout-primitives-CokzGwd2.js +34 -0
  947. package/dist/showcase/assets/layout-sidebar-CLUYajcu.js +224 -0
  948. package/dist/showcase/assets/layout-users-DHUNAnFA.js +117 -0
  949. package/dist/showcase/assets/layout-workspace-y0v2FpDW.js +191 -0
  950. package/dist/showcase/assets/lib-g_kR7X9Z.js +1 -0
  951. package/dist/showcase/assets/list-checks-CXt8visd.js +1 -0
  952. package/dist/showcase/assets/lock-CpZ5kLUd.js +1 -0
  953. package/dist/showcase/assets/lock-keyhole-Cy2raRO6.js +1 -0
  954. package/dist/showcase/assets/mail-Cj6uT4TA.js +1 -0
  955. package/dist/showcase/assets/mail-check-Di70bdf6.js +1 -0
  956. package/dist/showcase/assets/map-DMXbG_04.js +124 -0
  957. package/dist/showcase/assets/map-pin-EKhu7vEj.js +1 -0
  958. package/dist/showcase/assets/media-library-Dnp9S0oW.js +699 -0
  959. package/dist/showcase/assets/mention-inline-suggestions-Bp-fVNYF.js +1 -0
  960. package/dist/showcase/assets/mentions-DNRk30XZ.js +138 -0
  961. package/dist/showcase/assets/menus-DFURb5VL.js +171 -0
  962. package/dist/showcase/assets/message-square-DG0qIsG_.js +1 -0
  963. package/dist/showcase/assets/metadata-list-BhlsEWYT.js +1 -0
  964. package/dist/showcase/assets/metadata-list-Cb1DQd4S.js +286 -0
  965. package/dist/showcase/assets/metric-BkzIsP8H.js +1 -0
  966. package/dist/showcase/assets/metric-bar-CU73nx89.js +1 -0
  967. package/dist/showcase/assets/metric-grid-BMLMbLjE.js +1 -0
  968. package/dist/showcase/assets/metric-trend-chip-Dutl5uZo.js +1 -0
  969. package/dist/showcase/assets/metrics-analytics-bar-AqG2oyIy.js +44 -0
  970. package/dist/showcase/assets/metrics-analytics-cards-CrFHmR2f.js +50 -0
  971. package/dist/showcase/assets/metrics-comparison-CY-DyLv7.js +76 -0
  972. package/dist/showcase/assets/metrics-heatmap-BmX_CkiP.js +27 -0
  973. package/dist/showcase/assets/metrics-inline-badge-C1IFjdJN.js +17 -0
  974. package/dist/showcase/assets/metrics-kpi-row-8Kbn034e.js +31 -0
  975. package/dist/showcase/assets/metrics-micro-grid-CodO02yA.js +42 -0
  976. package/dist/showcase/assets/metrics-overview-CdPqEAAG.js +192 -0
  977. package/dist/showcase/assets/metrics-stat-cards-Cw7UMWmb.js +54 -0
  978. package/dist/showcase/assets/minus-B1es6KJX.js +1 -0
  979. package/dist/showcase/assets/money-display-CFfUZLus.js +1 -0
  980. package/dist/showcase/assets/month-year-picker-ChVcYm9f.js +1 -0
  981. package/dist/showcase/assets/navigation-Boyt1q-1.js +231 -0
  982. package/dist/showcase/assets/navigation-CThYYxkL.js +90 -0
  983. package/dist/showcase/assets/navigation-extras-CxLc-Mqx.js +43 -0
  984. package/dist/showcase/assets/onboarding-checklist-C15gqmFc.js +119 -0
  985. package/dist/showcase/assets/overflow-tab-bar-B2Htn-Ft.js +1 -0
  986. package/dist/showcase/assets/overlays-CPZfp0nk.js +159 -0
  987. package/dist/showcase/assets/overlays-Cpj4akiw.js +408 -0
  988. package/dist/showcase/assets/overview-BB-Xbkff.js +184 -0
  989. package/dist/showcase/assets/package-DLn6nx-u.js +1 -0
  990. package/dist/showcase/assets/package-check-B0wyBUSU.js +1 -0
  991. package/dist/showcase/assets/page-BPFNsNh7.js +1 -0
  992. package/dist/showcase/assets/page-action-button-DMS8Vcmz.js +1 -0
  993. package/dist/showcase/assets/page-header-BGqE9hzO.js +1 -0
  994. package/dist/showcase/assets/pagination-Be6ynLCp.js +1 -0
  995. package/dist/showcase/assets/pagination-T4FmLNHn.js +42 -0
  996. package/dist/showcase/assets/paperclip-B_kxXzSN.js +1 -0
  997. package/dist/showcase/assets/password-input-qfQ5eIU4.js +1 -0
  998. package/dist/showcase/assets/pencil-DlDLApli.js +1 -0
  999. package/dist/showcase/assets/phone-D8tvvbSQ.js +1 -0
  1000. package/dist/showcase/assets/plus-BkhJjfUv.js +1 -0
  1001. package/dist/showcase/assets/popover-BsCx2XMI.js +1 -0
  1002. package/dist/showcase/assets/popover-Bu7aaPjE.js +1 -0
  1003. package/dist/showcase/assets/popover-menu-CD_JfEeq.js +1 -0
  1004. package/dist/showcase/assets/products-BzHX1ta0.js +423 -0
  1005. package/dist/showcase/assets/progress-CpW2ZGAy.js +18 -0
  1006. package/dist/showcase/assets/progress-jIJ_EIKE.js +1 -0
  1007. package/dist/showcase/assets/props-table-CCcohuyT.js +1 -0
  1008. package/dist/showcase/assets/props.generated-cO7HmIpY.json +41578 -0
  1009. package/dist/showcase/assets/quote-Bc9eHVKi.js +1 -0
  1010. package/dist/showcase/assets/react-sKtkuLrH.js +1 -0
  1011. package/dist/showcase/assets/receipt-B77_VWtt.js +1 -0
  1012. package/dist/showcase/assets/receipt-text-BlL_TJsS.js +1 -0
  1013. package/dist/showcase/assets/refinement-guide-BpzOvT_R.js +189 -0
  1014. package/dist/showcase/assets/refresh-cw-CELG4taF.js +1 -0
  1015. package/dist/showcase/assets/resolveValueLabel-LRTUaJTb.js +1 -0
  1016. package/dist/showcase/assets/resource-BT8_ck3n.js +1 -0
  1017. package/dist/showcase/assets/resource-C7J3yZp6.js +139 -0
  1018. package/dist/showcase/assets/resource-selector-card-Ay8ImvKg.js +43 -0
  1019. package/dist/showcase/assets/rich-text-editor-CdGVvtsm.js +143 -0
  1020. package/dist/showcase/assets/rich-text-editor-DVtTVuZ6.js +124 -0
  1021. package/dist/showcase/assets/rotate-ccw-MwEZ1b11.js +1 -0
  1022. package/dist/showcase/assets/route-CgBh1oKF.js +1 -0
  1023. package/dist/showcase/assets/save-BFsAGR7O.js +1 -0
  1024. package/dist/showcase/assets/schema-form-CaF-lBkN.js +327 -0
  1025. package/dist/showcase/assets/scroll-area-BkZULoZA.js +1 -0
  1026. package/dist/showcase/assets/scroll-area-CpDi_6FP.js +32 -0
  1027. package/dist/showcase/assets/section-D-N8Ze16.js +1 -0
  1028. package/dist/showcase/assets/select-C9Mfb_Gj.js +1 -0
  1029. package/dist/showcase/assets/select-ReMZs8K6.js +1 -0
  1030. package/dist/showcase/assets/send-C6PbwpHN.js +1 -0
  1031. package/dist/showcase/assets/separator-CywPSoE0.js +28 -0
  1032. package/dist/showcase/assets/separator-Ha9YxI2x.js +1 -0
  1033. package/dist/showcase/assets/settings-2-CVq5Uyv5.js +1 -0
  1034. package/dist/showcase/assets/settings-DkTHc0Ob.js +1 -0
  1035. package/dist/showcase/assets/sheet-k-P0gWlk.js +1 -0
  1036. package/dist/showcase/assets/shield-Cme7_JJR.js +1 -0
  1037. package/dist/showcase/assets/shield-alert-CxV0S5w0.js +1 -0
  1038. package/dist/showcase/assets/shield-check-BW_7p6Xf.js +1 -0
  1039. package/dist/showcase/assets/shopping-bag-CoR8AMYU.js +1 -0
  1040. package/dist/showcase/assets/showcase-m3FzbvoC.js +132 -0
  1041. package/dist/showcase/assets/sidebar-bz_FzvjM.js +1 -0
  1042. package/dist/showcase/assets/sidebar.context-BWMPnGn6.js +1 -0
  1043. package/dist/showcase/assets/skeleton-BJMnQDgf.js +29 -0
  1044. package/dist/showcase/assets/skeleton-DoWW5XZD.js +1 -0
  1045. package/dist/showcase/assets/slider-BH1Gtp_p.js +1 -0
  1046. package/dist/showcase/assets/smart-card-C6-idFYI.js +1 -0
  1047. package/dist/showcase/assets/sonner-CGZ3FC4U.js +22 -0
  1048. package/dist/showcase/assets/sortable.esm-CE0TA9V_.js +5 -0
  1049. package/dist/showcase/assets/sparkles-8yQFcmte.js +1 -0
  1050. package/dist/showcase/assets/spinner-BYUX0luk.js +30 -0
  1051. package/dist/showcase/assets/spinner-CNveVfOr.js +49 -0
  1052. package/dist/showcase/assets/spinner-CO8LjtjY.js +1 -0
  1053. package/dist/showcase/assets/square-pen-CWylvezY.js +1 -0
  1054. package/dist/showcase/assets/stacked-avatars-DiNA5OJK.js +1 -0
  1055. package/dist/showcase/assets/star-t53uwwyp.js +1 -0
  1056. package/dist/showcase/assets/startOfDay-BKFJecZ3.js +1 -0
  1057. package/dist/showcase/assets/styles-CwpnwrEQ.js +1 -0
  1058. package/dist/showcase/assets/suggestions-CvxZxsmc.js +126 -0
  1059. package/dist/showcase/assets/switch-CewkokYT.js +1 -0
  1060. package/dist/showcase/assets/switch-D-7uqDR8.js +1 -0
  1061. package/dist/showcase/assets/sync-DnBSRAwH.js +124 -0
  1062. package/dist/showcase/assets/table-3cUcSCBR.js +664 -0
  1063. package/dist/showcase/assets/table-actions-CrujG5R-.js +1 -0
  1064. package/dist/showcase/assets/table-ds5oNU0h.js +1 -0
  1065. package/dist/showcase/assets/tabs-C-hJfSn5.js +19 -0
  1066. package/dist/showcase/assets/tabs-GG911oaV.js +1 -0
  1067. package/dist/showcase/assets/tags-input-DBeIaeVn.js +1 -0
  1068. package/dist/showcase/assets/text-button-EZojp9Ye.js +1 -0
  1069. package/dist/showcase/assets/text-link-DcKeYjEX.js +1 -0
  1070. package/dist/showcase/assets/textarea-DgNgSl1g.js +1 -0
  1071. package/dist/showcase/assets/textarea-PXKZSiRa.js +1 -0
  1072. package/dist/showcase/assets/timelines-CaF_Ze8z.js +200 -0
  1073. package/dist/showcase/assets/toggle-group-D_iuhL1G.js +1 -0
  1074. package/dist/showcase/assets/toggles-BKaayRmE.js +71 -0
  1075. package/dist/showcase/assets/toggles-group-DRAksOw2.js +32 -0
  1076. package/dist/showcase/assets/tooltip-B_LnC5D2.js +31 -0
  1077. package/dist/showcase/assets/trash-2-DhUpICQq.js +1 -0
  1078. package/dist/showcase/assets/trending-up-Kfm5l65O.js +1 -0
  1079. package/dist/showcase/assets/truck-D6SGLjv1.js +1 -0
  1080. package/dist/showcase/assets/typography-qEz6MMn9.js +223 -0
  1081. package/dist/showcase/assets/ui-badge-BA334hdB.js +28 -0
  1082. package/dist/showcase/assets/ui-card-CjqUyGvB.js +30 -0
  1083. package/dist/showcase/assets/ui-table-cDgI6WMk.js +42 -0
  1084. package/dist/showcase/assets/upload-tray-BcA-7pqW.js +138 -0
  1085. package/dist/showcase/assets/use-form-field-state-CGGJFfWu.js +1 -0
  1086. package/dist/showcase/assets/use-layout-link-DIUWH-oo.js +1 -0
  1087. package/dist/showcase/assets/useAnchoredPopupScrollLock-BavpibMb.js +1 -0
  1088. package/dist/showcase/assets/useAriaLabelledBy-HDEJjv0f.js +1 -0
  1089. package/dist/showcase/assets/useCollapsiblePanel-CL0pCuxO.js +1 -0
  1090. package/dist/showcase/assets/useCompositeItem-LkMSD9DW.js +1 -0
  1091. package/dist/showcase/assets/useCompositeListItem-C_oLUvf8.js +1 -0
  1092. package/dist/showcase/assets/useControlled-BHUji6Sp.js +1 -0
  1093. package/dist/showcase/assets/useLabelableId-DDpjUdIO.js +1 -0
  1094. package/dist/showcase/assets/useOpenInteractionType-DQOSh-Eu.js +1 -0
  1095. package/dist/showcase/assets/useRender-CnmFaF3Y.js +1 -0
  1096. package/dist/showcase/assets/useTriggerFocusGuards-BPFrAxlp.js +1 -0
  1097. package/dist/showcase/assets/useValueChanged-lYlHqRM1.js +1 -0
  1098. package/dist/showcase/assets/user-DLuRcjl0.js +1 -0
  1099. package/dist/showcase/assets/user-plus-B1Pi7SNv.js +1 -0
  1100. package/dist/showcase/assets/users-DAlxvktS.js +1 -0
  1101. package/dist/showcase/assets/vendor-profile-ClJ6G6SO.js +37 -0
  1102. package/dist/showcase/assets/video-DxooIkh-.js +1 -0
  1103. package/dist/showcase/assets/wrench-BiwmotMF.js +1 -0
  1104. package/dist/showcase/assets/x-idpnOHil.js +1 -0
  1105. package/dist/showcase/assets/zap-a90eC6iO.js +1 -0
  1106. package/dist/showcase/index.html +3 -3
  1107. package/dist/style.css +1 -1
  1108. package/package.json +24 -23
  1109. package/scripts/install-skill.mjs +2 -0
  1110. package/scripts/metadata.json +67 -3
  1111. package/scripts/publish-theme.mjs +245 -0
  1112. package/src/App.css +10 -3
  1113. package/src/css/defaults.css +12 -0
  1114. package/src/css/themes/default.css +7 -0
  1115. package/src/css/themes/shadcn.default.css +144 -0
  1116. package/src/css/tokens/compat.css +46 -0
  1117. package/src/css/tokens/components.css +55 -0
  1118. package/src/css/tokens/foundation.css +90 -0
  1119. package/src/css/tokens/layout.css +44 -0
  1120. package/src/css/tokens/primitives.css +263 -0
  1121. package/src/css/tokens/states.css +58 -0
  1122. package/.agents/skills/component-library-rules/references/components/base__display.md +0 -627
  1123. package/.agents/skills/component-library-rules/references/components/base__empty-state.md +0 -310
  1124. package/.agents/skills/component-library-rules/references/components/base__frame.md +0 -235
  1125. package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +0 -430
  1126. package/.agents/skills/component-library-rules/references/components/composed__ai-new.md +0 -221
  1127. package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +0 -295
  1128. package/dist/_shared/accordion-Df1XrCDv.cjs +0 -2
  1129. package/dist/_shared/accordion-Df1XrCDv.cjs.map +0 -1
  1130. package/dist/_shared/accordion-Rzi9wEl6.js +0 -130
  1131. package/dist/_shared/accordion-Rzi9wEl6.js.map +0 -1
  1132. package/dist/_shared/action-menu-CrOJ63Q9.js +0 -96
  1133. package/dist/_shared/action-menu-CrOJ63Q9.js.map +0 -1
  1134. package/dist/_shared/action-menu-D9OowHKx.cjs +0 -2
  1135. package/dist/_shared/action-menu-D9OowHKx.cjs.map +0 -1
  1136. package/dist/_shared/ai-artifact--vEDQFvM.cjs +0 -3
  1137. package/dist/_shared/ai-artifact--vEDQFvM.cjs.map +0 -1
  1138. package/dist/_shared/ai-artifact-p45wDWWX.js +0 -1099
  1139. package/dist/_shared/ai-artifact-p45wDWWX.js.map +0 -1
  1140. package/dist/_shared/alert-CuIIKJC-.cjs +0 -2
  1141. package/dist/_shared/alert-CuIIKJC-.cjs.map +0 -1
  1142. package/dist/_shared/alert-k60OnTtb.js +0 -81
  1143. package/dist/_shared/alert-k60OnTtb.js.map +0 -1
  1144. package/dist/_shared/app-shell-DqDnnKT4.cjs +0 -2
  1145. package/dist/_shared/app-shell-DqDnnKT4.cjs.map +0 -1
  1146. package/dist/_shared/app-shell-w5h0vEKg.js +0 -69
  1147. package/dist/_shared/app-shell-w5h0vEKg.js.map +0 -1
  1148. package/dist/_shared/auth-1Fl_2u-c.js +0 -643
  1149. package/dist/_shared/auth-1Fl_2u-c.js.map +0 -1
  1150. package/dist/_shared/auth-CVDNwcge.cjs +0 -2
  1151. package/dist/_shared/auth-CVDNwcge.cjs.map +0 -1
  1152. package/dist/_shared/avatar-0spfQEHG.cjs +0 -2
  1153. package/dist/_shared/avatar-0spfQEHG.cjs.map +0 -1
  1154. package/dist/_shared/avatar-CBi4LGxy.js +0 -52
  1155. package/dist/_shared/avatar-CBi4LGxy.js.map +0 -1
  1156. package/dist/_shared/badge-A8wQRShC.js +0 -108
  1157. package/dist/_shared/badge-A8wQRShC.js.map +0 -1
  1158. package/dist/_shared/badge-D7A2LnSf.cjs +0 -2
  1159. package/dist/_shared/badge-D7A2LnSf.cjs.map +0 -1
  1160. package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs +0 -2
  1161. package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs.map +0 -1
  1162. package/dist/_shared/breadcrumbs-bJ-J0oCd.js +0 -111
  1163. package/dist/_shared/breadcrumbs-bJ-J0oCd.js.map +0 -1
  1164. package/dist/_shared/button-BGKY8UY0.js +0 -173
  1165. package/dist/_shared/button-BGKY8UY0.js.map +0 -1
  1166. package/dist/_shared/button-BI347RlM.cjs +0 -2
  1167. package/dist/_shared/button-BI347RlM.cjs.map +0 -1
  1168. package/dist/_shared/buttons-PL-TGJ32.js +0 -143
  1169. package/dist/_shared/buttons-PL-TGJ32.js.map +0 -1
  1170. package/dist/_shared/buttons-kVvSD_oI.cjs +0 -2
  1171. package/dist/_shared/buttons-kVvSD_oI.cjs.map +0 -1
  1172. package/dist/_shared/card-radio-group-Bna2uZs1.cjs +0 -2
  1173. package/dist/_shared/card-radio-group-Bna2uZs1.cjs.map +0 -1
  1174. package/dist/_shared/card-radio-group-D_CY1HRy.js +0 -158
  1175. package/dist/_shared/card-radio-group-D_CY1HRy.js.map +0 -1
  1176. package/dist/_shared/checkbox-CTqqawIT.js +0 -22
  1177. package/dist/_shared/checkbox-CTqqawIT.js.map +0 -1
  1178. package/dist/_shared/checkbox-D1n-nfLP.cjs +0 -2
  1179. package/dist/_shared/checkbox-D1n-nfLP.cjs.map +0 -1
  1180. package/dist/_shared/combobox-CEzH533Y.cjs +0 -2
  1181. package/dist/_shared/combobox-CEzH533Y.cjs.map +0 -1
  1182. package/dist/_shared/combobox-Dc4vaeGt.js +0 -927
  1183. package/dist/_shared/combobox-Dc4vaeGt.js.map +0 -1
  1184. package/dist/_shared/command-Bxe_FmGD.cjs +0 -2
  1185. package/dist/_shared/command-Bxe_FmGD.cjs.map +0 -1
  1186. package/dist/_shared/command-DwRnPIGs.js +0 -39
  1187. package/dist/_shared/command-DwRnPIGs.js.map +0 -1
  1188. package/dist/_shared/comments-BDnq4RPN.js +0 -952
  1189. package/dist/_shared/comments-BDnq4RPN.js.map +0 -1
  1190. package/dist/_shared/comments-C4djB-nG.cjs +0 -2
  1191. package/dist/_shared/comments-C4djB-nG.cjs.map +0 -1
  1192. package/dist/_shared/copyable-Bx4J7fuT.cjs +0 -2
  1193. package/dist/_shared/copyable-Bx4J7fuT.cjs.map +0 -1
  1194. package/dist/_shared/copyable-cfF4gZoT.js +0 -38
  1195. package/dist/_shared/copyable-cfF4gZoT.js.map +0 -1
  1196. package/dist/_shared/date-picker-Dl91BM3D.js +0 -1361
  1197. package/dist/_shared/date-picker-Dl91BM3D.js.map +0 -1
  1198. package/dist/_shared/date-picker-zFOqtmAS.cjs +0 -2
  1199. package/dist/_shared/date-picker-zFOqtmAS.cjs.map +0 -1
  1200. package/dist/_shared/date-pickers-BBydcIjN.cjs +0 -2
  1201. package/dist/_shared/date-pickers-BBydcIjN.cjs.map +0 -1
  1202. package/dist/_shared/date-pickers-D2OsgV4V.js +0 -330
  1203. package/dist/_shared/date-pickers-D2OsgV4V.js.map +0 -1
  1204. package/dist/_shared/display-AtPyyUZc.cjs +0 -2
  1205. package/dist/_shared/display-AtPyyUZc.cjs.map +0 -1
  1206. package/dist/_shared/display-CL69dmsv.js +0 -1471
  1207. package/dist/_shared/display-CL69dmsv.js.map +0 -1
  1208. package/dist/_shared/form-sizing-D74IS9KG.js +0 -21
  1209. package/dist/_shared/form-sizing-D74IS9KG.js.map +0 -1
  1210. package/dist/_shared/form-sizing-aVwVuF-w.cjs +0 -2
  1211. package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +0 -1
  1212. package/dist/_shared/forms-Bi5rUH3t.cjs +0 -2
  1213. package/dist/_shared/forms-Bi5rUH3t.cjs.map +0 -1
  1214. package/dist/_shared/forms-Yd0b-3MQ.js +0 -3556
  1215. package/dist/_shared/forms-Yd0b-3MQ.js.map +0 -1
  1216. package/dist/_shared/header-C4SvsbMn.cjs +0 -2
  1217. package/dist/_shared/header-C4SvsbMn.cjs.map +0 -1
  1218. package/dist/_shared/header-CcnW83Vs.js +0 -447
  1219. package/dist/_shared/header-CcnW83Vs.js.map +0 -1
  1220. package/dist/_shared/heading-0DYCOrgC.cjs +0 -2
  1221. package/dist/_shared/heading-0DYCOrgC.cjs.map +0 -1
  1222. package/dist/_shared/heading-HeP06nXG.js +0 -107
  1223. package/dist/_shared/heading-HeP06nXG.js.map +0 -1
  1224. package/dist/_shared/hooks-DsDGr8xz.cjs +0 -2
  1225. package/dist/_shared/hooks-DsDGr8xz.cjs.map +0 -1
  1226. package/dist/_shared/hooks-IEM3N4VG.js +0 -95
  1227. package/dist/_shared/hooks-IEM3N4VG.js.map +0 -1
  1228. package/dist/_shared/icon-badge-BAWl1oOe.cjs +0 -2
  1229. package/dist/_shared/icon-badge-BAWl1oOe.cjs.map +0 -1
  1230. package/dist/_shared/icon-badge-zTBVtgt9.js +0 -52
  1231. package/dist/_shared/icon-badge-zTBVtgt9.js.map +0 -1
  1232. package/dist/_shared/input-C7t-RHYq.js +0 -182
  1233. package/dist/_shared/input-C7t-RHYq.js.map +0 -1
  1234. package/dist/_shared/input-COMcb1WY.cjs +0 -2
  1235. package/dist/_shared/input-COMcb1WY.cjs.map +0 -1
  1236. package/dist/_shared/item-DAjqQhhj.js +0 -225
  1237. package/dist/_shared/item-DAjqQhhj.js.map +0 -1
  1238. package/dist/_shared/item-DoXXYgPm.cjs +0 -2
  1239. package/dist/_shared/item-DoXXYgPm.cjs.map +0 -1
  1240. package/dist/_shared/mentions-CqwT7pUL.cjs +0 -2
  1241. package/dist/_shared/mentions-CqwT7pUL.cjs.map +0 -1
  1242. package/dist/_shared/mentions-RxzSRAWE.js +0 -506
  1243. package/dist/_shared/mentions-RxzSRAWE.js.map +0 -1
  1244. package/dist/_shared/metadata-Ckcmar8d.js +0 -235
  1245. package/dist/_shared/metadata-Ckcmar8d.js.map +0 -1
  1246. package/dist/_shared/metadata-DamdYVZL.cjs +0 -2
  1247. package/dist/_shared/metadata-DamdYVZL.cjs.map +0 -1
  1248. package/dist/_shared/money-display-CFSMUtxS.cjs +0 -2
  1249. package/dist/_shared/money-display-CFSMUtxS.cjs.map +0 -1
  1250. package/dist/_shared/money-display-D4Z3P3f_.js +0 -198
  1251. package/dist/_shared/money-display-D4Z3P3f_.js.map +0 -1
  1252. package/dist/_shared/navigation-B-TE-HR-.cjs +0 -2
  1253. package/dist/_shared/navigation-B-TE-HR-.cjs.map +0 -1
  1254. package/dist/_shared/navigation-Cg0UqMDP.js +0 -424
  1255. package/dist/_shared/navigation-Cg0UqMDP.js.map +0 -1
  1256. package/dist/_shared/overlays-CJs_syAu.js +0 -648
  1257. package/dist/_shared/overlays-CJs_syAu.js.map +0 -1
  1258. package/dist/_shared/overlays-DWFEaAog.cjs +0 -2
  1259. package/dist/_shared/overlays-DWFEaAog.cjs.map +0 -1
  1260. package/dist/_shared/page-Bl_eSGLh.js +0 -262
  1261. package/dist/_shared/page-Bl_eSGLh.js.map +0 -1
  1262. package/dist/_shared/page-DTEqSyEK.cjs +0 -2
  1263. package/dist/_shared/page-DTEqSyEK.cjs.map +0 -1
  1264. package/dist/_shared/popover-CaHvG8Vj.cjs +0 -2
  1265. package/dist/_shared/popover-CaHvG8Vj.cjs.map +0 -1
  1266. package/dist/_shared/popover-L37RqoRO.js +0 -83
  1267. package/dist/_shared/popover-L37RqoRO.js.map +0 -1
  1268. package/dist/_shared/popover-menu-Fz-bvWJF.cjs +0 -2
  1269. package/dist/_shared/popover-menu-Fz-bvWJF.cjs.map +0 -1
  1270. package/dist/_shared/popover-menu-bKQatoYF.js +0 -93
  1271. package/dist/_shared/popover-menu-bKQatoYF.js.map +0 -1
  1272. package/dist/_shared/resource-Bb7dj-aj.cjs +0 -2
  1273. package/dist/_shared/resource-Bb7dj-aj.cjs.map +0 -1
  1274. package/dist/_shared/resource-DljsYA7W.js +0 -243
  1275. package/dist/_shared/resource-DljsYA7W.js.map +0 -1
  1276. package/dist/_shared/rich-text-editor-B2VqNi6j.js +0 -620
  1277. package/dist/_shared/rich-text-editor-B2VqNi6j.js.map +0 -1
  1278. package/dist/_shared/rich-text-editor-ChE-pI3N.cjs +0 -2
  1279. package/dist/_shared/rich-text-editor-ChE-pI3N.cjs.map +0 -1
  1280. package/dist/_shared/scroll-area-BH5CPQh4.js +0 -41
  1281. package/dist/_shared/scroll-area-BH5CPQh4.js.map +0 -1
  1282. package/dist/_shared/scroll-area-u46BOVcC.cjs +0 -2
  1283. package/dist/_shared/scroll-area-u46BOVcC.cjs.map +0 -1
  1284. package/dist/_shared/settings-BtNkFHl3.cjs +0 -2
  1285. package/dist/_shared/settings-BtNkFHl3.cjs.map +0 -1
  1286. package/dist/_shared/settings-Do6SuM-H.js +0 -143
  1287. package/dist/_shared/settings-Do6SuM-H.js.map +0 -1
  1288. package/dist/_shared/sidebar-BGpi9K_Q.js +0 -389
  1289. package/dist/_shared/sidebar-BGpi9K_Q.js.map +0 -1
  1290. package/dist/_shared/sidebar-BhcdQ9e9.cjs +0 -2
  1291. package/dist/_shared/sidebar-BhcdQ9e9.cjs.map +0 -1
  1292. package/dist/_shared/sidebar-CC3lcvNX.cjs +0 -2
  1293. package/dist/_shared/sidebar-CC3lcvNX.cjs.map +0 -1
  1294. package/dist/_shared/sidebar-CMoxtuSw.js +0 -538
  1295. package/dist/_shared/sidebar-CMoxtuSw.js.map +0 -1
  1296. package/dist/_shared/smart-card-B6m7tmt0.cjs +0 -2
  1297. package/dist/_shared/smart-card-B6m7tmt0.cjs.map +0 -1
  1298. package/dist/_shared/smart-card-thLb85Ih.js +0 -361
  1299. package/dist/_shared/smart-card-thLb85Ih.js.map +0 -1
  1300. package/dist/_shared/spinner-BfAbXTQ7.js +0 -67
  1301. package/dist/_shared/spinner-BfAbXTQ7.js.map +0 -1
  1302. package/dist/_shared/spinner-DWn3x9Tl.cjs +0 -2
  1303. package/dist/_shared/spinner-DWn3x9Tl.cjs.map +0 -1
  1304. package/dist/_shared/table-BgpL5Yt8.cjs +0 -2
  1305. package/dist/_shared/table-BgpL5Yt8.cjs.map +0 -1
  1306. package/dist/_shared/table-Ct3nl0lV.js +0 -1381
  1307. package/dist/_shared/table-Ct3nl0lV.js.map +0 -1
  1308. package/dist/_shared/textarea-C4SOrh0z.cjs +0 -2
  1309. package/dist/_shared/textarea-C4SOrh0z.cjs.map +0 -1
  1310. package/dist/_shared/textarea-CsMkelmp.js +0 -119
  1311. package/dist/_shared/textarea-CsMkelmp.js.map +0 -1
  1312. package/dist/_shared/typography-Bzsl7aTu.cjs +0 -2
  1313. package/dist/_shared/typography-Bzsl7aTu.cjs.map +0 -1
  1314. package/dist/_shared/typography-CdxyWB1T.js +0 -102
  1315. package/dist/_shared/typography-CdxyWB1T.js.map +0 -1
  1316. package/dist/_shared/ui-provider-BF4m2cR0.cjs +0 -2
  1317. package/dist/_shared/ui-provider-BF4m2cR0.cjs.map +0 -1
  1318. package/dist/_shared/ui-provider-C8Ot88lS.js +0 -85
  1319. package/dist/_shared/ui-provider-C8Ot88lS.js.map +0 -1
  1320. package/dist/_shared/workspace-BzTFBkmd.cjs +0 -2
  1321. package/dist/_shared/workspace-BzTFBkmd.cjs.map +0 -1
  1322. package/dist/_shared/workspace-CvUYln5V.js +0 -357
  1323. package/dist/_shared/workspace-CvUYln5V.js.map +0 -1
  1324. package/dist/components/base/data-view/data-view.d.ts.map +0 -1
  1325. package/dist/components/base/data-view/data-view.strings.d.ts.map +0 -1
  1326. package/dist/components/base/data-view/data-view.types.d.ts.map +0 -1
  1327. package/dist/components/base/data-view/index.cjs +0 -2
  1328. package/dist/components/base/data-view/index.cjs.map +0 -1
  1329. package/dist/components/base/data-view/index.d.ts.map +0 -1
  1330. package/dist/components/base/data-view/index.js +0 -146
  1331. package/dist/components/base/data-view/index.js.map +0 -1
  1332. package/dist/components/base/display/empty-state/empty-state.d.ts.map +0 -1
  1333. package/dist/components/base/display/empty-state/empty-state.strings.d.ts.map +0 -1
  1334. package/dist/components/base/display/empty-state/empty-state.types.d.ts +0 -85
  1335. package/dist/components/base/display/empty-state/empty-state.types.d.ts.map +0 -1
  1336. package/dist/components/base/display/empty-state/index.d.ts.map +0 -1
  1337. package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts.map +0 -1
  1338. package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts.map +0 -1
  1339. package/dist/components/base/display/empty-state/partials/illustrations/index.d.ts.map +0 -1
  1340. package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts.map +0 -1
  1341. package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts.map +0 -1
  1342. package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts.map +0 -1
  1343. package/dist/components/base/display/fields/email-display.d.ts +0 -22
  1344. package/dist/components/base/display/fields/email-display.d.ts.map +0 -1
  1345. package/dist/components/base/display/fields/index.d.ts.map +0 -1
  1346. package/dist/components/base/display/fields/phone-display.d.ts +0 -22
  1347. package/dist/components/base/display/fields/phone-display.d.ts.map +0 -1
  1348. package/dist/components/base/display/fields/url-display.d.ts +0 -28
  1349. package/dist/components/base/display/fields/url-display.d.ts.map +0 -1
  1350. package/dist/components/base/display/inline-stat/index.d.ts.map +0 -1
  1351. package/dist/components/base/display/inline-stat/inline-stat.d.ts.map +0 -1
  1352. package/dist/components/base/display/metadata/index.cjs +0 -1
  1353. package/dist/components/base/display/metadata/index.d.ts.map +0 -1
  1354. package/dist/components/base/display/metadata/index.js +0 -2
  1355. package/dist/components/base/display/metadata/metadata-list.d.ts.map +0 -1
  1356. package/dist/components/base/display/metadata/metadata-list.strings.d.ts.map +0 -1
  1357. package/dist/components/base/display/numeric-value/index.d.ts.map +0 -1
  1358. package/dist/components/base/display/numeric-value/numeric-value.d.ts.map +0 -1
  1359. package/dist/components/base/display/section-header/index.d.ts.map +0 -1
  1360. package/dist/components/base/display/section-header/section-header.d.ts.map +0 -1
  1361. package/dist/components/base/display/user-cell/index.d.ts.map +0 -1
  1362. package/dist/components/base/display/user-cell/user-cell.d.ts +0 -19
  1363. package/dist/components/base/display/user-cell/user-cell.d.ts.map +0 -1
  1364. package/dist/components/base/frame/frame.d.ts +0 -24
  1365. package/dist/components/base/frame/frame.d.ts.map +0 -1
  1366. package/dist/components/base/frame/index.cjs +0 -2
  1367. package/dist/components/base/frame/index.cjs.map +0 -1
  1368. package/dist/components/base/frame/index.d.ts +0 -2
  1369. package/dist/components/base/frame/index.d.ts.map +0 -1
  1370. package/dist/components/base/frame/index.js +0 -164
  1371. package/dist/components/base/frame/index.js.map +0 -1
  1372. package/dist/components/composed/data-display/index.cjs.map +0 -1
  1373. package/dist/components/composed/data-display/index.js.map +0 -1
  1374. package/dist/components/layout/resource/index.cjs +0 -1
  1375. package/dist/components/layout/resource/index.d.ts.map +0 -1
  1376. package/dist/components/layout/resource/index.js +0 -2
  1377. package/dist/components/layout/resource/resource.d.ts.map +0 -1
  1378. package/dist/components/layout/resource/resource.types.d.ts +0 -86
  1379. package/dist/components/layout/resource/resource.types.d.ts.map +0 -1
  1380. package/dist/showcase/assets/AreaChart-CPs34Emq.js +0 -6
  1381. package/dist/showcase/assets/CSPContext-B11tftuK.js +0 -1
  1382. package/dist/showcase/assets/CompositeItem-CRBdF4lY.js +0 -1
  1383. package/dist/showcase/assets/CompositeRoot-BJL04x4e.js +0 -1
  1384. package/dist/showcase/assets/DialogTrigger-DLTfNVyT.js +0 -1
  1385. package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +0 -1
  1386. package/dist/showcase/assets/LabelableContext-DqxJotB_.js +0 -1
  1387. package/dist/showcase/assets/PreviewLayout-DQIZaXaO.js +0 -1
  1388. package/dist/showcase/assets/RadioGroup-Bd_Zncc1.js +0 -1
  1389. package/dist/showcase/assets/Separator-BP98bGSM.js +0 -1
  1390. package/dist/showcase/assets/ToolbarRootContext-CHQj8-IW.js +0 -1
  1391. package/dist/showcase/assets/accordion-C-grh_FX.js +0 -171
  1392. package/dist/showcase/assets/accordion-variants-xiD_mqaf.js +0 -1
  1393. package/dist/showcase/assets/action-menu-BkBav9jX.js +0 -1
  1394. package/dist/showcase/assets/activities-DWhVEoyf.js +0 -501
  1395. package/dist/showcase/assets/activities-feed-card-BW5nKGmZ.js +0 -1
  1396. package/dist/showcase/assets/activity-poGMMgYW.js +0 -1
  1397. package/dist/showcase/assets/admin-Dd5rNbt8.js +0 -140
  1398. package/dist/showcase/assets/ai-B-HxItKA.js +0 -41
  1399. package/dist/showcase/assets/ai-artifact-CakosBY2.js +0 -2
  1400. package/dist/showcase/assets/ai-chat-DdxooReQ.js +0 -568
  1401. package/dist/showcase/assets/ai-elements-D1Vv9_Tw.js +0 -387
  1402. package/dist/showcase/assets/ai-new-nIwh-IOk.js +0 -167
  1403. package/dist/showcase/assets/ai-tool-call-D_D0wP5v.js +0 -1
  1404. package/dist/showcase/assets/alert-BUcCtIUZ.js +0 -1
  1405. package/dist/showcase/assets/alert-Dia0s7JO.js +0 -62
  1406. package/dist/showcase/assets/alert-T1jitthq.js +0 -93
  1407. package/dist/showcase/assets/api-key-list-BH7hCegB.js +0 -1
  1408. package/dist/showcase/assets/api-key-list-DGw5v3TM.js +0 -73
  1409. package/dist/showcase/assets/app-sidebar-C9tjHr7T.js +0 -1
  1410. package/dist/showcase/assets/arrow-down-B6kyPDb5.js +0 -1
  1411. package/dist/showcase/assets/arrow-left-D0CtgCZo.js +0 -1
  1412. package/dist/showcase/assets/arrow-right-KBaOzj0x.js +0 -1
  1413. package/dist/showcase/assets/arrow-up-C4Mo45qq.js +0 -1
  1414. package/dist/showcase/assets/arrow-up-right-DP1T-yaT.js +0 -1
  1415. package/dist/showcase/assets/avatar-D7SDbnVK.js +0 -57
  1416. package/dist/showcase/assets/avatar-Dk78XyHT.js +0 -1
  1417. package/dist/showcase/assets/badge-BynPmAU-.js +0 -28
  1418. package/dist/showcase/assets/badge-check-BLKxMna6.js +0 -1
  1419. package/dist/showcase/assets/bell-YYeVQNAQ.js +0 -1
  1420. package/dist/showcase/assets/bot-DW1y5yQ-.js +0 -1
  1421. package/dist/showcase/assets/box-xRYm3qua.js +0 -1
  1422. package/dist/showcase/assets/brain-D_5EG0Lz.js +0 -1
  1423. package/dist/showcase/assets/brand-Dyp6oyOk.js +0 -36
  1424. package/dist/showcase/assets/breadcrumb-DXvRsHCJ.js +0 -52
  1425. package/dist/showcase/assets/breadcrumb-IsBRcWTe.js +0 -1
  1426. package/dist/showcase/assets/breadcrumbs-BU7Rgcpu.js +0 -1
  1427. package/dist/showcase/assets/briefcase-DNJAkTSQ.js +0 -1
  1428. package/dist/showcase/assets/building-2-ew23uhTO.js +0 -1
  1429. package/dist/showcase/assets/button-Vw1Oyu_k.js +0 -44
  1430. package/dist/showcase/assets/button-group-B-jDeq6X.js +0 -1
  1431. package/dist/showcase/assets/buttons-C51ePl4d.js +0 -270
  1432. package/dist/showcase/assets/calendar-B5HmDXFy.js +0 -16
  1433. package/dist/showcase/assets/calendar-BcfonDWf.js +0 -1
  1434. package/dist/showcase/assets/calendar-C30zoOBE.js +0 -1
  1435. package/dist/showcase/assets/calendar-days-RYOuU9Cg.js +0 -1
  1436. package/dist/showcase/assets/camera-CyHnOpqm.js +0 -1
  1437. package/dist/showcase/assets/card-Btuv-VxD.js +0 -188
  1438. package/dist/showcase/assets/card-BvOjmZEl.js +0 -1
  1439. package/dist/showcase/assets/card-primitives-FJQ8zNnk.js +0 -1
  1440. package/dist/showcase/assets/card-radio-group-CEX1QGZc.js +0 -1
  1441. package/dist/showcase/assets/cards-CL6XfZ22.js +0 -328
  1442. package/dist/showcase/assets/carousel-D9G8bQhs.js +0 -449
  1443. package/dist/showcase/assets/cell-renderers-CFw3ElYS.js +0 -1
  1444. package/dist/showcase/assets/chart-CXAM6h1e.js +0 -358
  1445. package/dist/showcase/assets/chart-column-BAuLvocu.js +0 -1
  1446. package/dist/showcase/assets/checkbox-Bu3lf4gm.js +0 -1
  1447. package/dist/showcase/assets/chevron-down-BbbFJsFU.js +0 -1
  1448. package/dist/showcase/assets/chevron-left-CmperXCk.js +0 -1
  1449. package/dist/showcase/assets/chevron-right-0nQcAzMY.js +0 -1
  1450. package/dist/showcase/assets/chevron-up-BXSFzrxh.js +0 -1
  1451. package/dist/showcase/assets/chevrons-up-down-lvrM2T-O.js +0 -1
  1452. package/dist/showcase/assets/circle-DswWOvJq.js +0 -1
  1453. package/dist/showcase/assets/circle-alert-DM8Q0Da0.js +0 -1
  1454. package/dist/showcase/assets/circle-check-BYi8zv0a.js +0 -1
  1455. package/dist/showcase/assets/circle-check-big-WtxiRvrB.js +0 -1
  1456. package/dist/showcase/assets/circle-dot-MfYw-Dij.js +0 -1
  1457. package/dist/showcase/assets/circle-question-mark-CbXDG7RP.js +0 -1
  1458. package/dist/showcase/assets/circle-x-DeZby2HN.js +0 -1
  1459. package/dist/showcase/assets/clock-3-BxradwSg.js +0 -1
  1460. package/dist/showcase/assets/clock-BBX3LCxu.js +0 -1
  1461. package/dist/showcase/assets/code-xml-ldsBhjwS.js +0 -1
  1462. package/dist/showcase/assets/collapsible-COxB1q4f.js +0 -1
  1463. package/dist/showcase/assets/collapsible-D8iHSi7O.js +0 -27
  1464. package/dist/showcase/assets/combobox-gNdpv0PU.js +0 -726
  1465. package/dist/showcase/assets/command-BNVn6pYm.js +0 -1
  1466. package/dist/showcase/assets/command-Bwp2eLDF.js +0 -1
  1467. package/dist/showcase/assets/comment-composer-eU5HG1ZD.js +0 -1
  1468. package/dist/showcase/assets/comment-item-AKJEHLvt.js +0 -1
  1469. package/dist/showcase/assets/comments-hcLJicNU.js +0 -357
  1470. package/dist/showcase/assets/commerce-C_RgOVxU.js +0 -79
  1471. package/dist/showcase/assets/commerce-extras-CVVnDyB5.js +0 -189
  1472. package/dist/showcase/assets/composite-BW91WkOo.js +0 -1
  1473. package/dist/showcase/assets/contact-card-CE82BDxj.js +0 -65
  1474. package/dist/showcase/assets/content-container-Cc8Vv5Wp.js +0 -1
  1475. package/dist/showcase/assets/copyable-CD9f6sxk.js +0 -96
  1476. package/dist/showcase/assets/copyable-DRvJ9iOu.js +0 -1
  1477. package/dist/showcase/assets/course-card-DYzULN2A.js +0 -77
  1478. package/dist/showcase/assets/cpu-Cc__BewW.js +0 -1
  1479. package/dist/showcase/assets/credit-card-CoIW8_5L.js +0 -1
  1480. package/dist/showcase/assets/currency-DEKUvlFU.js +0 -149
  1481. package/dist/showcase/assets/dark-surfaces-D5WXaLLj.js +0 -90
  1482. package/dist/showcase/assets/database-C8o4g1ov.js +0 -1
  1483. package/dist/showcase/assets/date-block-Aw2riL52.js +0 -1
  1484. package/dist/showcase/assets/date-picker-BrBCLxZ8.js +0 -1
  1485. package/dist/showcase/assets/date-pickers-B84_YAGT.js +0 -73
  1486. package/dist/showcase/assets/dense-info-BaI61NnP.js +0 -106
  1487. package/dist/showcase/assets/dialog-CfKGB1qy.js +0 -1
  1488. package/dist/showcase/assets/dialog-DpfYwJPk.js +0 -1
  1489. package/dist/showcase/assets/display-ZDXpxNSP.js +0 -403
  1490. package/dist/showcase/assets/dist-CnonIdcR.js +0 -1
  1491. package/dist/showcase/assets/dist-DRkwLUFP.js +0 -45
  1492. package/dist/showcase/assets/dollar-sign-BTuul0J-.js +0 -1
  1493. package/dist/showcase/assets/download-Nn6XkM9l.js +0 -1
  1494. package/dist/showcase/assets/dropdown-menu-CrcweCup.js +0 -1
  1495. package/dist/showcase/assets/dropzone-MajEhAfA.js +0 -1
  1496. package/dist/showcase/assets/earth-Cv_-EtPW.js +0 -1
  1497. package/dist/showcase/assets/ellipsis-D0y6rUzm.js +0 -1
  1498. package/dist/showcase/assets/ellipsis-vertical-B6ICYsU2.js +0 -1
  1499. package/dist/showcase/assets/empty-CWtvDL2Z.js +0 -1
  1500. package/dist/showcase/assets/empty-item-CBdSL5K4.js +0 -49
  1501. package/dist/showcase/assets/empty-state-DpAXXKE_.js +0 -1
  1502. package/dist/showcase/assets/empty-state-x7W66Jff.js +0 -188
  1503. package/dist/showcase/assets/enhanced-activities-BgQBDjph.js +0 -361
  1504. package/dist/showcase/assets/enhanced-combobox-BT-d7sfw.js +0 -1
  1505. package/dist/showcase/assets/esm-CAF_uoYd.js +0 -2
  1506. package/dist/showcase/assets/event-calendar-Bl3N30L5.js +0 -138
  1507. package/dist/showcase/assets/event-log-BI24HOvx.js +0 -330
  1508. package/dist/showcase/assets/example-CbMg22fx.js +0 -1
  1509. package/dist/showcase/assets/external-link-C4QW5KPr.js +0 -1
  1510. package/dist/showcase/assets/eye-rvb4fYw0.js +0 -1
  1511. package/dist/showcase/assets/feature-announcement-CChQvOnH.js +0 -34
  1512. package/dist/showcase/assets/file-GOMuLez7.js +0 -1
  1513. package/dist/showcase/assets/file-text-B21ZcL9w.js +0 -1
  1514. package/dist/showcase/assets/filters-Crp5EI1q.js +0 -139
  1515. package/dist/showcase/assets/flag-D1iXMqPC.js +0 -1
  1516. package/dist/showcase/assets/folder-open-CjZE_PS8.js +0 -1
  1517. package/dist/showcase/assets/form-field-Dtn_NArM.js +0 -1
  1518. package/dist/showcase/assets/form-sizing-DHUDpiPA.js +0 -1
  1519. package/dist/showcase/assets/format-Cu09wP-k.js +0 -1
  1520. package/dist/showcase/assets/forms-noSArwvn.js +0 -911
  1521. package/dist/showcase/assets/frame-2DJdBXkw.js +0 -167
  1522. package/dist/showcase/assets/generic-BH5YLC_H.js +0 -1
  1523. package/dist/showcase/assets/getPseudoElementBounds-DxlN6Yut.js +0 -1
  1524. package/dist/showcase/assets/gift-DBIsZsVg.js +0 -1
  1525. package/dist/showcase/assets/giftcard-cards-B3ffDDjK.js +0 -85
  1526. package/dist/showcase/assets/git-branch-6eIv9W2g.js +0 -1
  1527. package/dist/showcase/assets/global-search-BelZn8mj.js +0 -215
  1528. package/dist/showcase/assets/global-search-DSMNBBiZ.js +0 -1
  1529. package/dist/showcase/assets/globe-B_Lqx3uz.js +0 -1
  1530. package/dist/showcase/assets/gradient-card-D_2eaE6O.js +0 -58
  1531. package/dist/showcase/assets/hash-BC0RnYwr.js +0 -1
  1532. package/dist/showcase/assets/header-CMjgUhtM.js +0 -1
  1533. package/dist/showcase/assets/header-notifications-fOFoqfCR.js +0 -1
  1534. package/dist/showcase/assets/heart-BM6yPMXn.js +0 -1
  1535. package/dist/showcase/assets/house-CnsMNKdQ.js +0 -1
  1536. package/dist/showcase/assets/icon-badge-IP9B3lQm.js +0 -1
  1537. package/dist/showcase/assets/image-B5jt_w43.js +0 -1
  1538. package/dist/showcase/assets/inbox-BcbV9uGN.js +0 -1
  1539. package/dist/showcase/assets/index-Bn8k0P7-.css +0 -2
  1540. package/dist/showcase/assets/index-DNH0y0r-.js +0 -10
  1541. package/dist/showcase/assets/index.esm-Ducg7a0P.js +0 -1
  1542. package/dist/showcase/assets/inertValue-B82SGILi.js +0 -1
  1543. package/dist/showcase/assets/info-DO5VmDSw.js +0 -1
  1544. package/dist/showcase/assets/inline-stat-B2s_ozrX.js +0 -1
  1545. package/dist/showcase/assets/input-BCxdburb.js +0 -1
  1546. package/dist/showcase/assets/input-DcQuALxy.js +0 -1
  1547. package/dist/showcase/assets/input-group-DZJrOGbm.js +0 -1
  1548. package/dist/showcase/assets/input-group-PwfoPR94.js +0 -47
  1549. package/dist/showcase/assets/inputs-DetnUcEp.js +0 -155
  1550. package/dist/showcase/assets/invoice-header-BMWL_9sW.js +0 -36
  1551. package/dist/showcase/assets/invoice-items-DLEQR54f.js +0 -36
  1552. package/dist/showcase/assets/invoice-mini-BxO8W_p2.js +0 -14
  1553. package/dist/showcase/assets/invoice-table-ClMTdfvZ.js +0 -30
  1554. package/dist/showcase/assets/isSameDay-B9x5Mpln.js +0 -1
  1555. package/dist/showcase/assets/isToday-CT4NGB5x.js +0 -1
  1556. package/dist/showcase/assets/italic-BiQv-7DA.js +0 -1
  1557. package/dist/showcase/assets/item-CdgzxWcL.js +0 -1
  1558. package/dist/showcase/assets/item-JreKWzkR.js +0 -134
  1559. package/dist/showcase/assets/item-a8FCQMvC.js +0 -1
  1560. package/dist/showcase/assets/kanban-CekpGtlO.js +0 -186
  1561. package/dist/showcase/assets/key-round-CpIUGlhG.js +0 -1
  1562. package/dist/showcase/assets/label-BE1d_Rxi.js +0 -1
  1563. package/dist/showcase/assets/languages-DaFWrOam.js +0 -1
  1564. package/dist/showcase/assets/layers-DDIuTz4-.js +0 -1
  1565. package/dist/showcase/assets/layout-app-shell-BkqOwNe9.js +0 -608
  1566. package/dist/showcase/assets/layout-auth-Bng_0NM0.js +0 -754
  1567. package/dist/showcase/assets/layout-containers-Bk_jSDWd.js +0 -101
  1568. package/dist/showcase/assets/layout-header-CuJVU1Rx.js +0 -203
  1569. package/dist/showcase/assets/layout-page-DHOPox5Z.js +0 -278
  1570. package/dist/showcase/assets/layout-primitives-BnIgANs6.js +0 -34
  1571. package/dist/showcase/assets/layout-sidebar-BUOjQm9-.js +0 -224
  1572. package/dist/showcase/assets/layout-users-DFlJQAuB.js +0 -117
  1573. package/dist/showcase/assets/layout-workspace-Cq63UWwT.js +0 -183
  1574. package/dist/showcase/assets/lib-DMGme4uo.js +0 -1
  1575. package/dist/showcase/assets/lock-DTD3z5Vh.js +0 -1
  1576. package/dist/showcase/assets/lock-keyhole-Bbs1Ry2S.js +0 -1
  1577. package/dist/showcase/assets/mail-DAa8myka.js +0 -1
  1578. package/dist/showcase/assets/mail-check-DrmYfqQb.js +0 -1
  1579. package/dist/showcase/assets/map-DfYPJKDx.js +0 -124
  1580. package/dist/showcase/assets/map-pin-Cf_uffQY.js +0 -1
  1581. package/dist/showcase/assets/media-library-Duyf6M0c.js +0 -695
  1582. package/dist/showcase/assets/mention-inline-suggestions-tOlG56Jr.js +0 -1
  1583. package/dist/showcase/assets/mentions-LbZlN995.js +0 -138
  1584. package/dist/showcase/assets/menus-Cs95R125.js +0 -165
  1585. package/dist/showcase/assets/message-square-CjaeUwPc.js +0 -1
  1586. package/dist/showcase/assets/metadata-list-Bcy5s1_q.js +0 -1
  1587. package/dist/showcase/assets/metadata-list-C9L63gMM2.js +0 -288
  1588. package/dist/showcase/assets/metric-D8bF87C1.js +0 -1
  1589. package/dist/showcase/assets/metric-bar-DQF1jEsY.js +0 -1
  1590. package/dist/showcase/assets/metric-grid-DJZjbFrm.js +0 -1
  1591. package/dist/showcase/assets/metric-trend-chip-C9YeKxwe.js +0 -1
  1592. package/dist/showcase/assets/metrics-analytics-bar-CfGjnKEG.js +0 -44
  1593. package/dist/showcase/assets/metrics-analytics-cards-C4R2q2ia.js +0 -50
  1594. package/dist/showcase/assets/metrics-comparison-B2FZ-rUG.js +0 -76
  1595. package/dist/showcase/assets/metrics-heatmap-BS4EafAM.js +0 -27
  1596. package/dist/showcase/assets/metrics-inline-badge-CyWA0Plw.js +0 -17
  1597. package/dist/showcase/assets/metrics-kpi-row-CH_KTuo2.js +0 -31
  1598. package/dist/showcase/assets/metrics-micro-grid-Dw1rbkBU.js +0 -42
  1599. package/dist/showcase/assets/metrics-overview-BuLSn0GC.js +0 -192
  1600. package/dist/showcase/assets/metrics-stat-cards-Zo4F0-y4.js +0 -54
  1601. package/dist/showcase/assets/minus-COUx_vHQ.js +0 -1
  1602. package/dist/showcase/assets/money-display-prumQLQ2.js +0 -1
  1603. package/dist/showcase/assets/month-year-picker-BDTiuGOD.js +0 -1
  1604. package/dist/showcase/assets/navigation-Bf_sgFei.js +0 -90
  1605. package/dist/showcase/assets/navigation-Dnqq0un0.js +0 -230
  1606. package/dist/showcase/assets/navigation-extras-ydwfzYfj.js +0 -43
  1607. package/dist/showcase/assets/onboarding-checklist-DBLaUqhZ.js +0 -119
  1608. package/dist/showcase/assets/overflow-tab-bar-UXs-T5Fq.js +0 -1
  1609. package/dist/showcase/assets/overlays-C1ET_VvE.js +0 -408
  1610. package/dist/showcase/assets/overlays-dMd0EOT1.js +0 -159
  1611. package/dist/showcase/assets/package-C9EnWNEP.js +0 -1
  1612. package/dist/showcase/assets/package-check-BGT72daQ.js +0 -1
  1613. package/dist/showcase/assets/page-action-button-8faHdFOD.js +0 -1
  1614. package/dist/showcase/assets/page-header-DoZnb9z9.js +0 -1
  1615. package/dist/showcase/assets/pagination-BJ3wQQtL.js +0 -42
  1616. package/dist/showcase/assets/pagination-DJnga08n.js +0 -1
  1617. package/dist/showcase/assets/paperclip-DsQ_IPLp.js +0 -1
  1618. package/dist/showcase/assets/password-input-CLxvZdDC.js +0 -1
  1619. package/dist/showcase/assets/pencil-37DzPmX5.js +0 -1
  1620. package/dist/showcase/assets/phone-CLDh9lYU.js +0 -1
  1621. package/dist/showcase/assets/plus-PKSdX45c.js +0 -1
  1622. package/dist/showcase/assets/popover-BWbBoxN0.js +0 -1
  1623. package/dist/showcase/assets/popover-DoEhmJ7G.js +0 -1
  1624. package/dist/showcase/assets/popover-menu-wt8kWbr1.js +0 -1
  1625. package/dist/showcase/assets/products-Bvl2zRfb.js +0 -407
  1626. package/dist/showcase/assets/progress-BeusdG_D.js +0 -18
  1627. package/dist/showcase/assets/progress-CQr08MPz.js +0 -1
  1628. package/dist/showcase/assets/props-table-DSdjPLVr.js +0 -1
  1629. package/dist/showcase/assets/props.generated-AlskAQY9.json +0 -41579
  1630. package/dist/showcase/assets/quote-D1DrZRcn.js +0 -1
  1631. package/dist/showcase/assets/react-dom-Bz4cALsF.js +0 -1
  1632. package/dist/showcase/assets/receipt-CxNJvyC5.js +0 -1
  1633. package/dist/showcase/assets/receipt-text-2YwFjXVP.js +0 -1
  1634. package/dist/showcase/assets/refresh-cw-DlkWEAjG.js +0 -1
  1635. package/dist/showcase/assets/resolveValueLabel-Ctt-9xwK.js +0 -1
  1636. package/dist/showcase/assets/resource-selector-card-C9zM67wN.js +0 -39
  1637. package/dist/showcase/assets/rich-text-editor-DUWBkEdn.js +0 -124
  1638. package/dist/showcase/assets/rich-text-editor-DjsgN-HX.js +0 -143
  1639. package/dist/showcase/assets/rotate-ccw-ZkWMrEMJ.js +0 -1
  1640. package/dist/showcase/assets/save-CQjTFBwm.js +0 -1
  1641. package/dist/showcase/assets/schema-form-yfcV7ZHE.js +0 -325
  1642. package/dist/showcase/assets/scroll-area-D73Zq5No.js +0 -32
  1643. package/dist/showcase/assets/scroll-area-Toa6lE_G.js +0 -1
  1644. package/dist/showcase/assets/select-BQWY3ndy.js +0 -1
  1645. package/dist/showcase/assets/select-x02n3iNp.js +0 -1
  1646. package/dist/showcase/assets/send-L-LNhDVx.js +0 -1
  1647. package/dist/showcase/assets/separator-B57lhXSg.js +0 -28
  1648. package/dist/showcase/assets/separator-kwh2KDqD.js +0 -1
  1649. package/dist/showcase/assets/settings-Mbnp6hDe.js +0 -1
  1650. package/dist/showcase/assets/sheet-DwYghriA.js +0 -1
  1651. package/dist/showcase/assets/shield-D084AWSl.js +0 -1
  1652. package/dist/showcase/assets/shield-alert-h6F2vnr-.js +0 -1
  1653. package/dist/showcase/assets/shield-check-UiN6QwPl.js +0 -1
  1654. package/dist/showcase/assets/shopping-bag-oxYbVKoz.js +0 -1
  1655. package/dist/showcase/assets/sidebar-BWDrvFY1.js +0 -1
  1656. package/dist/showcase/assets/sidebar.context-BhexAjPM.js +0 -1
  1657. package/dist/showcase/assets/skeleton-BIS2X39p.js +0 -29
  1658. package/dist/showcase/assets/skeleton-uyUucxJA.js +0 -1
  1659. package/dist/showcase/assets/slider-DL--Jsf0.js +0 -1
  1660. package/dist/showcase/assets/sliders-horizontal-C6SHwI9f.js +0 -1
  1661. package/dist/showcase/assets/smart-card-DpvRHqI9.js +0 -1
  1662. package/dist/showcase/assets/sonner-CvCutMP9.js +0 -22
  1663. package/dist/showcase/assets/sortable.esm-COtQXiwU.js +0 -5
  1664. package/dist/showcase/assets/sparkles-bMR7rbuC.js +0 -1
  1665. package/dist/showcase/assets/spinner-CBXhPGyW.js +0 -30
  1666. package/dist/showcase/assets/spinner-Dl2u80sI.js +0 -49
  1667. package/dist/showcase/assets/spinner-ULnFdoGj.js +0 -1
  1668. package/dist/showcase/assets/square-pen-3jbmTAqh.js +0 -1
  1669. package/dist/showcase/assets/stacked-avatars-XKXaLCmk.js +0 -1
  1670. package/dist/showcase/assets/star-0BUJBDj_.js +0 -1
  1671. package/dist/showcase/assets/startOfDay-C8cGxdjJ.js +0 -1
  1672. package/dist/showcase/assets/styles-Cl6qvIKS.js +0 -1
  1673. package/dist/showcase/assets/suggestions-EB3TFZpP.js +0 -126
  1674. package/dist/showcase/assets/switch-BbZ7_Rk-.js +0 -1
  1675. package/dist/showcase/assets/switch-C0QtKm5H.js +0 -1
  1676. package/dist/showcase/assets/sync-BAO20Naa.js +0 -107
  1677. package/dist/showcase/assets/table-CnCYxSnD.js +0 -509
  1678. package/dist/showcase/assets/table-DF7x4TGI.js +0 -1
  1679. package/dist/showcase/assets/table-actions-CjaUIKQl.js +0 -1
  1680. package/dist/showcase/assets/tabs-D3YHyrQ5.js +0 -1
  1681. package/dist/showcase/assets/tabs-vUgN5IPn.js +0 -19
  1682. package/dist/showcase/assets/tags-input-jtEAac1b.js +0 -1
  1683. package/dist/showcase/assets/text-button-fiMDoWms.js +0 -1
  1684. package/dist/showcase/assets/text-link-CSzy09hn.js +0 -1
  1685. package/dist/showcase/assets/textarea-DnvQVkFU.js +0 -1
  1686. package/dist/showcase/assets/textarea-mATRsiLJ.js +0 -1
  1687. package/dist/showcase/assets/timelines-fQQIiGc4.js +0 -200
  1688. package/dist/showcase/assets/toggle-group-B0hN7VRz.js +0 -1
  1689. package/dist/showcase/assets/toggles-group-CXm2HDJ1.js +0 -32
  1690. package/dist/showcase/assets/toggles-kwgQf4hQ.js +0 -71
  1691. package/dist/showcase/assets/trash-2-xwHdvAn6.js +0 -1
  1692. package/dist/showcase/assets/trending-up-CKnZUURN.js +0 -1
  1693. package/dist/showcase/assets/truck-8P8-8rHh.js +0 -1
  1694. package/dist/showcase/assets/typography-BP3SCf0c.js +0 -223
  1695. package/dist/showcase/assets/ui-badge-eTC8uxVw.js +0 -28
  1696. package/dist/showcase/assets/ui-card-AQkRKit0.js +0 -30
  1697. package/dist/showcase/assets/ui-table-BTE7t50V.js +0 -42
  1698. package/dist/showcase/assets/upload-tray-DpW8ZnxN.js +0 -138
  1699. package/dist/showcase/assets/use-form-field-state-Sbo6tfr9.js +0 -1
  1700. package/dist/showcase/assets/use-layout-link-DR4Apqbc.js +0 -1
  1701. package/dist/showcase/assets/useAnchoredPopupScrollLock-CT1urU5D.js +0 -1
  1702. package/dist/showcase/assets/useAriaLabelledBy-DiHf8Ou_.js +0 -1
  1703. package/dist/showcase/assets/useCollapsiblePanel-NNLPWtyS.js +0 -1
  1704. package/dist/showcase/assets/useCompositeItem-BE0Lg9Iz.js +0 -1
  1705. package/dist/showcase/assets/useCompositeListItem-OwLLy0R3.js +0 -1
  1706. package/dist/showcase/assets/useControlled-BF8maje6.js +0 -1
  1707. package/dist/showcase/assets/useLabelableId-Y-6YW07q.js +0 -1
  1708. package/dist/showcase/assets/useOpenInteractionType-CUTVNS1V.js +0 -1
  1709. package/dist/showcase/assets/useRender-BiaVVD8L.js +0 -1
  1710. package/dist/showcase/assets/useTriggerFocusGuards-DCMcmSgH.js +0 -1
  1711. package/dist/showcase/assets/useValueChanged-kq4oH4So.js +0 -1
  1712. package/dist/showcase/assets/user-BCzeUL5p.js +0 -1
  1713. package/dist/showcase/assets/user-plus-CUbfQtkK.js +0 -1
  1714. package/dist/showcase/assets/users-DOGJZmUN.js +0 -1
  1715. package/dist/showcase/assets/vendor-profile-C7dXfVv_.js +0 -37
  1716. package/dist/showcase/assets/video-DbaCGki8.js +0 -1
  1717. package/dist/showcase/assets/wrench-TbDfItHQ.js +0 -1
  1718. package/dist/showcase/assets/x-BpAEmld2.js +0 -1
  1719. package/dist/showcase/assets/zap-E8G3kjwh.js +0 -1
  1720. /package/dist/components/{base/display → composed/data-display}/empty-state/empty-state.d.ts +0 -0
  1721. /package/dist/components/{base/display → composed/data-display}/empty-state/empty-state.strings.d.ts +0 -0
  1722. /package/dist/components/{base/display → composed/data-display}/empty-state/index.d.ts +0 -0
  1723. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/document-stack.d.ts +0 -0
  1724. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/inbox-clean.d.ts +0 -0
  1725. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/index.d.ts +0 -0
  1726. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/search-glass.d.ts +0 -0
  1727. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/stacked-cards.d.ts +0 -0
  1728. /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/users-circle.d.ts +0 -0
  1729. /package/dist/components/{base/display → composed/data-display}/fields/index.d.ts +0 -0
  1730. /package/dist/components/{base/display → composed/data-display}/inline-stat/index.d.ts +0 -0
  1731. /package/dist/components/{base/display → composed/data-display}/inline-stat/inline-stat.d.ts +0 -0
  1732. /package/dist/components/{base/display → composed/data-display}/metadata/index.d.ts +0 -0
  1733. /package/dist/components/{base/display → composed/data-display}/metadata/metadata-list.d.ts +0 -0
  1734. /package/dist/components/{base/display → composed/data-display}/metadata/metadata-list.strings.d.ts +0 -0
  1735. /package/dist/components/{base/display → composed/data-display}/numeric-value/index.d.ts +0 -0
  1736. /package/dist/components/{base/display → composed/data-display}/numeric-value/numeric-value.d.ts +0 -0
  1737. /package/dist/components/{base/display → composed/data-display}/section-header/index.d.ts +0 -0
  1738. /package/dist/components/{base/display → composed/data-display}/section-header/section-header.d.ts +0 -0
  1739. /package/dist/components/{base/display → composed/data-display}/user-cell/index.d.ts +0 -0
  1740. /package/dist/components/{base → features}/data-view/data-view.d.ts +0 -0
  1741. /package/dist/components/{base → features}/data-view/data-view.strings.d.ts +0 -0
  1742. /package/dist/components/{base → features}/data-view/data-view.types.d.ts +0 -0
  1743. /package/dist/components/{base → features}/data-view/index.d.ts +0 -0
  1744. /package/dist/components/{layout → features}/resource/index.d.ts +0 -0
  1745. /package/dist/components/{layout → features}/resource/resource.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-mPchjiRn.cjs","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/column-visibility-toggle.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/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 clear: 'Clear selection',\n },\n accessibility: {\n scrollRegion: 'Table scroll area',\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 accessibility: mergeNested(defaultDataTableStrings.accessibility, overrides.accessibility),\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\t<PaginationPrevious\n\t\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\t\tclassName={`h-control-sm 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\t<PaginationEllipsis className=\"size-control-sm\" />\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\t\tclassName=\"size-control-sm 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\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\t\tclassName={`h-control-sm 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\t if (mode === 'inline') {\n\t return (\n\t <div className={cn('table-actions--component', 'flex items-center gap-space-sm')}>\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\t key={key}\n\t variant={resolved.variant}\n\t buttonStyle={resolved.buttonStyle}\n\t size=\"small\"\n\t className={cn('text-inherit leading-tight', resolved.className)}\n disabled={!!action.disabled}\n onClick={onClick}\n >\n\t {!!action.icon && <span className=\"mr-space-sm 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\t <div className=\"flex w-full items-center gap-space-md\">\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 { Checkbox } from '@/components/base/forms/fields/checkbox';\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 shadow-[1px_0_0_0_var(--border)]`;\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\t<div className=\"px-space-sm\">\n\t\t\t<Checkbox\n\t\t\t\tclassName=\"size-icon cursor-pointer disabled:cursor-not-allowed disabled:opacity-40\"\n\t\t\tchecked={row.getIsSelected()}\n\t\t\tdisabled={!row.getCanSelect()}\n\t\t\tonCheckedChange={(checked) => row.toggleSelected(checked === true)}\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\t<div className=\"px-space-sm\">\n\t\t\t<Checkbox\n\t\t\t\tclassName=\"size-icon cursor-pointer\"\n\t\t\tchecked={table.getIsAllPageRowsSelected()}\n\t\t\tindeterminate={table.getIsSomePageRowsSelected() && !table.getIsAllPageRowsSelected()}\n\t\t\tonCheckedChange={(checked) => table.toggleAllPageRowsSelected(checked === true)}\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 gap-space-md py-12\">\n\t\t\t\t\t\t\t<div className=\"mb-space-sm flex size-avatar-lg items-center justify-center rounded-full bg-muted\">\n\t\t\t\t\t\t\t\t<svg className=\"size-icon-lg 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-150',\n\t\t\t\t\t'hover:bg-muted/35 data-[state=selected]:bg-primary/8',\n\t\t\t\t\tcursorClass,\n\t\t\t\t\t'border-b border-border/50 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-surface last:pr-surface',\n\t\t\t\t\t\t\t\t\tcell.column.columnDef.meta?.align === 'end' && 'text-right',\n\t\t\t\t\t\t\t\t\tcell.column.columnDef.meta?.align === 'center' && 'text-center',\n\t\t\t\t\t\t\t\t\tdense && 'px-surface py-row-y-sm text-xs first:pl-surface last:pr-surface',\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\tconst stickyCellClassName = stickyHeader\n\t\t? cn(\n\t\t\t'sticky top-0 z-20 backdrop-blur-md shadow-[0_1px_0_0_var(--border)]',\n\t\t\theaderTransparent ? 'bg-background/95' : 'bg-muted/95',\n\t\t)\n\t\t: '';\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={cn(\n\t\t\t\t\t\t\t\t'border-r border-border/60 bg-muted/35 px-surface py-row-y-sm text-center text-xs font-medium uppercase tracking-wide text-muted-foreground/75 last:border-r-0',\n\t\t\t\t\t\t\t\tstickyCellClassName,\n\t\t\t\t\t\t\t)}\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={cn(\n\t\t\t\t\t\t\t'whitespace-nowrap border-r border-border/60 bg-muted/35 px-surface py-row-y-sm text-center text-xs font-medium uppercase tracking-wide text-muted-foreground/75 last:border-r-0',\n\t\t\t\t\t\t\tstickyCellClassName,\n\t\t\t\t\t\t)}\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={headerClassName}\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/70',\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/45 hover:bg-muted/45',\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-surface last:pr-surface',\n\t\t\t\t\t\t\tdense && 'px-surface py-row-y-sm text-xs first:pl-surface last:pr-surface',\n\t\t\t\t\t\t\t'text-muted-foreground font-medium whitespace-nowrap',\n\t\t\t\t\t\t\theader.column.columnDef.meta?.align === 'end' && 'text-right',\n\t\t\t\t\t\t\theader.column.columnDef.meta?.align === 'center' && 'text-center',\n\t\t\t\t\t\t\tstickyCellClassName,\n\t\t\t\t\t\t\tstickyHeader && stickyFirstColumn && index === 0 && 'z-30',\n\t\t\t\t\t\t\t!stickyHeader && '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={cn('flex items-center', header.column.columnDef.meta?.align === 'end' && 'justify-end', header.column.columnDef.meta?.align === 'center' && 'justify-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 -ml-space-sm inline-flex select-none items-center gap-space-sm rounded px-space-sm',\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-icon-sm 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 { Settings2 } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\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 [open, setOpen] = useState(false);\n const columns = table.getAllColumns()\n .filter((column) => column.getCanHide());\n\n if (columns.length === 0) return null;\n\n return (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <Button\n {...triggerProps}\n type=\"button\"\n aria-label={strings.columnVisibility.triggerLabel}\n variant=\"secondary\"\n buttonStyle=\"outline\"\n size=\"small\"\n className={cn(\n 'column-visibility-toggle--component',\n 'flex items-center gap-space-sm',\n (triggerProps as { className?: string }).className,\n className,\n )}\n >\n <Settings2 className=\"size-icon-sm\" aria-hidden=\"true\" />\n <span className=\"hidden sm:inline\">{strings.columnVisibility.triggerLabel}</span>\n </Button>\n )}\n />\n <DropdownMenuContent align={align} className=\"w-56\">\n <DropdownMenuGroup>\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 </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nColumnVisibilityToggle.displayName = 'ColumnVisibilityToggle';\n","import { ChevronLeft, ChevronRight, Maximize2, Minimize2 } from 'lucide-react';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { cn } from '@/lib/utils';\nimport { defaultDataTableStrings } from './table.strings';\nimport { type DataTableToolbarProps } from './table.types';\nimport { ColumnVisibilityToggle } from './column-visibility-toggle';\n\nconst SCROLL_AMOUNT = 300;\n\nconst btnBase = 'inline-flex size-control-sm items-center justify-center rounded-none text-muted-foreground/70 transition-colors duration-150 hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-30';\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 hideableColumns = enableColumnVisibility\n ? table.getAllColumns().filter((column) => column.getCanHide())\n : [];\n\n const hasScrollArrows = canScrollLeft || canScrollRight;\n const hasColumns = hideableColumns.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=\"size-icon-sm\" />\n </ToolbarIconButton>\n <ToolbarIconButton\n label={strings.toolbar.scrollRight}\n onClick={handleScrollRight}\n disabled={!canScrollRight}\n >\n <ChevronRight className=\"size-icon-sm\" />\n </ToolbarIconButton>\n <div className=\"h-4 w-px bg-border\" />\n </>\n )}\n\n {/* Column visibility dropdown */}\n {!!hasColumns && (\n <>\n <ColumnVisibilityToggle\n table={table}\n strings={strings}\n className={cn(\n 'h-control-sm rounded-none border-0 px-control-sm shadow-none',\n !hasScrollArrows && 'rounded-l-[calc(theme(borderRadius.md)-1px)]',\n )}\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=\"size-icon-sm\" />\n : <Minimize2 className=\"size-icon-sm\" />\n }\n </ToolbarIconButton>\n </div>\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 {\n\tcreateContext,\n\tuseContext,\n\tuseState,\n\tuseEffect,\n\tuseMemo,\n\tuseCallback,\n\tuseRef,\n\ttype CSSProperties,\n} from 'react';\nimport { Table } from '@/components/ui/table';\nimport { Button } from '@/components/base/buttons';\nimport { Separator } from '@/components/base/display/separator';\nimport { Text } from '@/components/typography';\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 textSize = useDataTableSize();\n * return <Text className=\"data-table--component\" size={textSize}>{value}</Text>;\n *\n * The built-in renderers in `partials/cell-renderers` consume this hook.\n */\nconst DataTableSizeContext = createContext<'xs' | 'sm'>('sm');\n\nexport function useDataTableSize(): 'xs' | 'sm' {\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 {\n\ttype DataTableProps,\n\ttype DataTableSelectionToolbarContext,\n} from './table.types';\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 — a quiet,\n// normal-case muted header over variable body density. A consumer who\n// wants matched header sizing can override via `headerClassName`.\nconst sizeClassByDataTableSize: Record<NonNullable<DataTableProps<object, unknown>['size']>, string> = {\n\tsmall: '[&_th]:h-auto [&_th]:px-surface [&_th]:py-row-y [&_th]:text-xs [&_td]:px-surface [&_td]:py-row-y [&_td]:text-xs',\n\tdefault: '[&_th]:h-auto [&_th]:px-surface [&_th]:py-row-y [&_th]:text-xs [&_td]:px-surface [&_td]:py-row-y-lg [&_td]:text-sm',\n};\n\nconst textSizeByDataTableSize: Record<NonNullable<DataTableProps<object, unknown>['size']>, 'xs' | 'sm'> = {\n\tsmall: 'xs',\n\tdefault: 'sm',\n};\n\nfunction normalizeDataTableSize(size: NonNullable<DataTableProps<object, unknown>['size']> | string | undefined) {\n\tif (size === 'small' || size === 'default') return size;\n\tif (size === 'xs') return 'small';\n\tif (size === 'sm' || size === 'base') return 'default';\n\treturn 'default';\n}\n\nconst toCssSize = (value: number | string | undefined): string | undefined => {\n\tif (value === undefined) return undefined;\n\treturn typeof value === 'number' ? `${value}px` : value;\n};\n\nexport function DataTable<TData extends object, TValue = unknown>({\n\tsize,\n\tsurface = 'card',\n\theaderTransparent = true,\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\tstickyToolbar = false,\n\tstickyFirstColumn = false,\n\tmaxBodyHeight,\n\tfillAvailableHeight = 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\tfooterContent,\n\tselectionToolbar,\n\tbulkActions,\n\tselectionToolbarClassName,\n\tstorageKey,\n}: DataTableProps<TData, TValue>) {\n\tconst { defaultSize } = useTableConfig();\n\tconst resolvedSize = normalizeDataTableSize(size ?? defaultSize);\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 resolvedPageQueryKey = pageQueryKey ?? 'page';\n\tconst resolvedMaxBodyHeight = toCssSize(maxBodyHeight);\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 getRowActionsMenuLabel = useCallback(\n\t\t(row: TData) => {\n\t\t\tif (typeof rowActionsMenuLabel === 'function') {\n\t\t\t\treturn rowActionsMenuLabel(row);\n\t\t\t}\n\n\t\t\treturn rowActionsMenuLabel ?? strings.actions.triggerLabel;\n\t\t},\n\t\t[rowActionsMenuLabel, strings.actions.triggerLabel],\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={getRowActionsMenuLabel(row.original)}\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\tgetRowActionsMenuLabel,\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\tconst selectedRows = table.getSelectedRowModel().rows.map((row) => row.original);\n\tconst selectedRowCount = selectedRows.length;\n\tconst clearSelection = useCallback(() => {\n\t\ttable.resetRowSelection();\n\t}, [table]);\n\tconst selectionToolbarContext: DataTableSelectionToolbarContext<TData> = {\n\t\ttable,\n\t\tselectedRows,\n\t\tselectedRowCount,\n\t\ttotalRowCount: data.length,\n\t\trowSelection,\n\t\tclearSelection,\n\t};\n\tconst bulkActionNode =\n\t\ttypeof bulkActions === 'function'\n\t\t\t? bulkActions(selectionToolbarContext)\n\t\t\t: bulkActions;\n\tconst defaultSelectionToolbar = selectedRowCount > 0 ? (\n\t\t<div\n\t\t\tdata-component=\"data-table-selection-toolbar\"\n\t\t\tdata-slot=\"data-table-selection-toolbar\"\n\t\t\tclassName={cn(\n\t\t\t\t\t'data-table-selection-toolbar--component flex min-w-0 flex-col gap-space-md border-b border-border/70 bg-muted/35 px-surface py-row-y sm:flex-row sm:items-center sm:justify-between',\n\t\t\t\tstickyToolbar && 'sticky top-0 z-20 bg-card/95 backdrop-blur',\n\t\t\t\tselectionToolbarClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Text className=\"data-table-selection-toolbar--summary min-w-0\">\n\t\t\t\t{strings.selection.summary(selectedRowCount, data.length)}\n\t\t\t</Text>\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-table-selection-toolbar-actions\"\n\t\t\t\t\tclassName=\"data-table-selection-toolbar--actions flex shrink-0 flex-wrap items-center gap-space-md\"\n\t\t\t>\n\t\t\t\t{bulkActionNode}\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tonClick={clearSelection}\n\t\t\t\t>\n\t\t\t\t\t{strings.selection.clear}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t) : null;\n\tconst selectionToolbarNode = (() => {\n\t\tif (!enableRowSelection || selectedRowCount === 0) return null;\n\t\tif (selectionToolbar === null || selectionToolbar === false) return null;\n\t\tif (typeof selectionToolbar === 'function') {\n\t\t\treturn selectionToolbar(selectionToolbarContext);\n\t\t}\n\t\treturn selectionToolbar ?? defaultSelectionToolbar;\n\t})();\n\tconst tableAreaStyle = useMemo<CSSProperties | undefined>(() => {\n\t\tif (!resolvedMaxBodyHeight) return undefined;\n\t\treturn { '--data-table-body-max-height': resolvedMaxBodyHeight } as CSSProperties;\n\t}, [resolvedMaxBodyHeight]);\n\tconst shouldUseScrollableTableContainer =\n\t\tdense || fillAvailableHeight || resolvedMaxBodyHeight !== undefined;\n\n\tuseEffect(() => {\n\t\tconst scrollRegion = tableAreaRef.current?.querySelector<HTMLElement>('[data-slot=\"table-container\"]');\n\t\tif (!scrollRegion) return;\n\n\t\tscrollRegion.tabIndex = 0;\n\t\tscrollRegion.setAttribute('aria-label', strings.accessibility.scrollRegion);\n\t}, [strings.accessibility.scrollRegion]);\n\n\tconst Provider = DataTableSizeContext.Provider;\n\tconst resolvedTextSize = textSizeByDataTableSize[resolvedSize];\n\n\treturn (\n\t\t<Provider value={resolvedTextSize}>\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\tfillAvailableHeight && 'flex h-full min-h-0 flex-col',\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_color-mix(in_oklch,var(--foreground)_4%,transparent)]',\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={cn('relative', stickyToolbar && 'sticky top-0 z-20 bg-card/95 backdrop-blur')}>\n\n <div className={cn(\n\t 'data-table-topbar flex items-end justify-between gap-space-lg px-surface py-row-y',\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\t\t\t{selectionToolbarNode}\n\n\t\t\t<div\n\t\t\t\tref={tableAreaRef}\n\t\t\t\tstyle={tableAreaStyle}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'min-h-0',\n\t\t\t\t\tshouldUseScrollableTableContainer ? 'overflow-hidden' : innerClassName,\n\t\t\t\t\t(dense || fillAvailableHeight) && 'flex-1',\n\t\t\t\t)}\n\t\t\t>\n\n\t\t\t\t<Table\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'relative',\n\t\t\t\t\t\tsizeClassByDataTableSize[resolvedSize],\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tcontainerClassName={cn(\n\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\t\t\tshouldUseScrollableTableContainer && 'overflow-auto',\n\t\t\t\t\t\tresolvedMaxBodyHeight !== undefined && 'max-h-(--data-table-body-max-height)',\n\t\t\t\t\t\t(dense || fillAvailableHeight) && 'h-full min-h-0',\n\t\t\t\t\t\ttableContainerClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\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\t{!!footerContent && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-table-footer\"\n\t\t\t\t\t\tclassName=\"data-table--footer border-t border-border/70 px-surface py-row-y\"\n\t\t\t\t>\n\t\t\t\t\t{footerContent}\n\t\t\t\t</div>\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\tDropdownMenuGroup,\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<DropdownMenuGroup>\n\t\t\t\t\t\t\t\t<DropdownMenuLabel>{strings.columnVisibility.title}</DropdownMenuLabel>\n\t\t\t\t\t\t\t\t{table\n\t\t\t\t\t\t\t\t\t.getAllColumns()\n\t\t\t\t\t\t\t\t\t.filter((column) => column.getCanHide())\n\t\t\t\t\t\t\t\t\t.map((column) => {\n\t\t\t\t\t\t\t\t\t\tconst header = column.columnDef.header;\n\t\t\t\t\t\t\t\t\t\tconst columnName = strings.columnVisibility.formatLabel(\n\t\t\t\t\t\t\t\t\t\t\tcolumn.id,\n\t\t\t\t\t\t\t\t\t\t\ttypeof header === 'string' ? header : undefined,\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={column.id}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"capitalize\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={column.getIsVisible()}\n\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\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\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{columnName}\n\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuCheckboxItem>\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</DropdownMenuGroup>\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 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-space-sm', className)}\n\t\t>\n\t\t\t{!!Icon && <Icon className=\"size-icon-sm\" />}\n\t\t\t{entry.label}\n\t\t</Badge>\n\t);\n}\n\nStatusCell.displayName = 'StatusCell';\n\n// ──────────────────────────────────────────────────────────────\n// StatusClusterCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface StatusClusterCellItem {\n\tid?: string;\n\tlabel: ReactNode;\n\tvariant?: ComposedBadgeVariant;\n\ticon?: LucideIcon;\n\tdot?: boolean;\n\thidden?: boolean;\n}\n\nexport interface StatusClusterCellProps {\n\titems?: readonly StatusClusterCellItem[];\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n\tbadgeClassName?: string;\n}\n\nexport function StatusClusterCell({\n\titems = [],\n\temptyLabel = EMPTY,\n\tclassName,\n\tbadgeClassName,\n}: StatusClusterCellProps) {\n\tconst visibleItems = items.filter((item) => !item.hidden);\n\n\tif (visibleItems.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\n\treturn (\n\t\t<span className={cn('inline-flex min-w-0 flex-wrap items-center gap-space-sm', className)}>\n\t\t\t{visibleItems.map((item, index) => {\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\treturn (\n\t\t\t\t\t<Badge\n\t\t\t\t\t\tkey={item.id ?? index}\n\t\t\t\t\t\tvariant={item.variant ?? 'secondary'}\n\t\t\t\t\t\tdot={item.dot}\n\t\t\t\t\t\tclassName={cn('shrink-0', badgeClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!Icon && <Icon className=\"size-icon-sm\" />}\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t</Badge>\n\t\t\t\t);\n\t\t\t})}\n\t\t</span>\n\t);\n}\n\nStatusClusterCell.displayName = 'StatusClusterCell';\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-space-sm tabular-nums', className)}>\n\t\t\t{!!showIcon && <IconComponent className=\"size-icon 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// DateMetaCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface DateMetaCellProps extends DateCellProps {\n\tsecondary?: ReactNode | ((date: Date) => ReactNode);\n\tprimaryClassName?: string;\n\tsecondaryClassName?: string;\n}\n\nexport function DateMetaCell({\n\tvalue,\n\toptions = DEFAULT_DATE_OPTIONS,\n\tlocale,\n\tshowIcon = true,\n\ticon: IconComponent = Calendar,\n\temptyLabel = EMPTY,\n\tclassName,\n\tprimaryClassName,\n\tsecondary,\n\tsecondaryClassName,\n}: DateMetaCellProps) {\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\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\n\tconst formatter = new Intl.DateTimeFormat(locale, options);\n\tconst secondaryNode = typeof secondary === 'function' ? secondary(date) : secondary;\n\n\treturn (\n\t\t<span className={cn('inline-flex min-w-0 items-start gap-space-sm', className)}>\n\t\t\t{!!showIcon && <IconComponent className=\"mt-space-2xs size-icon shrink-0 text-muted-foreground\" />}\n\t\t\t<span className=\"grid min-w-0 gap-space-2xs\">\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tclassName={cn('truncate tabular-nums', primaryClassName)}\n\t\t\t\t>\n\t\t\t\t\t{formatter.format(date)}\n\t\t\t\t</Text>\n\t\t\t\t{!!secondaryNode && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName={cn('truncate text-xs opacity-75', secondaryClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{secondaryNode}\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\nDateMetaCell.displayName = 'DateMetaCell';\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-space-md', className)}>\n\t\t\t<span className=\"relative inline-flex size-avatar-sm 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=\"inherit\" weight=\"semibold\" className=\"text-xs 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-icon\" />\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=\"inherit\" type=\"secondary\" className=\"truncate text-xs\">\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// ──────────────────────────────────────────────────────────────\n// ResourceCell / IdentityCell\n// ──────────────────────────────────────────────────────────────\n\nexport interface ResourceCellMetadataItem {\n\tid?: string;\n\tlabel?: ReactNode;\n\tvalue: ReactNode;\n}\n\nexport type ResourceCellBadge =\n\t| ReactNode\n\t| ({\n\t\t\tid?: string;\n\t\t\tlabel: ReactNode;\n\t\t\tvariant?: ComposedBadgeVariant;\n\t\t\ticon?: LucideIcon;\n\t\t\tdot?: boolean;\n\t });\n\nexport interface ResourceCellLinkProps {\n\thref: string;\n\tchildren: ReactNode;\n\tclassName?: string;\n\t'aria-label'?: string;\n}\n\nexport interface ResourceCellProps {\n\ttitle?: ReactNode;\n\tsubtitle?: ReactNode;\n\tmetadata?: ReactNode | readonly ResourceCellMetadataItem[];\n\tbadges?: readonly ResourceCellBadge[];\n\timageUrl?: string;\n\ticon?: ComponentType<{ className?: string }>;\n\tfallback?: ReactNode;\n\thref?: string;\n\trenderLink?: (props: ResourceCellLinkProps) => ReactNode;\n\temptyLabel?: ReactNode;\n\tclassName?: string;\n\tmediaClassName?: string;\n\tcontentClassName?: string;\n\ttitleClassName?: string;\n\tsubtitleClassName?: string;\n}\n\nfunction renderResourceBadge(badge: ResourceCellBadge, index: number): ReactNode {\n\tif (\n\t\tbadge &&\n\t\ttypeof badge === 'object' &&\n\t\t!('type' in badge) &&\n\t\t'label' in badge\n\t) {\n\t\tconst Icon = badge.icon;\n\t\treturn (\n\t\t\t<Badge key={badge.id ?? index} variant={badge.variant ?? 'secondary'} dot={badge.dot}>\n\t\t\t\t{!!Icon && <Icon className=\"size-3\" />}\n\t\t\t\t{badge.label}\n\t\t\t</Badge>\n\t\t);\n\t}\n\n\treturn <span key={index}>{badge}</span>;\n}\n\nfunction renderResourceMetadata(metadata: ResourceCellProps['metadata']): ReactNode {\n\tif (!metadata) return null;\n\tif (Array.isArray(metadata)) {\n\t\treturn (\n\t\t\t<span className=\"inline-flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5\">\n\t\t\t\t{metadata.map((item, index) => (\n\t\t\t\t\t<span key={item.id ?? index} className=\"inline-flex min-w-0 items-center gap-1\">\n\t\t\t\t\t\t{!!item.label && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"shrink-0 text-xxs opacity-70\">\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"truncate text-xxs\">\n\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</span>\n\t\t\t\t))}\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn metadata as ReactNode;\n}\n\nexport function ResourceCell({\n\ttitle,\n\tsubtitle,\n\tmetadata,\n\tbadges = [],\n\timageUrl,\n\ticon: IconComponent = Mail,\n\tfallback,\n\thref,\n\trenderLink,\n\temptyLabel = EMPTY,\n\tclassName,\n\tmediaClassName,\n\tcontentClassName,\n\ttitleClassName,\n\tsubtitleClassName,\n}: ResourceCellProps) {\n\tif (!title) {\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\n\tconst titleText = typeof title === 'string' ? title : undefined;\n\tconst initials = titleText ? getInitials(titleText) : '';\n\tconst content = (\n\t\t<span className={cn('resource-cell--content grid min-w-0 gap-0.5', contentClassName)}>\n\t\t\t<span className=\"resource-cell--title-row flex min-w-0 items-center gap-1.5\">\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tclassName={cn('resource-cell--title truncate', titleClassName)}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</Text>\n\t\t\t\t{badges.length > 0 && (\n\t\t\t\t\t<span className=\"resource-cell--badges inline-flex shrink-0 items-center gap-1\">\n\t\t\t\t\t\t{badges.map(renderResourceBadge)}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{!!subtitle && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tclassName={cn('resource-cell--subtitle truncate text-xs', subtitleClassName)}\n\t\t\t\t>\n\t\t\t\t\t{subtitle}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!metadata && (\n\t\t\t\t<span className=\"resource-cell--metadata min-w-0\">\n\t\t\t\t\t{renderResourceMetadata(metadata)}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n\tconst cell = (\n\t\t<span className={cn('resource-cell--component inline-flex min-w-0 items-center gap-space-md', className)}>\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'resource-cell--media relative inline-flex size-avatar shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground',\n\t\t\t\t\tmediaClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{imageUrl ? (\n\t\t\t\t\t<img src={imageUrl} alt={titleText ?? ''} className=\"absolute inset-0 size-full object-cover\" />\n\t\t\t\t) : fallback ? (\n\t\t\t\t\tfallback\n\t\t\t\t) : initials ? (\n\t\t\t\t\t<Text size=\"inherit\" weight=\"semibold\" className=\"text-xs leading-none\">\n\t\t\t\t\t\t{initials}\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<IconComponent className=\"size-icon\" />\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{content}\n\t\t</span>\n\t);\n\n\tif (!href) return cell;\n\n\tconst linkClassName = 'resource-cell--link inline-flex min-w-0 rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2';\n\tif (renderLink) {\n\t\treturn renderLink({\n\t\t\thref,\n\t\t\tchildren: cell,\n\t\t\tclassName: linkClassName,\n\t\t\t'aria-label': titleText,\n\t\t});\n\t}\n\n\treturn (\n\t\t<a href={href} className={linkClassName} aria-label={titleText}>\n\t\t\t{cell}\n\t\t</a>\n\t);\n}\n\nResourceCell.displayName = 'ResourceCell';\n\nexport const IdentityCell = ResourceCell;\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 size-control-sm items-center justify-center rounded-radius text-muted-foreground/70 transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 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-icon-sm\" />\n\t\t</button>\n\t);\n}\n\nDensityToggle.displayName = 'DensityToggle';\n"],"mappings":"8jBAQA,SAAS,EAAM,CAAE,YAAW,qBAAoB,GAAG,GAAqB,CACtE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,kBACV,UAAW,EAAA,GAAG,kCAAmC,CAAkB,YAEnE,EAAA,EAAA,KAAC,QAAD,CACE,YAAU,QACV,UAAW,EAAA,GAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CACE,CAAA,CAET,CAEA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAD,CACE,YAAU,eACV,UAAW,EAAA,GAAG,kBAAmB,CAAS,EAC1C,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAAwC,CACzE,OACE,EAAA,EAAA,KAAC,QAAD,CACE,YAAU,aACV,UAAW,EAAA,GAAG,6BAA8B,CAAS,EACrD,GAAI,CACL,CAAA,CAEL,CAYA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAqC,CACrE,OACE,EAAA,EAAA,KAAC,KAAD,CACE,YAAU,YACV,UAAW,EAAA,GAAG,8EAA+E,CAAS,EACtG,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAD,CACE,YAAU,aACV,UAAW,EAAA,GAAG,+GAAgH,CAAS,EACvI,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAD,CACE,YAAU,aACV,UAAW,EAAA,GAAG,mEAAoE,CAAS,EAC3F,GAAI,CACL,CAAA,CAEL,CC3EA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,aACL,aAAW,aACX,YAAU,aACV,UAAW,EAAA,GACT,qCACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAkB,CACzB,YACA,GAAG,GAC0B,CAC7B,OACE,EAAA,EAAA,KAAC,KAAD,CACE,YAAU,qBACV,UAAW,EAAA,GAAG,0BAA2B,CAAS,EAClD,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAe,CAAE,GAAG,GAAqC,CAChE,OAAO,EAAA,EAAA,KAAC,KAAD,CAAI,YAAU,kBAAkB,GAAI,CAAQ,CAAA,CACrD,CAOA,SAAS,EAAe,CACtB,YACA,WACA,OAAO,OACP,GAAG,GACmB,CACtB,OACE,EAAA,EAAA,KAAC,EAAA,EAAD,CACE,QAAS,EAAW,UAAY,QAC1B,OACN,UAAW,EAAA,GAAG,CAAS,EACvB,aAAc,GACd,QACE,EAAA,EAAA,KAAC,IAAD,CACE,eAAc,EAAW,OAAS,IAAA,GAClC,YAAU,kBACV,cAAa,EACb,GAAI,CACL,CAAA,CAEJ,CAAA,CAEL,CAEA,SAAS,EAAmB,CAC1B,YACA,OAAO,WACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CACE,aAAW,sBACX,KAAK,UACL,UAAW,EAAA,GAAG,QAAS,CAAS,EAChC,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,EAAA,gBAAD,CAAiB,YAAU,cAAgB,CAAA,GAC3C,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BACb,CACG,CAAA,CACQ,GAEpB,CAEA,SAAS,GAAe,CACtB,YACA,OAAO,OACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CACE,aAAW,kBACX,KAAK,UACL,UAAW,EAAA,GAAG,QAAS,CAAS,EAChC,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAmB,CAAW,CAAA,GAC9C,EAAA,EAAA,KAAC,EAAA,iBAAD,CAAkB,YAAU,YAAc,CAAA,CAC5B,GAEpB,CAEA,SAAS,GAAmB,CAC1B,YACA,GAAG,GAC4B,CAC/B,OACE,EAAA,EAAA,MAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAW,EAAA,GACT,2GACA,CACF,EACA,GAAI,WAPN,EASE,EAAA,EAAA,KAAC,EAAA,mBAAD,CACC,CAAA,GACD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAU,YAAgB,CAAA,CACtC,GAEV,CC1HA,IAAM,GAAqB,GAA0B,CACjD,IAAM,EAAY,EACb,QAAQ,SAAU,GAAG,EACrB,QAAQ,OAAQ,GAAG,EACnB,KAAK,EAMV,OAJK,EAIE,EAAU,QAAQ,QAAU,GAAS,EAAK,YAAY,CAAC,EAHnD,QAIf,EAUa,EAA4C,CACrD,WAAY,CACR,QAAS,mBACb,EACA,QAAS,CACL,aAAc,UACd,QAAS,kBACb,EACA,OAAQ,CACJ,kBAAmB,YACnB,cAAe,SACnB,EACA,iBAAkB,CACd,MAAO,iBACP,aAAc,UACd,aAvBmB,EAAkB,IACrC,GAAgB,EAAa,KAAK,EAAE,OAAS,EACtC,EAGJ,GAAkB,CAAQ,CAmBjC,EACA,QAAS,CACL,WAAY,cACZ,YAAa,eACb,QAAS,iBACT,MAAO,eACP,YAAa,kBACjB,EACA,WAAY,CACR,QAAS,UACT,GAAI,KACJ,GAAI,KACJ,QAAS,UACT,SAAU,WACV,KAAM,OACN,KAAM,OACN,YAAa,gBACb,UAAW,uBACf,EACA,UAAW,CACP,SAAU,EAAU,IAAU,GAAG,EAAS,MAAM,EAAM,MAAM,IAAU,EAAI,GAAK,IAAI,YACnF,IAAM,GAAU,cAAc,EAAQ,IACtC,UAAW,kBACX,MAAO,iBACX,EACA,cAAe,CACX,aAAc,mBAClB,CACJ,EAEM,GAAiC,EAAa,KAA+B,CAC/E,GAAG,EACH,GAAI,GAAa,CAAC,CACtB,GAEa,GAAyB,GAC7B,EAIE,CACH,WAAY,EAAY,EAAwB,WAAY,EAAU,UAAU,EAChF,QAAS,EAAY,EAAwB,QAAS,EAAU,OAAO,EACvE,OAAQ,EAAY,EAAwB,OAAQ,EAAU,MAAM,EACpE,iBAAkB,EAAY,EAAwB,iBAAkB,EAAU,gBAAgB,EAClG,QAAS,EAAY,EAAwB,QAAS,EAAU,OAAO,EACvE,WAAY,EAAY,EAAwB,WAAY,EAAU,UAAU,EAChF,UAAW,EAAY,EAAwB,UAAW,EAAU,SAAS,EAC7E,cAAe,EAAY,EAAwB,cAAe,EAAU,aAAa,CAC7F,EAZW,ECvDf,SAAS,GACR,EACA,EAC0B,CAC1B,GAAI,GAAY,EACf,OAAO,MAAM,KAAK,CAAE,OAAQ,CAAS,GAAI,EAAG,IAAM,EAAI,CAAC,EAGxD,IAAM,EAAiC,CAAC,CAAC,EAErC,EAAc,GACjB,EAAM,KAAK,UAAU,EAGtB,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAc,CAAC,EACnC,EAAM,KAAK,IAAI,EAAW,EAAG,EAAc,CAAC,EAElD,IAAK,IAAI,EAAI,EAAO,GAAK,EAAK,IAC7B,EAAM,KAAK,CAAC,EASb,OANI,EAAc,EAAW,GAC5B,EAAM,KAAK,UAAU,EAGtB,EAAM,KAAK,CAAQ,EAEZ,CACR,CAEA,SAAS,GAAa,EAAkB,EAAc,EAA0B,CAK/E,IAAM,EAAS,IAAI,gBAEnB,OADA,EAAO,IAAI,EAAU,OAAO,CAAI,CAAC,EAC1B,GAAG,EAAS,GAAG,EAAO,SAAS,GACvC,CAEA,SAAgB,GAAW,CAC1B,aACA,eACA,SAAS,CAAC,EACV,gBACyB,CACzB,IAAM,EAAmB,CACxB,GAAG,EAAwB,WAC3B,GAAG,CACJ,EACM,EAAW,GAAgB,OAE3B,GAAa,EAAW,aAAe,GAAK,EAAW,SAAW,EAClE,EAAW,KAAK,IACrB,EAAW,aAAe,EAAW,SACrC,EAAW,KACZ,EAEM,GAAA,EAAA,EAAA,cACJ,EAAc,IAAuB,CAChC,GAML,IAAe,EAAM,EAAK,EAAW,MAAQ,EAAE,CAChD,EACA,CAAC,EAAc,EAAW,IAAI,CAC/B,EAEM,EAAc,EAAW,gBAAkB,KAC3C,EAAU,EAAW,gBAAkB,KACvC,EAAQ,GAAoB,EAAW,aAAc,EAAW,SAAS,EAE/E,OACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,wBAAyB,6CAA6C,WAAzF,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,uCAA3C,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,SAAS,UAAU,2BAA3C,CAA8D,EAAU,IAAQ,CAAe,IAAE,IAChG,EAAiB,GAAI,KACtB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,SAAS,UAAU,2BAAmB,EAAW,KAAY,CAAA,EAAE,IACtF,EAAiB,OACb,KAEN,EAAA,EAAA,KAAC,EAAD,CAAgB,aAAY,EAAiB,UAAW,UAAU,wBACjE,EAAA,EAAA,MAAC,EAAD,CAAmB,UAAU,mBAA7B,EACC,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CACC,KAAM,EAAiB,SACxB,KAAK,IACL,QAAU,GAAwB,CACjC,EAAE,eAAe,EACjB,EACC,EAAW,aAAe,EAC1B,EAAW,aACZ,CACD,EACA,gBAAe,CAAC,EACf,UAAW,wBAAyB,EAAiD,GAAnC,kCACnD,CAAA,CACc,CAAA,EAEf,EAAM,KAAK,EAAM,IAAU,CAC3B,IAAM,EAAa,IAAS,WACtB,EAAU,EACb,YAAY,EAAW,aAAa,GAAG,IACvC,QAAQ,IAEX,OACA,EAAA,EAAA,KAAC,EAAD,CAAA,SACE,GACC,EAAA,EAAA,KAAC,GAAD,CAAoB,UAAU,iBAAmB,CAAA,GAElD,EAAA,EAAA,KAAC,EAAD,CACC,KAAK,IACL,SAAU,IAAS,EAAW,aAC9B,QAAU,GAAwB,CACjC,EAAE,eAAe,EACjB,EACC,EACA,GAAa,EAAW,KAAM,EAAM,CAAQ,CAC7C,CACD,EACC,UAAU,mCAEV,CACc,CAAA,CAEF,EAnBK,CAmBL,CAEjB,CAAC,GAED,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,GAAD,CACA,KAAM,EAAiB,KACvB,KAAK,IACL,QAAU,GAAwB,CACjC,EAAE,eAAe,EACjB,EACC,EAAW,aAAe,EAC1B,EAAW,aACZ,CACD,EACA,gBAAe,CAAC,EACf,UAAW,wBAAyB,EAA6C,GAAnC,kCAC/C,CAAA,CACc,CAAA,CACE,GACJ,CAAA,CACZ,GAEP,CAEA,GAAW,YAAc,aClKzB,SAAgB,GAAwB,EAAqC,CACzE,GAAM,CACF,MACA,UACA,YACA,cAAc,OACd,uBAAuB,KACvB,QAAS,GACT,EAEE,EAAU,GAAmB,EAC7B,EAAoB,GAAa,EAAQ,QAAQ,aAGjD,GAAA,EAAA,EAAA,aAAqD,CACvD,IAAM,EAAO,OAAO,GAAY,WAAa,EAAQ,CAAG,EAAI,EAC5D,OAAO,MAAM,QAAQ,CAAI,EAAI,EAAO,CAAC,CACzC,EAAG,CAAC,EAAS,CAAG,CAAC,EAGX,GAAA,EAAA,EAAA,aAA+B,CACjC,IAAM,EAAY,GACV,OAAO,GAAS,WAAmB,EAAK,CAAG,EACxC,EAEX,OAAO,EACF,OAAO,GAAK,CACT,IAAM,EAAI,EAAS,EAAE,SAAS,EAC9B,OAAO,IAAM,IAAA,GAAY,GAAO,CACpC,CAAC,EACA,IAAI,IAAM,CACP,GAAG,EACH,SAAU,EAAS,EAAE,UAAU,GAAK,EAAE,UAAY,EACtD,EAAE,CACV,EAAG,CAAC,EAAiB,CAAG,CAAC,EAGnB,EAAoB,EAAe,OAAS,EAG5C,CAAC,EAAU,IAAA,EAAA,EAAA,UAAwB,EAAK,EAGxC,EAAiB,EAAe,OAAQ,GAAW,EAAO,UAAY,aAAa,EACnF,EAAc,EAAe,OAAQ,GAAW,EAAO,UAAY,aAAa,EAGhF,EAAgB,CAAC,GAAG,EAAgB,GAAG,CAAW,EAqBxD,IAnBA,EAAA,EAAA,eAAgB,CACZ,GAAI,IAAgB,QAAU,CAAC,EAAmB,CAC9C,EAAY,EAAK,EACjB,MACJ,CAEA,IAAM,MAAqB,CACvB,GAAI,CACA,EAAY,OAAO,YAAc,CAAoB,CACzD,MAAQ,CACJ,EAAY,EAAK,CACrB,CACJ,EAIA,OAFA,EAAa,EACb,OAAO,iBAAiB,SAAU,CAAY,MACjC,OAAO,oBAAoB,SAAU,CAAY,CAClE,EAAG,CAAC,EAAa,EAAmB,CAAoB,CAAC,EAErD,CAAC,EAAmB,OAAO,KAE/B,IAAM,EAA0B,IAAgB,OAAU,EAAW,OAAS,SAAY,EAEpF,EAAmB,GAA4D,CAC5E,KACL,IAAI,OAAO,GAAS,WAChB,OAAO,EAGX,IAAA,EAAA,EAAA,gBAAmB,CAAI,GAAK,OAAO,EAAK,MAAS,WAC7C,OAAO,EAAK,IAJL,CAQf,EAEM,EAA8B,GAI/B,CACD,OAAQ,EAAR,CACI,IAAK,cACD,MAAO,CAAE,QAAS,QAAS,YAAa,OAAQ,EACpD,IAAK,UACD,MAAO,CAAE,QAAS,YAAa,YAAa,SAAU,EAC1D,IAAK,YACD,MAAO,CAAE,QAAS,YAAa,YAAa,OAAQ,EACxD,IAAK,QACD,MAAO,CAAE,QAAS,YAAa,YAAa,OAAQ,EACxD,IAAK,OACD,MAAO,CAAE,QAAS,YAAa,YAAa,QAAS,UAAW,8BAA+B,EAEnG,QACI,MAAO,CAAE,QAAS,UAAW,YAAa,OAAQ,CAC1D,CACJ,EAEM,EACF,GAC0C,CAC1C,OAAQ,EAAR,CACI,IAAK,UACD,MAAO,UACX,IAAK,cACD,MAAO,QACX,QACI,MAAO,WACf,CACJ,EAgCA,OA9BK,IAAS,UAEL,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,GAAG,2BAA4B,gCAAgC,WAC3E,EAAc,KAAK,EAAQ,IAAQ,CAChC,IAAM,EAAM,EAAO,IAAM,GAAG,EAAO,MAAM,GAAG,IACtC,EAAW,EAA2B,EAAO,SAAW,OAAO,EAIrE,OACI,EAAA,EAAA,MAAC,EAAA,EAAD,CAEK,QAAS,EAAS,QAClB,YAAa,EAAS,YACtB,KAAK,QACL,UAAW,EAAA,GAAG,6BAA8B,EAAS,SAAS,EAC/D,SAAU,CAAC,CAAC,EAAO,SACV,YAXK,CAClB,EAAO,UAAU,CAAG,CACxB,WAEI,CASM,CAAC,CAAC,EAAO,OAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mCAA2B,EAAO,IAAW,CAAA,EAC/E,EAAO,KACJ,GAVE,CAUF,CAEhB,CAAC,CACA,CAAA,GAOT,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,MAAO,IAAA,GACP,KAAM,EAAA,eACN,OAAQ,GAAqB,EAAQ,QAAQ,QAC7C,cAAe,GACf,MAAM,MACN,QAAQ,iBAEP,EAAc,KAAK,EAAQ,IAAQ,CAChC,IAAM,EAAM,EAAO,IAAM,GAAG,EAAO,MAAM,GAAG,IACtC,MAAgB,CAClB,EAAO,UAAU,CAAG,CACxB,EACM,EAAW,EAAgB,EAAO,IAAI,EACtC,EAAa,EAAO,MACpB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oCAA4B,EAAO,IAAW,CAAA,EAC9D,KACA,EAAkB,EAAW,MAC9B,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,iDAAf,CACI,GACD,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAO,KAAY,CAAA,CACzB,IAGH,EAAoB,EACtB,EAAO,OACX,EAEA,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAEI,MAAO,EAAO,MACd,KAAM,EACN,QAAS,EACT,SAAU,CAAC,CAAC,EAAO,SACV,mBAER,CACO,EARH,CAQG,CAEpB,CAAC,CACO,CAAA,CAEpB,CAEA,GAAiB,YAAc,mBC/L/B,IAAa,IACZ,EACA,EACA,IACI,CAEA,OAAO,GAAqB,WAE/B,EAAkB,GAAc,CAC/B,IAAM,EACL,EACC,CAAS,EAIX,OAHI,GACH,EAAgB,CAAQ,EAElB,CACR,CAAC,GAGD,EAAiB,CAAgB,EAC7B,GACH,EAAgB,CAAgB,EAGnC,EAKa,IACZ,EACA,EACA,IACI,CAEA,OAAO,GAAmB,WAE7B,EAAkB,GAAc,CAC/B,IAAM,EAAY,EACjB,CACD,EAIA,OAHI,GACH,EAAgB,CAAQ,EAElB,CACR,CAAC,GAGD,EAAiB,CAAc,EAC3B,GACH,EAAgB,CAAc,EAGjC,EAKa,IACZ,EACA,EACA,IACI,CAEA,OAAO,GAAsB,WAEhC,EAAkB,GAAc,CAC/B,IAAM,EACL,EACC,CAAS,EAIX,OAHI,GACH,EAAgB,CAAQ,EAElB,CACR,CAAC,GAGD,EAAiB,CAAiB,EAC9B,GACH,EAAgB,CAAiB,EAGpC,EAKa,GACZ,EACA,EACA,EACA,IACY,CACZ,IAAI,EAAY,GAchB,OAXI,IACH,GAAa,iBAIV,OAAO,GAAiB,WAC3B,GAAa,EAAa,EAAK,CAAK,EAAI,IAC9B,IACV,GAAa,EAAe,KAGtB,EAAU,KAAK,CACvB,EAKa,GACZ,EACA,EACA,EACA,EACA,IACY,CACZ,IAAI,EAAgB,GAcpB,OAXI,OAAO,GAAkB,SAC5B,EAAgB,EACN,GAAiB,IAC3B,EAAgB,EAAc,EAAU,CAAG,GAIxC,GAAqB,EACjB,GAAG,EAAc,8DAGlB,CACR,EAKa,GAAyC,GAC9C,EAAM,oBAAoB,EAAE,KAAK,IAAK,GAAQ,EAAI,QAAQ,EAMrD,IACZ,EACA,EAA4B,KAE3B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wBACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,UAAU,2EACX,QAAS,EAAI,cAAc,EAC3B,SAAU,CAAC,EAAI,aAAa,EAC5B,gBAAkB,GAAY,EAAI,eAAe,IAAY,EAAI,EACjE,QAAU,GAAM,EAAE,gBAAgB,EAClC,aAAY,EAAQ,UAAU,IAAI,EAAI,KAAK,CAC3C,CAAA,CACG,CAAA,EAMO,IACZ,EACA,EAA4B,KAE3B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wBACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,UAAU,2BACX,QAAS,EAAM,yBAAyB,EACxC,cAAe,EAAM,0BAA0B,GAAK,CAAC,EAAM,yBAAyB,EACpF,gBAAkB,GAAY,EAAM,0BAA0B,IAAY,EAAI,EAC9E,aAAY,EAAQ,UAAU,SAC9B,CAAA,CACG,CAAA,EAMO,IACZ,EACA,EAA4B,IAYrB,CAAC,CATP,GAAI,YACJ,QAAS,CAAE,WACV,GAA8B,EAAO,CAAO,EAC7C,MAAO,CAAE,SAA+B,GAA2B,EAAK,CAAO,EAC/E,cAAe,GACf,eAAgB,GAChB,KAAM,EAGC,EAAiB,GAAG,CAAO,ECvMpC,SAAgB,GAAqB,CACpC,QACA,aACA,oBACA,mBACA,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,QAAQ,GACR,WAC6B,CAC7B,IAAM,EAAY,EAAM,YAAY,EAAE,KAChC,EACL,GACA,GAAS,WAAW,SACpB,EAAwB,WAAW,QAE9B,EAAkB,GAAe,CAClC,GACH,EAAW,CAAG,CAEhB,EAgCA,OA9BK,EAAU,QA+Bd,EAAA,EAAA,KAAC,EAAD,CAAA,SACE,EAAU,KAAK,EAAK,IAAa,CACjC,IAAM,EAAgB,EAAI,cAAc,EAClC,EAAW,EAAI,gBAAgB,EAC/B,EAAuB,EAC5B,EACA,EACA,EACA,CACD,EACM,MAA2B,CAC5B,GACH,EAAe,EAAI,QAAQ,CAE7B,EAGM,EAAa,EAAA,GAClB,EAHkB,GAAW,EAAW,GAAM,EAAI,cAAgB,GAKlE,iCACA,uDALmB,EAAa,iBAAmB,GAOnD,2CACD,EAGA,OACC,EAAA,EAAA,KAAC,EAAD,CAEC,aALe,EAAgB,WAAa,KAM5C,UAAW,EACX,QAAS,WAER,EAAS,KAAK,EAAM,KACpB,EAAA,EAAA,KAAC,EAAD,CAEC,UAAW,EAAA,GACV,EACC,EAAK,OAAO,GACZ,EACA,EACA,EACA,IAAc,CACf,EACA,mCACA,EAAK,OAAO,UAAU,MAAM,QAAU,OAAS,aAC/C,EAAK,OAAO,UAAU,MAAM,QAAU,UAAY,cAClD,GAAS,iEACV,4BAGC,EAAK,OAAO,UAAU,KACtB,EAAK,WAAW,CACjB,CACU,EAnBL,EAAK,EAmBA,CACX,CACQ,EA5BJ,EAAI,EA4BA,CAEZ,CAAC,CACS,CAAA,GAzFV,EAAA,EAAA,KAAC,EAAD,CAAW,UAAU,kCACpB,EAAA,EAAA,KAAC,EAAD,CAAU,UAAU,iCACnB,EAAA,EAAA,KAAC,EAAD,CACC,UAAU,mBACV,QAAS,EAAM,cAAc,EAAE,iBAE/B,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,wEAAf,EACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,8FACd,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wCAAwC,MAAM,6BAA6B,KAAK,OAAO,QAAQ,YAAY,YAAa,IAAK,OAAO,yBAClJ,EAAA,EAAA,KAAC,OAAD,CAAM,cAAc,QAAQ,eAAe,QAAQ,EAAE,0JAA4J,CAAA,CAC7M,CAAA,CACD,CAAA,GACL,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,YACL,OAAO,kBAEN,CACI,CAAA,EACL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,gBAAQ,CAAsB,CAAA,CAE1C,GACK,CAAA,CACF,CAAA,CACA,CAAA,CAmEd,CAEA,GAAc,YAAc,gBC1H5B,SAAgB,GACf,CACC,QACA,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB,GACpB,eACA,QAAQ,GACR,oBAAoB,IACW,CAEhC,IAAM,EAAe,EAAM,gBAAgB,EACrC,EAAsB,EACzB,EAAA,GACD,sEACA,EAAoB,mBAAqB,aAC1C,EACE,GAEG,EAAkB,GAClB,EACE,EAAa,KAAK,GAAS,EAAM,QAAQ,SAAS,CAAQ,CAAC,EADxC,KA8D3B,OACC,EAAA,EAAA,MAAC,EAAD,CACC,UAAW,WADZ,MA3DkC,CAClC,GAAI,CAAC,GAAgB,EAAa,SAAW,GAAK,EAAa,SAAW,EACzE,OAAO,KAGR,IAAM,EAAU,EAAa,GAAG,QAC5B,EAA8B,KAC9B,EAAY,EACV,EAAgC,CAAC,EA2CvC,OAzCA,EAAQ,SAAS,EAAQ,IAAU,CAElC,IAAM,EADQ,EAAe,EAAO,EAClB,GAAO,QAAU,GAE/B,IAAc,EAkBjB,KAjBI,IAAiB,MAAQ,EAAY,GACxC,EAAW,MACV,EAAA,EAAA,KAAC,EAAD,CAEC,QAAS,EACT,UAAW,EAAA,GACV,gKACA,CACD,WAEC,GAAgB,EACP,EARL,SAAS,EAAa,GAAG,EAAW,QAQ/B,CACZ,EAED,EAAe,EACf,EAAY,GAKT,IAAU,EAAQ,OAAS,GAAK,EAAY,GAC/C,EAAW,MACV,EAAA,EAAA,KAAC,EAAD,CAEC,QAAS,EACT,UAAW,EAAA,GACV,kLACA,CACD,WAEC,GAAgB,EACP,EARL,SAAS,EAAa,GAAG,EAAW,QAQ/B,CACZ,CAEF,CAAC,GAGA,EAAA,EAAA,KAAC,EAAD,CAAU,UAAW,EAAA,GAAG,0BAA2B,wBAAwB,WACzE,CACQ,CAAA,CAEZ,GAMwB,EACrB,EAAa,IAAK,IAClB,EAAA,EAAA,KAAC,EAAD,CAEC,UAAW,EAAA,GACV,4BACA,EACG,sCACA,+BACJ,WAEC,EAAY,QAAQ,KAAK,EAAQ,IAAU,CAC3C,IAAM,EAAc,EAAA,GACnB,EACC,EAAO,GACP,KACA,EACA,EACA,IAAU,CACX,EACA,mCACA,GAAS,kEACT,sDACA,EAAO,OAAO,UAAU,MAAM,QAAU,OAAS,aACjD,EAAO,OAAO,UAAU,MAAM,QAAU,UAAY,cACpD,EACA,GAAgB,GAAqB,IAAU,GAAK,OACpD,CAAC,GAAgB,gBAClB,EACM,EAAc,EACjB,CAAE,SAAU,UAAoB,EAChC,IAAA,GACG,EAAgB,EAAO,iBAAiB,EACxC,EAAa,EAAO,OAAO,cAAc,EACzC,OAAqB,CAC1B,IAAM,EAAY,EAAO,OAAO,UAAU,OAI1C,OAHI,OAAO,GAAc,SACjB,EAED,OAAO,EAAO,IAAO,SAAW,EAAO,GAAK,QACpD,GAAG,EAEH,OACC,EAAA,EAAA,KAAC,EAAD,CAEC,UAAW,EACX,MAAO,WAEN,EAAO,cAAgB,MACvB,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,MACS,CACP,IAAM,EAAU,EAAO,OAAO,WAAW,EACnC,EAAU,EAAO,OAAO,YAAY,EACpC,GAAA,EAAA,EAAA,YACL,EAAO,OAAO,UAAU,OACxB,EAAO,WAAW,CACnB,EACM,EACL,IAAY,MACT,EAAA,QACA,IAAY,OACX,EAAA,UACA,EAAA,eAIL,OAHK,GAIJ,EAAA,EAAA,MAAC,SAAD,CACC,KAAK,SACL,QAAS,EAAO,OAAO,wBAAwB,EAC/C,UAAW,EAAA,GACV,2FACA,0CACA,6EACA,GAAW,iBACZ,EACA,aAAY,QAAQ,aATrB,CAWE,GACD,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GACV,2CACA,EACG,cACA,mCACJ,EACA,cAAY,MACZ,CAAA,CACM,KAxBD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,GAAG,oBAAqB,EAAO,OAAO,UAAU,MAAM,QAAU,OAAS,cAAe,EAAO,OAAO,UAAU,MAAM,QAAU,UAAY,gBAAgB,WAAI,CAAgB,CAAA,CA0BzM,GAAG,EAEF,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,SAAD,CACC,KAAK,SACL,UAAW,EAAA,GACV,0LACA,GACC,gCACF,EACA,aAAY,UAAU,IACtB,mBAAiB,WACjB,YAAa,EACb,aAAc,CACd,CAAA,CAEE,CAAA,CAAA,CAEI,EAhEL,EAAO,EAgEF,CAEb,CAAC,CACQ,EA5GJ,EAAY,EA4GR,CACV,CACW,GAEf,CAEA,GAAgB,YAAc,kBCzM9B,SAAgB,EAA8B,CAC1C,QACA,YACA,QAAQ,MACR,UAAU,GACyB,CACnC,GAAM,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAK,EAChC,EAAU,EAAM,cAAc,EAC/B,OAAQ,GAAW,EAAO,WAAW,CAAC,EAI3C,OAFI,EAAQ,SAAW,EAAU,MAG7B,EAAA,EAAA,MAAC,EAAA,EAAD,CAAoB,OAAM,aAAc,WAAxC,EACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,OAAS,IACL,EAAA,EAAA,MAAC,EAAA,EAAD,CACI,GAAI,EACJ,KAAK,SACL,aAAY,EAAQ,iBAAiB,aACrC,QAAQ,YACR,YAAY,UACZ,KAAK,QACL,UAAW,EAAA,GACP,sCACA,iCACC,EAAwC,UACzC,CACJ,WAZJ,EAcI,EAAA,EAAA,KAAC,EAAA,UAAD,CAAW,UAAU,eAAe,cAAY,MAAQ,CAAA,GACxD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,4BAAoB,EAAQ,iBAAiB,YAAmB,CAAA,CAC5E,GAEf,CAAA,GACD,EAAA,EAAA,KAAC,EAAA,EAAD,CAA4B,QAAO,UAAU,iBACzC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAoB,EAAQ,iBAAiB,KAAyB,CAAA,GACtE,EAAA,EAAA,KAAC,EAAA,EAAD,CAAwB,CAAA,EACvB,EAAQ,IAAK,GAAW,CACrB,IAAM,EAAS,EAAO,UAAU,OAC1B,EAAa,EAAQ,iBAAiB,YACxC,EAAO,GACP,OAAO,GAAW,SAAW,EAAS,IAAA,EAC1C,EAEA,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAEI,UAAU,aACV,QAAS,EAAO,aAAa,EAC7B,gBAAkB,GAAY,EAAO,iBAAiB,CAAC,CAAC,CAAO,WAE9D,CACqB,EANjB,EAAO,EAMU,CAElC,CAAC,CACc,CAAA,CAAA,CACF,CAAA,CACX,GAEtB,CAEA,EAAuB,YAAc,yBCzErC,IAAM,GAAgB,IAEhB,GAAU,qNAUhB,SAAS,EAAkB,CAAE,QAAO,UAAS,WAAU,YAAW,YAAoC,CAClG,OACI,EAAA,EAAA,KAAC,SAAD,CACI,KAAK,SACL,aAAY,EACZ,UAAW,EAAA,GAAG,2BAA4B,GAAS,CAAS,EACnD,UACC,WAET,UACG,CAAA,CAEhB,CAMA,SAAS,EAAmB,EAAyD,CAEjF,OADK,EACE,EAAU,cAA8B,+BAA+B,EADvD,IAE3B,CAEA,SAAgB,GAAwB,CACpC,QACA,eACA,QACA,gBACA,yBAAyB,GACzB,UAAU,GACmB,CAC7B,GAAM,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,EAAK,EAClD,CAAC,EAAgB,IAAA,EAAA,EAAA,UAA8B,EAAK,EACpD,GAAA,EAAA,EAAA,QAAgB,CAAC,EACjB,GAAA,EAAA,EAAA,QAAyC,IAAI,EAG7C,GAAA,EAAA,EAAA,iBAAkC,CACpC,IAAM,EAAK,EAAmB,EAAa,OAAO,EAClD,GAAI,CAAC,EAAI,CACL,EAAiB,EAAK,EACtB,EAAkB,EAAK,EACvB,MACJ,CACA,GAAM,CAAE,aAAY,cAAa,eAAgB,EACjD,EAAiB,EAAa,CAAC,EAC/B,EAAkB,EAAa,EAAc,EAAc,CAAC,CAChE,EAAG,CAAC,CAAY,CAAC,GAEjB,EAAA,EAAA,eAAgB,CAEZ,IAAM,EAAU,OAAO,eAAiB,CACpC,IAAM,EAAK,EAAmB,EAAa,OAAO,EAClD,GAAI,CAAC,EAAI,OAGT,EAAc,EAEd,IAAM,MAAqB,CACvB,qBAAqB,EAAO,OAAO,EACnC,EAAO,QAAU,sBAAsB,CAAa,CACxD,EAEA,EAAG,iBAAiB,SAAU,EAAc,CAAE,QAAS,EAAK,CAAC,EAG7D,IAAM,EAAK,IAAI,eAAe,CAAa,EAC3C,EAAG,QAAQ,CAAE,EACT,EAAG,mBACH,EAAG,QAAQ,EAAG,iBAAiB,EAInC,EAAW,YAAgB,CACvB,EAAG,oBAAoB,SAAU,CAAY,EAC7C,qBAAqB,EAAO,OAAO,EACnC,EAAG,WAAW,CAClB,CACJ,EAAG,CAAC,EAEJ,UAAa,CACT,OAAO,aAAa,CAAO,EAC3B,EAAW,UAAU,CACzB,CAGJ,EAAG,CAAC,EAAc,EAAe,CAAK,CAAC,EAGvC,IAAM,GAAA,EAAA,EAAA,iBAAqC,CACvC,EAAmB,EAAa,OAAO,GAAG,SAAS,CAAE,KAAM,KAAgB,SAAU,QAAS,CAAC,CACnG,EAAG,CAAC,CAAY,CAAC,EAEX,GAAA,EAAA,EAAA,iBAAsC,CACxC,EAAmB,EAAa,OAAO,GAAG,SAAS,CAAE,KAAM,GAAe,SAAU,QAAS,CAAC,CAClG,EAAG,CAAC,CAAY,CAAC,EAGX,GAAA,EAAA,EAAA,iBAAsC,CACxC,EAAc,CAAC,CAAK,CACxB,EAAG,CAAC,EAAO,CAAa,CAAC,EAGnB,EAAkB,EAClB,EAAM,cAAc,EAAE,OAAQ,GAAW,EAAO,WAAW,CAAC,EAC5D,CAAC,EAED,EAAkB,GAAiB,EACnC,EAAa,EAAgB,OAAS,EACtC,EAAmB,EACnB,EAAQ,QAAQ,YAChB,EAAQ,QAAQ,MAEtB,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qEAAf,CAEK,CAAC,CAAC,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,EAAD,CACI,MAAO,EAAQ,QAAQ,WACvB,QAAS,EACT,SAAU,CAAC,EACX,UAAU,yDAEV,EAAA,EAAA,KAAC,EAAA,YAAD,CAAa,UAAU,cAAgB,CAAA,CACxB,CAAA,GACnB,EAAA,EAAA,KAAC,EAAD,CACI,MAAO,EAAQ,QAAQ,YACvB,QAAS,EACT,SAAU,CAAC,YAEX,EAAA,EAAA,KAAC,EAAA,aAAD,CAAc,UAAU,cAAgB,CAAA,CACzB,CAAA,GACnB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oBAAsB,CAAA,CACvC,CAAA,CAAA,EAIL,CAAC,CAAC,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,EAAD,CACW,QACE,UACT,UAAW,EAAA,GACP,+DACA,CAAC,GAAmB,8CACxB,CACH,CAAA,GACD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oBAAsB,CAAA,CACvC,CAAA,CAAA,GAIN,EAAA,EAAA,KAAC,EAAD,CACI,MAAO,EACP,QAAS,EACT,UAAW,EAAA,GACP,+CACA,CAAC,GAAmB,CAAC,GAAc,8CACvC,WAEC,GACK,EAAA,EAAA,KAAC,EAAA,UAAD,CAAW,UAAU,cAAgB,CAAA,GACrC,EAAA,EAAA,KAAC,EAAA,UAAD,CAAW,UAAU,cAAgB,CAAA,CAE5B,CAAA,CAClB,GAEb,CAEA,GAAiB,YAAc,mBC1I/B,IAAM,IAAA,EAAA,EAAA,eAAkD,IAAI,EAE5D,SAAgB,IAAgC,CAC/C,OAAA,EAAA,EAAA,YAAkB,EAAoB,CACvC,CAwBA,IAAM,GAAiG,CACtG,MAAO,kHACP,QAAS,oHACV,EAEM,GAAqG,CAC1G,MAAO,KACP,QAAS,IACV,EAEA,SAAS,GAAuB,EAAiF,CAIhH,OAHI,IAAS,SAAW,IAAS,UAAkB,EAC/C,IAAS,KAAa,QACmB,SAE9C,CAEA,IAAM,GAAa,GAA2D,CACzE,OAAU,IAAA,GACd,OAAO,OAAO,GAAU,SAAW,GAAG,EAAM,IAAM,CACnD,EAEA,SAAgB,EAAkD,CACjE,OACA,UAAU,OACV,oBAAoB,GACpB,UACA,OACA,eACA,aACA,sBACA,wBACA,uBACA,gBAAgB,GAChB,gBAAgB,GAChB,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAC1B,wBAAwB,GACxB,aACA,eACA,gBACA,UACA,cACA,uBACA,eAAe,GACf,iBAAgB,GAChB,qBAAoB,GACpB,iBACA,sBAAsB,GACtB,oBACA,oBACA,aAAY,GACZ,gBAAe,GACf,gBAAgB,GAChB,mBAAkB,GAClB,oBAAmB,GACnB,iBAAiB,kBACjB,0BAA0B,GAC1B,YACA,aAAc,EACd,eACA,2BACA,QAAS,EACT,gBACA,gBACA,mBACA,cACA,6BACA,cACiC,CACjC,GAAM,CAAE,gBAAgB,EAAA,EAAe,EACjC,EAAe,GAAuB,GAAQ,EAAW,EAEzD,GAAA,EAAA,EAAA,aACC,GAAsB,CAAe,EAC3C,CAAC,CAAe,CACjB,EAEM,GAAkB,EAAA,GAAG,UAAW,EAAY,EAC5C,GAA4B,GAAqB,EAAQ,WAAW,QACpE,EAAuB,GAAgB,OACvC,EAAwB,GAAU,EAAa,EAG9C,EAED,MAAM,QAAQ,CAAO,GAAK,EAAQ,SAAW,GAAK,MAAM,QAAQ,EAAQ,EAAE,EACtE,EAAQ,GAIT,EAIH,GAAA,EAAA,EAAA,aACE,EAAa,MAAM,EAAW,UAAY,KAC/C,CAAC,CAAU,CAAC,EAGT,GAAA,EAAA,EAAA,aACE,EAAa,MAAM,EAAW,QAAU,KAC7C,CAAC,CAAU,CAAC,EAGT,IAAA,EAAA,EAAA,aAAyD,CAE9D,GAAI,CAAC,GAAuB,OAAO,OAAW,IAC7C,OAAO,GAAc,kBAAoB,CAAC,EAG3C,GAAI,CACH,IAAM,EAAS,OAAO,aAAa,QAAQ,CAAmB,EAG9D,MAAO,CAAE,GAFM,EAAU,KAAK,MAAM,CAAM,EAAwB,CAAC,EAE/C,GAAI,GAAc,kBAAoB,CAAC,CAAG,CAC/D,MAAQ,CAEP,OAAO,GAAc,kBAAoB,CAAC,CAC3C,CACD,EAAG,CAAC,EAAqB,GAAc,gBAAgB,CAAC,EAGlD,IAAA,EAAA,EAAA,aAA6B,CAClC,GAAI,CAAC,GAAmB,OAAO,OAAW,IAAa,MAAO,GAC9D,GAAI,CACH,OAAO,OAAO,aAAa,QAAQ,CAAe,IAAM,GACzD,MAAQ,CACP,MAAO,EACR,CACD,EAAG,CAAC,CAAe,CAAC,EAGd,CAAC,GAAS,KAAA,EAAA,EAAA,UAAqC,GAAc,SAAW,CAAC,CAAC,EAC1E,CAAC,GAAkB,KAAA,EAAA,EAAA,UACxB,EACD,EACM,CAAC,GAAsB,KAAA,EAAA,EAAA,UAC5B,GAAc,cAAgB,CAAC,CAChC,EACM,CAAC,EAAO,KAAA,EAAA,EAAA,UAAqB,EAAY,EACzC,EAAe,GAA0B,GAGzC,IAAA,EAAA,EAAA,QAAsC,IAAI,EAG1C,IAAA,EAAA,EAAA,aACJ,GAAmC,CACnC,GAAoB,EAAS,GAAY,EAAM,CAChD,EACA,CAAC,EAAM,CACR,EAEM,IAAA,EAAA,EAAA,aACJ,GAAsC,CACtC,GACC,EACA,GACC,GAAa,CAEb,GAAI,GAAuB,OAAO,OAAW,IAC5C,GAAI,CACH,OAAO,aAAa,QACnB,EACA,KAAK,UAAU,CAAQ,CACxB,CACD,MAAQ,CAER,CAIG,GACH,EAAyB,CAAQ,CAEnC,CACD,CACD,EACA,CAAC,EAAqB,CAAwB,CAC/C,EAEM,IAAA,EAAA,EAAA,aACJ,GAAwC,CACxC,IAAM,EACL,OAAO,GAAY,WAAa,EAAQ,CAAY,EAAI,EAErD,IAA2B,IAAA,IAC9B,GAAwB,CAAgB,EAGzC,IAAuB,CAAgB,CACxC,EACA,CAAC,EAAwB,EAAsB,CAAY,CAC5D,EAEM,IAAA,EAAA,EAAA,aACJ,GAAmB,CAEnB,GADA,GAAS,CAAK,EACV,GAAmB,OAAO,OAAW,IACxC,GAAI,CACH,OAAO,aAAa,QAAQ,EAAiB,EAAQ,IAAM,GAAG,CAC/D,MAAQ,CAER,CAEF,EACA,CAAC,CAAe,CACjB,EAEM,IAAA,EAAA,EAAA,aACJ,GACI,OAAO,GAAwB,WAC3B,EAAoB,CAAG,EAGxB,GAAuB,EAAQ,QAAQ,aAE/C,CAAC,EAAqB,EAAQ,QAAQ,YAAY,CACnD,EA4CM,GAAA,EAAA,EAAA,eAAsB,CAC3B,OACA,SAAA,EAAA,EAAA,aA5CoE,CACpE,IAAM,EAAc,EACjB,GAAkC,EAAiB,CAAO,EAC1D,EAGH,GAAI,CAAC,EACJ,OAAO,EAIR,IAAM,EAAsC,CAC3C,GAAI,UACJ,OAAQ,EAAQ,QAAQ,aAExB,MAAO,CAAE,UACR,EAAA,EAAA,KAAC,GAAD,CACC,IAAK,EAAI,SACT,QAAS,EACT,UAAW,GAAuB,EAAI,QAAQ,EAC9C,YAAa,EACb,qBAAsB,EACb,SACT,CAAA,EAEF,cAAe,GACf,aAAc,GACd,KAAM,EACP,EAEA,MAAO,CAAC,GAAG,EAAa,CAAS,CAClC,EAAG,CACF,EACA,EACA,EACA,GACA,EACA,EACA,CACD,CAKU,EACT,MAAO,CAAE,WAAS,oBAAkB,cAAa,EACjD,gBACA,gBACA,qBACA,0BACA,wBACA,gBACC,GAAiB,EAAgB,GAA8B,IAAA,GAChE,qBACC,EAAqB,GAAmC,IAAA,GACzD,yBAA0B,GAC1B,iBAAA,EAAA,EAAA,iBAAiC,EACjC,WACD,CAAC,EAGK,GAAa,GAAc,EAAW,UAAY,EAClD,GAAe,EAAM,oBAAoB,EAAE,KAAK,IAAK,GAAQ,EAAI,QAAQ,EACzE,EAAmB,GAAa,OAChC,IAAA,EAAA,EAAA,iBAAmC,CACxC,EAAM,kBAAkB,CACzB,EAAG,CAAC,CAAK,CAAC,EACJ,GAAmE,CACxE,QACA,gBACA,mBACA,cAAe,EAAK,OACpB,eACA,iBACD,EACM,GACL,OAAO,GAAgB,WACpB,EAAY,EAAuB,EACnC,EACE,GAA0B,EAAmB,GAClD,EAAA,EAAA,MAAC,MAAD,CACC,iBAAe,+BACf,YAAU,+BACV,UAAW,EAAA,GACT,sLACD,IAAiB,6CACjB,EACD,WAPD,EASC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,UAAU,yDACd,EAAQ,UAAU,QAAQ,EAAkB,EAAK,MAAM,CACnD,CAAA,GACN,EAAA,EAAA,MAAC,MAAD,CACC,YAAU,uCACT,UAAU,mGAFZ,CAIE,IACD,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,SACL,QAAQ,YACR,YAAY,QACZ,QAAS,YAER,EAAQ,UAAU,KACZ,CAAA,CACJ,GACD,IACF,KACE,GACD,CAAC,GAAsB,IAAqB,GAC5C,IAAqB,MAAQ,IAAqB,GAAc,KAChE,OAAO,GAAqB,WACxB,EAAiB,EAAuB,EAEzC,GAAoB,GAEtB,IAAA,EAAA,EAAA,aAA0D,CAC1D,KACL,MAAO,CAAE,+BAAgC,CAAsB,CAChE,EAAG,CAAC,CAAqB,CAAC,EACpB,GACL,GAAS,GAAuB,IAA0B,IAAA,IAE3D,EAAA,EAAA,eAAgB,CACf,IAAM,EAAe,GAAa,SAAS,cAA2B,+BAA+B,EAChG,IAEL,EAAa,SAAW,EACxB,EAAa,aAAa,aAAc,EAAQ,cAAc,YAAY,EAC3E,EAAG,CAAC,EAAQ,cAAc,YAAY,CAAC,EAEvC,IAAM,GAAW,GAAqB,SAChC,GAAmB,GAAwB,GAEjD,OACC,EAAA,EAAA,KAAC,GAAD,CAAU,MAAO,aACjB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GACf,EACG,qEACA,EAAA,GACD,4BACA,GAAuB,+BACvB,IAAY,QACX,oIACD,IAAY,SACX,qDAED,EACD,CACF,WAbA,CAcE,CAAC,EAAE,GAAiB,KACpB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,WAAY,IAAiB,4CAA4C,WAA5F,EAEgB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GACX,oFACD,EAAQ,gBAAkB,MAC9B,WAHA,EAII,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,yCAAiC,CAAmB,CAAA,GACnE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kEACX,EAAA,EAAA,KAAC,GAAD,CACW,QACO,gBACP,QACP,cAAe,GACS,yBACf,SACZ,CAAA,CACA,CAAA,CAEJ,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,CAAA,CACX,IAGjB,IAED,EAAA,EAAA,KAAC,MAAD,CACC,IAAK,GACL,MAAO,GACP,UAAW,EAAA,GACV,UACA,GAAoC,kBAAoB,GACvD,GAAS,IAAwB,QACnC,YAGA,EAAA,EAAA,MAAC,EAAD,CACC,UAAW,EAAA,GACV,WACA,GAAyB,GACzB,EACD,EACA,mBAAoB,EAAA,GACnB,sGACA,IAAqC,gBACrC,IAA0B,IAAA,IAAa,wCACtC,GAAS,IAAwB,iBAClC,CACD,WAZD,EAcC,EAAA,EAAA,KAAC,GAAD,CACQ,QACO,eACG,mBACF,gBACI,qBACL,eACP,QACY,mBACnB,CAAA,GACD,EAAA,EAAA,KAAC,GAAD,CACQ,QACK,cACZ,kBAAmB,GACD,oBACH,gBACf,aAAc,GACK,qBACV,UACF,OACP,CAAA,CACK,GACH,CAAA,EACJ,CAAC,CAAC,KACF,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACgB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,CAAA,GACZ,EAAA,EAAA,KAAC,GAAD,CACgB,aACE,gBACd,aAAc,EACd,OAAQ,EAAQ,UACnB,CAAA,CACH,CAAA,CAAA,EAEd,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CACC,YAAU,oBACT,UAAU,4EAEV,CACG,CAAA,CAEF,GACK,CAAA,CAEZ,CAEA,EAAU,YAAc,YCthBxB,SAAgB,EAA0B,CAC7B,QACA,eACA,oBACA,yBAAyB,GACzB,gBACD,UAAU,GACwB,CAC7C,GAAI,CAAC,GAAgB,CAAC,GAA0B,CAAC,EAChD,OAAO,KAGR,IAAM,EAAoB,GAAqB,EAAQ,OAAO,kBAE9D,OACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,wBAAyB,uCAAuC,WAAnF,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,8CAAf,CAEE,CAAC,CAAC,IACD,EAAA,EAAA,KAAC,EAAA,EAAD,CACA,YAAa,EACb,MAAQ,EAAM,UAAU,CAAY,GAAG,eAAe,GAAgB,GACtE,SAAW,GAAU,CACpB,IAAM,EAAQ,EAAM,OAAO,MAC3B,EAAM,UAAU,CAAY,GAAG,eAAe,CAAK,CACpD,EACA,UAAU,UACV,CAAA,EAID,CACG,IAGH,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAS,IACR,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,GAAI,EACJ,QAAQ,YACR,YAAY,UACZ,UAAU,mBAET,EAAQ,iBAAiB,YACnB,CAAA,CAET,CAAA,GACD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAqB,MAAM,gBAC1B,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAoB,EAAQ,iBAAiB,KAAyB,CAAA,EACrE,EACC,cAAc,EACd,OAAQ,GAAW,EAAO,WAAW,CAAC,EACtC,IAAK,GAAW,CAChB,IAAM,EAAS,EAAO,UAAU,OAC1B,EAAa,EAAQ,iBAAiB,YAC3C,EAAO,GACP,OAAO,GAAW,SAAW,EAAS,IAAA,EACvC,EAEA,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAEC,UAAU,aACV,QAAS,EAAO,aAAa,EAC7B,gBAAkB,GACjB,EAAO,iBAAiB,CAAC,CAAC,CAAO,WAGjC,CACwB,EARpB,EAAO,EAQa,CAE5B,CAAC,CACgB,CAAA,CAAA,CACC,CAAA,CACR,CAAA,CAAA,CAEZ,GAEP,CAEA,EAAmB,YAAc,qBC3FjC,SAAgB,EAAoB,CAAE,QAAO,mBAAkB,gBAAe,UAAU,GAAqD,CAEzI,IAAM,EAAW,GAAoB,EAAM,4BAA4B,EAAE,KAAK,OACxE,EAAQ,GAAiB,EAAM,oBAAoB,EAAE,KAAK,OAC1D,EAAU,EAAQ,UAAU,QAAQ,EAAU,CAAK,EAEzD,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,8BAA+B,mDAAmD,WAArG,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,mBACX,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBACN,CACC,CAAA,CACL,CAAA,GACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAQ,QAAQ,YAAY,YAAY,UAAU,YAAe,EAAM,aAAa,EAAG,SAAU,CAAC,EAAM,mBAAmB,WACtH,EAAQ,WAAW,QAChB,CAAA,GACR,EAAA,EAAA,KAAC,EAAA,EAAD,CAAQ,QAAQ,YAAY,YAAY,UAAU,YAAe,EAAM,SAAS,EAAG,SAAU,CAAC,EAAM,eAAe,WAC9G,EAAQ,WAAW,IAChB,CAAA,CACP,GAEb,CAEA,EAAoB,YAAc,sBCUlC,SAAgB,EAAU,CAAE,QAAO,WAAW,KAAM,UAAS,YAAW,YAA4B,CAChG,IAAM,EAAY,IAAY,GAAU,MAA+B,IAAU,IAuBjF,OArBI,IAAa,IAAA,GAab,GAEI,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACjF,CACC,CAAA,GAKV,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,UAAqB,qBACtC,OAAO,CAAK,CACX,CAAA,GAtBF,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,IAAI,OACJ,KAAK,UACL,KAAM,EAAY,YAAc,OAChC,UAAW,EAAA,GAAG,GAAa,aAAc,CAAS,EAEjD,UACC,CAAA,CAiBlB,CAEA,EAAU,YAAc,YClExB,IAAa,EAAa,IAExB,EAAA,EAAA,KAAC,IAAD,CACC,UAAU,0KACV,GAAI,WAEH,EAAM,QACL,CAAA,EC2BL,SAAgB,EAAmC,CAClD,QACA,MACA,aAAA,IACA,aAC4B,CAC5B,GAAI,CAAC,GAAS,EAAE,KAAS,GACxB,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAGR,IAAM,EAAQ,EAAI,GACZ,EAAO,EAAM,KACnB,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,QAAS,EAAM,SAAW,YAC1B,UAAW,EAAA,GAAG,eAAgB,CAAS,WAFxC,CAIE,CAAC,CAAC,IAAQ,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,cAAgB,CAAA,EAC1C,EAAM,KACD,GAET,CAEA,EAAW,YAAc,aAsBzB,SAAgB,EAAkB,CACjC,QAAQ,CAAC,EACT,aAAA,IACA,YACA,kBAC0B,CAC1B,IAAM,EAAe,EAAM,OAAQ,GAAS,CAAC,EAAK,MAAM,EAUxD,OARI,EAAa,SAAW,GAE1B,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,GAKP,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,GAAG,0DAA2D,CAAS,WACtF,EAAa,KAAK,EAAM,IAAU,CAClC,IAAM,EAAO,EAAK,KAClB,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAEC,QAAS,EAAK,SAAW,YACzB,IAAK,EAAK,IACV,UAAW,EAAA,GAAG,WAAY,CAAc,WAJzC,CAME,CAAC,CAAC,IAAQ,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,cAAgB,CAAA,EAC1C,EAAK,KACA,GAPD,EAAK,IAAM,CAOV,CAET,CAAC,CACI,CAAA,CAER,CAEA,EAAkB,YAAc,oBAiBhC,IAAM,EAAmD,CACxD,MAAO,QACP,IAAK,UACL,KAAM,SACP,EAEA,SAAgB,GAAS,CACxB,QACA,UAAU,EACV,SACA,WAAW,GACX,KAAM,EAAgB,EAAA,SACtB,aAAA,IACA,aACiB,CACjB,GAAI,GAAU,MAA+B,IAAU,GACtD,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAGR,IAAM,EAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,CAAK,EAC3D,GAAI,OAAO,MAAM,EAAK,QAAQ,CAAC,EAC9B,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAGR,IAAM,EAAY,IAAI,KAAK,eAAe,EAAQ,CAAO,EACzD,OACC,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,GAAG,qDAAsD,CAAS,WAAnF,CACE,CAAC,CAAC,IAAY,EAAA,EAAA,KAAC,EAAD,CAAe,UAAU,iCAAmC,CAAA,GAC3E,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,qBACxB,EAAU,OAAO,CAAI,CACjB,CAAA,CACD,GAER,CAEA,GAAS,YAAc,WAYvB,SAAgB,EAAa,CAC5B,QACA,UAAU,EACV,SACA,WAAW,GACX,KAAM,EAAgB,EAAA,SACtB,aAAA,IACA,YACA,mBACA,YACA,sBACqB,CACrB,GAAI,GAAU,MAA+B,IAAU,GACtD,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAIR,IAAM,EAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,CAAK,EAC3D,GAAI,OAAO,MAAM,EAAK,QAAQ,CAAC,EAC9B,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAIR,IAAM,EAAY,IAAI,KAAK,eAAe,EAAQ,CAAO,EACnD,EAAgB,OAAO,GAAc,WAAa,EAAU,CAAI,EAAI,EAE1E,OACC,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,GAAG,+CAAgD,CAAS,WAA7E,CACE,CAAC,CAAC,IAAY,EAAA,EAAA,KAAC,EAAD,CAAe,UAAU,uDAAyD,CAAA,GACjG,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,sCAAhB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,UACL,KAAK,YACL,UAAW,EAAA,GAAG,wBAAyB,CAAgB,WAEtD,EAAU,OAAO,CAAI,CACjB,CAAA,EACL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,UACL,KAAK,YACL,UAAW,EAAA,GAAG,8BAA+B,CAAkB,WAE9D,CACI,CAAA,CAEF,GACD,GAER,CAEA,EAAa,YAAc,eAe3B,SAAgB,GAAa,CAC5B,QACA,WACA,SACA,aAAA,IACA,YACA,SAAS,YACY,CACrB,IAAM,EAAU,OAAO,GAAU,SAAW,EAAQ,OAAO,WAAW,OAAO,GAAS,EAAE,CAAC,EACzF,GAAI,CAAC,OAAO,SAAS,CAAO,EAC3B,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAGR,IAAM,EAAY,EACf,IAAI,KAAK,aAAa,EAAQ,CAC9B,MAAO,WACP,WACA,sBAAuB,CACxB,CAAC,EAAE,OAAO,CAAO,EAChB,EAAQ,QAAQ,CAAC,EACpB,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,UACG,SACR,UAAW,EAAA,GAAG,eAAgB,CAAS,WAEtC,CACI,CAAA,CAER,CAEA,GAAa,YAAc,eAe3B,SAAS,EAAY,EAAsB,CAC1C,OAAO,EACL,MAAM,KAAK,EACX,OAAO,OAAO,EACd,MAAM,EAAG,CAAC,EACV,IAAK,GAAM,EAAE,GAAI,YAAY,CAAC,EAC9B,KAAK,EAAE,CACV,CAEA,SAAgB,EAAW,CAC1B,OACA,WACA,KAAM,EAAgB,EAAA,KACtB,WACA,aAAA,IACA,aACmB,CAQnB,MAPI,CAAC,GAAQ,EAAK,KAAK,EAAE,SAAW,GAElC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,GAIP,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,GAAG,wCAAyC,CAAS,WAAtE,EACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,gJACd,GACA,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAU,IAAK,EAAM,UAAU,yCAA2C,CAAA,EACjF,EAAK,OAAS,GACjB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,OAAO,WAAW,UAAU,gCAC/C,EAAY,CAAI,CACZ,CAAA,GAEN,EAAA,EAAA,KAAC,EAAD,CAAe,UAAU,WAAa,CAAA,CAElC,CAAA,GACN,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,wCAAhB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,OAAO,SAAS,UAAU,oBAC7C,CACI,CAAA,EACL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAU,4BAC9C,CACI,CAAA,CAEF,GACD,GAER,CAEA,EAAW,YAAc,aA+CzB,SAAS,GAAoB,EAA0B,EAA0B,CAChF,GACC,GACA,OAAO,GAAU,UACjB,EAAE,SAAU,IACZ,UAAW,EACV,CACD,IAAM,EAAO,EAAM,KACnB,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAA+B,QAAS,EAAM,SAAW,YAAa,IAAK,EAAM,aAAjF,CACE,CAAC,CAAC,IAAQ,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,QAAU,CAAA,EACpC,EAAM,KACD,GAHK,EAAM,IAAM,CAGjB,CAET,CAEA,OAAO,EAAA,EAAA,KAAC,OAAD,CAAA,SAAmB,CAAY,EAApB,CAAoB,CACvC,CAEA,SAAS,GAAuB,EAAoD,CAqBnF,OApBK,EACD,MAAM,QAAQ,CAAQ,GAExB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,wEACd,EAAS,KAAK,EAAM,KACpB,EAAA,EAAA,MAAC,OAAD,CAA6B,UAAU,kDAAvC,CACE,CAAC,CAAC,EAAK,QACP,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,UAAU,KAAK,YAAY,UAAU,wCACzD,EAAK,KACD,CAAA,GAEP,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,UAAU,KAAK,YAAY,UAAU,6BACzD,EAAK,KACD,CAAA,CACD,GATK,EAAK,IAAM,CAShB,CACN,CACI,CAAA,EAID,EApBe,IAqBvB,CAEA,SAAgB,EAAa,CAC5B,QACA,WACA,WACA,SAAS,CAAC,EACV,WACA,KAAM,EAAgB,EAAA,KACtB,WACA,OACA,aACA,aAAA,IACA,YACA,iBACA,mBACA,iBACA,qBACqB,CACrB,GAAI,CAAC,EACJ,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,KAAK,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,WACzE,CACI,CAAA,EAIR,IAAM,EAAY,OAAO,GAAU,SAAW,EAAQ,IAAA,GAChD,EAAW,EAAY,EAAY,CAAS,EAAI,GAChD,GACL,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,GAAG,8CAA+C,CAAgB,WAAnF,EACC,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,sEAAhB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,UACL,OAAO,SACP,UAAW,EAAA,GAAG,gCAAiC,CAAc,WAE5D,CACI,CAAA,EACL,EAAO,OAAS,IAChB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,yEACd,EAAO,IAAI,EAAmB,CAC1B,CAAA,CAEF,IACL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,UACL,KAAK,YACL,UAAW,EAAA,GAAG,2CAA4C,CAAiB,WAE1E,CACI,CAAA,EAEN,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2CACd,GAAuB,CAAQ,CAC3B,CAAA,CAEF,IAED,GACL,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,GAAG,yEAA0E,CAAS,WAAvG,EACC,EAAA,EAAA,KAAC,OAAD,CACC,UAAW,EAAA,GACV,yJACA,CACD,WAEC,GACA,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAU,IAAK,GAAa,GAAI,UAAU,yCAA2C,CAAA,EAC5F,IAEA,GACH,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,UAAU,OAAO,WAAW,UAAU,gCAC/C,CACI,CAAA,GAEN,EAAA,EAAA,KAAC,EAAD,CAAe,UAAU,WAAa,CAAA,EAElC,CAAA,EACL,CACI,IAGP,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAAgB,yJAUtB,OATI,EACI,EAAW,CACjB,OACA,SAAU,EACV,UAAW,EACX,aAAc,CACf,CAAC,GAID,EAAA,EAAA,KAAC,IAAD,CAAS,OAAM,UAAW,EAAe,aAAY,WACnD,CACC,CAAA,CAEL,CAEA,EAAa,YAAc,eAE3B,IAAa,EAAe,EC1iBtB,EAAwB,IAO9B,SAAgB,EACf,EACwB,CAExB,OADK,EACE,EAAU,cAA8B,+BAA+B,EADvD,IAExB,CAkBA,SAAgB,EACf,EACA,EAA8D,CAAC,EAC/B,CAChC,GAAM,CAAE,SAAS,EAAuB,OAAO,CAAC,GAAM,EAChD,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,EAAK,EAClD,CAAC,EAAgB,IAAA,EAAA,EAAA,UAA8B,EAAK,EACpD,GAAA,EAAA,EAAA,QAAgB,CAAC,EAEjB,GAAA,EAAA,EAAA,iBAA4B,CACjC,IAAM,EAAK,EAA4B,EAAa,OAAO,EAC3D,GAAI,CAAC,EAAI,CACR,EAAiB,EAAK,EACtB,EAAkB,EAAK,EACvB,MACD,CACA,GAAM,CAAE,aAAY,cAAa,eAAgB,EACjD,EAAiB,EAAa,CAAC,EAC/B,EAAkB,EAAa,EAAc,EAAc,CAAC,CAC7D,EAAG,CAAC,CAAY,CAAC,GAEjB,EAAA,EAAA,eAAgB,CACf,IAAM,EAAU,OAAO,eAAiB,CACvC,IAAM,EAAK,EAA4B,EAAa,OAAO,EAC3D,GAAI,CAAC,EAAI,OAET,EAAQ,EAER,IAAM,MAAqB,CAC1B,qBAAqB,EAAO,OAAO,EACnC,EAAO,QAAU,sBAAsB,CAAO,CAC/C,EAEA,EAAG,iBAAiB,SAAU,EAAc,CAAE,QAAS,EAAK,CAAC,EAC7D,IAAM,EAAK,IAAI,eAAe,CAAO,EAIrC,OAHA,EAAG,QAAQ,CAAE,EACT,EAAG,mBAAmB,EAAG,QAAQ,EAAG,iBAAiB,MAE5C,CACZ,EAAG,oBAAoB,SAAU,CAAY,EAC7C,qBAAqB,EAAO,OAAO,EACnC,EAAG,WAAW,CACf,CACD,EAAG,CAAC,EAEJ,UAAa,OAAO,aAAa,CAAO,CAEzC,EAAG,CAAC,EAAc,EAAS,GAAG,CAAI,CAAC,EAEnC,IAAM,GAAA,EAAA,EAAA,aACJ,GAAkB,CAClB,EAA4B,EAAa,OAAO,GAAG,SAAS,CAC3D,KAAM,EACN,SAAU,QACX,CAAC,CACF,EACA,CAAC,CAAY,CACd,EAKA,MAAO,CAAE,gBAAe,iBAAgB,WAAU,YAAA,EAAA,EAAA,iBAHb,EAAS,CAAC,CAAM,EAAG,CAAC,EAAU,CAAM,CAGvB,EAAY,aAAA,EAAA,EAAA,iBAFxB,EAAS,CAAM,EAAG,CAAC,EAAU,CAAM,CAEX,CAAY,CAC3E,CAMA,SAAgB,GACf,EACA,EAAe,GACsB,CAarC,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,eAZS,CACtB,GAAI,CAAC,GAAc,OAAO,OAAW,IAAa,OAAO,EACzD,GAAI,CACH,IAAM,EAAM,OAAO,aAAa,QAAQ,CAAU,EAGlD,OAFI,IAAQ,IAAY,GACpB,IAAQ,IAAY,GACjB,CACR,MAAQ,CACP,OAAO,CACR,CACD,GAEwC,CAAO,EAgB/C,MAAO,CAAC,GAAA,EAAA,EAAA,aAbN,GAAkB,CAElB,GADA,EAAc,CAAI,EACd,GAAc,OAAO,OAAW,IACnC,GAAI,CACH,OAAO,aAAa,QAAQ,EAAY,EAAO,IAAM,GAAG,CACzD,MAAQ,CAER,CAEF,EACA,CAAC,CAAU,CAGG,CAAQ,CACxB,CCjIA,IAAM,GACL,qRAUD,SAAgB,GAAc,CAC7B,QACA,WACA,aAAa,QACb,mBAAmB,cACnB,aACsB,CACtB,IAAM,EAAQ,EAAQ,EAAmB,EACnC,EAAO,EAAQ,EAAA,UAAY,EAAA,UACjC,OACC,EAAA,EAAA,KAAC,SAAD,CACC,KAAK,SACL,aAAY,EACZ,eAAc,EACd,YAAe,EAAS,CAAC,CAAK,EAC9B,UAAW,EAAA,GAAG,GAAa,CAAS,YAEpC,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,cAAgB,CAAA,CACzB,CAAA,CAEV,CAEA,GAAc,YAAc"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-DZWtUXf2.cjs"),r=require("../lib/utils.cjs"),i=require("./typography-CO9uwZhF.cjs"),a=require("./input-CB6hxh-5.cjs"),o=require("./form-sizing-Co53Drri.cjs");let s=require("react");s=e.t(s,1);let c=require("react/jsx-runtime"),l=require("lucide-react");var u={clear:`Clear textarea`},d=s.forwardRef(({className:e,maxLength:d,showCharacterCount:f,clearable:p,onClear:m,isLoading:h,invalid:g,size:_,autoResize:v=!1,minRows:y=2,maxRows:b,onChange:x,value:S,defaultValue:C,id:w,strings:T,...E},D)=>{let O=(0,s.useRef)(null),k=t.useStrings(u,T),{defaultControlSize:A}=n.o(),j=o.f(_,A),{id:M,value:N,isReactHookForm:P,characterCount:F,hasCharacterLimit:I,showCount:L,hasValue:R,updateValue:z,clearValue:B,wouldExceedLimit:V}=a.n({controlledValue:S,defaultValue:C,maxLength:d,showCharacterCount:f,providedId:w,idPrefix:`textarea`,hasOnChange:x!==void 0}),H=!!g,U=(0,s.useRef)(0),W=(0,s.useCallback)(()=>{if(!v||!O.current)return;let e=O.current;U.current===0&&(U.current=parseInt(getComputedStyle(e).lineHeight)||20),e.style.height=`auto`;let t=U.current,n=t*y,r=b?t*b:1/0,i=Math.min(Math.max(e.scrollHeight,n),r);e.style.height=`${i}px`},[v,b,y]);(0,s.useEffect)(()=>{W()},[N,v,W]);let G=(0,s.useCallback)(e=>{let t=e.target.value;V(t)||(z(t),x?.(e),v&&setTimeout(W,0))},[x,z,V,v,W]),K=(0,s.useCallback)(()=>{B(),x?.({target:{value:``},currentTarget:{value:``}}),m?.(),O.current?.focus(),v&&setTimeout(W,0)},[B,x,m,v,W]),q=p&&R&&!h;return(0,c.jsxs)(`div`,{className:r.cn(`textarea--component`,`relative w-full`),children:[(0,c.jsx)(`textarea`,{ref:e=>{typeof D==`function`?D(e):D&&(D.current=e),O.current=e},id:M,...!P&&{value:N},onChange:G,maxLength:d,"aria-invalid":H||void 0,disabled:E.disabled||h,rows:y,style:{resize:v?`none`:E.style?.resize,overflow:v&&b?`auto`:`visible`,...E.style},className:r.cn(`placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground`,`border-input flex w-full rounded-radius border bg-transparent px-control py-control-y-offset`,`transition-[color,box-shadow] outline-none`,`disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,o.d[j],`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,q&&`pr-control-addon`,L&&`pr-control-count`,e),...E}),!!L&&(0,c.jsx)(`div`,{className:r.cn(`pointer-events-none absolute top-control-y-offset right-control-px text-xs tabular-nums`,E.disabled&&`opacity-50`,H?`text-destructive`:`text-muted-foreground`),"aria-live":`polite`,role:`status`,children:(0,c.jsxs)(i.s,{tag:`span`,size:`xs`,type:H?`error`:`secondary`,children:[F,I?`/${d}`:``]})}),!!h&&!L&&(0,c.jsx)(`div`,{className:r.cn(`pointer-events-none absolute top-control-y-offset right-control-px`,H?`text-destructive`:`text-muted-foreground/80`),children:(0,c.jsx)(l.Loader2Icon,{className:`size-icon animate-spin`,"aria-hidden":`true`})}),!!q&&!L&&(0,c.jsx)(`button`,{type:`button`,className:`text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-control-y-offset right-control-px flex size-control-clear-icon items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":k.clear,onClick:K,disabled:h,children:(0,c.jsx)(l.CircleXIcon,{className:`size-icon`,"aria-hidden":`true`})})]})});d.displayName=`Textarea`,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
2
+ //# sourceMappingURL=textarea-B24qgdmd.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-B24qgdmd.cjs","names":[],"sources":["../../src/components/base/forms/fields/textarea.tsx"],"sourcesContent":["import { CircleXIcon, Loader2Icon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { formTextareaSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface TextareaStrings {\n clear: string;\n}\n\nexport const defaultTextareaStrings: TextareaStrings = {\n clear: 'Clear textarea',\n};\n\nexport interface TextareaProps extends Omit<React.ComponentProps<'textarea'>, 'onChange'> {\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<TextareaStrings>;\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Auto-resize functionality\n autoResize?: boolean;\n minRows?: number;\n maxRows?: number;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n value?: string;\n defaultValue?: string;\n}\n\nconst TextareaImpl = (\n {\n className,\n maxLength,\n showCharacterCount,\n clearable,\n onClear,\n isLoading,\n invalid,\n size: sizeProp,\n autoResize = false,\n minRows = 2,\n maxRows,\n onChange,\n value: controlledValue,\n defaultValue,\n id: providedId,\n strings: stringsProp,\n ...props\n }: TextareaProps,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const strings = useStrings(defaultTextareaStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Use shared form field state hook\n const {\n id,\n value: textareaValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'textarea',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states\n const hasError = Boolean(invalid);\n\n // Cache lineHeight so we call getComputedStyle once instead of on every\n // keystroke — avoids a forced synchronous style recalculation per input.\n const lineHeightRef = useRef<number>(0);\n\n const adjustHeight = useCallback(() => {\n if (!autoResize || !textareaRef.current) return;\n\n const textarea = textareaRef.current;\n\n if (lineHeightRef.current === 0) {\n lineHeightRef.current = parseInt(getComputedStyle(textarea).lineHeight) || 20;\n }\n\n textarea.style.height = 'auto';\n\n const lineHeight = lineHeightRef.current;\n const minHeight = lineHeight * minRows;\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity;\n\n const newHeight = Math.min(Math.max(textarea.scrollHeight, minHeight), maxHeight);\n textarea.style.height = `${newHeight}px`;\n }, [autoResize, maxRows, minRows]);\n\n useEffect(() => {\n adjustHeight();\n }, [textareaValue, autoResize, adjustHeight]);\n\n const handleTextareaChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange\n onChange?.(e);\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n },\n [onChange, updateValue, wouldExceedLimit, autoResize, adjustHeight]\n );\n\n const handleClear = useCallback(() => {\n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLTextAreaElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the textarea after clearing\n textareaRef.current?.focus();\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n }, [clearValue, onChange, onClear, autoResize, adjustHeight]);\n\n // Determine what to show in the end position\n const showClearButton = clearable && hasValue && !isLoading;\n\n return (\n <div className={cn('textarea--component', 'relative w-full')}>\n <textarea\n ref={(node) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n textareaRef.current = node;\n }}\n id={id}\n {...(!isReactHookForm && { value: textareaValue })}\n onChange={handleTextareaChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n rows={minRows}\n style={{\n resize: autoResize ? 'none' : props.style?.resize,\n overflow: autoResize && maxRows ? 'auto' : 'visible',\n ...props.style,\n }}\n className={cn(\n // Base styles\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full rounded-radius border bg-transparent px-control py-control-y-offset',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formTextareaSizeClasses[size],\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n // Dynamic padding for overlays\n showClearButton && 'pr-control-addon',\n showCount && 'pr-control-count',\n className\n )}\n {...props}\n />\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-control-y-offset right-control-px text-xs tabular-nums',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size=\"xs\" type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!isLoading && !showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-control-y-offset right-control-px',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className=\"size-icon animate-spin\" aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && !showCount && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-control-y-offset right-control-px flex size-control-clear-icon items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className=\"size-icon\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(TextareaImpl);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { useStrings as e } from "../lib/strings.js";
2
+ import { o as t } from "./ui-provider-Dj6OSOZi.js";
3
+ import { cn as n } from "../lib/utils.js";
4
+ import { s as r } from "./typography-DE0NGEIE.js";
5
+ import { n as i } from "./input-CfnHBT--.js";
6
+ import { d as a, f as o } from "./form-sizing-C51oI3Di.js";
7
+ import * as s from "react";
8
+ import { useCallback as c, useEffect as l, useRef as u } from "react";
9
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import { CircleXIcon as p, Loader2Icon as m } from "lucide-react";
11
+ //#region src/components/base/forms/fields/textarea.tsx
12
+ var h = { clear: "Clear textarea" }, g = s.forwardRef(({ className: s, maxLength: g, showCharacterCount: _, clearable: v, onClear: y, isLoading: b, invalid: x, size: S, autoResize: C = !1, minRows: w = 2, maxRows: T, onChange: E, value: D, defaultValue: O, id: k, strings: A, ...j }, M) => {
13
+ let N = u(null), P = e(h, A), { defaultControlSize: F } = t(), I = o(S, F), { id: L, value: R, isReactHookForm: z, characterCount: B, hasCharacterLimit: V, showCount: H, hasValue: U, updateValue: W, clearValue: G, wouldExceedLimit: K } = i({
14
+ controlledValue: D,
15
+ defaultValue: O,
16
+ maxLength: g,
17
+ showCharacterCount: _,
18
+ providedId: k,
19
+ idPrefix: "textarea",
20
+ hasOnChange: E !== void 0
21
+ }), q = !!x, J = u(0), Y = c(() => {
22
+ if (!C || !N.current) return;
23
+ let e = N.current;
24
+ J.current === 0 && (J.current = parseInt(getComputedStyle(e).lineHeight) || 20), e.style.height = "auto";
25
+ let t = J.current, n = t * w, r = T ? t * T : Infinity, i = Math.min(Math.max(e.scrollHeight, n), r);
26
+ e.style.height = `${i}px`;
27
+ }, [
28
+ C,
29
+ T,
30
+ w
31
+ ]);
32
+ l(() => {
33
+ Y();
34
+ }, [
35
+ R,
36
+ C,
37
+ Y
38
+ ]);
39
+ let X = c((e) => {
40
+ let t = e.target.value;
41
+ K(t) || (W(t), E?.(e), C && setTimeout(Y, 0));
42
+ }, [
43
+ E,
44
+ W,
45
+ K,
46
+ C,
47
+ Y
48
+ ]), Z = c(() => {
49
+ G(), E?.({
50
+ target: { value: "" },
51
+ currentTarget: { value: "" }
52
+ }), y?.(), N.current?.focus(), C && setTimeout(Y, 0);
53
+ }, [
54
+ G,
55
+ E,
56
+ y,
57
+ C,
58
+ Y
59
+ ]), Q = v && U && !b;
60
+ return /* @__PURE__ */ f("div", {
61
+ className: n("textarea--component", "relative w-full"),
62
+ children: [
63
+ /* @__PURE__ */ d("textarea", {
64
+ ref: (e) => {
65
+ typeof M == "function" ? M(e) : M && (M.current = e), N.current = e;
66
+ },
67
+ id: L,
68
+ ...!z && { value: R },
69
+ onChange: X,
70
+ maxLength: g,
71
+ "aria-invalid": q || void 0,
72
+ disabled: j.disabled || b,
73
+ rows: w,
74
+ style: {
75
+ resize: C ? "none" : j.style?.resize,
76
+ overflow: C && T ? "auto" : "visible",
77
+ ...j.style
78
+ },
79
+ className: n("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground", "border-input flex w-full rounded-radius border bg-transparent px-control py-control-y-offset", "transition-[color,box-shadow] outline-none", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", a[I], "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", Q && "pr-control-addon", H && "pr-control-count", s),
80
+ ...j
81
+ }),
82
+ !!H && /* @__PURE__ */ d("div", {
83
+ className: n("pointer-events-none absolute top-control-y-offset right-control-px text-xs tabular-nums", j.disabled && "opacity-50", q ? "text-destructive" : "text-muted-foreground"),
84
+ "aria-live": "polite",
85
+ role: "status",
86
+ children: /* @__PURE__ */ f(r, {
87
+ tag: "span",
88
+ size: "xs",
89
+ type: q ? "error" : "secondary",
90
+ children: [B, V ? `/${g}` : ""]
91
+ })
92
+ }),
93
+ !!b && !H && /* @__PURE__ */ d("div", {
94
+ className: n("pointer-events-none absolute top-control-y-offset right-control-px", q ? "text-destructive" : "text-muted-foreground/80"),
95
+ children: /* @__PURE__ */ d(m, {
96
+ className: "size-icon animate-spin",
97
+ "aria-hidden": "true"
98
+ })
99
+ }),
100
+ !!Q && !H && /* @__PURE__ */ d("button", {
101
+ type: "button",
102
+ className: "text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-control-y-offset right-control-px flex size-control-clear-icon items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
103
+ "aria-label": P.clear,
104
+ onClick: Z,
105
+ disabled: b,
106
+ children: /* @__PURE__ */ d(p, {
107
+ className: "size-icon",
108
+ "aria-hidden": "true"
109
+ })
110
+ })
111
+ ]
112
+ });
113
+ });
114
+ g.displayName = "Textarea";
115
+ //#endregion
116
+ export { g as t };
117
+
118
+ //# sourceMappingURL=textarea-ChLRmmVU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-ChLRmmVU.js","names":[],"sources":["../../src/components/base/forms/fields/textarea.tsx"],"sourcesContent":["import { CircleXIcon, Loader2Icon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { formTextareaSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface TextareaStrings {\n clear: string;\n}\n\nexport const defaultTextareaStrings: TextareaStrings = {\n clear: 'Clear textarea',\n};\n\nexport interface TextareaProps extends Omit<React.ComponentProps<'textarea'>, 'onChange'> {\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<TextareaStrings>;\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Auto-resize functionality\n autoResize?: boolean;\n minRows?: number;\n maxRows?: number;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n value?: string;\n defaultValue?: string;\n}\n\nconst TextareaImpl = (\n {\n className,\n maxLength,\n showCharacterCount,\n clearable,\n onClear,\n isLoading,\n invalid,\n size: sizeProp,\n autoResize = false,\n minRows = 2,\n maxRows,\n onChange,\n value: controlledValue,\n defaultValue,\n id: providedId,\n strings: stringsProp,\n ...props\n }: TextareaProps,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const strings = useStrings(defaultTextareaStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Use shared form field state hook\n const {\n id,\n value: textareaValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'textarea',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states\n const hasError = Boolean(invalid);\n\n // Cache lineHeight so we call getComputedStyle once instead of on every\n // keystroke — avoids a forced synchronous style recalculation per input.\n const lineHeightRef = useRef<number>(0);\n\n const adjustHeight = useCallback(() => {\n if (!autoResize || !textareaRef.current) return;\n\n const textarea = textareaRef.current;\n\n if (lineHeightRef.current === 0) {\n lineHeightRef.current = parseInt(getComputedStyle(textarea).lineHeight) || 20;\n }\n\n textarea.style.height = 'auto';\n\n const lineHeight = lineHeightRef.current;\n const minHeight = lineHeight * minRows;\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity;\n\n const newHeight = Math.min(Math.max(textarea.scrollHeight, minHeight), maxHeight);\n textarea.style.height = `${newHeight}px`;\n }, [autoResize, maxRows, minRows]);\n\n useEffect(() => {\n adjustHeight();\n }, [textareaValue, autoResize, adjustHeight]);\n\n const handleTextareaChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange\n onChange?.(e);\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n },\n [onChange, updateValue, wouldExceedLimit, autoResize, adjustHeight]\n );\n\n const handleClear = useCallback(() => {\n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLTextAreaElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the textarea after clearing\n textareaRef.current?.focus();\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n }, [clearValue, onChange, onClear, autoResize, adjustHeight]);\n\n // Determine what to show in the end position\n const showClearButton = clearable && hasValue && !isLoading;\n\n return (\n <div className={cn('textarea--component', 'relative w-full')}>\n <textarea\n ref={(node) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n textareaRef.current = node;\n }}\n id={id}\n {...(!isReactHookForm && { value: textareaValue })}\n onChange={handleTextareaChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n rows={minRows}\n style={{\n resize: autoResize ? 'none' : props.style?.resize,\n overflow: autoResize && maxRows ? 'auto' : 'visible',\n ...props.style,\n }}\n className={cn(\n // Base styles\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full rounded-radius border bg-transparent px-control py-control-y-offset',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formTextareaSizeClasses[size],\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n // Dynamic padding for overlays\n showClearButton && 'pr-control-addon',\n showCount && 'pr-control-count',\n className\n )}\n {...props}\n />\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-control-y-offset right-control-px text-xs tabular-nums',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size=\"xs\" type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!isLoading && !showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-control-y-offset right-control-px',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className=\"size-icon animate-spin\" aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && !showCount && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-control-y-offset right-control-px flex size-control-clear-icon items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className=\"size-icon\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(TextareaImpl);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./ui-provider-DZWtUXf2.cjs"),t=require("../lib/utils.cjs");let n=require("react"),r=require("react/jsx-runtime");var i={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`};function a(e){return e?e.replace(/[&<>"']/g,e=>i[e]??e):``}var o={inherit:`[font-size:inherit]`,xxs:`text-xxs`,sm:`text-sm`,xs:`text-xs`,base:`text-base`,lg:`text-lg`,xl:`text-xl`},s={main:`text-foreground`,inverse:`text-background`,secondary:`text-muted-foreground`,discrete:`text-muted-foreground`,error:`text-destructive`,success:`text-success`,primary:`text-primary`},c={normal:`leading-normal`,relaxed:`leading-relaxed`,loose:`leading-loose`,tight:`leading-tight`,snug:`leading-snug`,none:`leading-none`},l={regular:`font-normal`,medium:`font-medium`,semibold:`font-semibold`,bold:`font-bold`},u={center:`text-center`,right:`text-right`,left:`text-left`};function d({content:i,type:d=`main`,size:f,align:p=`left`,lineHeight:m=`normal`,weight:h=`regular`,className:g=``,children:_,asHTML:v=!1,numeric:y=!1,tag:b=`p`,...x}){let{defaultTextSize:S}=e.p(),C=f??S??`sm`,w=t.cn(s[d],o[C],u[p],c[m],l[h],y&&`font-mono tabular-nums`,g),T=(0,n.useMemo)(()=>typeof i==`string`&&i.length>0?i:typeof _==`string`||typeof _==`number`?String(_):``,[_,i]);return v?(0,n.createElement)(b,{className:w,"data-typography":`text`,dangerouslySetInnerHTML:{__html:a(T)},...x}):i&&i.length>0?(0,r.jsx)(b,{className:w,"data-typography":`text`,...x,children:i}):_==null?null:(0,r.jsx)(b,{className:w,"data-typography":`text`,...x,children:_})}d.displayName=`Text`;var f={h1:`scroll-m-20 text-2xl font-semibold leading-tight text-balance`,h2:`scroll-m-20 text-xl font-semibold leading-tight first:mt-0`,h3:`scroll-m-20 text-lg font-semibold leading-snug`,h4:`scroll-m-20 text-base font-semibold leading-snug`,h5:`text-sm font-semibold`,h6:`text-xs font-semibold`},p={left:`text-left`,center:`text-center`,right:`text-right`};function m({tag:e=`h3`,className:n,children:i,subHeading:a,subHeadingClassName:o,subHeadingSize:s,containerClassName:c,align:l=`left`,divider:u=!1,...m}){let h=t.cn(`text-foreground antialiased`,f[e],u&&`border-b border-border pb-2`,p[l],n);return(0,r.jsxs)(`div`,{className:t.cn(`space-y-1`,p[l],c),children:[!!i&&(0,r.jsx)(e,{className:h,"data-typography":`heading`,...m,children:i}),!!a&&(0,r.jsx)(d,{size:s??`xs`,type:`secondary`,align:l,className:o,children:a})]})}m.displayName=`Heading`;var h={small:`text-xs`,default:`text-sm`};function g(e,t){return e??t??`default`}function _({content:n,className:i=``,children:a,size:o,...s}){let{defaultLabelSize:c}=e.o(),l=g(o,c);return(0,r.jsx)(`label`,{...s,"data-typography":`label`,className:t.cn(`font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,h[l],i),children:a||n})}_.displayName=`Label`;var v={inherit:`text-inherit`,sm:`text-sm`,xs:`text-xs`,base:`text-base`,lg:`text-lg`,xl:`text-xl`},y={main:`text-foreground`,inverse:`text-background`,secondary:`text-muted-foreground`,discrete:`text-muted-foreground`,error:`text-destructive`,success:`text-success`,primary:`text-primary`},b={normal:`leading-normal`,relaxed:`leading-relaxed`,loose:`leading-loose`,tight:`leading-tight`,snug:`leading-snug`,none:`leading-none`},x={regular:`font-normal`,medium:`font-medium`,semibold:`font-semibold`,bold:`font-bold`},S={center:`text-center`,right:`text-right`,left:`text-left`};function C({type:e=`main`,size:n=`sm`,align:i=`left`,lineHeight:a=`normal`,weight:o=`regular`,className:s=``,underline:c=!0,children:l,...u}){return(0,r.jsx)(`a`,{className:t.cn(y[e],v[n],S[i],b[a],x[o],c&&`underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500`,s),"data-typography":`link`,...u,children:l})}C.displayName=`TextLink`;var w={primary:`bg-primary/10 text-primary ring-primary/20`,success:`bg-success/10 text-success ring-success/20`,error:`bg-destructive/10 text-destructive ring-destructive/20`,warning:`bg-warning/20 text-warning-foreground ring-warning/30 dark:text-warning`},T={primary:`decoration-primary`,success:`decoration-success`,error:`decoration-destructive`,warning:`decoration-warning`};function E({content:e,variant:n=`primary`}){return(0,r.jsx)(`span`,{className:t.cn(`rounded-sm px-1.5 py-0.5 ring-1 ring-inset`,w[n]),children:e})}function D({content:e,variant:n=`primary`}){return(0,r.jsx)(`span`,{className:t.cn(`underline underline-offset-4 decoration-2`,T[n]),children:e})}function O({children:e,...t}){return(0,r.jsx)(`p`,{className:`__html_content`,dangerouslySetInnerHTML:{__html:a(typeof e==`string`?e:``)},...t})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return O}});
2
+ //# sourceMappingURL=typography-CO9uwZhF.cjs.map