admin-ui-starter-kit 0.6.7 → 0.6.9

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 (1224) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +2 -2
  2. package/.agents/skills/component-library-rules/references/components/INDEX.json +15 -1
  3. package/.agents/skills/component-library-rules/references/components/INDEX.md +15 -1
  4. package/.agents/skills/component-library-rules/references/components/base__boolean-indicator.md +33 -0
  5. package/.agents/skills/component-library-rules/references/components/base__cards.md +3 -2
  6. package/.agents/skills/component-library-rules/references/components/base__collapsible.md +39 -0
  7. package/.agents/skills/component-library-rules/references/components/base__conditional-rendering.md +39 -0
  8. package/.agents/skills/component-library-rules/references/components/base__date-block.md +39 -0
  9. package/.agents/skills/component-library-rules/references/components/base__dialog.md +39 -0
  10. package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +74 -103
  11. package/.agents/skills/component-library-rules/references/components/base__item.md +4 -3
  12. package/.agents/skills/component-library-rules/references/components/base__money-display.md +39 -0
  13. package/.agents/skills/component-library-rules/references/components/base__notification-banner.md +39 -0
  14. package/.agents/skills/component-library-rules/references/components/base__placeholder-pattern.md +39 -0
  15. package/.agents/skills/component-library-rules/references/components/base__progress.md +33 -0
  16. package/.agents/skills/component-library-rules/references/components/base__qr-code.md +39 -0
  17. package/.agents/skills/component-library-rules/references/components/base__separator.md +33 -0
  18. package/.agents/skills/component-library-rules/references/components/base__skeleton.md +55 -0
  19. package/.agents/skills/component-library-rules/references/components/base__throttle-alert.md +39 -0
  20. package/.agents/skills/component-library-rules/references/components/base__visually-hidden.md +39 -0
  21. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +2 -1
  22. package/.agents/skills/component-library-rules/references/ui-provider.md +2 -2
  23. package/dist/_shared/accordion-8B4OFqiT.cjs +2 -0
  24. package/dist/_shared/accordion-8B4OFqiT.cjs.map +1 -0
  25. package/dist/_shared/accordion-DlpTSZ3p.js +135 -0
  26. package/dist/_shared/accordion-DlpTSZ3p.js.map +1 -0
  27. package/dist/_shared/action-menu-BYrYdpkR.cjs +2 -0
  28. package/dist/_shared/action-menu-BYrYdpkR.cjs.map +1 -0
  29. package/dist/_shared/action-menu-CYwMZX-b.js +96 -0
  30. package/dist/_shared/action-menu-CYwMZX-b.js.map +1 -0
  31. package/dist/_shared/ai-artifact-Cv8VBibf.cjs +3 -0
  32. package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +1 -0
  33. package/dist/_shared/ai-artifact-DwfXQuh4.js +1099 -0
  34. package/dist/_shared/ai-artifact-DwfXQuh4.js.map +1 -0
  35. package/dist/_shared/auth-Cz5ci18c.cjs +2 -0
  36. package/dist/_shared/auth-Cz5ci18c.cjs.map +1 -0
  37. package/dist/_shared/auth-DDWsgFUL.js +643 -0
  38. package/dist/_shared/auth-DDWsgFUL.js.map +1 -0
  39. package/dist/_shared/badge-C65rt1M9.cjs +2 -0
  40. package/dist/_shared/badge-C65rt1M9.cjs.map +1 -0
  41. package/dist/_shared/badge-r8ae66Vd.js +110 -0
  42. package/dist/_shared/badge-r8ae66Vd.js.map +1 -0
  43. package/dist/_shared/button-Be2ayMxF.js +192 -0
  44. package/dist/_shared/button-Be2ayMxF.js.map +1 -0
  45. package/dist/_shared/button-CfQtOuBK.cjs +2 -0
  46. package/dist/_shared/button-CfQtOuBK.cjs.map +1 -0
  47. package/dist/_shared/buttons-DABiSx6N.cjs +2 -0
  48. package/dist/_shared/buttons-DABiSx6N.cjs.map +1 -0
  49. package/dist/_shared/buttons-DYQqQPpk.js +137 -0
  50. package/dist/_shared/buttons-DYQqQPpk.js.map +1 -0
  51. package/dist/_shared/card-radio-group-DKhZhBFV.cjs +2 -0
  52. package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +1 -0
  53. package/dist/_shared/card-radio-group-DRjmLN5s.js +150 -0
  54. package/dist/_shared/card-radio-group-DRjmLN5s.js.map +1 -0
  55. package/dist/_shared/cards-BJctT9KD.js +428 -0
  56. package/dist/_shared/cards-BJctT9KD.js.map +1 -0
  57. package/dist/_shared/cards-m03XN10f.cjs +2 -0
  58. package/dist/_shared/cards-m03XN10f.cjs.map +1 -0
  59. package/dist/_shared/combobox-BdBpeD3C.cjs +2 -0
  60. package/dist/_shared/combobox-BdBpeD3C.cjs.map +1 -0
  61. package/dist/_shared/combobox-D9tU_83-.js +954 -0
  62. package/dist/_shared/combobox-D9tU_83-.js.map +1 -0
  63. package/dist/_shared/command-BbJB0pjP.cjs +2 -0
  64. package/dist/_shared/command-BbJB0pjP.cjs.map +1 -0
  65. package/dist/_shared/command-IP2wy_HN.js +39 -0
  66. package/dist/_shared/command-IP2wy_HN.js.map +1 -0
  67. package/dist/_shared/comments-DAzpeuQq.cjs +2 -0
  68. package/dist/_shared/comments-DAzpeuQq.cjs.map +1 -0
  69. package/dist/_shared/comments-DzZaKP9x.js +952 -0
  70. package/dist/_shared/comments-DzZaKP9x.js.map +1 -0
  71. package/dist/_shared/copyable-BJYx2SlN.js +38 -0
  72. package/dist/_shared/copyable-BJYx2SlN.js.map +1 -0
  73. package/dist/_shared/copyable-DiDEjp8Z.cjs +2 -0
  74. package/dist/_shared/copyable-DiDEjp8Z.cjs.map +1 -0
  75. package/dist/_shared/data-display-DQUUEzCx.cjs +2 -0
  76. package/dist/_shared/data-display-DQUUEzCx.cjs.map +1 -0
  77. package/dist/_shared/data-display-LlvMEFTK.js +1878 -0
  78. package/dist/_shared/data-display-LlvMEFTK.js.map +1 -0
  79. package/dist/_shared/date-picker-CrC-lHyF.cjs +2 -0
  80. package/dist/_shared/date-picker-CrC-lHyF.cjs.map +1 -0
  81. package/dist/_shared/date-picker-DbYBek-b.js +1361 -0
  82. package/dist/_shared/date-picker-DbYBek-b.js.map +1 -0
  83. package/dist/_shared/date-pickers-9AU8YQK2.js +329 -0
  84. package/dist/_shared/date-pickers-9AU8YQK2.js.map +1 -0
  85. package/dist/_shared/date-pickers-DUEwCWig.cjs +2 -0
  86. package/dist/_shared/date-pickers-DUEwCWig.cjs.map +1 -0
  87. package/dist/_shared/display-BqoPOdof.cjs +2 -0
  88. package/dist/_shared/display-BqoPOdof.cjs.map +1 -0
  89. package/dist/_shared/display-CQoSwU74.js +986 -0
  90. package/dist/_shared/display-CQoSwU74.js.map +1 -0
  91. package/dist/_shared/forms-CNh-S9FK.cjs +2 -0
  92. package/dist/_shared/forms-CNh-S9FK.cjs.map +1 -0
  93. package/dist/_shared/forms-DIz3SCA9.js +3534 -0
  94. package/dist/_shared/forms-DIz3SCA9.js.map +1 -0
  95. package/dist/_shared/header-Bs61tQla.js +447 -0
  96. package/dist/_shared/header-Bs61tQla.js.map +1 -0
  97. package/dist/_shared/header-D01oOxna.cjs +2 -0
  98. package/dist/_shared/header-D01oOxna.cjs.map +1 -0
  99. package/dist/_shared/hooks-ACnpaIli.js +95 -0
  100. package/dist/_shared/hooks-ACnpaIli.js.map +1 -0
  101. package/dist/_shared/hooks-B7khuHkk.cjs +2 -0
  102. package/dist/_shared/hooks-B7khuHkk.cjs.map +1 -0
  103. package/dist/_shared/input-CzJzVyQ0.js +182 -0
  104. package/dist/_shared/input-CzJzVyQ0.js.map +1 -0
  105. package/dist/_shared/input-Dvvmn96E.cjs +2 -0
  106. package/dist/_shared/input-Dvvmn96E.cjs.map +1 -0
  107. package/dist/_shared/item-CVjjpHQd.js +226 -0
  108. package/dist/_shared/item-CVjjpHQd.js.map +1 -0
  109. package/dist/_shared/item-ChHblHhR.cjs +2 -0
  110. package/dist/_shared/item-ChHblHhR.cjs.map +1 -0
  111. package/dist/_shared/layout-CGi5w1mo.js +268 -0
  112. package/dist/_shared/layout-CGi5w1mo.js.map +1 -0
  113. package/dist/_shared/layout-ccVwjUG8.cjs +2 -0
  114. package/dist/_shared/layout-ccVwjUG8.cjs.map +1 -0
  115. package/dist/_shared/mentions-Cg_4vFxd.cjs +2 -0
  116. package/dist/_shared/mentions-Cg_4vFxd.cjs.map +1 -0
  117. package/dist/_shared/mentions-Ci9RFTfw.js +506 -0
  118. package/dist/_shared/mentions-Ci9RFTfw.js.map +1 -0
  119. package/dist/_shared/money-display-BFk9Gu21.cjs +2 -0
  120. package/dist/_shared/money-display-BFk9Gu21.cjs.map +1 -0
  121. package/dist/_shared/money-display-DpuLnsK2.js +198 -0
  122. package/dist/_shared/money-display-DpuLnsK2.js.map +1 -0
  123. package/dist/_shared/navigation-C1QN2-Vq.cjs +2 -0
  124. package/dist/_shared/navigation-C1QN2-Vq.cjs.map +1 -0
  125. package/dist/_shared/navigation-CMrLO8v5.js +436 -0
  126. package/dist/_shared/navigation-CMrLO8v5.js.map +1 -0
  127. package/dist/_shared/overlays-BJLczwpz.js +735 -0
  128. package/dist/_shared/overlays-BJLczwpz.js.map +1 -0
  129. package/dist/_shared/overlays-DbaPLT67.cjs +2 -0
  130. package/dist/_shared/overlays-DbaPLT67.cjs.map +1 -0
  131. package/dist/_shared/popover-menu-D_t6rCvN.cjs +2 -0
  132. package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +1 -0
  133. package/dist/_shared/popover-menu-f2O6R_27.js +93 -0
  134. package/dist/_shared/popover-menu-f2O6R_27.js.map +1 -0
  135. package/dist/_shared/rich-text-editor-DmZHbsms.js +620 -0
  136. package/dist/_shared/rich-text-editor-DmZHbsms.js.map +1 -0
  137. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +2 -0
  138. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +1 -0
  139. package/dist/_shared/separator-BXn_fnly.cjs +2 -0
  140. package/dist/_shared/separator-BXn_fnly.cjs.map +1 -0
  141. package/dist/_shared/separator-DiH-j--f.js +20 -0
  142. package/dist/_shared/separator-DiH-j--f.js.map +1 -0
  143. package/dist/_shared/settings-CgtcSI8L.js +143 -0
  144. package/dist/_shared/settings-CgtcSI8L.js.map +1 -0
  145. package/dist/_shared/settings-csNmeT7b.cjs +2 -0
  146. package/dist/_shared/settings-csNmeT7b.cjs.map +1 -0
  147. package/dist/_shared/sidebar-DyGIcJd9.cjs +2 -0
  148. package/dist/_shared/sidebar-DyGIcJd9.cjs.map +1 -0
  149. package/dist/_shared/sidebar-OT-xIguQ.js +548 -0
  150. package/dist/_shared/sidebar-OT-xIguQ.js.map +1 -0
  151. package/dist/_shared/skeleton-DwF5VdMh.cjs +2 -0
  152. package/dist/_shared/skeleton-DwF5VdMh.cjs.map +1 -0
  153. package/dist/_shared/skeleton-yUXqeWzB.js +256 -0
  154. package/dist/_shared/skeleton-yUXqeWzB.js.map +1 -0
  155. package/dist/_shared/spinner-BDrUzfTo.cjs +2 -0
  156. package/dist/_shared/spinner-BDrUzfTo.cjs.map +1 -0
  157. package/dist/_shared/spinner-CuVZhJhN.js +67 -0
  158. package/dist/_shared/spinner-CuVZhJhN.js.map +1 -0
  159. package/dist/_shared/table-BVWemr79.cjs +2 -0
  160. package/dist/_shared/table-BVWemr79.cjs.map +1 -0
  161. package/dist/_shared/table-WYSjfQRr.js +1377 -0
  162. package/dist/_shared/table-WYSjfQRr.js.map +1 -0
  163. package/dist/_shared/textarea-C0iZwWdD.js +118 -0
  164. package/dist/_shared/textarea-C0iZwWdD.js.map +1 -0
  165. package/dist/_shared/textarea-bHFAtwYd.cjs +2 -0
  166. package/dist/_shared/textarea-bHFAtwYd.cjs.map +1 -0
  167. package/dist/_shared/typography-5bLhAYaK.js +201 -0
  168. package/dist/_shared/typography-5bLhAYaK.js.map +1 -0
  169. package/dist/_shared/typography-CWEobAJV.cjs +2 -0
  170. package/dist/_shared/typography-CWEobAJV.cjs.map +1 -0
  171. package/dist/_shared/ui-provider-CrsJ_dGn.cjs +2 -0
  172. package/dist/_shared/ui-provider-CrsJ_dGn.cjs.map +1 -0
  173. package/dist/_shared/ui-provider-Dz2qXgZQ.js +89 -0
  174. package/dist/_shared/ui-provider-Dz2qXgZQ.js.map +1 -0
  175. package/dist/_shared/workspace-BkwsqTrc.cjs +2 -0
  176. package/dist/_shared/workspace-BkwsqTrc.cjs.map +1 -0
  177. package/dist/_shared/workspace-DpU1YG1t.js +357 -0
  178. package/dist/_shared/workspace-DpU1YG1t.js.map +1 -0
  179. package/dist/components/base/accordion/index.cjs +1 -1
  180. package/dist/components/base/accordion/index.js +1 -1
  181. package/dist/components/base/badge/index.cjs +1 -1
  182. package/dist/components/base/badge/index.js +1 -1
  183. package/dist/components/base/buttons/button.d.ts.map +1 -1
  184. package/dist/components/base/buttons/index.cjs +1 -1
  185. package/dist/components/base/buttons/index.js +2 -2
  186. package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
  187. package/dist/components/base/cards/index.cjs +1 -1
  188. package/dist/components/base/cards/index.js +2 -2
  189. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
  190. package/dist/components/base/cards/smart-card.d.ts.map +1 -1
  191. package/dist/components/base/cards/smart-card.types.d.ts +7 -3
  192. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
  193. package/dist/components/base/carousel/index.cjs +1 -1
  194. package/dist/components/base/carousel/index.js +1 -1
  195. package/dist/components/base/combobox/index.cjs +1 -1
  196. package/dist/components/base/combobox/index.js +1 -1
  197. package/dist/components/base/command/index.cjs +1 -1
  198. package/dist/components/base/command/index.js +1 -1
  199. package/dist/components/base/copyable/index.cjs +1 -1
  200. package/dist/components/base/copyable/index.js +1 -1
  201. package/dist/components/base/currency/index.cjs +1 -1
  202. package/dist/components/base/currency/index.js +1 -1
  203. package/dist/components/base/date-pickers/index.cjs +1 -1
  204. package/dist/components/base/date-pickers/index.js +2 -2
  205. package/dist/components/base/display/chart.cjs +1 -1
  206. package/dist/components/base/display/chart.js +1 -1
  207. package/dist/components/base/display/index.cjs +1 -1
  208. package/dist/components/base/display/index.js +6 -6
  209. package/dist/components/base/display/separator.d.ts +10 -1
  210. package/dist/components/base/display/separator.d.ts.map +1 -1
  211. package/dist/components/base/display/skeleton.d.ts +52 -1
  212. package/dist/components/base/display/skeleton.d.ts.map +1 -1
  213. package/dist/components/base/event-calendar/index.cjs +1 -1
  214. package/dist/components/base/event-calendar/index.js +4 -4
  215. package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -1
  216. package/dist/components/base/forms/index.cjs +1 -1
  217. package/dist/components/base/forms/index.js +5 -5
  218. package/dist/components/base/item/index.cjs +1 -1
  219. package/dist/components/base/item/index.js +1 -1
  220. package/dist/components/base/item/item.d.ts.map +1 -1
  221. package/dist/components/base/item/item.types.d.ts +3 -0
  222. package/dist/components/base/item/item.types.d.ts.map +1 -1
  223. package/dist/components/base/map/index.cjs +1 -1
  224. package/dist/components/base/map/index.js +2 -2
  225. package/dist/components/base/navigation/index.cjs +1 -1
  226. package/dist/components/base/navigation/index.js +2 -2
  227. package/dist/components/base/popover-menu/index.cjs +1 -1
  228. package/dist/components/base/popover-menu/index.js +1 -1
  229. package/dist/components/base/spinner/index.cjs +1 -1
  230. package/dist/components/base/spinner/index.js +1 -1
  231. package/dist/components/base/table/index.cjs +1 -1
  232. package/dist/components/base/table/index.js +1 -1
  233. package/dist/components/base/toaster/index.cjs +1 -1
  234. package/dist/components/base/toaster/index.cjs.map +1 -1
  235. package/dist/components/base/toaster/index.js +82 -23
  236. package/dist/components/base/toaster/index.js.map +1 -1
  237. package/dist/components/base/toaster/toaster.d.ts +1 -1
  238. package/dist/components/base/toaster/toaster.d.ts.map +1 -1
  239. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
  240. package/dist/components/composed/admin/index.cjs +1 -1
  241. package/dist/components/composed/admin/index.cjs.map +1 -1
  242. package/dist/components/composed/admin/index.js +67 -67
  243. package/dist/components/composed/admin/index.js.map +1 -1
  244. package/dist/components/composed/ai/index.cjs +1 -1
  245. package/dist/components/composed/ai/index.js +9 -9
  246. package/dist/components/composed/analytics/index.cjs +1 -1
  247. package/dist/components/composed/analytics/index.cjs.map +1 -1
  248. package/dist/components/composed/analytics/index.js +12 -12
  249. package/dist/components/composed/analytics/index.js.map +1 -1
  250. package/dist/components/composed/cards/index.cjs +1 -1
  251. package/dist/components/composed/cards/index.js +7 -7
  252. package/dist/components/composed/commerce/index.cjs +1 -1
  253. package/dist/components/composed/commerce/index.cjs.map +1 -1
  254. package/dist/components/composed/commerce/index.js +10 -10
  255. package/dist/components/composed/commerce/index.js.map +1 -1
  256. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  257. package/dist/components/composed/dark-surfaces/index.js +5 -5
  258. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
  259. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
  260. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -1
  261. package/dist/components/composed/data-display/index.cjs +1 -1
  262. package/dist/components/composed/data-display/index.js +1 -1
  263. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
  264. package/dist/components/composed/navigation/index.cjs +1 -1
  265. package/dist/components/composed/navigation/index.js +5 -5
  266. package/dist/components/composed/onboarding/index.cjs +1 -1
  267. package/dist/components/composed/onboarding/index.js +3 -3
  268. package/dist/components/composed/timelines/index.cjs +1 -1
  269. package/dist/components/composed/timelines/index.js +3 -3
  270. package/dist/components/features/activities/index.cjs +1 -1
  271. package/dist/components/features/activities/index.js +5 -5
  272. package/dist/components/features/ai-chat/index.cjs +1 -1
  273. package/dist/components/features/ai-chat/index.js +5 -5
  274. package/dist/components/features/card/index.cjs +1 -1
  275. package/dist/components/features/card/index.js +4 -4
  276. package/dist/components/features/comments/index.cjs +1 -1
  277. package/dist/components/features/comments/index.js +2 -2
  278. package/dist/components/features/data-view/index.cjs +1 -1
  279. package/dist/components/features/data-view/index.js +2 -2
  280. package/dist/components/features/event-log/index.cjs +1 -1
  281. package/dist/components/features/event-log/index.js +5 -5
  282. package/dist/components/features/filters/index.cjs +1 -1
  283. package/dist/components/features/filters/index.cjs.map +1 -1
  284. package/dist/components/features/filters/index.js +190 -190
  285. package/dist/components/features/filters/index.js.map +1 -1
  286. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
  287. package/dist/components/features/global-search/index.cjs +1 -1
  288. package/dist/components/features/global-search/index.js +4 -4
  289. package/dist/components/features/kanban/index.cjs +1 -1
  290. package/dist/components/features/kanban/index.js +3 -3
  291. package/dist/components/features/media-library/index.cjs +1 -1
  292. package/dist/components/features/media-library/index.js +10 -10
  293. package/dist/components/features/mentions/index.cjs +1 -1
  294. package/dist/components/features/mentions/index.js +1 -1
  295. package/dist/components/features/overlays/index.cjs +1 -1
  296. package/dist/components/features/overlays/index.js +1 -1
  297. package/dist/components/features/products/index.cjs +1 -1
  298. package/dist/components/features/products/index.js +11 -11
  299. package/dist/components/features/resource/index.cjs +1 -1
  300. package/dist/components/features/resource/index.js +5 -5
  301. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  302. package/dist/components/features/rich-text-editor/index.js +1 -1
  303. package/dist/components/features/schema-form/index.cjs +1 -1
  304. package/dist/components/features/schema-form/index.js +8 -8
  305. package/dist/components/features/suggestions/index.cjs +1 -1
  306. package/dist/components/features/suggestions/index.js +1 -1
  307. package/dist/components/features/sync/index.cjs +1 -1
  308. package/dist/components/features/sync/index.js +2 -2
  309. package/dist/components/layout/auth/index.cjs +1 -1
  310. package/dist/components/layout/auth/index.js +1 -1
  311. package/dist/components/layout/header/index.cjs +1 -1
  312. package/dist/components/layout/header/index.js +1 -1
  313. package/dist/components/layout/hooks/index.cjs +1 -1
  314. package/dist/components/layout/hooks/index.js +1 -1
  315. package/dist/components/layout/index.cjs +1 -1
  316. package/dist/components/layout/index.js +7 -7
  317. package/dist/components/layout/page/index.cjs +1 -1
  318. package/dist/components/layout/page/index.js +1 -1
  319. package/dist/components/layout/page/page.types.d.ts +5 -0
  320. package/dist/components/layout/page/page.types.d.ts.map +1 -1
  321. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  322. package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
  323. package/dist/components/layout/settings/index.cjs +1 -1
  324. package/dist/components/layout/settings/index.js +1 -1
  325. package/dist/components/layout/sidebar/index.cjs +1 -1
  326. package/dist/components/layout/sidebar/index.js +2 -2
  327. package/dist/components/layout/workspace/index.cjs +1 -1
  328. package/dist/components/layout/workspace/index.js +1 -1
  329. package/dist/components/typography/index.cjs +1 -1
  330. package/dist/components/typography/index.js +1 -1
  331. package/dist/index.cjs +1 -1
  332. package/dist/index.js +1 -1
  333. package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
  334. package/dist/lib/ui-provider/index.cjs +1 -1
  335. package/dist/lib/ui-provider/index.d.ts +1 -1
  336. package/dist/lib/ui-provider/index.d.ts.map +1 -1
  337. package/dist/lib/ui-provider/index.js +1 -1
  338. package/dist/lib/ui-provider/types.d.ts +14 -0
  339. package/dist/lib/ui-provider/types.d.ts.map +1 -1
  340. package/dist/services/actions/index.cjs +1 -1
  341. package/dist/services/actions/index.js +1 -1
  342. package/dist/showcase/assets/AreaChart-DxDBymDt.js +6 -0
  343. package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +1 -0
  344. package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +1 -0
  345. package/dist/showcase/assets/DialogTrigger-OUBMI353.js +1 -0
  346. package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +1 -0
  347. package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +1 -0
  348. package/dist/showcase/assets/RadioGroup-BzveyiIV.js +1 -0
  349. package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +1 -0
  350. package/dist/showcase/assets/Separator-CSYYEo-X.js +1 -0
  351. package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +1 -0
  352. package/dist/showcase/assets/accordion-B9VkLXiy.js +171 -0
  353. package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +1 -0
  354. package/dist/showcase/assets/action-menu-CWIvuiLO.js +1 -0
  355. package/dist/showcase/assets/actions-BuwzXYEF.js +310 -0
  356. package/dist/showcase/assets/activities-BTBlr1G4.js +500 -0
  357. package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +1 -0
  358. package/dist/showcase/assets/admin-kbK6nUjx.js +140 -0
  359. package/dist/showcase/assets/ai-CKu9EGmA.js +207 -0
  360. package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +2 -0
  361. package/dist/showcase/assets/ai-chat-DEntRhJD.js +568 -0
  362. package/dist/showcase/assets/ai-elements-DyKRCWiS.js +387 -0
  363. package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +1 -0
  364. package/dist/showcase/assets/alert-C0wSpBYn.js +93 -0
  365. package/dist/showcase/assets/alert-CZ4rgwPr.js +62 -0
  366. package/dist/showcase/assets/alert-WTKIdE4s.js +1 -0
  367. package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +1 -0
  368. package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +73 -0
  369. package/dist/showcase/assets/app-sidebar-B3veRbac.js +1 -0
  370. package/dist/showcase/assets/arrow-down-CEXJx115.js +1 -0
  371. package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +1 -0
  372. package/dist/showcase/assets/arrow-right-a3STqWgx.js +1 -0
  373. package/dist/showcase/assets/arrow-up-CCU1MaGq.js +1 -0
  374. package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +1 -0
  375. package/dist/showcase/assets/avatar-Bwgai0SK.js +67 -0
  376. package/dist/showcase/assets/avatar-DSmL52Us.js +57 -0
  377. package/dist/showcase/assets/avatar-kK9n1a25.js +1 -0
  378. package/dist/showcase/assets/avatar-nb7MgV_x.js +1 -0
  379. package/dist/showcase/assets/badge-CTGPRSXm.js +31 -0
  380. package/dist/showcase/assets/badge-check-zqoYYrVj.js +1 -0
  381. package/dist/showcase/assets/bell-D7HWGStL.js +1 -0
  382. package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +1 -0
  383. package/dist/showcase/assets/bot-Owx4SMiU.js +1 -0
  384. package/dist/showcase/assets/box-BeeoLlMd.js +1 -0
  385. package/dist/showcase/assets/braces-fzrExVIx.js +1 -0
  386. package/dist/showcase/assets/brain-Da2fsBjd.js +1 -0
  387. package/dist/showcase/assets/brand-Bo6uwdGf.js +36 -0
  388. package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +1 -0
  389. package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +52 -0
  390. package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +1 -0
  391. package/dist/showcase/assets/briefcase-DQjbh28E.js +1 -0
  392. package/dist/showcase/assets/building-2-DaQW5yJa.js +1 -0
  393. package/dist/showcase/assets/button-D3skvyQS.js +44 -0
  394. package/dist/showcase/assets/button-group-BYtbrhme.js +1 -0
  395. package/dist/showcase/assets/buttons-B3IkMmNQ.js +272 -0
  396. package/dist/showcase/assets/calendar-C4fCDK3O.js +1 -0
  397. package/dist/showcase/assets/calendar-CcwkVxCK.js +16 -0
  398. package/dist/showcase/assets/calendar-DBkwxV9H.js +1 -0
  399. package/dist/showcase/assets/calendar-days-BWed1W3Z.js +1 -0
  400. package/dist/showcase/assets/camera-BUoAyoZT.js +1 -0
  401. package/dist/showcase/assets/card-7DBPqWuv.js +1 -0
  402. package/dist/showcase/assets/card-ClwyNDHJ.js +188 -0
  403. package/dist/showcase/assets/card-primitives-BE1YpEQW.js +1 -0
  404. package/dist/showcase/assets/card-radio-group-1NMbocuG.js +1 -0
  405. package/dist/showcase/assets/cards-Bu8uaGSU.js +354 -0
  406. package/dist/showcase/assets/carousel-dTTRRSQg.js +449 -0
  407. package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +1 -0
  408. package/dist/showcase/assets/chart-BSboeIO6.js +358 -0
  409. package/dist/showcase/assets/chart-column-CCzA6B9l.js +1 -0
  410. package/dist/showcase/assets/checkbox-CSdEPNT5.js +1 -0
  411. package/dist/showcase/assets/checkbox-CqNLi9Q3.js +1 -0
  412. package/dist/showcase/assets/chevron-down-C91gNQdT.js +1 -0
  413. package/dist/showcase/assets/chevron-left-SiAoYFSo.js +1 -0
  414. package/dist/showcase/assets/chevron-up-Beb1_ET_.js +1 -0
  415. package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +1 -0
  416. package/dist/showcase/assets/circle-D9KiRp8C.js +1 -0
  417. package/dist/showcase/assets/circle-alert-BQkAwFkl.js +1 -0
  418. package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +1 -0
  419. package/dist/showcase/assets/circle-check-dqmKTiDe.js +1 -0
  420. package/dist/showcase/assets/circle-dot-B7LPN_0V.js +1 -0
  421. package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +1 -0
  422. package/dist/showcase/assets/circle-x-CW2dFcX-.js +1 -0
  423. package/dist/showcase/assets/clock-3-CXJ_JotW.js +1 -0
  424. package/dist/showcase/assets/clock-DUqvfazQ.js +1 -0
  425. package/dist/showcase/assets/code-xml-BmdQDeID.js +1 -0
  426. package/dist/showcase/assets/collapsible-C-WYhJxn.js +1 -0
  427. package/dist/showcase/assets/collapsible-CL37AlCX.js +27 -0
  428. package/dist/showcase/assets/collapsible-uGO5Rj8q.js +1 -0
  429. package/dist/showcase/assets/combobox-CFh5kUzj.js +685 -0
  430. package/dist/showcase/assets/command-CtpLaHjh.js +1 -0
  431. package/dist/showcase/assets/command-DSlK-QAE.js +1 -0
  432. package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +1 -0
  433. package/dist/showcase/assets/comment-item-Dme2o2KI.js +1 -0
  434. package/dist/showcase/assets/comments-CW2nz465.js +357 -0
  435. package/dist/showcase/assets/commerce-bwcq6oPn.js +267 -0
  436. package/dist/showcase/assets/composite-DMIR0vmP.js +1 -0
  437. package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +1 -0
  438. package/dist/showcase/assets/contact-card-BCXS9tWq.js +65 -0
  439. package/dist/showcase/assets/content-container-b1dC2caJ.js +1 -0
  440. package/dist/showcase/assets/copyable-BIABx-Vv.js +96 -0
  441. package/dist/showcase/assets/copyable-Ic9wzVaj.js +1 -0
  442. package/dist/showcase/assets/course-card-Bo5P3TYv.js +77 -0
  443. package/dist/showcase/assets/cpu-_VqU6yRO.js +1 -0
  444. package/dist/showcase/assets/credit-card-BbxO8xLo.js +1 -0
  445. package/dist/showcase/assets/css-variables-zqpBgnS1.js +1205 -0
  446. package/dist/showcase/assets/currency-Cjvt4F0b.js +149 -0
  447. package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +90 -0
  448. package/dist/showcase/assets/data-view-AtyUp7b-.js +124 -0
  449. package/dist/showcase/assets/data-view-cnEmgP1C.js +4 -0
  450. package/dist/showcase/assets/database-TbVXEw7v.js +1 -0
  451. package/dist/showcase/assets/date-block-CDHemKnP.js +1 -0
  452. package/dist/showcase/assets/date-block-COb89Y_-.js +1 -0
  453. package/dist/showcase/assets/date-picker-CK8llBIN.js +1 -0
  454. package/dist/showcase/assets/date-pickers-DFfDnW9w.js +73 -0
  455. package/dist/showcase/assets/dense-info-CaFVDE90.js +106 -0
  456. package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +264 -0
  457. package/dist/showcase/assets/dialog-CRQNEK2K.js +1 -0
  458. package/dist/showcase/assets/dialog-CsCLDb0G.js +1 -0
  459. package/dist/showcase/assets/dialog-Qh3EHEKq.js +1 -0
  460. package/dist/showcase/assets/display-utilities-rP3hb4FK.js +4 -0
  461. package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +309 -0
  462. package/dist/showcase/assets/dist-CbqRct9s.js +1 -0
  463. package/dist/showcase/assets/dist-iivamCjp.js +45 -0
  464. package/dist/showcase/assets/dollar-sign-COaRmdJE.js +1 -0
  465. package/dist/showcase/assets/download-yCcb4rfH.js +1 -0
  466. package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +1 -0
  467. package/dist/showcase/assets/dropzone-DLguWnmu.js +1 -0
  468. package/dist/showcase/assets/earth-TDRqTA4S.js +1 -0
  469. package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +1 -0
  470. package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +1 -0
  471. package/dist/showcase/assets/empty-DvmDTSAj.js +1 -0
  472. package/dist/showcase/assets/empty-item-C3HP5nuw.js +49 -0
  473. package/dist/showcase/assets/empty-state-Dcin4cOt.js +190 -0
  474. package/dist/showcase/assets/empty-state-IV_GTNEI.js +1 -0
  475. package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +357 -0
  476. package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +1 -0
  477. package/dist/showcase/assets/esm-Cf6QQstQ.js +2 -0
  478. package/dist/showcase/assets/event-calendar-zrfI_3AM.js +138 -0
  479. package/dist/showcase/assets/event-log-D-_CViAw.js +330 -0
  480. package/dist/showcase/assets/example-6bZGEb3-.js +1 -0
  481. package/dist/showcase/assets/external-link-7ldgjHZM.js +1 -0
  482. package/dist/showcase/assets/eye-pXVkim6z.js +1 -0
  483. package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +34 -0
  484. package/dist/showcase/assets/file-Bn9sAGaT.js +1 -0
  485. package/dist/showcase/assets/file-text-Cvxg6pjh.js +1 -0
  486. package/dist/showcase/assets/filter-layout-DqNRRzDU.js +1 -0
  487. package/dist/showcase/assets/filters-CQMI_T63.js +139 -0
  488. package/dist/showcase/assets/flag-vI_WJ-BU.js +1 -0
  489. package/dist/showcase/assets/folder-open-0AyKSRQS.js +1 -0
  490. package/dist/showcase/assets/form-field-BaBeXn7a.js +1 -0
  491. package/dist/showcase/assets/format-DLLMyN-3.js +1 -0
  492. package/dist/showcase/assets/forms-gPD-Caru.js +915 -0
  493. package/dist/showcase/assets/funnel-Ca9nWMHm.js +1 -0
  494. package/dist/showcase/assets/generic-AAssz0h7.js +1 -0
  495. package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +1 -0
  496. package/dist/showcase/assets/gift-BC42Oxfz.js +1 -0
  497. package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +85 -0
  498. package/dist/showcase/assets/git-branch-B-nF8w-J.js +1 -0
  499. package/dist/showcase/assets/global-search-D6Gxw0G3.js +1 -0
  500. package/dist/showcase/assets/global-search-jsb_4idg.js +215 -0
  501. package/dist/showcase/assets/globe-C92uBSrO.js +1 -0
  502. package/dist/showcase/assets/gradient-card-D4ly60sD.js +58 -0
  503. package/dist/showcase/assets/hash-BShTbxlR.js +1 -0
  504. package/dist/showcase/assets/header-CSiNqg9Q.js +1 -0
  505. package/dist/showcase/assets/header-notifications-CpHeFPQF.js +1 -0
  506. package/dist/showcase/assets/heart-B3hXs7fr.js +1 -0
  507. package/dist/showcase/assets/hooks-CamAqFFh.js +220 -0
  508. package/dist/showcase/assets/house-4_CouE-Y.js +1 -0
  509. package/dist/showcase/assets/icon-badge-CePIZqWR.js +1 -0
  510. package/dist/showcase/assets/icon-badge-DSbvvnxh.js +37 -0
  511. package/dist/showcase/assets/image-BxbFIbVJ.js +1 -0
  512. package/dist/showcase/assets/inbox-BXab1SM6.js +1 -0
  513. package/dist/showcase/assets/index-BPUtPJjB.css +2 -0
  514. package/dist/showcase/assets/index-BjjNfnhP.js +10 -0
  515. package/dist/showcase/assets/inertValue-CZOzgsmF.js +1 -0
  516. package/dist/showcase/assets/info-DzqwCq93.js +1 -0
  517. package/dist/showcase/assets/inline-stat-D5ybpUh-.js +15 -0
  518. package/dist/showcase/assets/inline-stat-Dq34wv-6.js +1 -0
  519. package/dist/showcase/assets/input-C8OfUHCK.js +1 -0
  520. package/dist/showcase/assets/input-D34Ge3rh.js +1 -0
  521. package/dist/showcase/assets/input-group-BCPZ6Pwq.js +1 -0
  522. package/dist/showcase/assets/input-group-CySTANka.js +47 -0
  523. package/dist/showcase/assets/inputs-CnmHo_lj.js +155 -0
  524. package/dist/showcase/assets/installation-BPvseS46.js +134 -0
  525. package/dist/showcase/assets/invoice-header-C9JjJWQX.js +36 -0
  526. package/dist/showcase/assets/invoice-items-DB8tbCv9.js +36 -0
  527. package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +14 -0
  528. package/dist/showcase/assets/invoice-table-CLDvpLib.js +30 -0
  529. package/dist/showcase/assets/isSameDay-D8bDebyL.js +1 -0
  530. package/dist/showcase/assets/isToday-XVjRuMtp.js +1 -0
  531. package/dist/showcase/assets/italic-Cm13b8qb.js +1 -0
  532. package/dist/showcase/assets/item-C07859JQ.js +1 -0
  533. package/dist/showcase/assets/item-LinnMxvu.js +1 -0
  534. package/dist/showcase/assets/item-i7ZUMs5t.js +140 -0
  535. package/dist/showcase/assets/kanban-CIMTpuN5.js +188 -0
  536. package/dist/showcase/assets/key-round-Bh7EzOyR.js +1 -0
  537. package/dist/showcase/assets/label-C3A4CjeG.js +1 -0
  538. package/dist/showcase/assets/languages-C37jhetw.js +1 -0
  539. package/dist/showcase/assets/layers-Lyr6p-Nt.js +1 -0
  540. package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +608 -0
  541. package/dist/showcase/assets/layout-auth-y1alnhc8.js +790 -0
  542. package/dist/showcase/assets/layout-containers-B6c-uvil.js +101 -0
  543. package/dist/showcase/assets/layout-header-DNhJHWNw.js +203 -0
  544. package/dist/showcase/assets/layout-page-CXU7CnQK.js +315 -0
  545. package/dist/showcase/assets/layout-primitives-StuFwfwh.js +34 -0
  546. package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +224 -0
  547. package/dist/showcase/assets/layout-users-D7KMzs3-.js +117 -0
  548. package/dist/showcase/assets/layout-workspace-Butr7CL5.js +191 -0
  549. package/dist/showcase/assets/lib-D5nOMXIt.js +1 -0
  550. package/dist/showcase/assets/list-checks-Cg9HZf4W.js +1 -0
  551. package/dist/showcase/assets/lock-Da21HhQx.js +1 -0
  552. package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +1 -0
  553. package/dist/showcase/assets/mail-Bamky-ti.js +1 -0
  554. package/dist/showcase/assets/mail-check-BfVYPC42.js +1 -0
  555. package/dist/showcase/assets/map-BTlWnRAQ.js +124 -0
  556. package/dist/showcase/assets/map-pin-BU2RBuvC.js +1 -0
  557. package/dist/showcase/assets/media-library-DJxgoGAF.js +699 -0
  558. package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +1 -0
  559. package/dist/showcase/assets/mentions-kMT-Z3qU.js +138 -0
  560. package/dist/showcase/assets/menus-bhp_n9PT.js +171 -0
  561. package/dist/showcase/assets/message-square-DC5Bb9Zs.js +1 -0
  562. package/dist/showcase/assets/metadata-list-DGr729EW.js +286 -0
  563. package/dist/showcase/assets/metadata-list-DyjhZi6d.js +1 -0
  564. package/dist/showcase/assets/metric-DRDok6Ci.js +1 -0
  565. package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +1 -0
  566. package/dist/showcase/assets/metric-grid-BlFXTrid.js +1 -0
  567. package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +1 -0
  568. package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +44 -0
  569. package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +50 -0
  570. package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +76 -0
  571. package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +27 -0
  572. package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +17 -0
  573. package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +31 -0
  574. package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +42 -0
  575. package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +192 -0
  576. package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +54 -0
  577. package/dist/showcase/assets/minus-Dr1iTc_q.js +1 -0
  578. package/dist/showcase/assets/money-display-B5_VqQC0.js +1 -0
  579. package/dist/showcase/assets/money-display-bU2_cVGX.js +1 -0
  580. package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +1 -0
  581. package/dist/showcase/assets/navigation-DBKvJoe-.js +231 -0
  582. package/dist/showcase/assets/navigation-DOhfmtgy.js +90 -0
  583. package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +43 -0
  584. package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +1 -0
  585. package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +119 -0
  586. package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +1 -0
  587. package/dist/showcase/assets/overlays-4E_sUgkz.js +408 -0
  588. package/dist/showcase/assets/overlays-ulNl-Vhr.js +159 -0
  589. package/dist/showcase/assets/overview-CgymfIBq.js +184 -0
  590. package/dist/showcase/assets/package-CADuUP1u.js +1 -0
  591. package/dist/showcase/assets/package-check-O7MD6XE_.js +1 -0
  592. package/dist/showcase/assets/page-GB6OIgID.js +1 -0
  593. package/dist/showcase/assets/page-action-button-Dpprot7y.js +1 -0
  594. package/dist/showcase/assets/page-header-2VEUPx67.js +1 -0
  595. package/dist/showcase/assets/pagination-BBuRtAX9.js +1 -0
  596. package/dist/showcase/assets/pagination-C4mt4Q4l.js +42 -0
  597. package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +1 -0
  598. package/dist/showcase/assets/password-input-CgZj1niQ.js +1 -0
  599. package/dist/showcase/assets/pencil-CtdXjogr.js +1 -0
  600. package/dist/showcase/assets/phone-CAFMH1vV.js +1 -0
  601. package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +1 -0
  602. package/dist/showcase/assets/plus-CN2dzUxL.js +1 -0
  603. package/dist/showcase/assets/popover-DILNXLWy.js +1 -0
  604. package/dist/showcase/assets/popover-menu-Bp08xxOf.js +1 -0
  605. package/dist/showcase/assets/popover-o1EO2yVS.js +1 -0
  606. package/dist/showcase/assets/products-CCLAbHBN.js +423 -0
  607. package/dist/showcase/assets/progress-BGna-ZmU.js +18 -0
  608. package/dist/showcase/assets/progress-BSYlNLIJ.js +1 -0
  609. package/dist/showcase/assets/progress-CZVy3LGB.js +1 -0
  610. package/dist/showcase/assets/props-table-X9St7Q4m.js +1 -0
  611. package/dist/showcase/assets/props.generated-f_jHBhPb.json +41753 -0
  612. package/dist/showcase/assets/qr-code-CEmKf9xU.js +1 -0
  613. package/dist/showcase/assets/quote-IH6r-rlY.js +1 -0
  614. package/dist/showcase/assets/receipt-m9rOe5lY.js +1 -0
  615. package/dist/showcase/assets/receipt-text-C0TobatH.js +1 -0
  616. package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +189 -0
  617. package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +1 -0
  618. package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +1 -0
  619. package/dist/showcase/assets/resource-BcJ8O6uj.js +1 -0
  620. package/dist/showcase/assets/resource-_zDXez77.js +139 -0
  621. package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +43 -0
  622. package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +143 -0
  623. package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +124 -0
  624. package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +1 -0
  625. package/dist/showcase/assets/route-C7EZ2Njy.js +1 -0
  626. package/dist/showcase/assets/save-fKrt-yFG.js +1 -0
  627. package/dist/showcase/assets/schema-form-k7TXeirD.js +327 -0
  628. package/dist/showcase/assets/scroll-area-CqNwdlI6.js +32 -0
  629. package/dist/showcase/assets/scroll-area-UVtlGOgx.js +1 -0
  630. package/dist/showcase/assets/section-DuBNJP4P.js +1 -0
  631. package/dist/showcase/assets/select-CINVEIWn.js +1 -0
  632. package/dist/showcase/assets/select-ZLaamXrm.js +1 -0
  633. package/dist/showcase/assets/send-DBvt_4jT.js +1 -0
  634. package/dist/showcase/assets/separator-BdBXRpc3.js +28 -0
  635. package/dist/showcase/assets/separator-CkJjJQWW.js +1 -0
  636. package/dist/showcase/assets/separator-CxOeStjL.js +1 -0
  637. package/dist/showcase/assets/separator-O-VQMSf_.js +1 -0
  638. package/dist/showcase/assets/settings-2-BWjMVlyS.js +1 -0
  639. package/dist/showcase/assets/settings-D9Z79UcG.js +1 -0
  640. package/dist/showcase/assets/sheet-CK9C6r7_.js +1 -0
  641. package/dist/showcase/assets/shield-BboB3Zlo.js +1 -0
  642. package/dist/showcase/assets/shield-alert-CAAobStl.js +1 -0
  643. package/dist/showcase/assets/shield-check-Rfyzz9bK.js +1 -0
  644. package/dist/showcase/assets/shopping-bag-5hLD82YW.js +1 -0
  645. package/dist/showcase/assets/showcase-DhOQXB5E.js +132 -0
  646. package/dist/showcase/assets/sidebar-ZTUACc0t.js +1 -0
  647. package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +1 -0
  648. package/dist/showcase/assets/skeleton-BZUSoHbk.js +1 -0
  649. package/dist/showcase/assets/skeleton-BZkYzAdq.js +1 -0
  650. package/dist/showcase/assets/skeleton-CrOp8tx3.js +29 -0
  651. package/dist/showcase/assets/skeleton-P5GXAj4U.js +1 -0
  652. package/dist/showcase/assets/slider-zlE7nLrp.js +1 -0
  653. package/dist/showcase/assets/smart-card-OExZHSsj.js +1 -0
  654. package/dist/showcase/assets/sonner-eMphKM9E.js +22 -0
  655. package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +5 -0
  656. package/dist/showcase/assets/sparkles-CIB5irID.js +1 -0
  657. package/dist/showcase/assets/spinner-11-kP-Ob.js +1 -0
  658. package/dist/showcase/assets/spinner-D4G5TFSm.js +49 -0
  659. package/dist/showcase/assets/spinner-DKGukuFV.js +30 -0
  660. package/dist/showcase/assets/square-pen-zflKy9oX.js +1 -0
  661. package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +1 -0
  662. package/dist/showcase/assets/star-DleXDkCp.js +1 -0
  663. package/dist/showcase/assets/startOfDay-TDP2erzM.js +1 -0
  664. package/dist/showcase/assets/styles-BKlX_Ipc.js +1 -0
  665. package/dist/showcase/assets/suggestions-Dt2hm1NY.js +126 -0
  666. package/dist/showcase/assets/switch-DAPAgJbv.js +1 -0
  667. package/dist/showcase/assets/switch-fQpP2tJl.js +1 -0
  668. package/dist/showcase/assets/sync-BRcK160D.js +124 -0
  669. package/dist/showcase/assets/table-Dhmbe1yN.js +686 -0
  670. package/dist/showcase/assets/table-actions-GGrPOQcv.js +1 -0
  671. package/dist/showcase/assets/table-v0Eu5yZn.js +1 -0
  672. package/dist/showcase/assets/tabs-DmaXB1aF.js +19 -0
  673. package/dist/showcase/assets/tabs-vbNIJ-eo.js +1 -0
  674. package/dist/showcase/assets/tags-input-Bms_Q5CE.js +1 -0
  675. package/dist/showcase/assets/text-button-gvJCzaXS.js +1 -0
  676. package/dist/showcase/assets/text-link-DkByVX4d.js +1 -0
  677. package/dist/showcase/assets/textarea-B6Ho29y3.js +1 -0
  678. package/dist/showcase/assets/textarea-JCb0yhZ1.js +1 -0
  679. package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +1 -0
  680. package/dist/showcase/assets/timelines-Bw7mvAdx.js +200 -0
  681. package/dist/showcase/assets/toggle-group-jlIGX1zh.js +1 -0
  682. package/dist/showcase/assets/toggles-DV6V9vj-.js +71 -0
  683. package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +32 -0
  684. package/dist/showcase/assets/tooltip-CDtPyNOv.js +31 -0
  685. package/dist/showcase/assets/trash-2-CXRm3lMl.js +1 -0
  686. package/dist/showcase/assets/trending-up-Bcyp9cw8.js +1 -0
  687. package/dist/showcase/assets/truck-DVgzuKLP.js +1 -0
  688. package/dist/showcase/assets/typography-BKPf4j85.js +223 -0
  689. package/dist/showcase/assets/ui-badge-D-Ud2MES.js +28 -0
  690. package/dist/showcase/assets/ui-card-gGqI2cfr.js +30 -0
  691. package/dist/showcase/assets/ui-table-Bqcab_kq.js +42 -0
  692. package/dist/showcase/assets/upload-tray-BFh6twLE.js +138 -0
  693. package/dist/showcase/assets/use-layout-link-e9jr981L.js +1 -0
  694. package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +1 -0
  695. package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +1 -0
  696. package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +1 -0
  697. package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +1 -0
  698. package/dist/showcase/assets/useLabelableId-COfjI9qt.js +1 -0
  699. package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +1 -0
  700. package/dist/showcase/assets/useRender-Bgu76j1u.js +1 -0
  701. package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +1 -0
  702. package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +1 -0
  703. package/dist/showcase/assets/user-CmkLnMh9.js +1 -0
  704. package/dist/showcase/assets/user-plus-3CGFNUf0.js +1 -0
  705. package/dist/showcase/assets/users-CuO8W7wn.js +1 -0
  706. package/dist/showcase/assets/vendor-profile-HLMsE22G.js +37 -0
  707. package/dist/showcase/assets/video-CoHnn0fp.js +1 -0
  708. package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +1 -0
  709. package/dist/showcase/assets/wrench-C93IxaGt.js +1 -0
  710. package/dist/showcase/assets/x-BJDvVLAz.js +1 -0
  711. package/dist/showcase/assets/zap-DYD_Ljkv.js +1 -0
  712. package/dist/showcase/index.html +2 -2
  713. package/dist/style.css +1 -1
  714. package/package.json +1 -1
  715. package/src/css/themes/shadcn.default.css +2 -2
  716. package/src/css/tokens/foundation.css +1 -1
  717. package/src/css/tokens/primitives.css +1 -1
  718. package/src/css/tokens/states.css +3 -0
  719. package/dist/_shared/accordion-CxjH2WZG.js +0 -135
  720. package/dist/_shared/accordion-CxjH2WZG.js.map +0 -1
  721. package/dist/_shared/accordion-mTdJmy23.cjs +0 -2
  722. package/dist/_shared/accordion-mTdJmy23.cjs.map +0 -1
  723. package/dist/_shared/action-menu-BrHF4nss.cjs +0 -2
  724. package/dist/_shared/action-menu-BrHF4nss.cjs.map +0 -1
  725. package/dist/_shared/action-menu-Crn22LKo.js +0 -96
  726. package/dist/_shared/action-menu-Crn22LKo.js.map +0 -1
  727. package/dist/_shared/ai-artifact-CS2Pv-bu.js +0 -1099
  728. package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +0 -1
  729. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +0 -3
  730. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +0 -1
  731. package/dist/_shared/alert-BisCSsOE.cjs +0 -2
  732. package/dist/_shared/alert-BisCSsOE.cjs.map +0 -1
  733. package/dist/_shared/alert-D23Q7I0W.js +0 -81
  734. package/dist/_shared/alert-D23Q7I0W.js.map +0 -1
  735. package/dist/_shared/auth-BV9Daibu.cjs +0 -2
  736. package/dist/_shared/auth-BV9Daibu.cjs.map +0 -1
  737. package/dist/_shared/auth-DACpcTnL.js +0 -643
  738. package/dist/_shared/auth-DACpcTnL.js.map +0 -1
  739. package/dist/_shared/badge-B4oBB5BJ.js +0 -110
  740. package/dist/_shared/badge-B4oBB5BJ.js.map +0 -1
  741. package/dist/_shared/badge-DvUA9Pr2.cjs +0 -2
  742. package/dist/_shared/badge-DvUA9Pr2.cjs.map +0 -1
  743. package/dist/_shared/button-BMiPFJIb.cjs +0 -2
  744. package/dist/_shared/button-BMiPFJIb.cjs.map +0 -1
  745. package/dist/_shared/button-vv59_uS_.js +0 -189
  746. package/dist/_shared/button-vv59_uS_.js.map +0 -1
  747. package/dist/_shared/buttons-CvqIMv3I.js +0 -137
  748. package/dist/_shared/buttons-CvqIMv3I.js.map +0 -1
  749. package/dist/_shared/buttons-tCkWktN3.cjs +0 -2
  750. package/dist/_shared/buttons-tCkWktN3.cjs.map +0 -1
  751. package/dist/_shared/card-radio-group-BL--IyPB.js +0 -150
  752. package/dist/_shared/card-radio-group-BL--IyPB.js.map +0 -1
  753. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +0 -2
  754. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +0 -1
  755. package/dist/_shared/cards-CMNXFo3Y.js +0 -354
  756. package/dist/_shared/cards-CMNXFo3Y.js.map +0 -1
  757. package/dist/_shared/cards-DQN9fcwo.cjs +0 -2
  758. package/dist/_shared/cards-DQN9fcwo.cjs.map +0 -1
  759. package/dist/_shared/combobox-D0avSXIB.cjs +0 -2
  760. package/dist/_shared/combobox-D0avSXIB.cjs.map +0 -1
  761. package/dist/_shared/combobox-Df0srISK.js +0 -954
  762. package/dist/_shared/combobox-Df0srISK.js.map +0 -1
  763. package/dist/_shared/command-B5BpMgBT.js +0 -39
  764. package/dist/_shared/command-B5BpMgBT.js.map +0 -1
  765. package/dist/_shared/command-en62SpQ7.cjs +0 -2
  766. package/dist/_shared/command-en62SpQ7.cjs.map +0 -1
  767. package/dist/_shared/comments-CfkortDW.js +0 -952
  768. package/dist/_shared/comments-CfkortDW.js.map +0 -1
  769. package/dist/_shared/comments-yVd7QMOu.cjs +0 -2
  770. package/dist/_shared/comments-yVd7QMOu.cjs.map +0 -1
  771. package/dist/_shared/copyable-Cn7tRGL5.js +0 -38
  772. package/dist/_shared/copyable-Cn7tRGL5.js.map +0 -1
  773. package/dist/_shared/copyable-CoKTxMSP.cjs +0 -2
  774. package/dist/_shared/copyable-CoKTxMSP.cjs.map +0 -1
  775. package/dist/_shared/data-display-BG7CD164.js +0 -1873
  776. package/dist/_shared/data-display-BG7CD164.js.map +0 -1
  777. package/dist/_shared/data-display-CXVoX3la.cjs +0 -2
  778. package/dist/_shared/data-display-CXVoX3la.cjs.map +0 -1
  779. package/dist/_shared/date-picker-Bf-nnyi-.js +0 -1361
  780. package/dist/_shared/date-picker-Bf-nnyi-.js.map +0 -1
  781. package/dist/_shared/date-picker-Cox4PAUt.cjs +0 -2
  782. package/dist/_shared/date-picker-Cox4PAUt.cjs.map +0 -1
  783. package/dist/_shared/date-pickers-DbN4q0dn.cjs +0 -2
  784. package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +0 -1
  785. package/dist/_shared/date-pickers-DvrOCP-s.js +0 -329
  786. package/dist/_shared/date-pickers-DvrOCP-s.js.map +0 -1
  787. package/dist/_shared/display-BQijMo37.js +0 -986
  788. package/dist/_shared/display-BQijMo37.js.map +0 -1
  789. package/dist/_shared/display-C0ut-Lew.cjs +0 -2
  790. package/dist/_shared/display-C0ut-Lew.cjs.map +0 -1
  791. package/dist/_shared/forms-BjG7QIb1.cjs +0 -2
  792. package/dist/_shared/forms-BjG7QIb1.cjs.map +0 -1
  793. package/dist/_shared/forms-DljDdyXR.js +0 -3533
  794. package/dist/_shared/forms-DljDdyXR.js.map +0 -1
  795. package/dist/_shared/header-BpFJRINR.cjs +0 -2
  796. package/dist/_shared/header-BpFJRINR.cjs.map +0 -1
  797. package/dist/_shared/header-CKqQF4_r.js +0 -447
  798. package/dist/_shared/header-CKqQF4_r.js.map +0 -1
  799. package/dist/_shared/hooks-DcCkbP1F.js +0 -95
  800. package/dist/_shared/hooks-DcCkbP1F.js.map +0 -1
  801. package/dist/_shared/hooks-RkLytuGj.cjs +0 -2
  802. package/dist/_shared/hooks-RkLytuGj.cjs.map +0 -1
  803. package/dist/_shared/input-Cin0qpjj.js +0 -182
  804. package/dist/_shared/input-Cin0qpjj.js.map +0 -1
  805. package/dist/_shared/input-uuWeiagN.cjs +0 -2
  806. package/dist/_shared/input-uuWeiagN.cjs.map +0 -1
  807. package/dist/_shared/item-CIlSaQg8.js +0 -226
  808. package/dist/_shared/item-CIlSaQg8.js.map +0 -1
  809. package/dist/_shared/item-CSk9Y2qB.cjs +0 -2
  810. package/dist/_shared/item-CSk9Y2qB.cjs.map +0 -1
  811. package/dist/_shared/layout-Cun0HPL4.cjs +0 -2
  812. package/dist/_shared/layout-Cun0HPL4.cjs.map +0 -1
  813. package/dist/_shared/layout-HrU5gwH3.js +0 -261
  814. package/dist/_shared/layout-HrU5gwH3.js.map +0 -1
  815. package/dist/_shared/mentions-BqN82Fon.cjs +0 -2
  816. package/dist/_shared/mentions-BqN82Fon.cjs.map +0 -1
  817. package/dist/_shared/mentions-DV0FT1Th.js +0 -506
  818. package/dist/_shared/mentions-DV0FT1Th.js.map +0 -1
  819. package/dist/_shared/money-display-D5FCRhzB.cjs +0 -2
  820. package/dist/_shared/money-display-D5FCRhzB.cjs.map +0 -1
  821. package/dist/_shared/money-display-FcCAQDCz.js +0 -198
  822. package/dist/_shared/money-display-FcCAQDCz.js.map +0 -1
  823. package/dist/_shared/navigation-CI_Dd8jM.js +0 -436
  824. package/dist/_shared/navigation-CI_Dd8jM.js.map +0 -1
  825. package/dist/_shared/navigation-DUGhCPzJ.cjs +0 -2
  826. package/dist/_shared/navigation-DUGhCPzJ.cjs.map +0 -1
  827. package/dist/_shared/overlays-BRLemLSn.cjs +0 -2
  828. package/dist/_shared/overlays-BRLemLSn.cjs.map +0 -1
  829. package/dist/_shared/overlays-Bef7VNYY.js +0 -735
  830. package/dist/_shared/overlays-Bef7VNYY.js.map +0 -1
  831. package/dist/_shared/popover-menu-CAjhhTfX.js +0 -93
  832. package/dist/_shared/popover-menu-CAjhhTfX.js.map +0 -1
  833. package/dist/_shared/popover-menu-DlkRgOkR.cjs +0 -2
  834. package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +0 -1
  835. package/dist/_shared/rich-text-editor-Bpt3r3J3.js +0 -620
  836. package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +0 -1
  837. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +0 -2
  838. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +0 -1
  839. package/dist/_shared/settings-CNT4-6u8.cjs +0 -2
  840. package/dist/_shared/settings-CNT4-6u8.cjs.map +0 -1
  841. package/dist/_shared/settings-CRP6409J.js +0 -143
  842. package/dist/_shared/settings-CRP6409J.js.map +0 -1
  843. package/dist/_shared/sidebar-B0LcBrfI.cjs +0 -2
  844. package/dist/_shared/sidebar-B0LcBrfI.cjs.map +0 -1
  845. package/dist/_shared/sidebar-Bc6JsOTD.js +0 -548
  846. package/dist/_shared/sidebar-Bc6JsOTD.js.map +0 -1
  847. package/dist/_shared/spinner-CVG62sGs.js +0 -67
  848. package/dist/_shared/spinner-CVG62sGs.js.map +0 -1
  849. package/dist/_shared/spinner-VjdonFU2.cjs +0 -2
  850. package/dist/_shared/spinner-VjdonFU2.cjs.map +0 -1
  851. package/dist/_shared/table-_yujELN3.js +0 -1377
  852. package/dist/_shared/table-_yujELN3.js.map +0 -1
  853. package/dist/_shared/table-iV8H1AE0.cjs +0 -2
  854. package/dist/_shared/table-iV8H1AE0.cjs.map +0 -1
  855. package/dist/_shared/textarea-B4zbbqff.cjs +0 -2
  856. package/dist/_shared/textarea-B4zbbqff.cjs.map +0 -1
  857. package/dist/_shared/textarea-Dp0RU-rc.js +0 -118
  858. package/dist/_shared/textarea-Dp0RU-rc.js.map +0 -1
  859. package/dist/_shared/typography-DXvCmE8w.js +0 -201
  860. package/dist/_shared/typography-DXvCmE8w.js.map +0 -1
  861. package/dist/_shared/typography-pzCKaFOc.cjs +0 -2
  862. package/dist/_shared/typography-pzCKaFOc.cjs.map +0 -1
  863. package/dist/_shared/ui-provider-DZWtUXf2.cjs +0 -2
  864. package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +0 -1
  865. package/dist/_shared/ui-provider-Dj6OSOZi.js +0 -81
  866. package/dist/_shared/ui-provider-Dj6OSOZi.js.map +0 -1
  867. package/dist/_shared/workspace-C3U57t2a.cjs +0 -2
  868. package/dist/_shared/workspace-C3U57t2a.cjs.map +0 -1
  869. package/dist/_shared/workspace-Db--ow3r.js +0 -357
  870. package/dist/_shared/workspace-Db--ow3r.js.map +0 -1
  871. package/dist/showcase/assets/AreaChart-DtVzijR8.js +0 -6
  872. package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +0 -1
  873. package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +0 -1
  874. package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +0 -1
  875. package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +0 -1
  876. package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +0 -1
  877. package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +0 -1
  878. package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +0 -1
  879. package/dist/showcase/assets/Separator-DMs71Vib.js +0 -1
  880. package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +0 -1
  881. package/dist/showcase/assets/accordion-Clw5XNXP.js +0 -171
  882. package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +0 -1
  883. package/dist/showcase/assets/action-menu-CW8zR6Ne.js +0 -1
  884. package/dist/showcase/assets/actions-Cf7vl3u0.js +0 -310
  885. package/dist/showcase/assets/activities-CyI5sJuS.js +0 -500
  886. package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +0 -1
  887. package/dist/showcase/assets/admin-CQVbTxGD.js +0 -140
  888. package/dist/showcase/assets/ai-Bkp2BY_z.js +0 -207
  889. package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +0 -2
  890. package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +0 -568
  891. package/dist/showcase/assets/ai-elements-VbMUV2-i.js +0 -387
  892. package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +0 -1
  893. package/dist/showcase/assets/alert-BUmpNcXV.js +0 -1
  894. package/dist/showcase/assets/alert-CWPNW7eb.js +0 -93
  895. package/dist/showcase/assets/alert-nUwhk3AB.js +0 -62
  896. package/dist/showcase/assets/api-key-list-B1qVywOP.js +0 -73
  897. package/dist/showcase/assets/api-key-list-BI2FGbzV.js +0 -1
  898. package/dist/showcase/assets/app-sidebar-B35a8HWK.js +0 -1
  899. package/dist/showcase/assets/arrow-down-C1w0M8tE.js +0 -1
  900. package/dist/showcase/assets/arrow-left-DtILDtAv.js +0 -1
  901. package/dist/showcase/assets/arrow-right-TnZMfDbP.js +0 -1
  902. package/dist/showcase/assets/arrow-up-BX-KDIDB.js +0 -1
  903. package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +0 -1
  904. package/dist/showcase/assets/avatar-C5YI0roK.js +0 -67
  905. package/dist/showcase/assets/avatar-DsnH-Xmz.js +0 -1
  906. package/dist/showcase/assets/avatar-S4vMi7Be.js +0 -57
  907. package/dist/showcase/assets/avatar-q4wqX6yD.js +0 -1
  908. package/dist/showcase/assets/badge-DJacF8-J.js +0 -31
  909. package/dist/showcase/assets/badge-check-DDJtQHcD.js +0 -1
  910. package/dist/showcase/assets/bell-DiXXE8YI.js +0 -1
  911. package/dist/showcase/assets/bot-bONqc_7j.js +0 -1
  912. package/dist/showcase/assets/box-lhUq3Chj.js +0 -1
  913. package/dist/showcase/assets/braces-IKXiJgb3.js +0 -1
  914. package/dist/showcase/assets/brain-DcXlhbJZ.js +0 -1
  915. package/dist/showcase/assets/brand-CramZg2-.js +0 -36
  916. package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +0 -1
  917. package/dist/showcase/assets/breadcrumb-CZRbcf09.js +0 -52
  918. package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +0 -1
  919. package/dist/showcase/assets/briefcase-CQQ0m97G.js +0 -1
  920. package/dist/showcase/assets/building-2-BkQcv8WR.js +0 -1
  921. package/dist/showcase/assets/button-K7M0irWq.js +0 -44
  922. package/dist/showcase/assets/button-group-KCGa38c8.js +0 -1
  923. package/dist/showcase/assets/buttons-CvyBMRD6.js +0 -272
  924. package/dist/showcase/assets/calendar-BJHjhWQX.js +0 -1
  925. package/dist/showcase/assets/calendar-ChMVRsNC.js +0 -16
  926. package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +0 -1
  927. package/dist/showcase/assets/calendar-xpHhfGnq.js +0 -1
  928. package/dist/showcase/assets/camera-C67freYi.js +0 -1
  929. package/dist/showcase/assets/card-CfOqXMVz.js +0 -188
  930. package/dist/showcase/assets/card-bLjedjT5.js +0 -1
  931. package/dist/showcase/assets/card-primitives-FUPmQCsu.js +0 -1
  932. package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +0 -1
  933. package/dist/showcase/assets/cards-yHZa0kEf.js +0 -353
  934. package/dist/showcase/assets/carousel-DG1cKry4.js +0 -449
  935. package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +0 -1
  936. package/dist/showcase/assets/chart-B_yVfbWJ.js +0 -358
  937. package/dist/showcase/assets/chart-column-CYrVWmMk.js +0 -1
  938. package/dist/showcase/assets/checkbox-NW6EcvtD.js +0 -1
  939. package/dist/showcase/assets/checkbox-pA_L1P-f.js +0 -1
  940. package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +0 -1
  941. package/dist/showcase/assets/chevron-left-B_NQOEWI.js +0 -1
  942. package/dist/showcase/assets/chevron-up-6hst2jwR.js +0 -1
  943. package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +0 -1
  944. package/dist/showcase/assets/circle-Cw9qV72m.js +0 -1
  945. package/dist/showcase/assets/circle-alert-D3Vcma6L.js +0 -1
  946. package/dist/showcase/assets/circle-check-DdjJpGc9.js +0 -1
  947. package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +0 -1
  948. package/dist/showcase/assets/circle-dot-DN8DFgIP.js +0 -1
  949. package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +0 -1
  950. package/dist/showcase/assets/circle-x-BzTSkndC.js +0 -1
  951. package/dist/showcase/assets/clock-3-CVwHXCmo.js +0 -1
  952. package/dist/showcase/assets/clock-BIJ9p953.js +0 -1
  953. package/dist/showcase/assets/code-xml-DrU5ziCA.js +0 -1
  954. package/dist/showcase/assets/collapsible-7rdCo71k.js +0 -27
  955. package/dist/showcase/assets/collapsible-DCcTSlEH.js +0 -1
  956. package/dist/showcase/assets/combobox-mx8o5sV1.js +0 -685
  957. package/dist/showcase/assets/command-CKJDGdA9.js +0 -1
  958. package/dist/showcase/assets/command-CzGLPzoO.js +0 -1
  959. package/dist/showcase/assets/comment-composer-CSoEIapl.js +0 -1
  960. package/dist/showcase/assets/comment-item-pjaH53iB.js +0 -1
  961. package/dist/showcase/assets/comments-_ccotzWA.js +0 -357
  962. package/dist/showcase/assets/commerce-BuiQiRsf.js +0 -267
  963. package/dist/showcase/assets/composite-Bghohd0p.js +0 -1
  964. package/dist/showcase/assets/contact-card-CqM2uz_w.js +0 -65
  965. package/dist/showcase/assets/content-container-fC4z98GI.js +0 -1
  966. package/dist/showcase/assets/copyable-BMQK8sID.js +0 -1
  967. package/dist/showcase/assets/copyable-DVR2FAa0.js +0 -96
  968. package/dist/showcase/assets/course-card-Cku2z18g.js +0 -77
  969. package/dist/showcase/assets/cpu-A072t3kq.js +0 -1
  970. package/dist/showcase/assets/credit-card-BGwhx9Zo.js +0 -1
  971. package/dist/showcase/assets/css-variables-BAW_VrGk.js +0 -1205
  972. package/dist/showcase/assets/currency-Da3C0Uzb.js +0 -149
  973. package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +0 -90
  974. package/dist/showcase/assets/data-view--EAYihh0.js +0 -124
  975. package/dist/showcase/assets/data-view-BAMwKzZO.js +0 -4
  976. package/dist/showcase/assets/database-C489WIbr.js +0 -1
  977. package/dist/showcase/assets/date-block-DuNaPSBU.js +0 -1
  978. package/dist/showcase/assets/date-picker-Dq-9L64y.js +0 -1
  979. package/dist/showcase/assets/date-pickers-D0ReMKc9.js +0 -73
  980. package/dist/showcase/assets/dense-info-CXwjqQB1.js +0 -106
  981. package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +0 -264
  982. package/dist/showcase/assets/dialog-DIrJcAzq.js +0 -1
  983. package/dist/showcase/assets/dialog-O45UwQJs.js +0 -1
  984. package/dist/showcase/assets/display-utilities-VKOARJyC.js +0 -267
  985. package/dist/showcase/assets/dist-BavkTE-I.js +0 -1
  986. package/dist/showcase/assets/dist-DPxPKIgU.js +0 -45
  987. package/dist/showcase/assets/dollar-sign-CH2fcyek.js +0 -1
  988. package/dist/showcase/assets/download-whAw79X4.js +0 -1
  989. package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +0 -1
  990. package/dist/showcase/assets/dropzone-B9sc8Mwa.js +0 -1
  991. package/dist/showcase/assets/earth-BpkE9LMh.js +0 -1
  992. package/dist/showcase/assets/ellipsis-CEVdIbhD.js +0 -1
  993. package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +0 -1
  994. package/dist/showcase/assets/empty-Dp1eCMIl.js +0 -1
  995. package/dist/showcase/assets/empty-item--dZz4VlJ.js +0 -49
  996. package/dist/showcase/assets/empty-state-ZOiE-hWY.js +0 -190
  997. package/dist/showcase/assets/empty-state-dsivN4CA.js +0 -1
  998. package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +0 -357
  999. package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +0 -1
  1000. package/dist/showcase/assets/esm-DT-TXPCJ.js +0 -2
  1001. package/dist/showcase/assets/event-calendar-aVpAFZFq.js +0 -138
  1002. package/dist/showcase/assets/event-log-DVcvyQ-P.js +0 -330
  1003. package/dist/showcase/assets/example-CzbL5xoH.js +0 -1
  1004. package/dist/showcase/assets/external-link-BaLE1QE5.js +0 -1
  1005. package/dist/showcase/assets/eye-Dq0mLKrs.js +0 -1
  1006. package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +0 -34
  1007. package/dist/showcase/assets/file-CgW3NvCL.js +0 -1
  1008. package/dist/showcase/assets/file-text-JGaJQ8Wd.js +0 -1
  1009. package/dist/showcase/assets/filter-layout-jfahl8aJ.js +0 -1
  1010. package/dist/showcase/assets/filters-D7zegZVD.js +0 -139
  1011. package/dist/showcase/assets/flag-H6U1f4wd.js +0 -1
  1012. package/dist/showcase/assets/folder-open-sT96wRxJ.js +0 -1
  1013. package/dist/showcase/assets/form-field-CQuSWnj8.js +0 -1
  1014. package/dist/showcase/assets/format-DGPJ5dDq.js +0 -1
  1015. package/dist/showcase/assets/forms-CdDJkAFt.js +0 -915
  1016. package/dist/showcase/assets/funnel-Bh56GDO0.js +0 -1
  1017. package/dist/showcase/assets/generic-CqSABKHr.js +0 -1
  1018. package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +0 -1
  1019. package/dist/showcase/assets/gift-ChVS2ovQ.js +0 -1
  1020. package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +0 -85
  1021. package/dist/showcase/assets/git-branch-86jQZnz4.js +0 -1
  1022. package/dist/showcase/assets/global-search-C92CjOf8.js +0 -215
  1023. package/dist/showcase/assets/global-search-DpVIWyO9.js +0 -1
  1024. package/dist/showcase/assets/globe-DmGzYOlq.js +0 -1
  1025. package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +0 -58
  1026. package/dist/showcase/assets/hash-pc6IIDge.js +0 -1
  1027. package/dist/showcase/assets/header-DbM4l1Z6.js +0 -1
  1028. package/dist/showcase/assets/header-notifications-CaymUd4n.js +0 -1
  1029. package/dist/showcase/assets/heart-DtfPBlXq.js +0 -1
  1030. package/dist/showcase/assets/hooks-JiLlGOJ-.js +0 -220
  1031. package/dist/showcase/assets/house-CzNWewi5.js +0 -1
  1032. package/dist/showcase/assets/icon-badge-G9Fp891n.js +0 -1
  1033. package/dist/showcase/assets/icon-badge-e8N5BSYf.js +0 -37
  1034. package/dist/showcase/assets/image-9IQW7agU.js +0 -1
  1035. package/dist/showcase/assets/inbox-DU4YaGtc.js +0 -1
  1036. package/dist/showcase/assets/index-CuXjv2p6.css +0 -2
  1037. package/dist/showcase/assets/index-DN09-Vts.js +0 -10
  1038. package/dist/showcase/assets/inertValue-kRQb7jwi.js +0 -1
  1039. package/dist/showcase/assets/info-B9AXwUDF.js +0 -1
  1040. package/dist/showcase/assets/inline-stat-BkLIKCvD.js +0 -1
  1041. package/dist/showcase/assets/inline-stat-XqGHDQrK.js +0 -15
  1042. package/dist/showcase/assets/input-BXHv6p9P.js +0 -1
  1043. package/dist/showcase/assets/input-D_T9s_tn.js +0 -1
  1044. package/dist/showcase/assets/input-group-Bs8dmhR6.js +0 -47
  1045. package/dist/showcase/assets/input-group-CqkASeoV.js +0 -1
  1046. package/dist/showcase/assets/inputs-DY7w_ssI.js +0 -155
  1047. package/dist/showcase/assets/installation-Dg3FdGJ1.js +0 -134
  1048. package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +0 -36
  1049. package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +0 -36
  1050. package/dist/showcase/assets/invoice-mini-BISFvM7J.js +0 -14
  1051. package/dist/showcase/assets/invoice-table-DcyVZTvl.js +0 -30
  1052. package/dist/showcase/assets/isSameDay-av07hGac.js +0 -1
  1053. package/dist/showcase/assets/isToday-GY5FlPL9.js +0 -1
  1054. package/dist/showcase/assets/italic-Du0n76Xk.js +0 -1
  1055. package/dist/showcase/assets/item-D8Lp4R-T.js +0 -139
  1056. package/dist/showcase/assets/item-DTsZnSJG.js +0 -1
  1057. package/dist/showcase/assets/item-Di7HZF5G.js +0 -1
  1058. package/dist/showcase/assets/kanban-Dcminjsa.js +0 -188
  1059. package/dist/showcase/assets/key-round-BBue3xKx.js +0 -1
  1060. package/dist/showcase/assets/label-dkUEHYaz.js +0 -1
  1061. package/dist/showcase/assets/languages-XxP8Uu82.js +0 -1
  1062. package/dist/showcase/assets/layers-Bi_-RuHS.js +0 -1
  1063. package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +0 -608
  1064. package/dist/showcase/assets/layout-auth-DffIslnp.js +0 -790
  1065. package/dist/showcase/assets/layout-containers-BuSg6L6o.js +0 -101
  1066. package/dist/showcase/assets/layout-header-DAxSUI18.js +0 -203
  1067. package/dist/showcase/assets/layout-page-CVgVJHf1.js +0 -314
  1068. package/dist/showcase/assets/layout-primitives-q8NXbEld.js +0 -34
  1069. package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +0 -224
  1070. package/dist/showcase/assets/layout-users-DG5u517t.js +0 -117
  1071. package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +0 -191
  1072. package/dist/showcase/assets/lib-CaQvPpSJ.js +0 -1
  1073. package/dist/showcase/assets/list-checks-Dhr60VvL.js +0 -1
  1074. package/dist/showcase/assets/lock-CYVbyBpM.js +0 -1
  1075. package/dist/showcase/assets/lock-keyhole-TUVID45I.js +0 -1
  1076. package/dist/showcase/assets/mail-DfkwmVKE.js +0 -1
  1077. package/dist/showcase/assets/mail-check-CnBhgH_h.js +0 -1
  1078. package/dist/showcase/assets/map-Ck14_o-F.js +0 -124
  1079. package/dist/showcase/assets/map-pin-Di7TUhai.js +0 -1
  1080. package/dist/showcase/assets/media-library-CzM_to29.js +0 -699
  1081. package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +0 -1
  1082. package/dist/showcase/assets/mentions-CdaPXOLl.js +0 -138
  1083. package/dist/showcase/assets/menus-DuqcLdg1.js +0 -171
  1084. package/dist/showcase/assets/message-square-DuW3PrFI.js +0 -1
  1085. package/dist/showcase/assets/metadata-list-CCRGSPaS.js +0 -286
  1086. package/dist/showcase/assets/metadata-list-Drvz5mwy.js +0 -1
  1087. package/dist/showcase/assets/metric-BSaXa3Z_.js +0 -1
  1088. package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +0 -1
  1089. package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +0 -1
  1090. package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +0 -1
  1091. package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +0 -44
  1092. package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +0 -50
  1093. package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +0 -76
  1094. package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +0 -27
  1095. package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +0 -17
  1096. package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +0 -31
  1097. package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +0 -42
  1098. package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +0 -192
  1099. package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +0 -54
  1100. package/dist/showcase/assets/minus-BaXg6nPb.js +0 -1
  1101. package/dist/showcase/assets/money-display-HegN6NVU.js +0 -1
  1102. package/dist/showcase/assets/month-year-picker-DGSalGea.js +0 -1
  1103. package/dist/showcase/assets/navigation-B9kcgNmJ.js +0 -90
  1104. package/dist/showcase/assets/navigation-D4OJbw4T.js +0 -231
  1105. package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +0 -43
  1106. package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +0 -119
  1107. package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +0 -1
  1108. package/dist/showcase/assets/overlays-BHf9SZOh.js +0 -159
  1109. package/dist/showcase/assets/overlays-DziL3nVU.js +0 -408
  1110. package/dist/showcase/assets/overview-Cc69up8i.js +0 -184
  1111. package/dist/showcase/assets/package-Bc-NuFnd.js +0 -1
  1112. package/dist/showcase/assets/package-check-5LQwCfGh.js +0 -1
  1113. package/dist/showcase/assets/page-B2o5HSfY.js +0 -1
  1114. package/dist/showcase/assets/page-action-button-CfS6vsyC.js +0 -1
  1115. package/dist/showcase/assets/page-header-W6quU5pO.js +0 -1
  1116. package/dist/showcase/assets/pagination-Bfs7Zszm.js +0 -1
  1117. package/dist/showcase/assets/pagination-DHs104ji.js +0 -42
  1118. package/dist/showcase/assets/paperclip-CXeiMywc.js +0 -1
  1119. package/dist/showcase/assets/password-input-C61t743N.js +0 -1
  1120. package/dist/showcase/assets/pencil-C1TXsTfP.js +0 -1
  1121. package/dist/showcase/assets/phone-Bh-68R_E.js +0 -1
  1122. package/dist/showcase/assets/plus-CKBaO4jG.js +0 -1
  1123. package/dist/showcase/assets/popover-C_7qLizt.js +0 -1
  1124. package/dist/showcase/assets/popover-hgtHqd0h.js +0 -1
  1125. package/dist/showcase/assets/popover-menu-DmYSBsji.js +0 -1
  1126. package/dist/showcase/assets/products-DSvcQz-Q.js +0 -423
  1127. package/dist/showcase/assets/progress-Chxeo8g4.js +0 -18
  1128. package/dist/showcase/assets/progress-fYPoCyf-.js +0 -1
  1129. package/dist/showcase/assets/props-table-izArO1Pv.js +0 -1
  1130. package/dist/showcase/assets/props.generated-cO7HmIpY.json +0 -41578
  1131. package/dist/showcase/assets/quote-wvfNu9t7.js +0 -1
  1132. package/dist/showcase/assets/receipt-BlXBX4ZJ.js +0 -1
  1133. package/dist/showcase/assets/receipt-text-stSsUTV5.js +0 -1
  1134. package/dist/showcase/assets/refinement-guide-Bri81J9N.js +0 -189
  1135. package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +0 -1
  1136. package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +0 -1
  1137. package/dist/showcase/assets/resource-B727CTVi.js +0 -139
  1138. package/dist/showcase/assets/resource-DytT_quB.js +0 -1
  1139. package/dist/showcase/assets/resource-selector-card-wNuW382N.js +0 -43
  1140. package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +0 -143
  1141. package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +0 -124
  1142. package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +0 -1
  1143. package/dist/showcase/assets/route-D2owHMka.js +0 -1
  1144. package/dist/showcase/assets/save-DjC_iy0t.js +0 -1
  1145. package/dist/showcase/assets/schema-form-CQtLwGC1.js +0 -327
  1146. package/dist/showcase/assets/scroll-area-BQlHFfkG.js +0 -32
  1147. package/dist/showcase/assets/scroll-area-D3Rrt85s.js +0 -1
  1148. package/dist/showcase/assets/section-DYfGx1Q5.js +0 -1
  1149. package/dist/showcase/assets/select-BCJGhRpc.js +0 -1
  1150. package/dist/showcase/assets/select-Cf5EigqA.js +0 -1
  1151. package/dist/showcase/assets/send-86Vr11Ys.js +0 -1
  1152. package/dist/showcase/assets/separator-BHjNVb5O.js +0 -1
  1153. package/dist/showcase/assets/separator-BejjbTbO.js +0 -28
  1154. package/dist/showcase/assets/settings-2-DNNVOsjP.js +0 -1
  1155. package/dist/showcase/assets/settings-Bsi5BLx5.js +0 -1
  1156. package/dist/showcase/assets/sheet-BazhMvfb.js +0 -1
  1157. package/dist/showcase/assets/shield-alert-D-Jbocfj.js +0 -1
  1158. package/dist/showcase/assets/shield-check-D9eDVcJ1.js +0 -1
  1159. package/dist/showcase/assets/shield-xI2P9G5d.js +0 -1
  1160. package/dist/showcase/assets/shopping-bag-DOGs3sez.js +0 -1
  1161. package/dist/showcase/assets/showcase-s-5CuLAJ.js +0 -132
  1162. package/dist/showcase/assets/sidebar-Rz44gw_a.js +0 -1
  1163. package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +0 -1
  1164. package/dist/showcase/assets/skeleton-CY8ieqD-.js +0 -1
  1165. package/dist/showcase/assets/skeleton-CgoH6CPT.js +0 -29
  1166. package/dist/showcase/assets/slider-okW2bgkG.js +0 -1
  1167. package/dist/showcase/assets/smart-card-CVwEPwfI.js +0 -1
  1168. package/dist/showcase/assets/sonner-CixCpxj2.js +0 -22
  1169. package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +0 -5
  1170. package/dist/showcase/assets/sparkles-DDEVdtmy.js +0 -1
  1171. package/dist/showcase/assets/spinner-BVGPoAEv.js +0 -49
  1172. package/dist/showcase/assets/spinner-FURXSp1Q.js +0 -1
  1173. package/dist/showcase/assets/spinner-u6TwJ3Ii.js +0 -30
  1174. package/dist/showcase/assets/square-pen-DVXVT0cQ.js +0 -1
  1175. package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +0 -1
  1176. package/dist/showcase/assets/star-B3ZPfxuz.js +0 -1
  1177. package/dist/showcase/assets/startOfDay-LwMBRUSU.js +0 -1
  1178. package/dist/showcase/assets/styles-UIKkojWJ.js +0 -1
  1179. package/dist/showcase/assets/suggestions-DbrzKjbi.js +0 -126
  1180. package/dist/showcase/assets/switch-CAw84QpS.js +0 -1
  1181. package/dist/showcase/assets/switch-Cjt2MCgr.js +0 -1
  1182. package/dist/showcase/assets/sync-DWbqfpBH.js +0 -124
  1183. package/dist/showcase/assets/table-Bx5lo5FP.js +0 -686
  1184. package/dist/showcase/assets/table-C2RQulDb.js +0 -1
  1185. package/dist/showcase/assets/table-actions-Clo3WEfM.js +0 -1
  1186. package/dist/showcase/assets/tabs-DRtlcg6b.js +0 -19
  1187. package/dist/showcase/assets/tabs-wMPtvuT5.js +0 -1
  1188. package/dist/showcase/assets/tags-input-D5FpWOWF.js +0 -1
  1189. package/dist/showcase/assets/text-button-Cwh6D6qG.js +0 -1
  1190. package/dist/showcase/assets/text-link-DI1uXdGl.js +0 -1
  1191. package/dist/showcase/assets/textarea-CGbt4gBZ.js +0 -1
  1192. package/dist/showcase/assets/textarea-JPgPLhyk.js +0 -1
  1193. package/dist/showcase/assets/timelines-CkHN08n6.js +0 -200
  1194. package/dist/showcase/assets/toggle-group-BpXkR9uD.js +0 -1
  1195. package/dist/showcase/assets/toggles-DK9iCbki.js +0 -71
  1196. package/dist/showcase/assets/toggles-group-DwzRj0f7.js +0 -32
  1197. package/dist/showcase/assets/tooltip-PtP1suag.js +0 -31
  1198. package/dist/showcase/assets/trash-2-BE4XUI2g.js +0 -1
  1199. package/dist/showcase/assets/trending-up-ByxOf-nR.js +0 -1
  1200. package/dist/showcase/assets/truck-RTOdcRV0.js +0 -1
  1201. package/dist/showcase/assets/typography-BKLgHDxU.js +0 -223
  1202. package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +0 -28
  1203. package/dist/showcase/assets/ui-card-BOdHnZwv.js +0 -30
  1204. package/dist/showcase/assets/ui-table-BW4FCClv.js +0 -42
  1205. package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +0 -138
  1206. package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +0 -1
  1207. package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +0 -1
  1208. package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +0 -1
  1209. package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +0 -1
  1210. package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +0 -1
  1211. package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +0 -1
  1212. package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +0 -1
  1213. package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +0 -1
  1214. package/dist/showcase/assets/useRender-Ogz5zjeJ.js +0 -1
  1215. package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +0 -1
  1216. package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +0 -1
  1217. package/dist/showcase/assets/user-plus-CLj8AZe1.js +0 -1
  1218. package/dist/showcase/assets/user-ymdT26JK.js +0 -1
  1219. package/dist/showcase/assets/users-BGba2Xwv.js +0 -1
  1220. package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +0 -37
  1221. package/dist/showcase/assets/video-BcKa36-p.js +0 -1
  1222. package/dist/showcase/assets/wrench-Cj2hRrih.js +0 -1
  1223. package/dist/showcase/assets/x-iCqjAC2D.js +0 -1
  1224. package/dist/showcase/assets/zap-H4bc_OhS.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-D9tU_83-.js","names":[],"sources":["../../src/components/ui/combobox.tsx","../../src/components/base/combobox/combobox.strings.ts","../../src/components/base/combobox/constants.ts","../../src/components/base/combobox/components/loading-more.tsx","../../src/components/base/combobox/components/status-content.tsx","../../src/components/base/combobox/components/combobox-dropdown.tsx","../../src/components/base/combobox/components/error-message.tsx","../../src/components/base/combobox/components/highlighted-text.tsx","../../src/components/base/combobox/hooks/use-debounced-search.ts","../../src/components/base/combobox/hooks/use-grouped-items.ts","../../src/components/base/combobox/hooks/use-load-more.ts","../../src/components/base/combobox/hooks/use-enhanced-combobox-core.tsx","../../src/components/base/combobox/enhanced-combobox.tsx","../../src/components/base/combobox/async-resource-combobox.tsx"],"sourcesContent":["import { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { CheckIcon, ChevronDownIcon, XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst Combobox = ComboboxPrimitive.Root;\n\nfunction ComboboxInput({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Input\n\t\t\tdata-slot=\"combobox-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-10 w-full min-w-0 rounded-md border bg-background px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Trigger.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Trigger\n\t\t\tdata-slot=\"combobox-trigger\"\n\t\t\tclassName={cn(\n\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground flex h-10 w-full items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\t'[&>span]:line-clamp-1',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.Icon className=\"flex\">\n\t\t\t\t<ChevronDownIcon className=\"size-4 opacity-50\" />\n\t\t\t</ComboboxPrimitive.Icon>\n\t\t</ComboboxPrimitive.Trigger>\n\t);\n}\n\nfunction ComboboxValue({\n\tplaceholder,\n\t...props\n}: ComboboxPrimitive.Value.Props & { placeholder?: React.ReactNode }) {\n\treturn (\n\t\t<ComboboxPrimitive.Value\n\t\t\tdata-slot=\"combobox-value\"\n\t\t\tplaceholder={\n\t\t\t\t!!placeholder && <span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxClear({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Clear.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Clear\n\t\t\tdata-slot=\"combobox-clear\"\n\t\t\tclassName={cn(\n\t\t\t\t'absolute right-8 top-1/2 -translate-y-1/2 rounded-sm opacity-50 ring-offset-background transition-opacity',\n\t\t\t\t'hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'disabled:pointer-events-none',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<XIcon className=\"size-4\" />\n\t\t</ComboboxPrimitive.Clear>\n\t);\n}\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n\nconst inputSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'h-8 text-xs pl-2 pr-8',\n\tmd: 'h-10 text-sm pl-3 pr-10',\n\tlg: 'h-12 text-base pl-4 pr-12',\n};\n\nconst inputSizeWithClearClasses: Record<ComboboxSize, string> = {\n\tsm: 'pr-14',\n\tmd: 'pr-16',\n\tlg: 'pr-20',\n};\n\nconst iconContainerSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'right-1',\n\tmd: 'right-2',\n\tlg: 'right-3',\n};\n\nconst iconSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-3',\n\tmd: 'size-4',\n\tlg: 'size-5',\n};\n\ntype ComboboxInputTriggerProps = Omit<ComboboxPrimitive.Input.Props, 'size'> & {\n\tshowClear?: boolean;\n\tsize?: ComboboxSize;\n\terror?: boolean;\n};\n\nfunction ComboboxInputTrigger({\n\tclassName,\n\tshowClear = false,\n\tsize = 'md',\n\terror,\n\t...props\n}: ComboboxInputTriggerProps) {\n\treturn (\n\t\t<div className=\"relative\">\n\t\t\t<ComboboxPrimitive.Input\n\t\t\t\tdata-slot=\"combobox-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-md border bg-background shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\t\tinputSizeClasses[size],\n\t\t\t\t\tshowClear && inputSizeWithClearClasses[size],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute top-1/2 -translate-y-1/2 flex items-center gap-1 text-muted-foreground',\n\t\t\t\t\ticonContainerSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!showClear && (\n <ComboboxPrimitive.Clear\n\t\t\t\t\t\tdata-slot=\"combobox-clear\"\n\t\t\t\t\t\tclassName=\"rounded-sm p-1 opacity-50 hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon className={iconSizeClasses[size]} />\n\t\t\t\t\t</ComboboxPrimitive.Clear>\n )}\n\t\t\t\t<ComboboxPrimitive.Trigger className=\"rounded-sm p-1 hover:bg-accent focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\">\n\t\t\t\t\t<ChevronDownIcon className={iconSizeClasses[size]} />\n\t\t\t\t</ComboboxPrimitive.Trigger>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// Portal\nconst ComboboxPortal = ComboboxPrimitive.Portal;\n\n// Positioner\nfunction ComboboxPositioner({\n\tclassName,\n\tsideOffset = 4,\n\t...props\n}: ComboboxPrimitive.Positioner.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Positioner\n\t\t\tdata-slot=\"combobox-positioner\"\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={cn('z-50 outline-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Popup (content)\nfunction ComboboxPopup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Popup.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Popup\n\t\t\tdata-slot=\"combobox-popup\"\n\t\t\tclassName={cn(\n\t\t\t\t'w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]',\n\t\t\t\t'overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md',\n\t\t\t\t'origin-[var(--transform-origin)]',\n\t\t\t\t'data-[starting-style]:opacity-0 data-[starting-style]:scale-95',\n\t\t\t\t'data-[ending-style]:opacity-0 data-[ending-style]:scale-95',\n\t\t\t\t'transition-[opacity,transform] duration-150',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// List\nfunction ComboboxList({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.List.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.List\n\t\t\tdata-slot=\"combobox-list\"\n\t\t\tclassName={cn(\n\t\t\t\t'max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-1',\n\t\t\t\t'outline-none empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Item\n//\n// Layout: `[content][indicator]` with the selection check pinned to the\n// right (`justify-between`). Consumers render leading icons naturally inside\n// `renderItem` — the `gap` between icon and label is set by the consumer.\nconst itemSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'py-1 px-2 text-xs gap-2',\n\tmd: 'py-1.5 px-2.5 text-sm gap-2',\n\tlg: 'py-2 px-3 text-base gap-2.5',\n};\n\nconst itemIndicatorSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-3',\n\tmd: 'size-4',\n\tlg: 'size-5',\n};\n\nfunction ComboboxItem({\n\tclassName,\n\tchildren,\n\tsize = 'md',\n\t...props\n}: ComboboxPrimitive.Item.Props & { size?: ComboboxSize }) {\n\treturn (\n\t\t<ComboboxPrimitive.Item\n\t\t\tdata-slot=\"combobox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex w-full cursor-default select-none items-center justify-between rounded-sm outline-none',\n\t\t\t\t'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n\t\t\t\t'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n\t\t\t\titemSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"flex min-w-0 flex-1 items-center gap-2 truncate\">\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex shrink-0 items-center justify-center text-muted-foreground',\n\t\t\t\t\titemIndicatorSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<CheckIcon className={itemIndicatorSizeClasses[size]} />\n\t\t\t</ComboboxPrimitive.ItemIndicator>\n\t\t</ComboboxPrimitive.Item>\n\t);\n}\n\n// Item Indicator (standalone)\nfunction ComboboxItemIndicator({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.ItemIndicator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\tdata-slot=\"combobox-item-indicator\"\n\t\t\tclassName={cn(className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <CheckIcon className=\"size-4\" />}\n\t\t</ComboboxPrimitive.ItemIndicator>\n\t);\n}\n\n// Empty\nfunction ComboboxEmpty({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Empty.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Empty\n\t\t\tdata-slot=\"combobox-empty\"\n\t\t\tclassName={cn(\n\t\t\t\t'py-6 text-center text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</ComboboxPrimitive.Empty>\n\t);\n}\n\n// Status (for async loading states)\nfunction ComboboxStatus({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Status.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Status\n\t\t\tdata-slot=\"combobox-status\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group\nfunction ComboboxGroup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Group.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Group\n\t\t\tdata-slot=\"combobox-group\"\n\t\t\tclassName={cn('overflow-hidden p-1', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group Label\nfunction ComboboxGroupLabel({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.GroupLabel\n\t\t\tdata-slot=\"combobox-group-label\"\n\t\t\tclassName={cn('px-2 py-1.5 text-xs font-medium text-muted-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Collection (for rendering items)\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\n// Separator\nfunction ComboboxSeparator({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Separator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Separator\n\t\t\tdata-slot=\"combobox-separator\"\n\t\t\tclassName={cn('-mx-1 my-1 h-px bg-muted', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chips container (for multiple selection)\nconst chipsSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'min-h-8 gap-1 px-2 py-1 text-xs',\n\tmd: 'min-h-10 gap-1.5 px-3 py-2 text-sm',\n\tlg: 'min-h-12 gap-2 px-4 py-2.5 text-base',\n};\n\nfunction ComboboxChips({\n\tclassName,\n\tsize = 'md',\n\terror,\n\t...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & {\n\tsize?: ComboboxSize;\n\terror?: boolean;\n}) {\n\treturn (\n\t\t<ComboboxPrimitive.Chips\n\t\t\tdata-slot=\"combobox-chips\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-wrap items-center rounded-md border border-input bg-background ring-offset-background shadow-xs transition-[color,box-shadow] outline-none',\n\t\t\t\t'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15',\n\t\t\t\tchipsSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-invalid={error || undefined}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chip\nfunction ComboboxChip({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Chip.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Chip\n\t\t\tdata-slot=\"combobox-chip\"\n\t\t\tclassName={cn(\n\t\t\t\t'inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground',\n\t\t\t\t'data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground',\n\t\t\t\t'focus-within:bg-primary focus-within:text-primary-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.ChipRemove className=\"rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\">\n\t\t\t\t<XIcon className=\"size-3\" />\n\t\t\t</ComboboxPrimitive.ChipRemove>\n\t\t</ComboboxPrimitive.Chip>\n\t);\n}\n\n// Chips Input\nfunction ComboboxChipsInput({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Input\n\t\t\tdata-slot=\"combobox-chips-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'min-w-[80px] flex-1 bg-transparent outline-none placeholder:text-muted-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Backdrop (for modal)\nfunction ComboboxBackdrop({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Backdrop.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Backdrop\n\t\t\tdata-slot=\"combobox-backdrop\"\n\t\t\tclassName={cn(\n\t\t\t\t'fixed inset-0 z-50 bg-black/80',\n\t\t\t\t'data-[starting-style]:opacity-0 data-[ending-style]:opacity-0',\n\t\t\t\t'transition-opacity duration-150',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Arrow\nfunction ComboboxArrow({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Arrow.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Arrow\n\t\t\tdata-slot=\"combobox-arrow\"\n\t\t\tclassName={cn('fill-popover', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// useFilter hook re-export\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\nexport {\n\tCombobox,\n\tComboboxInput,\n\tComboboxInputTrigger,\n\tComboboxTrigger,\n\tComboboxValue,\n\tComboboxClear,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxSeparator,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n};\n","/**\n * Default user-facing strings for `<EnhancedCombobox>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <EnhancedCombobox strings={{ noResults: t('search.empty') }} … />\n *\n * Templates use `{placeholder}` tokens — the component substitutes them at\n * render time. Function-valued strings would also work; we keep templates\n * here for the constants file.\n */\nimport type { ComboboxStrings } from './types';\n\nexport const defaultComboboxStrings: ComboboxStrings = {\n\tplaceholder: 'Search...',\n\tclear: 'Clear selection',\n\ttoggle: 'Open options',\n\tsearching: 'Loading...',\n\tnoResults: 'No results found.',\n\ttypeToSearch: 'Type at least {min} characters to search...',\n\ttypeMore: 'Type {remaining} more character{s} to search...',\n\tcreateNew: 'Create {value}',\n\tloadingMore: 'Loading...',\n\tapply: 'Apply',\n\tcancel: 'Cancel',\n};\n\nexport type { ComboboxStrings };\n","/**\n * Constants and default values for the Enhanced Combobox component.\n *\n * Default strings live in `./combobox.strings.ts` per rule 19. The legacy\n * `DEFAULT_STRINGS` alias is re-exported below for any external consumer\n * still using the old name; new code should import `defaultComboboxStrings`\n * from `./combobox.strings`.\n */\n\nexport { defaultComboboxStrings, defaultComboboxStrings as DEFAULT_STRINGS } from './combobox.strings';\n\n// ============================================================================\n// Default Values\n// ============================================================================\n\nexport const DEFAULT_MIN_SEARCH_LENGTH = 3;\nexport const DEFAULT_DEBOUNCE_MS = 300;\nexport const DEFAULT_SIZE = 'default';\nexport const LOAD_MORE_THRESHOLD = 0.8;\nexport const LOAD_MORE_DEBOUNCE_MS = 100;\nexport const LOAD_MORE_COOLDOWN_MS = 500;\n\n// ============================================================================\n// Symbols\n// ============================================================================\n\nexport const CREATE_OPTION_SYMBOL = Symbol('enhanced-combobox-create-option');\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\nexport function isCreateOption<T>(item: T): item is T & { [CREATE_OPTION_SYMBOL]: string } {\n\treturn (\n\t\ttypeof item === 'object' &&\n\t\titem !== null &&\n\t\tCREATE_OPTION_SYMBOL in (item as object)\n\t);\n}\n\nexport function getCreateOptionValue<T>(item: T): string {\n\tif (!isCreateOption(item)) {\n\t\tthrow new Error('Item is not a create option');\n\t}\n\treturn (item as { [CREATE_OPTION_SYMBOL]: string })[CREATE_OPTION_SYMBOL];\n}\n\nexport function createCreateOption<T>(inputValue: string): T {\n\treturn { [CREATE_OPTION_SYMBOL]: inputValue } as unknown as T;\n}\n","/**\n * LoadingMore Component\n */\n\nimport { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface LoadingMoreProps {\n\tisLoading: boolean;\n\ttext: string;\n\tclassName?: string;\n}\n\nexport function LoadingMore({\n\tisLoading,\n\ttext,\n\tclassName,\n}: LoadingMoreProps): React.ReactElement | null {\n\tif (!isLoading) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('loading-more--component', \n\t\t\t\t'flex items-center justify-center gap-space-sm px-control py-space-xs text-xs text-muted-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<Loader2 className=\"size-icon-sm animate-spin\" aria-hidden=\"true\" />\n\t\t\t<span>{text}</span>\n\t\t</div>\n\t);\n}\n\nLoadingMore.displayName = 'LoadingMore';\n","/**\n * StatusContent Component\n */\n\nimport { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport type { ComboboxStrings } from '../types';\n\nexport interface StatusContentProps {\n\tisLoading?: boolean;\n\tsearchValue: string;\n\tminSearchLength: number;\n\titemCount: number;\n\tstrings: ComboboxStrings;\n}\n\nexport function StatusContent({\n\tisLoading,\n\tsearchValue,\n\tminSearchLength,\n\titemCount,\n\tstrings,\n}: StatusContentProps): React.ReactNode {\n\tconst trimmed = searchValue.trim();\n\n\tif (isLoading) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Loader2 className=\"size-icon-sm animate-spin\" />\n\t\t\t\t{strings.searching}\n\t\t\t</>\n\t\t);\n\t}\n\n\tif (trimmed === '') {\n\t\tif (strings.typeToSearch.includes('{min}')) {\n\t\t\treturn strings.typeToSearch.replace('{min}', String(minSearchLength));\n\t\t}\n\t\treturn strings.typeToSearch;\n\t}\n\n\tif (trimmed.length < minSearchLength) {\n\t\tconst remaining = minSearchLength - trimmed.length;\n\t\tif (strings.typeMore.includes('{remaining}') || strings.typeMore.includes('{s}')) {\n\t\t\treturn strings.typeMore\n\t\t\t\t.replace('{remaining}', String(remaining))\n\t\t\t\t.replace('{s}', remaining !== 1 ? 's' : '');\n\t\t}\n\t\treturn strings.typeMore;\n\t}\n\n\tif (itemCount === 0) {\n\t\treturn null;\n\t}\n\n\treturn null;\n}\n\nStatusContent.displayName = 'StatusContent';\n","/**\n * Shared ComboboxDropdown Component\n *\n * Renders the dropdown content for both single and multiple selection variants.\n * Extracts shared rendering logic to reduce duplication.\n */\n\nimport * as React from 'react';\n\nimport {\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxEmpty,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n} from '@/components/ui/combobox';\nimport { Button } from '@/components/base/buttons';\nimport { ScrollArea } from '@/components/base/display/scroll-area';\n\nimport { DEFAULT_SIZE } from '../constants';\nimport type { ComboboxStrings, ComboboxSize } from '../types';\nimport { LoadingMore } from './loading-more';\nimport { StatusContent } from './status-content';\n\nconst primitiveSizeByComboboxSize: Record<ComboboxSize, 'sm' | 'md'> = {\n\tsmall: 'sm',\n\tdefault: 'md',\n};\n\nconst itemClassByComboboxSize: Record<ComboboxSize, string> = {\n\tsmall: 'min-h-control-sm gap-space-lg rounded-md px-row-x py-row-y text-xs leading-tight [&>span:first-child]:gap-space-lg [&>span:first-child]:text-xs',\n\tdefault: 'min-h-control gap-space-lg rounded-md px-row-x py-row-y text-sm leading-tight [&>span:first-child]:gap-space-lg [&>span:first-child]:text-sm',\n};\n\nconst groupLabelClassName =\n\t'px-row-x py-row-y text-xs font-medium uppercase tracking-wide text-muted-foreground';\n\nexport interface ComboboxDropdownProps<T> {\n\t// Display state\n\tisLoading: boolean;\n\tshowStatus: boolean;\n\tshowEmpty: boolean;\n\n\t// Search\n\tsearchValue: string;\n\tminSearchLength: number;\n\n\t// Items\n\titems: T[];\n\tgroupedItems: Map<string, T[]> | null;\n\tcreateOptionItem: T | null;\n\n\t// Rendering\n\trenderItemContent: (item: T) => React.ReactNode;\n\tgetItemReactKey: (item: T) => string;\n\tgetItemDisabled?: (item: T) => boolean;\n\trenderGroupLabel?: (group: string) => React.ReactNode;\n\n\t// Load more\n\tisLoadingMore?: boolean;\n\n\t// Strings\n\tstrings: ComboboxStrings;\n\n\t// Size\n\tsize?: ComboboxSize;\n\n\t// Portal\n\tportalContainer?: React.RefObject<HTMLElement | null>;\n\n\t// Refs\n\tlistRef: React.RefObject<HTMLDivElement | null>;\n\n\t// Multiple selection anchor\n\tanchor?: React.RefObject<HTMLElement | null>;\n\n\t/** Optional apply / cancel footer for the apply-button workflow. */\n\tapplyFooter?: {\n\t\tapplyLabel: string;\n\t\tcancelLabel: string;\n\t\tonApply: () => void;\n\t\tonCancel: () => void;\n\t};\n}\n\nexport function ComboboxDropdown<T>({\n\tisLoading,\n\tshowStatus,\n\tshowEmpty,\n\tsearchValue,\n\tminSearchLength,\n\titems,\n\tgroupedItems,\n\tcreateOptionItem,\n\trenderItemContent,\n\tgetItemReactKey,\n\tgetItemDisabled,\n\trenderGroupLabel,\n\tisLoadingMore,\n\tstrings,\n\tsize = DEFAULT_SIZE,\n\tportalContainer,\n\tlistRef,\n\tanchor,\n\tapplyFooter,\n}: ComboboxDropdownProps<T>): React.ReactElement {\n\tconst positionerClassName = portalContainer != null ? 'z-[100]' : undefined;\n\tconst primitiveSize = primitiveSizeByComboboxSize[size];\n\n\tconst content = (\n\t\t<ComboboxPositioner\n\t\t\tanchor={anchor}\n\t\t\tclassName={positionerClassName}\n\t\t>\n\t\t\t<ComboboxPopup\n\t\t\t\taria-busy={isLoading || undefined}\n\t\t\t\tclassName=\"combobox-dropdown--popup rounded-radius border-border/70 shadow-sm\"\n\t\t\t>\n\t\t\t\t{/* Status message */}\n\t\t\t\t{!!showStatus && (\n\t\t\t\t\t<ComboboxStatus className=\"gap-space-sm px-control py-space-xs text-xs text-muted-foreground\">\n\t\t\t\t\t\t<StatusContent\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\t\t\titemCount={items.length}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ComboboxStatus>\n\t\t\t\t)}\n\n\t\t\t\t{/* Empty state */}\n\t\t\t\t{!!showEmpty && (\n\t\t\t\t\t<ComboboxEmpty className=\"px-control py-space-xs text-center text-xs text-muted-foreground\">\n\t\t\t\t\t\t{strings.noResults}\n\t\t\t\t\t</ComboboxEmpty>\n\t\t\t\t)}\n\n\t\t\t\t{/* Items list */}\n\t\t\t\t<ScrollArea\n\t\t\t\t\tviewportRef={listRef}\n\t\t\t\t\tclassName=\"max-h-[min(20rem,var(--available-height))]\"\n\t\t\t\t>\n\t\t\t\t\t<ComboboxList className=\"combobox-dropdown--list max-h-none overflow-visible p-space-sm\">\n\t\t\t\t\t\t{groupedItems ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{Array.from(groupedItems.entries()).map(([group, groupItems]) => {\n\t\t\t\t\t\t\t\t\tconst groupLabel =\n\t\t\t\t\t\t\t\t\t\ttypeof renderGroupLabel === 'function'\n\t\t\t\t\t\t\t\t\t\t\t? renderGroupLabel(group)\n\t\t\t\t\t\t\t\t\t\t\t: group;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ComboboxGroup className=\"combobox-dropdown--group p-0\" key={group} items={groupItems}>\n\t\t\t\t\t\t\t\t\t\t\t<ComboboxGroupLabel className={groupLabelClassName}>{groupLabel}</ComboboxGroupLabel>\n\t\t\t\t\t\t\t\t\t\t\t<ComboboxCollection>\n\t\t\t\t\t\t\t\t\t\t\t\t{(item: T) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={item}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={getItemDisabled?.(item)}\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\t\t{renderItemContent(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ComboboxItem>\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</ComboboxCollection>\n\t\t\t\t\t\t\t\t\t\t</ComboboxGroup>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t{createOptionItem != null && (\n\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(createOptionItem)}\n\t\t\t\t\t\t\t\t\t\tvalue={createOptionItem}\n\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderItemContent(createOptionItem)}\n\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ComboboxCollection>\n\t\t\t\t\t\t\t\t{(item: T) => (\n\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(item)}\n\t\t\t\t\t\t\t\t\t\tvalue={item}\n\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t\tdisabled={getItemDisabled?.(item)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderItemContent(item)}\n\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ComboboxCollection>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ComboboxList>\n\t\t\t\t</ScrollArea>\n\n\t\t\t\t{/* Loading more indicator */}\n\t\t\t\t<LoadingMore\n\t\t\t\t\tisLoading={!!isLoadingMore}\n\t\t\t\t\ttext={strings.loadingMore}\n\t\t\t\t/>\n\n\t\t\t\t{/* Apply / cancel footer (multi-select with applyButton). */}\n\t\t\t\t{!!applyFooter && (\n\t\t\t\t\t<div className=\"flex items-center justify-end gap-space-md border-t border-border/60 px-control py-space-xs\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tapplyFooter.onCancel();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{applyFooter.cancelLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tapplyFooter.onApply();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{applyFooter.applyLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</ComboboxPopup>\n\t\t</ComboboxPositioner>\n\t);\n\n\tif (portalContainer) {\n\t\treturn <ComboboxPortal container={portalContainer}>{content}</ComboboxPortal>;\n\t}\n\n\treturn <ComboboxPortal>{content}</ComboboxPortal>;\n}\n\nComboboxDropdown.displayName = 'ComboboxDropdown';\n","/**\n * ErrorMessage Component\n */\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport type { ComboboxSize } from '../types';\n\nexport interface ErrorMessageProps {\n\terror?: string;\n\tsize: ComboboxSize;\n\tclassName?: string;\n}\n\nconst sizeClasses: Record<ComboboxSize, string> = {\n\tsmall: 'text-xs mt-space-sm',\n\tdefault: 'text-sm mt-space-md',\n};\n\nexport function ErrorMessage({\n\terror,\n\tsize,\n\tclassName,\n}: ErrorMessageProps): React.ReactElement | null {\n\tif (!error) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('error-message--component', 'text-destructive', sizeClasses[size], className)}\n\t\t\trole=\"alert\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t{error}\n\t\t</p>\n\t);\n}\n\nErrorMessage.displayName = 'ErrorMessage';\n","/**\n * HighlightedText Component\n */\n\nimport * as React from 'react';\n\nexport interface HighlightedTextProps {\n\ttext: string;\n\thighlight: string;\n\thighlightClassName?: string;\n}\n\nfunction escapeRegExp(str: string): string {\n\treturn str.replace(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&');\n}\n\nexport function HighlightedText({\n\ttext,\n\thighlight,\n\thighlightClassName = 'rounded-sm bg-warning/20 px-0.5 text-warning-foreground dark:bg-warning/25',\n}: HighlightedTextProps): React.ReactNode {\n\tif (!highlight.trim()) {\n\t\treturn text;\n\t}\n\n\tconst regex = new RegExp(`(${escapeRegExp(highlight)})`, 'gi');\n\tconst parts = text.split(regex);\n\tlet cursor = 0;\n\n\treturn (\n\t\t<>\n\t\t\t{parts.map((part, index) => {\n\t\t\t\tconst isMatch = index % 2 === 1;\n\t\t\t\tconst key = String(cursor);\n\t\t\t\tcursor += part.length;\n\n\t\t\t\tif (isMatch) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<mark key={key} className={highlightClassName}>\n\t\t\t\t\t\t\t{part}\n\t\t\t\t\t\t</mark>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn <span key={key}>{part}</span>;\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nHighlightedText.displayName = 'HighlightedText';\n","/**\n * Hook for debounced search functionality\n */\n\nimport { useEffect, useRef } from 'react';\nimport { DEFAULT_DEBOUNCE_MS, DEFAULT_MIN_SEARCH_LENGTH } from '../constants';\n\nexport interface UseDebouncedSearchOptions {\n\tsearchValue: string;\n\tonSearch: ((value: string) => void) | undefined;\n\tdebounceMs?: number;\n\tminSearchLength?: number;\n}\n\nexport function useDebouncedSearch({\n\tsearchValue,\n\tonSearch,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n}: UseDebouncedSearchOptions): void {\n\tconst timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n\t// Hold the latest onSearch in a ref so the debounce effect does NOT depend\n\t// on its identity. Consumers almost always pass an inline callback whose\n\t// reference changes every render; depending on it here re-ran the effect on\n\t// every render and — when onSearch triggered a state update — caused an\n\t// infinite fetch loop. The effect now only re-runs on real input changes.\n\tconst onSearchRef = useRef(onSearch);\n\tuseEffect(() => {\n\t\tonSearchRef.current = onSearch;\n\t}, [onSearch]);\n\n\tuseEffect(() => {\n\t\tif (!onSearchRef.current) return;\n\n\t\tif (timeoutRef.current) {\n\t\t\tclearTimeout(timeoutRef.current);\n\t\t}\n\n\t\tconst trimmed = searchValue.trim();\n\t\tif (trimmed.length >= minSearchLength) {\n\t\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\t\tonSearchRef.current?.(trimmed);\n\t\t\t}, debounceMs);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (timeoutRef.current) {\n\t\t\t\tclearTimeout(timeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [searchValue, debounceMs, minSearchLength]);\n}\n","/**\n * Hook for grouping items by category\n */\n\nimport { useMemo } from 'react';\n\nexport interface UseGroupedItemsOptions<T> {\n\titems: T[];\n\tgetItemGroup: ((item: T) => string) | undefined;\n}\n\nexport type GroupedItemsResult<T> = Map<string, T[]> | null;\n\nexport function useGroupedItems<T>({\n\titems,\n\tgetItemGroup,\n}: UseGroupedItemsOptions<T>): GroupedItemsResult<T> {\n\treturn useMemo(() => {\n\t\tif (!getItemGroup) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groups = new Map<string, T[]>();\n\n\t\tfor (const item of items) {\n\t\t\tconst groupKey = getItemGroup(item);\n\t\t\tconst existing = groups.get(groupKey);\n\n\t\t\tif (existing) {\n\t\t\t\texisting.push(item);\n\t\t\t} else {\n\t\t\t\tgroups.set(groupKey, [item]);\n\t\t\t}\n\t\t}\n\n\t\treturn groups;\n\t}, [items, getItemGroup]);\n}\n","/**\n * Hook for infinite scroll / load more functionality\n */\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport {\n\tLOAD_MORE_THRESHOLD,\n\tLOAD_MORE_DEBOUNCE_MS,\n\tLOAD_MORE_COOLDOWN_MS,\n} from '../constants';\n\nexport interface UseLoadMoreOptions {\n\thasMore: boolean | undefined;\n\tonLoadMore: (() => void) | undefined;\n\tisLoadingMore: boolean | undefined;\n}\n\nexport interface UseLoadMoreReturn {\n\thandleScroll: (event: Event) => void;\n}\n\nexport function useLoadMore({\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n}: UseLoadMoreOptions): UseLoadMoreReturn {\n\tconst isLoadingRef = useRef(false);\n\tconst debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n\tconst handleScroll = useCallback(\n\t\t(event: Event) => {\n\t\t\tif (!hasMore || !onLoadMore || isLoadingMore || isLoadingRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\tconst { scrollHeight, scrollTop, clientHeight } = target;\n\t\t\tconst scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n\n\t\t\tif (scrollPercentage >= LOAD_MORE_THRESHOLD) {\n\t\t\t\tif (debounceRef.current) {\n\t\t\t\t\tclearTimeout(debounceRef.current);\n\t\t\t\t}\n\n\t\t\t\tdebounceRef.current = setTimeout(() => {\n\t\t\t\t\tisLoadingRef.current = true;\n\t\t\t\t\tonLoadMore();\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tisLoadingRef.current = false;\n\t\t\t\t\t}, LOAD_MORE_COOLDOWN_MS);\n\t\t\t\t}, LOAD_MORE_DEBOUNCE_MS);\n\t\t\t}\n\t\t},\n\t\t[hasMore, onLoadMore, isLoadingMore]\n\t);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (debounceRef.current) {\n\t\t\t\tclearTimeout(debounceRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn { handleScroll };\n}\n","/**\n * Core hook for Enhanced Combobox components\n *\n * Extracts shared logic between single and multiple selection variants\n * to reduce duplication and ensure consistent behavior.\n */\n\nimport { PlusIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useMemo, useEffect, useCallback } from 'react';\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\n\nimport { HighlightedText } from '../components/highlighted-text';\nimport { defaultComboboxStrings } from '../combobox.strings';\nimport {\n\tDEFAULT_MIN_SEARCH_LENGTH,\n\tDEFAULT_DEBOUNCE_MS,\n\tisCreateOption,\n\tgetCreateOptionValue,\n\tcreateCreateOption,\n} from '../constants';\nimport type { ComboboxStrings, BaseComboboxProps } from '../types';\nimport { useDebouncedSearch } from './use-debounced-search';\nimport { useGroupedItems } from './use-grouped-items';\nimport { useLoadMore } from './use-load-more';\n\nimport { cn } from '@/lib/utils';\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface UseEnhancedComboboxCoreOptions<T> extends BaseComboboxProps<T> {\n\t/** Items that should always be included (selected items) */\n\tensuredItems?: T[];\n}\n\nexport interface UseEnhancedComboboxCoreReturn<T> {\n\t// Resolved values\n\tstrings: ComboboxStrings;\n\tgetKey: (item: T) => string;\n\ttrimmedSearch: string;\n\n\t// Refs\n\tlistRef: React.RefObject<HTMLDivElement | null>;\n\n\t// Items\n\tbaseItems: T[];\n\tallItems: T[];\n\tgroupedItems: Map<string, T[]> | null;\n\tcreateOptionItem: T | null;\n\n\t// Display state\n\tshowStatus: boolean;\n\tshowEmpty: boolean;\n\tshowCreateOption: boolean;\n\n\t// Handlers\n\trenderItemContent: (item: T) => React.ReactNode;\n\titemToStringLabel: (item: T) => string;\n\tgetItemReactKey: (item: T) => string;\n\n\t// Scroll handling\n\thandleScroll: (event: Event) => void;\n}\n\n// ============================================================================\n// Hook Implementation\n// ============================================================================\n\nfunction useComboboxStrings(custom?: StringsProp<ComboboxStrings>): ComboboxStrings {\n\treturn useStrings(defaultComboboxStrings, custom);\n}\n\nfunction hasExactMatch<T>(\n\titems: T[],\n\tsearchValue: string,\n\tgetItemLabel: (item: T) => string\n): boolean {\n\tconst normalizedSearch = searchValue.toLowerCase();\n\treturn items.some(\n\t\t(item) => getItemLabel(item).toLowerCase() === normalizedSearch\n\t);\n}\n\nexport function useEnhancedComboboxCore<T>({\n\t// Core props\n\titems,\n\tsearchValue,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\trenderItem,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t\t// Ensured items (selected items that should always be included)\n\tensuredItems = [],\n}: UseEnhancedComboboxCoreOptions<T>): UseEnhancedComboboxCoreReturn<T> {\n\t// -------------------------------------------------------------------------\n\t// Setup\n\t// -------------------------------------------------------------------------\n\n\tconst strings = useComboboxStrings(stringsProp);\n\tconst getKey = getItemKey ?? getItemLabel;\n\tconst listRef = useRef<HTMLDivElement | null>(null);\n\tconst trimmedSearch = searchValue.trim();\n\n\t// -------------------------------------------------------------------------\n\t// Hooks\n\t// -------------------------------------------------------------------------\n\n\tuseDebouncedSearch({\n\t\tsearchValue,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tminSearchLength,\n\t});\n\n\tconst { handleScroll } = useLoadMore({\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t});\n\n\t// Attach scroll listener\n\tuseEffect(() => {\n\t\tconst listEl = listRef.current;\n\t\tif (!listEl || !hasMore || !onLoadMore) return;\n\n\t\tlistEl.addEventListener('scroll', handleScroll);\n\t\treturn () => listEl.removeEventListener('scroll', handleScroll);\n\t}, [handleScroll, hasMore, onLoadMore]);\n\n\t// -------------------------------------------------------------------------\n\t// Computed Values\n\t// -------------------------------------------------------------------------\n\n\t// Merge ensured items with fetched items\n\tconst baseItems = useMemo(() => {\n\t\tif (ensuredItems.length === 0) return items;\n\n\t\tconst merged = [...ensuredItems];\n\t\titems.forEach((item) => {\n\t\t\tconst itemKey = getKey(item);\n\t\t\tif (!ensuredItems.some((ensured) => getKey(ensured) === itemKey)) {\n\t\t\t\tmerged.push(item);\n\t\t\t}\n\t\t});\n\t\treturn merged;\n\t}, [items, ensuredItems, getKey]);\n\n\t// Group items if grouping is enabled\n\tconst groupedItems = useGroupedItems({\n\t\titems: baseItems,\n\t\tgetItemGroup,\n\t});\n\n\t// Determine if create option should be shown\n\tconst showCreateOption = useMemo(() => {\n\t\tif (!creatable || !onCreate) return false;\n\t\tif (trimmedSearch.length < minSearchLength) return false;\n\t\treturn !hasExactMatch(baseItems, trimmedSearch, getItemLabel);\n\t}, [creatable, onCreate, trimmedSearch, minSearchLength, baseItems, getItemLabel]);\n\n\tconst createOptionItem = useMemo(() => {\n\t\tif (!showCreateOption) return null;\n\t\treturn createCreateOption<T>(trimmedSearch);\n\t}, [showCreateOption, trimmedSearch]);\n\n\t// Build final items array with create option\n\tconst allItems = useMemo(() => {\n\t\tif (createOptionItem) return [...baseItems, createOptionItem];\n\t\treturn baseItems;\n\t}, [baseItems, createOptionItem]);\n\n\t// Status display conditions\n\tconst showStatus = isLoading || trimmedSearch.length < minSearchLength;\n\tconst showEmpty =\n\t\t!isLoading &&\n\t\ttrimmedSearch.length >= minSearchLength &&\n\t\titems.length === 0 &&\n\t\t!showCreateOption;\n\n\t// -------------------------------------------------------------------------\n\t// Handlers\n\t// -------------------------------------------------------------------------\n\n\tconst renderItemContent = useCallback(\n\t\t(item: T): React.ReactNode => {\n\t\t\t// Handle create option\n\t\t\tif (isCreateOption(item)) {\n\t\t\t\tconst value = getCreateOptionValue(item);\n\t\t\t\treturn (\n\t\t\t\t\t<span className={cn('use-enhanced-combobox-core--component', 'flex items-center gap-space-sm text-xs')}>\n\t\t\t\t\t\t<PlusIcon className=\"size-icon-sm\" />\n\t\t\t\t\t\t{strings.createNew.includes('{value}') ? (\n\t\t\t\t\t\t\tstrings.createNew.replace('{value}', value)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"inline-flex items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<span>{strings.createNew}</span>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"text-xs\">{value}</Text>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Custom renderer takes precedence\n\t\t\tif (renderItem) {\n\t\t\t\treturn renderItem(item);\n\t\t\t}\n\n\t\t\t// Default rendering with optional highlighting\n\t\t\tconst label = getItemLabel(item);\n\t\t\tif (highlightMatch && trimmedSearch) {\n\t\t\t\treturn <HighlightedText text={label} highlight={trimmedSearch} />;\n\t\t\t}\n\t\t\treturn label;\n\t\t},\n\t\t[strings.createNew, renderItem, getItemLabel, highlightMatch, trimmedSearch]\n\t);\n\n\tconst itemToStringLabel = useCallback(\n\t\t(item: T): string => {\n\t\t\tif (isCreateOption(item)) {\n\t\t\t\treturn getCreateOptionValue(item);\n\t\t\t}\n\t\t\treturn getItemLabel(item);\n\t\t},\n\t\t[getItemLabel]\n\t);\n\n\tconst getItemReactKey = useCallback(\n\t\t(item: T): string => {\n\t\t\tif (isCreateOption(item)) return `__create__:${getCreateOptionValue(item)}`;\n\t\t\treturn String(getKey(item));\n\t\t},\n\t\t[getKey]\n\t);\n\n\treturn {\n\t\tstrings,\n\t\tgetKey,\n\t\ttrimmedSearch,\n\t\tlistRef,\n\t\tbaseItems,\n\t\tallItems,\n\t\tgroupedItems,\n\t\tcreateOptionItem,\n\t\tshowStatus,\n\t\tshowEmpty,\n\t\tshowCreateOption,\n\t\trenderItemContent,\n\t\titemToStringLabel,\n\t\tgetItemReactKey,\n\t\thandleScroll,\n\t};\n}\n","/**\n * Enhanced Combobox Components\n *\n * A feature-rich, API-driven combobox built on Base UI with shadcn styling.\n * Supports single and multiple selection, form integration, debounced search,\n * grouping, pagination, and more.\n *\n * This version uses shared hooks and components to eliminate duplication\n * between single and multiple selection variants.\n */\n\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect, useState } from 'react';\nimport { ChevronDownIcon, XIcon } from 'lucide-react';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\n\nimport {\n\tCombobox as BaseCombobox,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n} from '@/components/ui/combobox';\nimport { Button } from '@/components/base/buttons';\nimport { Input } from '@/components/base/forms/fields';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport { ComboboxDropdown } from './components/combobox-dropdown';\nimport { ErrorMessage } from './components/error-message';\nimport {\n\tformControlIconClasses,\n\tformControlMinHeightClasses,\n\tformControlPaddingClasses,\n} from '../forms/form-sizing';\nimport {\n\tDEFAULT_MIN_SEARCH_LENGTH,\n\tDEFAULT_SIZE,\n\tisCreateOption,\n\tgetCreateOptionValue,\n} from './constants';\n\nimport { useEnhancedComboboxCore } from './hooks/use-enhanced-combobox-core';\nimport type {\n\tEnhancedComboboxProps,\n\tEnhancedComboboxMultipleProps,\n\tComboboxSize,\n} from './types';\n\nconst formControlSizeToComboboxSize: Record<FormControlSize, ComboboxSize> = {\n\tsmall: 'small',\n\tdefault: 'default',\n};\n\nfunction resolveComboboxSize(\n\tsizeProp: ComboboxSize | undefined,\n\tdefaultControlSize: FormControlSize | undefined,\n): ComboboxSize {\n\treturn sizeProp ?? formControlSizeToComboboxSize[defaultControlSize ?? 'default'] ?? DEFAULT_SIZE;\n}\n\nconst comboboxSizeToFormControlSize: Record<ComboboxSize, FormControlSize> = {\n\tsmall: 'small',\n\tdefault: 'default',\n};\n\nconst inputEndPaddingBySize: Record<ComboboxSize, string> = {\n\tsmall: 'pe-control-actions-sm',\n\tdefault: 'pe-control-actions',\n};\n\nconst primitiveComboboxSizeBySize: Record<ComboboxSize, 'sm' | 'md'> = {\n\tsmall: 'sm',\n\tdefault: 'md',\n};\n\nfunction getComboboxFormSize(size: ComboboxSize): FormControlSize {\n\treturn comboboxSizeToFormControlSize[size];\n}\n\ninterface ComboboxInputFieldProps {\n\tplaceholder: string;\n\tclearLabel: string;\n\ttoggleLabel: string;\n\tsize: FormControlSize;\n\terror?: boolean;\n\trequired?: boolean;\n\tdisabled?: boolean;\n\tclearable?: boolean;\n\tclassName?: string;\n\tonBlur?: () => void;\n}\n\nfunction ComboboxInputField({\n\tplaceholder,\n\tclearLabel,\n\ttoggleLabel,\n\tsize,\n\terror,\n\trequired,\n\tdisabled,\n\tclearable = true,\n\tclassName,\n\tonBlur,\n}: ComboboxInputFieldProps): React.ReactElement {\n\treturn (\n\t\t<div className=\"relative\">\n\t\t\t<ComboboxPrimitive.Input\n\t\t\t\trender={\n\t\t\t\t\t<Input\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tinvalid={error}\n\t\t\t\t\t\tclassName={cn(inputEndPaddingBySize[size], className)}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\taria-required={required}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonBlur={onBlur}\n\t\t\t/>\n\t\t\t<div className=\"absolute inset-y-0 end-1 flex items-center gap-1 text-muted-foreground\">\n\t\t\t\t{clearable ? (\n\t\t\t\t\t<ComboboxPrimitive.Clear\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\t\tclassName=\"size-control-clear text-muted-foreground hover:text-foreground\"\n\t\t\t\t\t\t\t\taria-label={clearLabel}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<XIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t\t<ComboboxPrimitive.Trigger\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\tclassName=\"size-control-clear text-muted-foreground hover:text-foreground\"\n\t\t\t\t\t\t\taria-label={toggleLabel}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDownIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Single Selection Component\n// ============================================================================\n\nexport function EnhancedCombobox<T>({\n\t// Core props\n\titems,\n\tselectedValue,\n\tonSelectedValueChange,\n\tsearchValue,\n\tonSearchValueChange,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\tdisabled = false,\n\tclassName,\n\tclearable = true,\n\trenderItem,\n\tportalContainer,\n\n\t// Form Integration\n\tname,\n\tinvalid,\n\terror,\n\trequired,\n\tonBlur,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\trenderGroupLabel,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Disable individual items\n\tgetItemDisabled,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t// Size\n\tsize: sizeProp,\n\n\t// Controlled Open\n\topen,\n\tonOpenChange,\n}: EnhancedComboboxProps<T>): React.ReactElement {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size = resolveComboboxSize(sizeProp, defaultControlSize);\n\tconst formSize = getComboboxFormSize(size);\n\tconst hasError = invalid || Boolean(error);\n\n\t// Use shared core hook\n\tconst core = useEnhancedComboboxCore({\n\t\titems,\n\t\tsearchValue,\n\t\tonSearchValueChange,\n\t\tgetItemLabel,\n\t\tgetItemKey,\n\t\tisLoading,\n\t\tminSearchLength,\n\t\tstrings: stringsProp,\n\t\trenderItem,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tcreatable,\n\t\tonCreate,\n\t\tgetItemGroup,\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t\thighlightMatch,\n\t\tsize,\n\t\t// Include selected value in items list\n\t\tensuredItems: selectedValue ? [selectedValue] : [],\n\t});\n\n\t// Track open state so we can show the selected label when closed\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst handleOpenChange = useCallback(\n\t\t(nextOpen: boolean) => {\n\t\t\tsetIsOpen(nextOpen);\n\t\t\tif (!nextOpen) {\n\t\t\t\t// Clear search when closing so next open starts fresh\n\t\t\t\tonSearchValueChange('');\n\t\t\t}\n\t\t\tonOpenChange?.(nextOpen);\n\t\t},\n\t\t[onOpenChange, onSearchValueChange],\n\t);\n\n\t// When closed with a selected value, show the label; when open, show search text\n\tconst displayInputValue = isOpen\n\t\t? searchValue\n\t\t: (selectedValue ? core.itemToStringLabel(selectedValue) : '');\n\n\t// Handle value change, including create option\n\tconst handleValueChange = useCallback(\n\t\t(value: T | null): void => {\n\t\t\tif (value && isCreateOption(value)) {\n\t\t\t\tconst inputValue = getCreateOptionValue(value);\n\t\t\t\tonCreate?.(inputValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelectedValueChange(value);\n\t\t},\n\t\t[onSelectedValueChange, onCreate]\n\t);\n\n\treturn (\n\t\t<div className=\"enhanced-combobox--component\">\n\t\t\t<BaseCombobox\n\t\t\t\titems={core.allItems}\n\t\t\t\tvalue={selectedValue}\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tinputValue={displayInputValue}\n\t\t\t\tonInputValueChange={(value, { reason }) => {\n\t\t\t\t\tif (reason === 'item-press') {\n\t\t\t\t\t\tonSearchValueChange('');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonSearchValueChange(value);\n\t\t\t\t}}\n\t\t\t\titemToStringLabel={core.itemToStringLabel}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tfilter={null}\n\t\t\t\tname={name}\n\t\t\t\trequired={required}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={handleOpenChange}\n\t\t\t>\n\t\t\t\t<ComboboxInputField\n\t\t\t\t\tplaceholder={core.strings.placeholder}\n\t\t\t\t\tclearLabel={core.strings.clear}\n\t\t\t\t\ttoggleLabel={core.strings.toggle}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tsize={formSize}\n\t\t\t\t\terror={hasError}\n\t\t\t\t\trequired={required}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclearable={clearable}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t/>\n\n\t\t\t\t<ComboboxDropdown\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tshowStatus={core.showStatus}\n\t\t\t\t\tshowEmpty={core.showEmpty}\n\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\titems={items}\n\t\t\t\t\tgroupedItems={core.groupedItems}\n\t\t\t\t\tcreateOptionItem={core.createOptionItem}\n\t\t\t\t\trenderItemContent={core.renderItemContent}\n\t\t\t\t\tgetItemReactKey={core.getItemReactKey}\n\t\t\t\t\tgetItemDisabled={getItemDisabled}\n\t\t\t\t\trenderGroupLabel={renderGroupLabel}\n\t\t\t\t\tisLoadingMore={isLoadingMore}\n\t\t\t\t\tstrings={core.strings}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tportalContainer={portalContainer}\n\t\t\t\t\tlistRef={core.listRef}\n\t\t\t\t/>\n\t\t\t</BaseCombobox>\n\n\t\t\t<ErrorMessage error={error} size={size} />\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Multiple Selection Component\n// ============================================================================\n\nexport function EnhancedComboboxMultiple<T>({\n\t// Core props\n\titems,\n\tselectedValues,\n\tonSelectedValuesChange,\n\tsearchValue,\n\tonSearchValueChange,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\tdisabled = false,\n\tclassName,\n\trenderItem,\n\tportalContainer,\n\n\t// Form Integration\n\tname,\n\tinvalid,\n\terror,\n\trequired,\n\tonBlur,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\trenderGroupLabel,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Disable individual items\n\tgetItemDisabled,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t// Size\n\tsize: sizeProp,\n\n\t// Controlled Open\n\topen,\n\tonOpenChange,\n\n\t// Behaviour\n\tcloseOnSelect = false,\n\tapplyButton = false,\n\tonApply,\n\tonCancel,\n}: EnhancedComboboxMultipleProps<T>): React.ReactElement {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size = resolveComboboxSize(sizeProp, defaultControlSize);\n\tconst formSize = getComboboxFormSize(size);\n\tconst primitiveComboboxSize = primitiveComboboxSizeBySize[size];\n\tconst hasError = invalid || Boolean(error);\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\tconst getKey = getItemKey ?? getItemLabel;\n\n\t// Draft state — only used in `applyButton` mode. Tracks the user's\n\t// in-progress selection so we can commit it on Apply or revert on\n\t// Cancel. When apply mode is OFF, we pass selections through immediately.\n\tconst [draftValues, setDraftValues] = useState<T[]>(selectedValues);\n\tconst [internalOpen, setInternalOpen] = useState(false);\n\tconst isOpenControlled = open !== undefined;\n\tconst resolvedOpen = isOpenControlled ? open : internalOpen;\n\n\tuseEffect(() => {\n\t\tif (applyButton) setDraftValues(selectedValues);\n\t}, [applyButton, selectedValues]);\n\n\tconst setOpen = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (!isOpenControlled) setInternalOpen(next);\n\t\t\tonOpenChange?.(next);\n\t\t},\n\t\t[isOpenControlled, onOpenChange],\n\t);\n\n\t// Use shared core hook\n\tconst core = useEnhancedComboboxCore({\n\t\titems,\n\t\tsearchValue,\n\t\tonSearchValueChange,\n\t\tgetItemLabel,\n\t\tgetItemKey,\n\t\tisLoading,\n\t\tminSearchLength,\n\t\tstrings: stringsProp,\n\t\trenderItem,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tcreatable,\n\t\tonCreate,\n\t\tgetItemGroup,\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t\thighlightMatch,\n\t\tsize,\n\t\t// Include selected values in items list\n\t\tensuredItems: selectedValues,\n\t});\n\n\t// Handle value change, filtering out create options\n\tconst handleValueChange = useCallback(\n\t\t(values: T[]): void => {\n\t\t\tconst regularValues: T[] = [];\n\t\t\tlet createValue: string | null = null;\n\n\t\t\tfor (const value of values) {\n\t\t\t\tif (isCreateOption(value)) {\n\t\t\t\t\tcreateValue = getCreateOptionValue(value);\n\t\t\t\t} else {\n\t\t\t\t\tregularValues.push(value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (createValue) {\n\t\t\t\tonCreate?.(createValue);\n\t\t\t}\n\n\t\t\tconst next = (regularValues.length !== values.length || !createValue) ? regularValues : null;\n\t\t\tif (next) {\n\t\t\t\tif (applyButton) {\n\t\t\t\t\tsetDraftValues(next);\n\t\t\t\t} else {\n\t\t\t\t\tonSelectedValuesChange(next);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[onSelectedValuesChange, onCreate, applyButton, closeOnSelect, setOpen],\n\t);\n\n\tconst handleApply = useCallback(() => {\n\t\tif (applyButton) onSelectedValuesChange(draftValues);\n\t\tonApply?.();\n\t\tsetOpen(false);\n\t}, [applyButton, draftValues, onApply, onSelectedValuesChange, setOpen]);\n\n\tconst handleCancel = useCallback(() => {\n\t\tif (applyButton) setDraftValues(selectedValues);\n\t\tonCancel?.();\n\t\tsetOpen(false);\n\t}, [applyButton, selectedValues, onCancel, setOpen]);\n\n\tconst visibleValues = applyButton ? draftValues : selectedValues;\n\tconst chipsPlaceholder = visibleValues.length > 0 ? undefined : core.strings.placeholder;\n\n\treturn (\n\t\t<div className=\"enhanced-combobox--component\">\n\t\t\t<BaseCombobox\n\t\t\t\titems={core.allItems}\n\t\t\t\tmultiple\n\t\t\t\tvalue={visibleValues}\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tinputValue={searchValue}\n\t\t\t\tonInputValueChange={(value, { reason }) => {\n\t\t\t\t\tif (reason === 'item-press') {\n\t\t\t\t\t\tonSearchValueChange('');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonSearchValueChange(value);\n\t\t\t\t}}\n\t\t\t\titemToStringLabel={core.itemToStringLabel}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tfilter={null}\n\t\t\t\tname={name}\n\t\t\t\trequired={required}\n\t\t\t\topen={resolvedOpen}\n\t\t\t\tonOpenChange={(next) => {\n\t\t\t\t\t// In apply-button mode, closing without committing should\n\t\t\t\t\t// revert the draft so the next open starts clean.\n\t\t\t\t\tif (!next && applyButton) setDraftValues(selectedValues);\n\t\t\t\t\tsetOpen(next);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<ComboboxChips\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tformControlMinHeightClasses[formSize],\n\t\t\t\t\t\tformControlPaddingClasses[formSize],\n\t\t\t\t\t\tformSize === 'small' ? 'text-xs' : 'text-sm',\n\t\t\t\t\t\t'bg-transparent !shadow-none',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tsize={primitiveComboboxSize}\n\t\t\t\t\terror={hasError}\n\t\t\t\t>\n\t\t\t\t\t{visibleValues.map((item) => (\n\t\t\t\t\t\t<ComboboxChip key={getKey(item)}>\n\t\t\t\t\t\t\t{getItemLabel(item)}\n\t\t\t\t\t\t</ComboboxChip>\n\t\t\t\t\t))}\n\t\t\t\t\t<ComboboxChipsInput\n\t\t\t\t\t\tplaceholder={chipsPlaceholder}\n\t\t\t\t\t\taria-invalid={hasError || undefined}\n\t\t\t\t\t\taria-required={required}\n\t\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\t/>\n\t\t\t\t</ComboboxChips>\n\n\t\t\t\t<ComboboxDropdown\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tshowStatus={core.showStatus}\n\t\t\t\t\tshowEmpty={core.showEmpty}\n\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\titems={items}\n\t\t\t\t\tgroupedItems={core.groupedItems}\n\t\t\t\t\tcreateOptionItem={core.createOptionItem}\n\t\t\t\t\trenderItemContent={core.renderItemContent}\n\t\t\t\t\tgetItemReactKey={core.getItemReactKey}\n\t\t\t\t\tgetItemDisabled={getItemDisabled}\n\t\t\t\t\trenderGroupLabel={renderGroupLabel}\n\t\t\t\t\tisLoadingMore={isLoadingMore}\n\t\t\t\t\tstrings={core.strings}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tportalContainer={portalContainer}\n\t\t\t\t\tlistRef={core.listRef}\n\t\t\t\t\tanchor={containerRef}\n\t\t\t\t\tapplyFooter={applyButton ? {\n\t\t\t\t\t\tapplyLabel: core.strings.apply,\n\t\t\t\t\t\tcancelLabel: core.strings.cancel,\n\t\t\t\t\t\tonApply: handleApply,\n\t\t\t\t\t\tonCancel: handleCancel,\n\t\t\t\t\t} : undefined}\n\t\t\t\t/>\n\t\t\t</BaseCombobox>\n\n\t\t\t<ErrorMessage error={error} size={size} />\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Legacy Aliases\n// ============================================================================\n\n/** @deprecated Use EnhancedCombobox instead */\nexport const ApiCombobox = EnhancedCombobox;\n\n/** @deprecated Use EnhancedComboboxMultiple instead */\nexport const ApiComboboxMultiple = EnhancedComboboxMultiple;\n\nEnhancedCombobox.displayName = 'EnhancedCombobox';\nEnhancedComboboxMultiple.displayName = 'EnhancedComboboxMultiple';\n","import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { EnhancedCombobox } from './enhanced-combobox';\nimport { defaultComboboxStrings } from './combobox.strings';\nimport { DEFAULT_DEBOUNCE_MS } from './constants';\nimport type { ComboboxSize, ComboboxStrings, EnhancedComboboxProps } from './types';\n\nexport interface AsyncResourceComboboxFetcherArgs {\n\tquery: string;\n\tlimit: number;\n\tsignal?: AbortSignal;\n}\n\nexport type AsyncResourceComboboxFetcher<T> = (\n\targs: AsyncResourceComboboxFetcherArgs,\n) => Promise<T[]>;\n\nexport interface AsyncResourceComboboxStrings extends ComboboxStrings {\n\terror: string;\n}\n\nexport const defaultAsyncResourceComboboxStrings: AsyncResourceComboboxStrings = {\n\t...defaultComboboxStrings,\n\terror: 'Unable to load options.',\n};\n\nexport interface AsyncResourceComboboxRenderOptionContext {\n\tquery: string;\n\tisSelected: boolean;\n}\n\nexport interface AsyncResourceComboboxProps<T>\n\textends Omit<\n\t\tEnhancedComboboxProps<T>,\n\t\t| 'items'\n\t\t| 'selectedValue'\n\t\t| 'onSelectedValueChange'\n\t\t| 'searchValue'\n\t\t| 'onSearchValueChange'\n\t\t| 'getItemLabel'\n\t\t| 'getItemKey'\n\t\t| 'isLoading'\n\t\t| 'renderItem'\n\t\t| 'strings'\n\t\t| 'error'\n\t\t| 'debounceMs'\n\t> {\n\tfetcher: AsyncResourceComboboxFetcher<T>;\n\tvalue?: T | null;\n\tdefaultValue?: T | null;\n\tonValueChange?: (value: T | null) => void;\n\tonAfterFetch?: (items: T[], context: AsyncResourceComboboxFetcherArgs) => void;\n\tonError?: (error: unknown, context: AsyncResourceComboboxFetcherArgs) => void;\n\tgetKey: (item: T) => string;\n\tgetLabel: (item: T) => string;\n\tgetDescription?: (item: T) => ReactNode;\n\tgetMeta?: (item: T) => ReactNode;\n\trenderOption?: (item: T, context: AsyncResourceComboboxRenderOptionContext) => ReactNode;\n\tlimit?: number;\n\tdebounceMs?: number;\n\tpreload?: boolean;\n\terrorMessage?: ReactNode;\n\tstrings?: StringsProp<AsyncResourceComboboxStrings>;\n\tsize?: ComboboxSize;\n}\n\nexport function AsyncResourceCombobox<T>({\n\tfetcher,\n\tvalue,\n\tdefaultValue = null,\n\tonValueChange,\n\tonAfterFetch,\n\tonError,\n\tgetKey,\n\tgetLabel,\n\tgetDescription,\n\tgetMeta,\n\trenderOption,\n\tlimit = 10,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\tpreload = true,\n\tminSearchLength = 0,\n\terrorMessage,\n\tstrings: stringsProp,\n\tdisabled,\n\t...props\n}: AsyncResourceComboboxProps<T>) {\n\tconst strings = useStrings(defaultAsyncResourceComboboxStrings, stringsProp);\n\tconst isControlled = value !== undefined;\n\tconst [internalValue, setInternalValue] = useState<T | null>(defaultValue);\n\tconst selectedValue = isControlled ? value : internalValue;\n\tconst [searchValue, setSearchValue] = useState('');\n\tconst [items, setItems] = useState<T[]>([]);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<unknown>(null);\n\tconst requestIdRef = useRef(0);\n\tconst trimmedSearch = searchValue.trim();\n\n\tconst handleValueChange = useCallback(\n\t\t(nextValue: T | null) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(nextValue);\n\t\t\t}\n\t\t\tonValueChange?.(nextValue);\n\t\t},\n\t\t[isControlled, onValueChange],\n\t);\n\n\tuseEffect(() => {\n\t\tif (disabled) return;\n\n\t\tconst shouldFetch =\n\t\t\ttrimmedSearch.length > 0\n\t\t\t\t? trimmedSearch.length >= minSearchLength\n\t\t\t\t: preload;\n\n\t\tif (!shouldFetch) {\n\t\t\tsetItems([]);\n\t\t\tsetIsLoading(false);\n\t\t\tsetError(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst requestId = requestIdRef.current + 1;\n\t\trequestIdRef.current = requestId;\n\t\tconst controller = new AbortController();\n\t\tconst context: AsyncResourceComboboxFetcherArgs = {\n\t\t\tquery: trimmedSearch,\n\t\t\tlimit,\n\t\t\tsignal: controller.signal,\n\t\t};\n\n\t\tconst timeout = window.setTimeout(() => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\n\t\t\tfetcher(context)\n\t\t\t\t.then((nextItems) => {\n\t\t\t\t\tif (controller.signal.aborted || requestIdRef.current !== requestId) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetItems(nextItems);\n\t\t\t\t\tonAfterFetch?.(nextItems, context);\n\t\t\t\t})\n\t\t\t\t.catch((nextError: unknown) => {\n\t\t\t\t\tif (controller.signal.aborted || requestIdRef.current !== requestId) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetItems([]);\n\t\t\t\t\tsetError(nextError);\n\t\t\t\t\tonError?.(nextError, context);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tif (!controller.signal.aborted && requestIdRef.current === requestId) {\n\t\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}, debounceMs);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(timeout);\n\t\t\tcontroller.abort();\n\t\t};\n\t}, [\n\t\tdebounceMs,\n\t\tdisabled,\n\t\tfetcher,\n\t\tlimit,\n\t\tminSearchLength,\n\t\tonAfterFetch,\n\t\tonError,\n\t\tpreload,\n\t\ttrimmedSearch,\n\t]);\n\n\tconst renderItem = useCallback(\n\t\t(item: T) => {\n\t\t\tif (renderOption) {\n\t\t\t\treturn renderOption(item, {\n\t\t\t\t\tquery: trimmedSearch,\n\t\t\t\t\tisSelected: selectedValue ? getKey(selectedValue) === getKey(item) : false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst description = getDescription?.(item);\n\t\t\tconst meta = getMeta?.(item);\n\n\t\t\treturn (\n\t\t\t\t<span className=\"async-resource-combobox--option flex min-w-0 items-center gap-space-md text-xs leading-tight\">\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" className=\"min-w-0 shrink truncate\">\n\t\t\t\t\t\t{getLabel(item)}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{(!!description || !!meta) && (\n\t\t\t\t\t\t<span className=\"inline-flex min-w-0 flex-1 items-center gap-space-sm overflow-hidden text-xs text-muted-foreground\">\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"min-w-0 truncate\">\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!meta && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"min-w-0 truncate opacity-75\">\n\t\t\t\t\t\t\t\t\t{meta}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t);\n\t\t},\n\t\t[getDescription, getKey, getLabel, getMeta, renderOption, selectedValue, trimmedSearch],\n\t);\n\n\tconst resolvedError = useMemo(() => {\n\t\tif (!error) return undefined;\n\t\treturn errorMessage ?? strings.error;\n\t}, [error, errorMessage, strings.error]);\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"async-resource-combobox\"\n\t\t\tdata-slot=\"async-resource-combobox\"\n\t\t\tclassName={cn('async-resource-combobox--component', props.className)}\n\t\t>\n\t\t\t<EnhancedCombobox\n\t\t\t\t{...props}\n\t\t\t\tclassName={undefined}\n\t\t\t\tdisabled={disabled}\n\t\t\t\titems={items}\n\t\t\t\tselectedValue={selectedValue ?? null}\n\t\t\t\tonSelectedValueChange={handleValueChange}\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchValueChange={setSearchValue}\n\t\t\t\tgetItemLabel={getLabel}\n\t\t\t\tgetItemKey={getKey}\n\t\t\t\tisLoading={isLoading}\n\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\tstrings={strings}\n\t\t\t\trenderItem={renderItem}\n\t\t\t\terror={typeof resolvedError === 'string' ? resolvedError : undefined}\n\t\t\t/>\n\t\t\t{resolvedError && typeof resolvedError !== 'string' && (\n\t\t\t\t<div className=\"async-resource-combobox--error mt-1.5\">\n\t\t\t\t\t{resolvedError}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nAsyncResourceCombobox.displayName = 'AsyncResourceCombobox';\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/utils.cjs"),n=require("./command-DRIySU26.cjs");let r=require("react");r=e.t(r,1);let i=require("react/jsx-runtime");function a({className:e,...r}){return(0,i.jsx)(n.t,{className:t.cn(`command--component`,`rounded-md! p-0 bg-transparent`,e),...r})}function o({className:e,...r}){return(0,i.jsx)(n.o,{className:t.cn(`max-h-72 px-1 py-1`,e),...r})}function s({className:e,...r}){return(0,i.jsx)(n.r,{className:t.cn(`p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70`,e),...r})}function c({className:e,...r}){return(0,i.jsx)(n.a,{className:t.cn(`gap-space-sm rounded-md px-control-sm py-row-y text-xs`,e),...r})}function l({className:e,...r}){return(0,i.jsx)(n.n,{className:t.cn(`py-4 text-center text-xs text-muted-foreground`,e),...r})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=command-BbJB0pjP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-BbJB0pjP.cjs","names":[],"sources":["../../src/components/base/command/command.tsx"],"sourcesContent":["/**\n * Command — base wrapper around the shadcn `ui/command` (cmdk) primitive.\n *\n * What this layer adds on top of the primitive:\n * - Density-aware list-row padding via the `py-row-y` token utility.\n * - `xs` typography by default for items (admin-density), with the\n * primitive's typography preserved as a `density=\"default\"` variant.\n * - Tighter `Command` root padding aligned to the popover content pad.\n * - Re-exports every primitive part untouched so the compound-component\n * pattern keeps working: consumers compose\n * `<Command><CommandList><CommandGroup><CommandItem/></CommandGroup></CommandList></Command>`.\n *\n * For the recurring \"popover-with-command-list\" pattern, prefer\n * `base/popover-menu/` which composes both wrappers and adds slots.\n */\nimport * as React from 'react';\n\nimport {\n Command as CommandPrimitive,\n CommandEmpty as CommandEmptyPrimitive,\n CommandGroup as CommandGroupPrimitive,\n CommandInput,\n CommandList as CommandListPrimitive,\n CommandSeparator,\n CommandShortcut,\n CommandItem as CommandItemPrimitive,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\ntype CommandRootProps = React.ComponentProps<typeof CommandPrimitive>;\n\nfunction Command({ className, ...props }: CommandRootProps) {\n return (\n <CommandPrimitive\n className={cn('command--component', \n // Tighter than the primitive; popover-content already pads the outer.\n 'rounded-md! p-0 bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandListProps = React.ComponentProps<typeof CommandListPrimitive>;\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandListPrimitive\n className={cn('max-h-72 px-1 py-1', className)}\n {...props}\n />\n );\n}\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandGroupPrimitive>;\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandGroupPrimitive\n className={cn(\n 'p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandItemProps = React.ComponentProps<typeof CommandItemPrimitive>;\n\nfunction CommandItem({ className, ...props }: CommandItemProps) {\n return (\n <CommandItemPrimitive\n className={cn(\n // Density-tokenized vertical padding; xs typography for admin density.\n 'gap-space-sm rounded-md px-control-sm py-row-y text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandEmptyPrimitive>;\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandEmptyPrimitive\n className={cn('py-4 text-center text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n"],"mappings":"+KA+BA,SAAS,EAAQ,CAAE,YAAW,GAAG,GAA2B,CACxD,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,qBAEV,iCACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA2B,CAC5D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,qBAAsB,CAAS,EAC7C,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA4B,CAC9D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GACP,gPACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA2B,CAC5D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAEP,yDACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA4B,CAC9D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,iDAAkD,CAAS,EACzE,GAAI,CACP,CAAA,CAET"}
@@ -0,0 +1,39 @@
1
+ import { cn as e } from "../lib/utils.js";
2
+ import { a as t, n, o as r, r as i, t as a } from "./command-CAI-BCSR.js";
3
+ import "react";
4
+ import { jsx as o } from "react/jsx-runtime";
5
+ //#region src/components/base/command/command.tsx
6
+ function s({ className: t, ...n }) {
7
+ return /* @__PURE__ */ o(a, {
8
+ className: e("command--component", "rounded-md! p-0 bg-transparent", t),
9
+ ...n
10
+ });
11
+ }
12
+ function c({ className: t, ...n }) {
13
+ return /* @__PURE__ */ o(r, {
14
+ className: e("max-h-72 px-1 py-1", t),
15
+ ...n
16
+ });
17
+ }
18
+ function l({ className: t, ...n }) {
19
+ return /* @__PURE__ */ o(i, {
20
+ className: e("p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70", t),
21
+ ...n
22
+ });
23
+ }
24
+ function u({ className: n, ...r }) {
25
+ return /* @__PURE__ */ o(t, {
26
+ className: e("gap-space-sm rounded-md px-control-sm py-row-y text-xs", n),
27
+ ...r
28
+ });
29
+ }
30
+ function d({ className: t, ...r }) {
31
+ return /* @__PURE__ */ o(n, {
32
+ className: e("py-4 text-center text-xs text-muted-foreground", t),
33
+ ...r
34
+ });
35
+ }
36
+ //#endregion
37
+ export { c as a, u as i, d as n, l as r, s as t };
38
+
39
+ //# sourceMappingURL=command-IP2wy_HN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-IP2wy_HN.js","names":[],"sources":["../../src/components/base/command/command.tsx"],"sourcesContent":["/**\n * Command — base wrapper around the shadcn `ui/command` (cmdk) primitive.\n *\n * What this layer adds on top of the primitive:\n * - Density-aware list-row padding via the `py-row-y` token utility.\n * - `xs` typography by default for items (admin-density), with the\n * primitive's typography preserved as a `density=\"default\"` variant.\n * - Tighter `Command` root padding aligned to the popover content pad.\n * - Re-exports every primitive part untouched so the compound-component\n * pattern keeps working: consumers compose\n * `<Command><CommandList><CommandGroup><CommandItem/></CommandGroup></CommandList></Command>`.\n *\n * For the recurring \"popover-with-command-list\" pattern, prefer\n * `base/popover-menu/` which composes both wrappers and adds slots.\n */\nimport * as React from 'react';\n\nimport {\n Command as CommandPrimitive,\n CommandEmpty as CommandEmptyPrimitive,\n CommandGroup as CommandGroupPrimitive,\n CommandInput,\n CommandList as CommandListPrimitive,\n CommandSeparator,\n CommandShortcut,\n CommandItem as CommandItemPrimitive,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\ntype CommandRootProps = React.ComponentProps<typeof CommandPrimitive>;\n\nfunction Command({ className, ...props }: CommandRootProps) {\n return (\n <CommandPrimitive\n className={cn('command--component', \n // Tighter than the primitive; popover-content already pads the outer.\n 'rounded-md! p-0 bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandListProps = React.ComponentProps<typeof CommandListPrimitive>;\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandListPrimitive\n className={cn('max-h-72 px-1 py-1', className)}\n {...props}\n />\n );\n}\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandGroupPrimitive>;\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandGroupPrimitive\n className={cn(\n 'p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandItemProps = React.ComponentProps<typeof CommandItemPrimitive>;\n\nfunction CommandItem({ className, ...props }: CommandItemProps) {\n return (\n <CommandItemPrimitive\n className={cn(\n // Density-tokenized vertical padding; xs typography for admin density.\n 'gap-space-sm rounded-md px-control-sm py-row-y text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandEmptyPrimitive>;\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandEmptyPrimitive\n className={cn('py-4 text-center text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n"],"mappings":";;;;;AA+BA,SAAS,EAAQ,EAAE,cAAW,GAAG,KAA2B;CACxD,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,sBAEV,kCACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAY,EAAE,cAAW,GAAG,KAA2B;CAC5D,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,sBAAsB,CAAS;EAC7C,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAa,EAAE,cAAW,GAAG,KAA4B;CAC9D,OACI,kBAAC,GAAD;EACI,WAAW,EACP,iPACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAY,EAAE,cAAW,GAAG,KAA2B;CAC5D,OACI,kBAAC,GAAD;EACI,WAAW,EAEP,0DACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAa,EAAE,cAAW,GAAG,KAA4B;CAC9D,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,kDAAkD,CAAS;EACzE,GAAI;CACP,CAAA;AAET"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/strings.cjs"),t=require("./ui-provider-CrsJ_dGn.cjs"),n=require("../lib/utils.cjs"),r=require("./button-CfQtOuBK.cjs"),i=require("./tooltip-mvxZV_Lu.cjs"),a=require("./typography-CWEobAJV.cjs"),o=require("./badge-C65rt1M9.cjs"),s=require("./cards-m03XN10f.cjs"),c=require("./popover-dWR7-MzY.cjs"),l=require("./avatar-BnKM_o2d.cjs"),u=require("./rich-text-editor-DqUU-H7i.cjs"),d=require("./mentions-Cg_4vFxd.cjs");let f=require("react"),p=require("date-fns"),m=require("react/jsx-runtime"),h=require("lucide-react");var g={title:`Comments`,subtitle:``,empty:`No comments yet.`,emptyHint:`Start the conversation — your team will see it instantly.`,composerPlaceholder:`Write a comment…`,composerSubmit:`Post comment`,composerSubmitting:`Posting…`,composerSave:`Save changes`,invalidContent:`Comment cannot be empty.`,composerCancel:`Cancel`,composerEditingEyebrow:`Editing comment`,composerReplyingEyebrow:`Replying to {{name}}`,composerAttachmentLabel:`Attach file`,composerReferenceLabel:`Mention or link`,composerReferenceMenuTitle:`Insert reference`,composerReferenceSearchPlaceholder:`Search…`,composerReferenceEmpty:`No matches.`,composerReferenceLoading:`Searching…`,fallbackAuthor:`Anonymous`,pinned:`Pinned`,edited:`edited`,deleteLabel:`Delete`,editLabel:`Edit`,replyLabel:`Reply`,pinLabel:`Pin`,unpinLabel:`Unpin`,moreActionsLabel:`More actions`,confirmDeleteLabel:`Delete comment`,attachmentFallback:`Attachment`,attachmentRemoveLabel:`Remove attachment`,attachmentUploadingLabel:`Uploading…`,attachmentFailedLabel:`Upload failed`,attachmentTooLargeError:`File is too large.`,attachmentTooManyError:`Too many attachments.`,attachmentRetryLabel:`Retry`,attachmentDownloadLabel:`Download`,addReactionLabel:`Add reaction`,showRepliesLabel:`Show replies`,hideRepliesLabel:`Hide replies`};function _(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:String(r)})}function v(t){return e.useStrings(g,t)}function y(e){let n=t.c(),r=t.i();return(0,f.useMemo)(()=>({getMediaUrl:e?.getMediaUrl??(e=>n.resolveUrl?.(e??{})),getMediaName:e?.getMediaName??(e=>n.resolveName?.(e??{})),getStatusLabel:e?.getStatusLabel,formatRelativeTime:e?.formatRelativeTime??r.formatRelativeTime}),[e,n,r.formatRelativeTime])}function b(e){return typeof e!=`number`||e<=0?null:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function x(e){return e.mimeType?.startsWith(`image/`)?h.Image:e.mimeType===`application/pdf`||e.mimeType?.startsWith(`text/`)?h.FileText:e.mimeType?h.File:h.Paperclip}var S=({attachment:t,editable:i=!1,onRemove:o,onRetry:s,accessors:c,strings:l,compact:u=!1,className:d})=>{let f=e.useStrings(g,l),p=c?.getMediaUrl?.(t)??t.url,_=c?.getMediaName?.(t)??t.name??f.attachmentFallback,v=x(t),y=t.status===`uploading`,S=t.status===`failed`,C=b(t.size),w=y?f.attachmentUploadingLabel+(typeof t.progress==`number`?` ${Math.round(t.progress)}%`:``):S?t.error??f.attachmentFailedLabel:C,T=n.cn(`relative inline-flex min-w-0 max-w-[20rem] items-center gap-1.5 rounded-md`,`ring-1 ring-inset transition-colors`,u?`px-2 py-1 text-xs`:`px-2.5 py-1 text-xs`,S?`bg-destructive/[0.04] ring-destructive/30 hover:bg-destructive/[0.08]`:`bg-foreground/[0.03] ring-border/60 hover:bg-foreground/[0.06]`,d),E=y?(0,m.jsx)(h.Loader2,{className:n.cn(`shrink-0 animate-spin text-muted-foreground`,`size-3.5`),"aria-hidden":!0}):(0,m.jsx)(v,{className:n.cn(`shrink-0`,`size-3.5`,S?`text-destructive`:`text-muted-foreground`),"aria-hidden":!0}),D=(0,m.jsxs)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,children:[(0,m.jsx)(a.s,{tag:`span`,size:`xs`,weight:`medium`,className:n.cn(`truncate`,S&&`text-destructive`),children:_}),w?(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:w}):null]});return(0,m.jsxs)(`div`,{className:T,children:[E,p&&!y&&!S?(0,m.jsx)(`a`,{href:p,target:`_blank`,rel:`noreferrer noopener`,className:`inline-flex min-w-0 flex-1 items-baseline gap-1.5 hover:underline`,"aria-label":f.attachmentDownloadLabel,children:D}):D,y&&typeof t.progress==`number`&&(0,m.jsx)(`div`,{className:`bg-primary/15 absolute bottom-0 left-2 right-2 h-px overflow-hidden rounded-full`,children:(0,m.jsx)(`div`,{className:`bg-primary h-full transition-[width]`,style:{width:`${Math.min(100,Math.max(0,t.progress))}%`}})}),S&&s&&(0,m.jsx)(r.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`small`,onClick:()=>s(t.id),className:`h-auto shrink-0 rounded px-1.5 py-px text-xs font-medium ring-1 ring-inset ring-destructive/30 hover:ring-destructive/60`,children:f.attachmentRetryLabel}),i&&o&&(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:()=>o(t.id),className:`-mr-0.5 size-4 shrink-0 rounded p-0 text-muted-foreground hover:bg-foreground/10 hover:text-foreground`,"aria-label":f.attachmentRemoveLabel,title:f.attachmentRemoveLabel,children:(0,m.jsx)(h.X,{className:`size-3`})})]})};function C(e={}){let{onUpload:t,maxSize:n,maxFiles:r,disabled:i,initialAttachments:a,onChange:o,onError:s}=e,[c,l]=(0,f.useState)(()=>a?[...a]:[]),u=(0,f.useRef)(new Map),d=(0,f.useRef)(new Map),p=(0,f.useRef)(o);p.current=o;let m=(0,f.useCallback)((e,t)=>{l(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),h=(0,f.useCallback)(e=>{l([...e])},[]),g=(0,f.useCallback)((e,n)=>{if(!t)return;let r=new AbortController;u.current.set(e,{controller:r}),m(e,{status:`uploading`,progress:0,error:void 0}),t({file:n,onProgress:t=>{m(e,{progress:t})},signal:r.signal}).then(t=>{u.current.delete(e),m(e,{...t,id:e,status:`uploaded`,progress:100,error:void 0})}).catch(t=>{if(u.current.delete(e),r.signal.aborted)return;let n=t instanceof Error?t.message:`Upload failed`;m(e,{status:`failed`,error:n}),s?.(n)})},[s,t,m]),_=(0,f.useCallback)(e=>{if(i||!t)return;let a=Array.from(e);a.length!==0&&l(e=>{let t=[...e];for(let e of a){if(typeof r==`number`&&t.length>=r){s?.(`Too many attachments.`);break}if(typeof n==`number`&&e.size>n){s?.(`File is too large.`);continue}let i=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`att-${Date.now()}-${Math.random().toString(36).slice(2)}`;d.current.set(i,e),t.push({id:i,name:e.name,size:e.size,mimeType:e.type,status:`uploading`,progress:0}),queueMicrotask(()=>g(i,e))}return t})},[g,i,r,n,s,t]),v=(0,f.useCallback)(e=>{let t=u.current.get(e);t&&(t.controller.abort(),u.current.delete(e)),d.current.delete(e),l(t=>t.filter(t=>t.id!==e))},[]),y=(0,f.useCallback)(e=>{let t=d.current.get(e);t&&g(e,t)},[g]),b=(0,f.useCallback)(()=>{for(let e of u.current.values())e.controller.abort();u.current.clear(),d.current.clear(),l([])},[]);return(0,f.useEffect)(()=>{p.current?.(c)},[c]),(0,f.useEffect)(()=>{let e=u.current;return()=>{for(let t of e.values())t.controller.abort()}},[]),{attachments:c,uploadedAttachments:(0,f.useMemo)(()=>c.filter(e=>e.status===`uploaded`||!e.status),[c]),isUploading:(0,f.useMemo)(()=>c.some(e=>e.status===`uploading`),[c]),addFiles:_,removeAttachment:v,retryAttachment:y,setAttachments:h,reset:b}}function w(e){return!e||typeof e!=`string`?!1:e.replace(/<[^>]*>/g,``).trim().length>0}var T=(0,f.forwardRef)(function({context:e,canComment:t=!0,isSubmitting:n=!1,errors:i,resetKey:o=0,onSubmit:s,onCancel:l,editingComment:p,strings:g,resources:_,onResourceSearch:y,attachments:b,initialValues:x,autoFocus:T=!1,inlineSubmit:D=!0,placeholder:O},k){let A=v(g),j=_,M=y,N=b,P=(0,f.useRef)(null),[F,I]=(0,f.useState)(()=>x?.content??p?.content??``),[L,R]=(0,f.useState)(null),z=d.u({resources:j,onResourceSearch:M,editorRef:P,initialMentions:x?.references??p?.references}),B=C({...N,initialAttachments:x?.attachments??void 0});(0,f.useImperativeHandle)(k,()=>({focus:()=>P.current?.focus(),clear:()=>{P.current?.clear(),z.reset(),B.reset(),R(null)},setBody:e=>{P.current?.setHTML(e)}}),[B,z]),(0,f.useEffect)(()=>{P.current?.setHTML(x?.content??``),z.setMentions(x?.references??[]),B.setAttachments(x?.attachments??[]),R(null)},[e.id,e.type,o]),(0,f.useEffect)(()=>{if(!p)return;P.current?.setHTML(p.content??``),z.setMentions(p.references??[]);let e=(p.attachments??p.media??[]).filter(e=>!!e);B.setAttachments(e)},[p?.id]),(0,f.useEffect)(()=>{i?.content&&R(i.content)},[i]);let V=t=>{t?.preventDefault();let n=P.current?.getHTML()??F;if(!w(n)){R(A.invalidContent);return}R(null),s({content:n,commentableId:e.id,commentableType:e.type,contentType:`html`,references:z.mentions,attachments:B.uploadedAttachments,editingId:p?.id})},H=(0,f.useRef)(null),U=()=>H.current?.click(),W=e=>{e&&B.addFiles(e)},G=B.attachments.length>0,K=!!p,q=n?A.composerSubmitting:K?A.composerSave:A.composerSubmit,J=K?(0,m.jsx)(E,{label:A.composerEditingEyebrow,closeLabel:A.composerCancel,onClose:l}):null,Y=(0,f.useMemo)(()=>{let e=[];return j&&Object.keys(j).length>0&&e.push({id:`reference`,icon:h.AtSign,label:A.composerReferenceLabel,onClick:()=>z.setPickerOpen(!0)}),N?.onUpload&&!N.disabled&&e.push({id:`attachment`,icon:h.Paperclip,label:A.composerAttachmentLabel,onClick:U}),e},[j,N?.onUpload,N?.disabled,A.composerReferenceLabel,A.composerAttachmentLabel]);if(!t)return null;let X=(0,m.jsx)(r.t,{type:`button`,onClick:()=>V(),disabled:n||B.isUploading,icon:n?h.Loader2:h.Send,children:q}),Z=K||l?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:l,disabled:n,children:A.composerCancel}):null,Q=G?(0,m.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:B.attachments.map(e=>(0,m.jsx)(S,{attachment:e,editable:!0,onRemove:B.removeAttachment,onRetry:B.retryAttachment,strings:g},e.id))}):null,$=G?Q:null,ee=D===!1?null:X,te=D===!1||K;return(0,m.jsxs)(`form`,{onSubmit:V,className:`space-y-2`,children:[J,(0,m.jsx)(`input`,{ref:H,type:`file`,multiple:!0,hidden:!0,accept:N?.accept,onChange:e=>{W(e.target.files),e.target.value=``}}),!z.triggerActive&&(0,m.jsxs)(c.n,{open:z.pickerOpen,onOpenChange:z.setPickerOpen,children:[(0,m.jsx)(c.s,{render:(0,m.jsx)(`button`,{type:`button`,className:`sr-only`,tabIndex:-1}),children:A.composerReferenceLabel}),(0,m.jsx)(d.r,{open:z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,kinds:z.kinds,resources:j,query:z.query,setQuery:z.setQuery,suggestions:z.suggestions,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,searchPlaceholder:A.composerReferenceSearchPlaceholder,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(u.t,{ref:P,value:F,onChange:e=>{I(e);let t=d.t(e),n=z.mentions;if(n.map(e=>e.id).join(`|`)!==t.map(e=>e.id).join(`|`)){let e=new Map(n.map(e=>[e.id,e])),r=t.map(t=>e.get(t.id)??t);z.setMentions(r)}},placeholder:O??A.composerPlaceholder,strings:{editorLabel:O??A.composerPlaceholder},minHeight:`3rem`,autoFocus:T||K,extraToolbarItems:Y,toolbarTrailing:ee,footerSlot:$,onCaretChange:z.handleCaretChange}),(0,m.jsx)(d.n,{open:z.triggerActive&&z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,onManualKindChange:()=>z.setManualKindOverride(!0),kinds:z.kinds,resources:j,query:z.query,suggestions:z.suggestions,suggestionsByKind:z.suggestionsByKind,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),L&&(0,m.jsx)(a.s,{size:`xs`,type:`error`,children:L}),te&&(0,m.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[Z,X]})]})});function E({label:e,closeLabel:t,onClose:n}){return(0,m.jsxs)(`div`,{className:`bg-muted/40 ring-border/60 flex items-center justify-between rounded px-2.5 py-1.5 ring-1 ring-inset`,children:[(0,m.jsx)(a.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wide`,children:e}),n?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:n,className:`size-4 rounded p-0 text-muted-foreground hover:text-foreground`,"aria-label":t,children:(0,m.jsx)(h.X,{className:`size-3`})}):null]})}function D(e,t){return _(e,{name:t??``})}var O=({strings:e,icon:t,className:r})=>{let i=v(e);return(0,m.jsxs)(`div`,{className:n.cn(`flex flex-col items-center justify-center py-8 text-center`,r),children:[(0,m.jsx)(`div`,{className:`bg-muted/50 mb-3 flex h-12 w-12 items-center justify-center rounded-full`,children:t??(0,m.jsx)(h.MessageCircle,{className:`text-muted-foreground/60 h-5 w-5`})}),(0,m.jsx)(a.s,{weight:`medium`,children:i.empty}),i.emptyHint?(0,m.jsx)(a.s,{size:`xs`,type:`secondary`,className:`mt-1 max-w-[28ch]`,children:i.emptyHint}):null]})};function k(e){return(0,m.jsx)(A,{comment:e})}function A(e){let{comment:t,resources:n,renderReference:r,sanitizer:i}=e,o=t.contentType??t.content_type??`text`;return o===`rich`?j(t.content):o===`html`?(0,m.jsx)(d.o,{html:t.content??``,mentions:t.references,resources:n,renderMention:r,sanitizer:i}):(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(t.content??``)})}function j(e){if(!e)return null;try{let t=JSON.parse(e);return!t||!Array.isArray(t.blocks)||t.blocks.length===0?null:(0,m.jsx)(`div`,{className:`prose prose-sm prose-p:my-0.5 prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline max-w-none space-y-1`,children:t.blocks.map((e,t)=>(0,m.jsx)(f.Fragment,{children:M(e)},e.id??`${e.type}-${t}`))})}catch{return(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(e)})}}function M(e){let t=e.data??{};switch(e.type){case`paragraph`:{let e=String(t.text??``).trim();return e?(0,m.jsx)(a.s,{asHTML:!0,content:e}):null}case`header`:{let e=N(String(t.text??``)),n=Number(t.level??3);return e?(0,f.createElement)(a.o,{tag:`h${Math.min(Math.max(n,1),6)}`},e):null}case`list`:{let e=(Array.isArray(t.items)?t.items:[]).map(e=>N(String(e??``))).filter(e=>e.length>0);return e.length===0?null:t.style===`ordered`?(0,m.jsx)(`ol`,{className:`ml-6 list-decimal space-y-1 text-sm`,children:e.map((e,t)=>(0,m.jsx)(`li`,{children:e},`${e}-${t}`))}):(0,m.jsx)(`ul`,{className:`ml-6 list-disc space-y-1 text-sm`,children:e.map(e=>(0,m.jsx)(`li`,{children:e},e))})}case`quote`:{let e=String(t.text??``).trim();if(!e)return null;let n=N(String(t.caption??``));return(0,m.jsxs)(`blockquote`,{className:`border-muted text-muted-foreground border-l-2 pl-3 text-sm italic`,children:[(0,m.jsx)(a.s,{asHTML:!0,content:e}),n.length>0&&(0,m.jsxs)(`cite`,{className:`text-muted-foreground/80 mt-1 block text-xs not-italic`,children:[`— `,n]})]})}case`delimiter`:return(0,m.jsx)(`div`,{className:`border-muted my-4 border-b border-dashed`,"aria-hidden":`true`});default:{let e=N(String(t.text??``));return e?(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:e}):null}}}function N(e){return e.replace(/<[^>]*>/g,``).trim()}function P(e){if(typeof e!=`string`)return``;let t=e.trim();if(t===``)return``;if(t.startsWith(`{`)||t.startsWith(`[`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1):t}var F=`?`,I=e=>e?.url,L=e=>e?.name,R=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g,` `),z=e=>{try{return(0,p.formatDistanceToNow)(new Date(e),{addSuffix:!0})}catch{return`—`}},B=(0,f.memo)(function({comment:e,canModerate:t,onDelete:s,onPinToggle:c,onReact:u,onReply:d,strings:p,getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x,resources:C,renderAttachment:w,renderReference:T}){let E=v(p),D=y({getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x}),O=D.getMediaUrl??I,k=D.getMediaName??L,j=D.getStatusLabel??R,M=D.formatRelativeTime??z,N=e.user?.name??E.fallbackAuthor,P=e.user?.avatar??void 0,B=(0,f.useMemo)(()=>e.createdAt?M(e.createdAt):`—`,[e.createdAt,M]),V=(0,f.useMemo)(()=>{if(!N)return F;let e=N.trim();return e===``?F:e.charAt(0).toUpperCase()},[N]),H=(0,f.useMemo)(()=>Array.isArray(e.tagsArray)?e.tagsArray.filter(e=>typeof e==`string`):e.tagsArray&&typeof e.tagsArray==`object`?Object.values(e.tagsArray).filter(e=>typeof e==`string`):[],[e.tagsArray]),U=(0,f.useMemo)(()=>(e.attachments??e.media??[]).filter(e=>!!e&&typeof e==`object`),[e.attachments,e.media]),W=e.reactions??[],G=e.isPinned===!0,K=e.isEdited===!0,q=e.status&&e.status!==`active`,J=q&&e.status?j(e.status):null,Y=e.canDelete===!0||t===!0,X=e.canEdit===!0||t===!0,Z=U.length>0;return(0,m.jsx)(`article`,{className:n.cn(`comment-item--component group relative overflow-hidden rounded-lg border transition-colors`,`border-border/60 bg-card hover:bg-muted/30 px-3 py-2.5`),"data-comment-id":e.id,children:(0,m.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,m.jsxs)(l.t,{className:`mt-0.5 size-avatar shrink-0`,children:[!!P&&(0,m.jsx)(l.o,{src:P,alt:N}),(0,m.jsx)(l.r,{className:`bg-muted text-muted-foreground text-xs font-medium`,children:V})]}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,m.jsx)(a.s,{tag:`span`,weight:`semibold`,className:`truncate`,children:N}),!!G&&(0,m.jsx)(i.r,{delayDuration:0,children:(0,m.jsxs)(i.t,{children:[(0,m.jsx)(i.i,{render:(0,m.jsx)(`span`,{className:`inline-flex shrink-0 self-center`}),children:(0,m.jsx)(h.Pin,{className:`text-warning size-3`,"aria-hidden":!0})}),(0,m.jsx)(i.n,{side:`top`,className:`text-xs`,children:E.pinned})]})}),(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:B}),!!K&&(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0`,children:E.edited}),!!q&&!!J&&(0,m.jsx)(o.t,{variant:`secondary`,className:`self-center uppercase tracking-wide`,children:J})]}),(0,m.jsx)(`div`,{className:`mt-1 text-sm leading-relaxed`,children:(0,m.jsx)(A,{comment:e,resources:C,renderReference:T})}),H.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:H.map(e=>(0,m.jsx)(o.t,{variant:`secondary`,className:`uppercase tracking-wide`,children:e},e))}),Z&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:U.map(e=>w?(0,m.jsx)(`div`,{children:w(e)},e.id??e.name):(0,m.jsx)(S,{attachment:e,accessors:{getMediaUrl:O,getMediaName:k},strings:p},e.id??e.name))}),W.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1`,children:W.map(t=>(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:()=>u&&e.id?u(e.id,t.emoji):void 0,title:t.users?.join(`, `),className:`h-auto rounded-full p-0`,children:(0,m.jsxs)(o.t,{variant:t.mine?`primary`:`secondary`,className:`cursor-pointer transition-colors hover:opacity-90`,children:[(0,m.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:t.emoji}),(0,m.jsx)(`span`,{className:`tabular-nums`,children:t.count})]})},t.emoji))})]}),(0,m.jsxs)(`div`,{className:n.cn(`absolute right-2 top-2 opacity-0 transition-opacity`,`group-hover:opacity-100 focus-within:opacity-100`,`inline-flex items-center gap-0.5 rounded-md bg-card/95 shadow-sm ring-1 ring-border/70`),children:[!!d&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&d(e.id),title:E.replyLabel,"aria-label":E.replyLabel,children:(0,m.jsx)(h.CornerDownRight,{className:`size-3.5`})}),!!u&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&u(e.id,`👍`),title:E.addReactionLabel,"aria-label":E.addReactionLabel,children:(0,m.jsx)(h.Smile,{className:`size-3.5`})}),!!c&&t&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>c(e),title:G?E.unpinLabel:E.pinLabel,"aria-label":G?E.unpinLabel:E.pinLabel,children:(0,m.jsx)(h.Pin,{className:n.cn(`size-3.5`,G&&`text-warning`)})}),!!X&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,title:E.editLabel,"aria-label":E.editLabel,children:(0,m.jsx)(h.Pencil,{className:`size-3.5`})}),!!Y&&!!s&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,className:`hover:bg-destructive/10 hover:text-destructive`,onClick:()=>s(e.id),title:E.deleteLabel,"aria-label":E.deleteLabel,children:(0,m.jsx)(h.Trash2,{className:`size-3.5`})})]})]})})}),V=function({comments:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderItem:f,renderAttachment:p,renderReference:h,emptySlot:g}){return e.length?(0,m.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,g)=>{let _=(0,m.jsx)(B,{comment:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderAttachment:p,renderReference:h});return f?(0,m.jsx)(`div`,{children:f({comment:e,canModerate:t??!1,onDelete:n,defaultItem:_})},e.id??`comment-${g}`):(0,m.jsx)(`div`,{children:_},e.id??`comment-${g}`)})}):(0,m.jsx)(m.Fragment,{children:g??(0,m.jsx)(O,{strings:o})})};function H(e){let r=t.r(),i=e.composerPosition??r.composerPosition??`top`,a=e.canComment??!1,o=e.canModerate??!1,c=e.onSubmit,l=e.onDelete,u=e.onPinToggle,d=e.onReact,p=e.onReply,h=e.resources,g=e.attachments,_=v(e.strings),y=e.title===void 0?_.title:e.title,[b,x]=(0,f.useState)({}),[S,C]=(0,f.useState)(!1),[w,E]=(0,f.useState)(0),D={setErrors:e=>x(e),reset:()=>{E(e=>e+1),x({}),C(!1)},setSubmitting:C},k=(0,f.useCallback)(e=>{c&&(C(!0),x({}),c(e,D))},[c]),A=e.composerSlot??(a?(0,m.jsx)(T,{context:e.context,canComment:a,isSubmitting:S,errors:b,resetKey:w,onSubmit:k,strings:e.strings,resources:h,attachments:g}):null),j=(0,m.jsx)(V,{comments:e.comments,canModerate:o,onDelete:l,onPinToggle:u,onReact:d,onReply:p,strings:e.strings,getMediaUrl:e.getMediaUrl,getMediaName:e.getMediaName,getStatusLabel:e.getStatusLabel,formatRelativeTime:e.formatRelativeTime,resources:h,renderItem:e.renderItem,renderAttachment:e.renderAttachment,renderReference:e.renderReference,emptySlot:e.emptySlot??(0,m.jsx)(O,{strings:e.strings})}),M=A?(0,m.jsx)(`div`,{children:A}):null,N=(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.headerSlot,i===`top`&&M,j,i===`bottom`&&M,e.footerSlot]});return e.bare?N:(0,m.jsx)(s.t,{title:y===!1?void 0:y,description:_.subtitle||void 0,padding:`default`,className:n.cn(`comments--component`,e.className),children:N})}var U=H;function W(e={}){let{onSubmit:t,onUpdate:n,onDelete:r}=e,[i,a]=(0,f.useState)({kind:`idle`}),[o,s]=(0,f.useState)(!1),[c,l]=(0,f.useState)({}),[u,d]=(0,f.useState)(0),p={setErrors:e=>l(e),reset:()=>{d(e=>e+1),a({kind:`idle`}),l({})},setSubmitting:s};return{composerMode:i,isSubmitting:o,formErrors:c,resetKey:u,startReply:(0,f.useCallback)(e=>{a({kind:`replying`,commentId:e.id??``,authorName:e.user?.name})},[]),startEdit:(0,f.useCallback)(e=>{a({kind:`editing`,comment:e})},[]),cancelComposerMode:(0,f.useCallback)(()=>{a({kind:`idle`}),l({})},[]),submit:(0,f.useCallback)(e=>{if(s(!0),l({}),i.kind===`editing`&&i.comment.id){if(!n){s(!1);return}n(i.comment.id,e,p);return}if(!t){s(!1);return}t(i.kind===`replying`?{...e,replyToId:i.commentId}:e,p)},[i,t,n]),deleteComment:(0,f.useCallback)(e=>{!r||!e||r(e)},[r]),resetComposer:(0,f.useCallback)(()=>{d(e=>e+1),a({kind:`idle`}),l({})},[]),helpers:p}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return D}});
2
+ //# sourceMappingURL=comments-DAzpeuQq.cjs.map