admin-ui-starter-kit 0.4.3 → 0.4.5

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 (1014) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +10 -0
  2. package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +377 -0
  3. package/CHANGELOG.md +37 -1
  4. package/COMPONENT_SELECTION.md +10 -1
  5. package/INTEGRATION.md +93 -0
  6. package/README.md +95 -1
  7. package/dist/_shared/accordion-Df1XrCDv.cjs +2 -0
  8. package/dist/_shared/accordion-Df1XrCDv.cjs.map +1 -0
  9. package/dist/_shared/accordion-Rzi9wEl6.js +130 -0
  10. package/dist/_shared/accordion-Rzi9wEl6.js.map +1 -0
  11. package/dist/_shared/action-menu-CrOJ63Q9.js +96 -0
  12. package/dist/_shared/action-menu-CrOJ63Q9.js.map +1 -0
  13. package/dist/_shared/action-menu-D9OowHKx.cjs +2 -0
  14. package/dist/_shared/action-menu-D9OowHKx.cjs.map +1 -0
  15. package/dist/_shared/ai-artifact-D4EjKoq6.cjs +3 -0
  16. package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +1 -0
  17. package/dist/_shared/ai-artifact-nlOrSeqT.js +1099 -0
  18. package/dist/_shared/ai-artifact-nlOrSeqT.js.map +1 -0
  19. package/dist/_shared/auth-C5HawWvp.cjs +2 -0
  20. package/dist/_shared/auth-C5HawWvp.cjs.map +1 -0
  21. package/dist/_shared/auth-DnMEJXP9.js +643 -0
  22. package/dist/_shared/auth-DnMEJXP9.js.map +1 -0
  23. package/dist/_shared/badge-6WYAMJwA.js +108 -0
  24. package/dist/_shared/badge-6WYAMJwA.js.map +1 -0
  25. package/dist/_shared/badge-CBof1rbF.cjs +2 -0
  26. package/dist/_shared/badge-CBof1rbF.cjs.map +1 -0
  27. package/dist/_shared/button-BGKY8UY0.js +173 -0
  28. package/dist/_shared/button-BGKY8UY0.js.map +1 -0
  29. package/dist/_shared/button-BI347RlM.cjs +2 -0
  30. package/dist/_shared/button-BI347RlM.cjs.map +1 -0
  31. package/dist/_shared/button-DEFoa7-c.cjs +2 -0
  32. package/dist/_shared/button-DEFoa7-c.cjs.map +1 -0
  33. package/dist/_shared/button-DlqryxqA.js +46 -0
  34. package/dist/_shared/button-DlqryxqA.js.map +1 -0
  35. package/dist/_shared/buttons-PL-TGJ32.js +143 -0
  36. package/dist/_shared/buttons-PL-TGJ32.js.map +1 -0
  37. package/dist/_shared/buttons-kVvSD_oI.cjs +2 -0
  38. package/dist/_shared/buttons-kVvSD_oI.cjs.map +1 -0
  39. package/dist/_shared/combobox-B4KmDZK0.cjs +2 -0
  40. package/dist/_shared/combobox-B4KmDZK0.cjs.map +1 -0
  41. package/dist/_shared/combobox-YUGi3xSc.js +810 -0
  42. package/dist/_shared/combobox-YUGi3xSc.js.map +1 -0
  43. package/dist/_shared/comments-GzXdwpq4.js +952 -0
  44. package/dist/_shared/comments-GzXdwpq4.js.map +1 -0
  45. package/dist/_shared/comments-Zj_foV1V.cjs +2 -0
  46. package/dist/_shared/comments-Zj_foV1V.cjs.map +1 -0
  47. package/dist/_shared/date-picker-Dl91BM3D.js +1361 -0
  48. package/dist/_shared/date-picker-Dl91BM3D.js.map +1 -0
  49. package/dist/_shared/date-picker-zFOqtmAS.cjs +2 -0
  50. package/dist/_shared/date-picker-zFOqtmAS.cjs.map +1 -0
  51. package/dist/_shared/date-pickers-BBydcIjN.cjs +2 -0
  52. package/dist/_shared/date-pickers-BBydcIjN.cjs.map +1 -0
  53. package/dist/_shared/date-pickers-D2OsgV4V.js +330 -0
  54. package/dist/_shared/date-pickers-D2OsgV4V.js.map +1 -0
  55. package/dist/_shared/dialog-CCN4tjU9.js +101 -0
  56. package/dist/_shared/dialog-CCN4tjU9.js.map +1 -0
  57. package/dist/_shared/dialog-Dd0ENSrU.cjs +2 -0
  58. package/dist/_shared/dialog-Dd0ENSrU.cjs.map +1 -0
  59. package/dist/_shared/display-Dhy5ogxC.cjs +2 -0
  60. package/dist/_shared/display-Dhy5ogxC.cjs.map +1 -0
  61. package/dist/_shared/display-NBtWdAMl.js +1154 -0
  62. package/dist/_shared/display-NBtWdAMl.js.map +1 -0
  63. package/dist/_shared/forms-BweX9Lm8.cjs +2 -0
  64. package/dist/_shared/forms-BweX9Lm8.cjs.map +1 -0
  65. package/dist/_shared/forms-L1hyNKpZ.js +3430 -0
  66. package/dist/_shared/forms-L1hyNKpZ.js.map +1 -0
  67. package/dist/_shared/header-BSBPtGn4.cjs +2 -0
  68. package/dist/_shared/header-BSBPtGn4.cjs.map +1 -0
  69. package/dist/_shared/header-No6GSp4R.js +360 -0
  70. package/dist/_shared/header-No6GSp4R.js.map +1 -0
  71. package/dist/_shared/hooks-BkXvZ4py.js +118 -0
  72. package/dist/_shared/hooks-BkXvZ4py.js.map +1 -0
  73. package/dist/_shared/hooks-D3SbLBRk.cjs +2 -0
  74. package/dist/_shared/hooks-D3SbLBRk.cjs.map +1 -0
  75. package/dist/_shared/mentions-CA1Ka_Bv.cjs +2 -0
  76. package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +1 -0
  77. package/dist/_shared/mentions-CdvvLGQG.js +506 -0
  78. package/dist/_shared/mentions-CdvvLGQG.js.map +1 -0
  79. package/dist/_shared/metadata-Ckcmar8d.js +235 -0
  80. package/dist/_shared/metadata-Ckcmar8d.js.map +1 -0
  81. package/dist/_shared/metadata-DamdYVZL.cjs +2 -0
  82. package/dist/_shared/metadata-DamdYVZL.cjs.map +1 -0
  83. package/dist/_shared/navigation-BemwPPC8.cjs +2 -0
  84. package/dist/_shared/navigation-BemwPPC8.cjs.map +1 -0
  85. package/dist/_shared/navigation-DY540HB0.js +419 -0
  86. package/dist/_shared/navigation-DY540HB0.js.map +1 -0
  87. package/dist/_shared/overlays-CJs_syAu.js +648 -0
  88. package/dist/_shared/overlays-CJs_syAu.js.map +1 -0
  89. package/dist/_shared/overlays-DWFEaAog.cjs +2 -0
  90. package/dist/_shared/overlays-DWFEaAog.cjs.map +1 -0
  91. package/dist/_shared/page-Cg_gNpyK.js +262 -0
  92. package/dist/_shared/page-Cg_gNpyK.js.map +1 -0
  93. package/dist/_shared/page-CpFWQuWU.cjs +2 -0
  94. package/dist/_shared/page-CpFWQuWU.cjs.map +1 -0
  95. package/dist/_shared/rich-text-editor-B2VqNi6j.js +620 -0
  96. package/dist/_shared/rich-text-editor-B2VqNi6j.js.map +1 -0
  97. package/dist/_shared/rich-text-editor-ChE-pI3N.cjs +2 -0
  98. package/dist/_shared/rich-text-editor-ChE-pI3N.cjs.map +1 -0
  99. package/dist/_shared/sheet-BOgUA4fC.cjs +2 -0
  100. package/dist/_shared/sheet-BOgUA4fC.cjs.map +1 -0
  101. package/dist/_shared/sheet-DWQuyRRz.js +100 -0
  102. package/dist/_shared/sheet-DWQuyRRz.js.map +1 -0
  103. package/dist/_shared/sidebar-BGpi9K_Q.js +389 -0
  104. package/dist/_shared/sidebar-BGpi9K_Q.js.map +1 -0
  105. package/dist/_shared/sidebar-BTFfxmNG.cjs +2 -0
  106. package/dist/_shared/sidebar-BTFfxmNG.cjs.map +1 -0
  107. package/dist/_shared/sidebar-CC3lcvNX.cjs +2 -0
  108. package/dist/_shared/sidebar-CC3lcvNX.cjs.map +1 -0
  109. package/dist/_shared/sidebar-wmztVpnO.js +538 -0
  110. package/dist/_shared/sidebar-wmztVpnO.js.map +1 -0
  111. package/dist/_shared/smart-card-B6m7tmt0.cjs +2 -0
  112. package/dist/_shared/smart-card-B6m7tmt0.cjs.map +1 -0
  113. package/dist/_shared/smart-card-thLb85Ih.js +361 -0
  114. package/dist/_shared/smart-card-thLb85Ih.js.map +1 -0
  115. package/dist/_shared/table-BItnJ8lG.cjs +2 -0
  116. package/dist/_shared/table-BItnJ8lG.cjs.map +1 -0
  117. package/dist/_shared/table-D3349b-v.js +1189 -0
  118. package/dist/_shared/table-D3349b-v.js.map +1 -0
  119. package/dist/_shared/workspace-BGVeTeJy.js +357 -0
  120. package/dist/_shared/workspace-BGVeTeJy.js.map +1 -0
  121. package/dist/_shared/workspace-CWyzTUmE.cjs +2 -0
  122. package/dist/_shared/workspace-CWyzTUmE.cjs.map +1 -0
  123. package/dist/components/base/accordion/index.cjs +1 -1
  124. package/dist/components/base/accordion/index.js +1 -1
  125. package/dist/components/base/badge/index.cjs +1 -1
  126. package/dist/components/base/badge/index.js +1 -1
  127. package/dist/components/base/buttons/index.cjs +1 -1
  128. package/dist/components/base/buttons/index.js +2 -2
  129. package/dist/components/base/cards/index.cjs +1 -1
  130. package/dist/components/base/cards/index.js +1 -1
  131. package/dist/components/base/carousel/index.cjs +1 -1
  132. package/dist/components/base/carousel/index.js +1 -1
  133. package/dist/components/base/combobox/index.cjs +1 -1
  134. package/dist/components/base/combobox/index.js +1 -1
  135. package/dist/components/base/date-pickers/index.cjs +1 -1
  136. package/dist/components/base/date-pickers/index.js +2 -2
  137. package/dist/components/base/display/alert.d.ts +1 -1
  138. package/dist/components/base/display/index.cjs +1 -1
  139. package/dist/components/base/display/index.js +6 -6
  140. package/dist/components/base/display/metadata/index.cjs +1 -1
  141. package/dist/components/base/display/metadata/index.js +1 -1
  142. package/dist/components/base/event-calendar/index.cjs +1 -1
  143. package/dist/components/base/event-calendar/index.js +41 -41
  144. package/dist/components/base/forms/index.cjs +1 -1
  145. package/dist/components/base/forms/index.js +1 -1
  146. package/dist/components/base/map/index.cjs +1 -1
  147. package/dist/components/base/map/index.js +31 -31
  148. package/dist/components/base/navigation/index.cjs +1 -1
  149. package/dist/components/base/navigation/index.js +2 -2
  150. package/dist/components/base/sheet/index.cjs +1 -1
  151. package/dist/components/base/sheet/index.js +1 -1
  152. package/dist/components/base/sidebar/index.cjs +1 -1
  153. package/dist/components/base/sidebar/index.js +1 -1
  154. package/dist/components/base/table/index.cjs +1 -1
  155. package/dist/components/base/table/index.js +1 -1
  156. package/dist/components/composed/admin/index.cjs +1 -1
  157. package/dist/components/composed/admin/index.js +47 -47
  158. package/dist/components/composed/ai/index.cjs +1 -1
  159. package/dist/components/composed/ai/index.js +105 -105
  160. package/dist/components/composed/analytics/index.cjs +1 -1
  161. package/dist/components/composed/analytics/index.js +89 -89
  162. package/dist/components/composed/cards/index.cjs +1 -1
  163. package/dist/components/composed/cards/index.js +116 -116
  164. package/dist/components/composed/commerce/index.cjs +1 -1
  165. package/dist/components/composed/commerce/index.js +127 -127
  166. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  167. package/dist/components/composed/dark-surfaces/index.js +37 -37
  168. package/dist/components/composed/data-display/index.cjs +1 -1
  169. package/dist/components/composed/data-display/index.js +3 -3
  170. package/dist/components/composed/navigation/index.cjs +1 -1
  171. package/dist/components/composed/navigation/index.js +55 -55
  172. package/dist/components/composed/onboarding/index.cjs +1 -1
  173. package/dist/components/composed/onboarding/index.js +1 -1
  174. package/dist/components/composed/timelines/index.cjs +1 -1
  175. package/dist/components/composed/timelines/index.js +2 -2
  176. package/dist/components/features/activities/index.cjs +1 -1
  177. package/dist/components/features/activities/index.js +56 -56
  178. package/dist/components/features/ai-chat/index.cjs +2 -2
  179. package/dist/components/features/ai-chat/index.js +53 -53
  180. package/dist/components/features/card/index.cjs +1 -1
  181. package/dist/components/features/card/index.js +21 -21
  182. package/dist/components/features/comments/index.cjs +1 -1
  183. package/dist/components/features/comments/index.js +2 -2
  184. package/dist/components/features/event-log/index.cjs +1 -1
  185. package/dist/components/features/event-log/index.js +3 -3
  186. package/dist/components/features/filters/index.cjs +1 -1
  187. package/dist/components/features/filters/index.js +143 -143
  188. package/dist/components/features/global-search/index.cjs +1 -1
  189. package/dist/components/features/global-search/index.js +57 -57
  190. package/dist/components/features/kanban/index.cjs +1 -1
  191. package/dist/components/features/kanban/index.js +14 -14
  192. package/dist/components/features/media-library/index.cjs +1 -1
  193. package/dist/components/features/media-library/index.js +178 -178
  194. package/dist/components/features/mentions/index.cjs +1 -1
  195. package/dist/components/features/mentions/index.js +1 -1
  196. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  197. package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -1
  198. package/dist/components/features/overlays/drawer.d.ts +1 -1
  199. package/dist/components/features/overlays/drawer.d.ts.map +1 -1
  200. package/dist/components/features/overlays/index.cjs +1 -1
  201. package/dist/components/features/overlays/index.js +1 -1
  202. package/dist/components/features/overlays/overlays.types.d.ts +1 -0
  203. package/dist/components/features/overlays/overlays.types.d.ts.map +1 -1
  204. package/dist/components/features/products/index.cjs +1 -1
  205. package/dist/components/features/products/index.js +124 -124
  206. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  207. package/dist/components/features/rich-text-editor/index.js +1 -1
  208. package/dist/components/features/schema-form/index.cjs +1 -1
  209. package/dist/components/features/schema-form/index.js +26 -26
  210. package/dist/components/features/suggestions/index.cjs +1 -1
  211. package/dist/components/features/suggestions/index.js +1 -1
  212. package/dist/components/layout/auth/index.cjs +1 -1
  213. package/dist/components/layout/auth/index.js +1 -1
  214. package/dist/components/layout/header/index.cjs +1 -1
  215. package/dist/components/layout/header/index.js +1 -1
  216. package/dist/components/layout/hooks/index.cjs +1 -1
  217. package/dist/components/layout/hooks/index.js +1 -1
  218. package/dist/components/layout/index.cjs +1 -1
  219. package/dist/components/layout/index.js +6 -6
  220. package/dist/components/layout/page/index.cjs +1 -1
  221. package/dist/components/layout/page/index.js +1 -1
  222. package/dist/components/layout/sidebar/index.cjs +1 -1
  223. package/dist/components/layout/sidebar/index.js +2 -2
  224. package/dist/components/layout/workspace/index.cjs +1 -1
  225. package/dist/components/layout/workspace/index.js +1 -1
  226. package/dist/components/ui/alert.d.ts +1 -1
  227. package/dist/components/ui/badge.d.ts +1 -1
  228. package/dist/components/ui/button.d.ts +1 -1
  229. package/dist/services/actions/action-adapters.d.ts +97 -0
  230. package/dist/services/actions/action-adapters.d.ts.map +1 -0
  231. package/dist/services/actions/action-overlay-outlet.d.ts +4 -0
  232. package/dist/services/actions/action-overlay-outlet.d.ts.map +1 -0
  233. package/dist/services/actions/action-provider.d.ts +8 -0
  234. package/dist/services/actions/action-provider.d.ts.map +1 -0
  235. package/dist/services/actions/action-scope.d.ts +4 -0
  236. package/dist/services/actions/action-scope.d.ts.map +1 -0
  237. package/dist/services/actions/action-store.d.ts +56 -0
  238. package/dist/services/actions/action-store.d.ts.map +1 -0
  239. package/dist/services/actions/actions.strings.d.ts +3 -0
  240. package/dist/services/actions/actions.strings.d.ts.map +1 -0
  241. package/dist/services/actions/actions.types.d.ts +309 -0
  242. package/dist/services/actions/actions.types.d.ts.map +1 -0
  243. package/dist/services/actions/hooks.d.ts +9 -0
  244. package/dist/services/actions/hooks.d.ts.map +1 -0
  245. package/dist/services/actions/index.cjs +2 -0
  246. package/dist/services/actions/index.cjs.map +1 -0
  247. package/dist/services/actions/index.d.ts +9 -0
  248. package/dist/services/actions/index.d.ts.map +1 -0
  249. package/dist/services/actions/index.js +844 -0
  250. package/dist/services/actions/index.js.map +1 -0
  251. package/dist/showcase/assets/AreaChart-BYEewdc_.js +6 -0
  252. package/dist/showcase/assets/CompositeItem-Duekeg4m.js +1 -0
  253. package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +1 -0
  254. package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +1 -0
  255. package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +1 -0
  256. package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +1 -0
  257. package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +1 -0
  258. package/dist/showcase/assets/Separator-9PWX3shz.js +1 -0
  259. package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +1 -0
  260. package/dist/showcase/assets/accordion-CfqHO9_z.js +171 -0
  261. package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +1 -0
  262. package/dist/showcase/assets/action-menu-DFzSuDjI.js +1 -0
  263. package/dist/showcase/assets/activities-Bo97b2-I.js +501 -0
  264. package/dist/showcase/assets/activities-feed-card-D77gf27B.js +1 -0
  265. package/dist/showcase/assets/activity-BUlCWLI8.js +1 -0
  266. package/dist/showcase/assets/admin-CxTV4kZX.js +80 -0
  267. package/dist/showcase/assets/ai-Bym5H8bn.js +41 -0
  268. package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +2 -0
  269. package/dist/showcase/assets/ai-chat-M3X5-PgT.js +568 -0
  270. package/dist/showcase/assets/ai-elements-DjppcMBD.js +387 -0
  271. package/dist/showcase/assets/ai-new-CXnrIi5S.js +167 -0
  272. package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +1 -0
  273. package/dist/showcase/assets/alert-D6Pygy2s.js +62 -0
  274. package/dist/showcase/assets/alert-DCrWLbEx.js +93 -0
  275. package/dist/showcase/assets/alert-qTNM0vld.js +1 -0
  276. package/dist/showcase/assets/api-key-list-CCpuHYHc.js +73 -0
  277. package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +1 -0
  278. package/dist/showcase/assets/arrow-down--phuskCV.js +1 -0
  279. package/dist/showcase/assets/arrow-left-B__WWqyA.js +1 -0
  280. package/dist/showcase/assets/arrow-right-1-EvXxjB.js +1 -0
  281. package/dist/showcase/assets/arrow-up-lWotnmo7.js +1 -0
  282. package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +1 -0
  283. package/dist/showcase/assets/avatar-gugtNx4D.js +57 -0
  284. package/dist/showcase/assets/avatar-n1nywTlx.js +1 -0
  285. package/dist/showcase/assets/badge-TuE-u3Hv.js +28 -0
  286. package/dist/showcase/assets/badge-check-CPDvpVzK.js +1 -0
  287. package/dist/showcase/assets/bell-DeCVddCA.js +1 -0
  288. package/dist/showcase/assets/bot-B_vzJEJH.js +1 -0
  289. package/dist/showcase/assets/box-z4O8t_K5.js +1 -0
  290. package/dist/showcase/assets/brain-DdKBE4Bh.js +1 -0
  291. package/dist/showcase/assets/brand-CfW7mgTY.js +36 -0
  292. package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +52 -0
  293. package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +1 -0
  294. package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +1 -0
  295. package/dist/showcase/assets/briefcase-ClqzeNt3.js +1 -0
  296. package/dist/showcase/assets/building-2-BQuWgjZj.js +1 -0
  297. package/dist/showcase/assets/button-CWKNCI82.js +44 -0
  298. package/dist/showcase/assets/button-group-BYhxtFwV.js +1 -0
  299. package/dist/showcase/assets/buttons-mBRyBw3Q.js +270 -0
  300. package/dist/showcase/assets/calendar-BgloJjlW.js +1 -0
  301. package/dist/showcase/assets/calendar-CJDWspzi.js +1 -0
  302. package/dist/showcase/assets/calendar-CgML2kJt.js +16 -0
  303. package/dist/showcase/assets/calendar-days-C0gTLVnY.js +1 -0
  304. package/dist/showcase/assets/camera-nIlaz4Sn.js +1 -0
  305. package/dist/showcase/assets/card-1ncRnRvq.js +1 -0
  306. package/dist/showcase/assets/card-CcgWzFB-.js +188 -0
  307. package/dist/showcase/assets/card-primitives-By4-RTuP.js +1 -0
  308. package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +1 -0
  309. package/dist/showcase/assets/cards-DdqQr8rY.js +328 -0
  310. package/dist/showcase/assets/carousel-CV8ltDl8.js +449 -0
  311. package/dist/showcase/assets/chart-BNzHjskC.js +358 -0
  312. package/dist/showcase/assets/chart-column-CpTxRLEH.js +1 -0
  313. package/dist/showcase/assets/checkbox-CZTTm4Dv.js +1 -0
  314. package/dist/showcase/assets/chevron-down-LWBNHe9S.js +1 -0
  315. package/dist/showcase/assets/chevron-left-BsshO7nf.js +1 -0
  316. package/dist/showcase/assets/chevron-right-t68um2_G.js +1 -0
  317. package/dist/showcase/assets/chevron-up-DjhlESJB.js +1 -0
  318. package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +1 -0
  319. package/dist/showcase/assets/circle-BL52dLr9.js +1 -0
  320. package/dist/showcase/assets/circle-alert-CXCt6zxc.js +1 -0
  321. package/dist/showcase/assets/circle-check-CbiRRw7s.js +1 -0
  322. package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +1 -0
  323. package/dist/showcase/assets/circle-dot-WEOpGGJf.js +1 -0
  324. package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +1 -0
  325. package/dist/showcase/assets/circle-x-BT9TJbJC.js +1 -0
  326. package/dist/showcase/assets/clock-3-CfRK8ckc.js +1 -0
  327. package/dist/showcase/assets/clock-D-3zf0c1.js +1 -0
  328. package/dist/showcase/assets/code-xml-CQYKKuBU.js +1 -0
  329. package/dist/showcase/assets/collapsible-BC0hQvat.js +27 -0
  330. package/dist/showcase/assets/collapsible-CRVtVDCF.js +1 -0
  331. package/dist/showcase/assets/combobox-D4VYvYCT.js +696 -0
  332. package/dist/showcase/assets/command-CxeHT4lL.js +1 -0
  333. package/dist/showcase/assets/command-Do_t_Zou.js +1 -0
  334. package/dist/showcase/assets/comment-composer-DoFwvVlq.js +1 -0
  335. package/dist/showcase/assets/comment-item-CT8UbVeg.js +1 -0
  336. package/dist/showcase/assets/comments-CqdXrjUn.js +357 -0
  337. package/dist/showcase/assets/commerce-B9V2Wo_q.js +79 -0
  338. package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +189 -0
  339. package/dist/showcase/assets/composite-BXLXcagx.js +1 -0
  340. package/dist/showcase/assets/contact-card-BLcAXepj.js +65 -0
  341. package/dist/showcase/assets/content-container-DJVD3ZmI.js +1 -0
  342. package/dist/showcase/assets/copyable-od17NrMu.js +96 -0
  343. package/dist/showcase/assets/course-card-CdZQr5yy.js +77 -0
  344. package/dist/showcase/assets/cpu-B8kRNR1R.js +1 -0
  345. package/dist/showcase/assets/credit-card-BYMQj03s.js +1 -0
  346. package/dist/showcase/assets/currency-Cxv3Cp6B.js +149 -0
  347. package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +90 -0
  348. package/dist/showcase/assets/database-DuUABvxU.js +1 -0
  349. package/dist/showcase/assets/date-block-E9qfY7W7.js +1 -0
  350. package/dist/showcase/assets/date-picker-I8BdaiiU.js +1 -0
  351. package/dist/showcase/assets/date-pickers-BLJaqhcS.js +73 -0
  352. package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +106 -0
  353. package/dist/showcase/assets/dialog-BuatDnQ9.js +1 -0
  354. package/dist/showcase/assets/dialog-DCx-LydW.js +1 -0
  355. package/dist/showcase/assets/display-Bt7busw5.js +403 -0
  356. package/dist/showcase/assets/dist-BPyBHOXU.js +45 -0
  357. package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +1 -0
  358. package/dist/showcase/assets/download-B2JAmHmJ.js +1 -0
  359. package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +1 -0
  360. package/dist/showcase/assets/dropzone-BKIxDJNy.js +1 -0
  361. package/dist/showcase/assets/earth-7-Z3Gv2v.js +1 -0
  362. package/dist/showcase/assets/ellipsis-6Krb3RRW.js +1 -0
  363. package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +1 -0
  364. package/dist/showcase/assets/empty-BSYKaeXQ.js +1 -0
  365. package/dist/showcase/assets/empty-item-YElgv25f.js +49 -0
  366. package/dist/showcase/assets/empty-state-D-LrvnKF.js +1 -0
  367. package/dist/showcase/assets/empty-state-dNh1GtVU.js +188 -0
  368. package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +361 -0
  369. package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +1 -0
  370. package/dist/showcase/assets/event-calendar-CcSi7g5A.js +138 -0
  371. package/dist/showcase/assets/event-log-2uq-eYxh.js +330 -0
  372. package/dist/showcase/assets/example-CTJ8AdNR.js +1 -0
  373. package/dist/showcase/assets/external-link-D0gqSa1q.js +1 -0
  374. package/dist/showcase/assets/eye-CDMCDLei.js +1 -0
  375. package/dist/showcase/assets/feature-announcement-BlyNck35.js +34 -0
  376. package/dist/showcase/assets/file-Y5EbzufX.js +1 -0
  377. package/dist/showcase/assets/file-text-DH1mBuPi.js +1 -0
  378. package/dist/showcase/assets/filters-BtHF4GSM.js +78 -0
  379. package/dist/showcase/assets/flag-CJ08LwLY.js +1 -0
  380. package/dist/showcase/assets/folder-open-DODo2pjy.js +1 -0
  381. package/dist/showcase/assets/form-field-CHY7jh1q.js +1 -0
  382. package/dist/showcase/assets/format-DYJqAuDM.js +1 -0
  383. package/dist/showcase/assets/forms-DgvQQXHO.js +862 -0
  384. package/dist/showcase/assets/frame-CdKicP4A.js +167 -0
  385. package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +1 -0
  386. package/dist/showcase/assets/gift-DD8O7cld.js +1 -0
  387. package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +85 -0
  388. package/dist/showcase/assets/git-branch-DZq1Vo2G.js +1 -0
  389. package/dist/showcase/assets/global-search-BqDotXql.js +215 -0
  390. package/dist/showcase/assets/global-search-PH6LXqZw.js +1 -0
  391. package/dist/showcase/assets/globe-mRTwrUxM.js +1 -0
  392. package/dist/showcase/assets/gradient-card-CaL88YKv.js +58 -0
  393. package/dist/showcase/assets/hash-DuqvHQHv.js +1 -0
  394. package/dist/showcase/assets/header-CiNgDop3.js +1 -0
  395. package/dist/showcase/assets/header-notifications-B9XMBsK_.js +1 -0
  396. package/dist/showcase/assets/heart-DsGJfnDx.js +1 -0
  397. package/dist/showcase/assets/house-B504aFIP.js +1 -0
  398. package/dist/showcase/assets/icon-badge-DMNu8xb5.js +1 -0
  399. package/dist/showcase/assets/image-C3DaMxmn.js +1 -0
  400. package/dist/showcase/assets/inbox-BWKQMLMx.js +1 -0
  401. package/dist/showcase/assets/index-DaYVSqKu.js +10 -0
  402. package/dist/showcase/assets/inertValue-DrtTkMGx.js +1 -0
  403. package/dist/showcase/assets/info-_FrGoCay.js +1 -0
  404. package/dist/showcase/assets/inline-stat-BYu-tiUU.js +1 -0
  405. package/dist/showcase/assets/input-C96HMHWR.js +1 -0
  406. package/dist/showcase/assets/input-fMPi7XxI.js +1 -0
  407. package/dist/showcase/assets/input-group-BZnSgFCn.js +47 -0
  408. package/dist/showcase/assets/input-group-CVONNP3T.js +1 -0
  409. package/dist/showcase/assets/inputs-Blh0LJ8-.js +155 -0
  410. package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +36 -0
  411. package/dist/showcase/assets/invoice-items-OVIrbG0k.js +36 -0
  412. package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +14 -0
  413. package/dist/showcase/assets/invoice-table-BXd_HhUg.js +30 -0
  414. package/dist/showcase/assets/isSameDay-NBVO9AKF.js +1 -0
  415. package/dist/showcase/assets/isToday-Bk5HMXWn.js +1 -0
  416. package/dist/showcase/assets/italic-BOv5bW4H.js +1 -0
  417. package/dist/showcase/assets/item-B4rdcVVp.js +134 -0
  418. package/dist/showcase/assets/item-BVt0zZ12.js +1 -0
  419. package/dist/showcase/assets/item-C4Xk3DC1.js +1 -0
  420. package/dist/showcase/assets/kanban-BXbelelR.js +186 -0
  421. package/dist/showcase/assets/label-Cv6wotdv.js +1 -0
  422. package/dist/showcase/assets/languages-BofyvcCF.js +1 -0
  423. package/dist/showcase/assets/layers-DJK0t5px.js +1 -0
  424. package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +608 -0
  425. package/dist/showcase/assets/layout-auth-BTvSTwUz.js +754 -0
  426. package/dist/showcase/assets/layout-containers-PMuo__2O.js +101 -0
  427. package/dist/showcase/assets/layout-header-DQ3zeCHz.js +170 -0
  428. package/dist/showcase/assets/layout-page-CbvWdHrK.js +122 -0
  429. package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +34 -0
  430. package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +224 -0
  431. package/dist/showcase/assets/layout-users-Cypq-42s.js +117 -0
  432. package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +183 -0
  433. package/dist/showcase/assets/lock-DXmvLEEx.js +1 -0
  434. package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +1 -0
  435. package/dist/showcase/assets/mail-CXVFHkzh.js +1 -0
  436. package/dist/showcase/assets/mail-check-BNEu3j2a.js +1 -0
  437. package/dist/showcase/assets/map-DnE1pFCQ.js +124 -0
  438. package/dist/showcase/assets/map-pin-CpOVa8IH.js +1 -0
  439. package/dist/showcase/assets/media-library-C-KfEvm4.js +695 -0
  440. package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +1 -0
  441. package/dist/showcase/assets/mentions-C8ZdNFuC.js +138 -0
  442. package/dist/showcase/assets/menus-B8yUL75K.js +165 -0
  443. package/dist/showcase/assets/message-square-DNOTaOFs.js +1 -0
  444. package/dist/showcase/assets/metadata-list-BQAanxM-.js +1 -0
  445. package/dist/showcase/assets/metadata-list-DL9qgDAp.js +288 -0
  446. package/dist/showcase/assets/metric-CYi09Ltx.js +1 -0
  447. package/dist/showcase/assets/metric-bar-CQH1z8T3.js +1 -0
  448. package/dist/showcase/assets/metric-grid-H1ixqMCI.js +1 -0
  449. package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +1 -0
  450. package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +44 -0
  451. package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +50 -0
  452. package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +76 -0
  453. package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +27 -0
  454. package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +17 -0
  455. package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +31 -0
  456. package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +42 -0
  457. package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +192 -0
  458. package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +54 -0
  459. package/dist/showcase/assets/minus-20OTSSxf.js +1 -0
  460. package/dist/showcase/assets/money-display-BoiAMxH8.js +1 -0
  461. package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +1 -0
  462. package/dist/showcase/assets/navigation-B8d2CDU6.js +90 -0
  463. package/dist/showcase/assets/navigation-D16JX3kL.js +230 -0
  464. package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +43 -0
  465. package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +119 -0
  466. package/dist/showcase/assets/overlays-CzlSqbFz.js +408 -0
  467. package/dist/showcase/assets/overlays-DUFqbkb9.js +159 -0
  468. package/dist/showcase/assets/package-BCXIwEPz.js +1 -0
  469. package/dist/showcase/assets/package-check-Ol-Cw3j-.js +1 -0
  470. package/dist/showcase/assets/page-action-button-DpzdSYvw.js +1 -0
  471. package/dist/showcase/assets/page-header-B_b7SqW8.js +1 -0
  472. package/dist/showcase/assets/pagination-BPDQo9Dl.js +1 -0
  473. package/dist/showcase/assets/pagination-PvkEX0qs.js +42 -0
  474. package/dist/showcase/assets/paperclip-CznEsmLN.js +1 -0
  475. package/dist/showcase/assets/password-input-CWMY5q3b.js +1 -0
  476. package/dist/showcase/assets/pencil-Cl9qi90g.js +1 -0
  477. package/dist/showcase/assets/phone-DbvK_QQJ.js +1 -0
  478. package/dist/showcase/assets/plus-CO8t66Yo.js +1 -0
  479. package/dist/showcase/assets/popover-3QIVx9lU.js +1 -0
  480. package/dist/showcase/assets/popover-Cyg9oYIU.js +1 -0
  481. package/dist/showcase/assets/popover-menu-DJPHeIL1.js +1 -0
  482. package/dist/showcase/assets/products-WsU-qdMz.js +407 -0
  483. package/dist/showcase/assets/progress-C61sf-qt.js +1 -0
  484. package/dist/showcase/assets/progress-PvTl8Fgf.js +18 -0
  485. package/dist/showcase/assets/props-table-C8la6vcG.js +1 -0
  486. package/dist/showcase/assets/props.generated-vFrhDrth.json +38618 -0
  487. package/dist/showcase/assets/quote-N1_lRDnX.js +1 -0
  488. package/dist/showcase/assets/receipt-C6a_WyLu.js +1 -0
  489. package/dist/showcase/assets/receipt-text-CDOh8FAv.js +1 -0
  490. package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +1 -0
  491. package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +1 -0
  492. package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +143 -0
  493. package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +124 -0
  494. package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +1 -0
  495. package/dist/showcase/assets/save-DDmFSQli.js +1 -0
  496. package/dist/showcase/assets/schema-form-B7naqMvv.js +325 -0
  497. package/dist/showcase/assets/scroll-area-CdaYm4UK.js +32 -0
  498. package/dist/showcase/assets/scroll-area-DwWSHYHB.js +1 -0
  499. package/dist/showcase/assets/select-CNzpb5ug.js +1 -0
  500. package/dist/showcase/assets/select-DBXZ_Wzf.js +1 -0
  501. package/dist/showcase/assets/send-eDm7YMmA.js +1 -0
  502. package/dist/showcase/assets/separator-4IC9ED7s.js +1 -0
  503. package/dist/showcase/assets/separator-DPGDsZpG.js +28 -0
  504. package/dist/showcase/assets/settings-IANZGo2i.js +1 -0
  505. package/dist/showcase/assets/sheet-2oCce5ae.js +1 -0
  506. package/dist/showcase/assets/shield-CDZhhvFW.js +1 -0
  507. package/dist/showcase/assets/shield-alert-5hL3sdf3.js +1 -0
  508. package/dist/showcase/assets/shield-check-CaO2dhVS.js +1 -0
  509. package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +1 -0
  510. package/dist/showcase/assets/sidebar-Cds60-PS.js +1 -0
  511. package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +1 -0
  512. package/dist/showcase/assets/skeleton-2HajJKO4.js +29 -0
  513. package/dist/showcase/assets/skeleton-CGEJwPdD.js +1 -0
  514. package/dist/showcase/assets/slider-BjQViBR0.js +1 -0
  515. package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +1 -0
  516. package/dist/showcase/assets/smart-card-CHouYi8U.js +1 -0
  517. package/dist/showcase/assets/sonner-Cog559j7.js +22 -0
  518. package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +5 -0
  519. package/dist/showcase/assets/sparkles-B18eTHVN.js +1 -0
  520. package/dist/showcase/assets/spinner-BSI97i4D.js +1 -0
  521. package/dist/showcase/assets/spinner-D0WhVyye.js +30 -0
  522. package/dist/showcase/assets/spinner-DQmJ7k9y.js +49 -0
  523. package/dist/showcase/assets/square-pen-CLyDWdhj.js +1 -0
  524. package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +1 -0
  525. package/dist/showcase/assets/star-C3mhkpSK.js +1 -0
  526. package/dist/showcase/assets/startOfDay-ECIxhJGC.js +1 -0
  527. package/dist/showcase/assets/styles-CDD7mDye.js +1 -0
  528. package/dist/showcase/assets/suggestions-DOW6NBJp.js +126 -0
  529. package/dist/showcase/assets/switch-D59YKmf6.js +1 -0
  530. package/dist/showcase/assets/switch-NICmdoPn.js +1 -0
  531. package/dist/showcase/assets/sync-B8nBZXQ9.js +107 -0
  532. package/dist/showcase/assets/table-CckompuR.js +382 -0
  533. package/dist/showcase/assets/table-DtA4-Q0p.js +1 -0
  534. package/dist/showcase/assets/table-actions-DdoPJTMy.js +1 -0
  535. package/dist/showcase/assets/tabs-BrC_HxL_.js +1 -0
  536. package/dist/showcase/assets/tabs-UVxr80vY.js +19 -0
  537. package/dist/showcase/assets/tags-input-iDfvhzZD.js +1 -0
  538. package/dist/showcase/assets/text-button-DHFCLCoc.js +1 -0
  539. package/dist/showcase/assets/text-link-nCLLDcS_.js +1 -0
  540. package/dist/showcase/assets/textarea-DsSuQHQY.js +1 -0
  541. package/dist/showcase/assets/textarea-DyGI3Kcn.js +1 -0
  542. package/dist/showcase/assets/timelines-JmMcH657.js +200 -0
  543. package/dist/showcase/assets/toggle-group-BZKzMmC8.js +1 -0
  544. package/dist/showcase/assets/toggles-BSJvy4Tw.js +71 -0
  545. package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +32 -0
  546. package/dist/showcase/assets/trash-2-C9AC7Pcv.js +1 -0
  547. package/dist/showcase/assets/trending-up-CGaDZj0S.js +1 -0
  548. package/dist/showcase/assets/truck-Dq6heokm.js +1 -0
  549. package/dist/showcase/assets/typography-ByvwR6Kg.js +223 -0
  550. package/dist/showcase/assets/ui-badge-BYgJSE_w.js +28 -0
  551. package/dist/showcase/assets/ui-card-BdueUfow.js +30 -0
  552. package/dist/showcase/assets/ui-table-CxtCQUsg.js +42 -0
  553. package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +138 -0
  554. package/dist/showcase/assets/use-layout-link-CGBQHZon.js +1 -0
  555. package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +1 -0
  556. package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +1 -0
  557. package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +1 -0
  558. package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +1 -0
  559. package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +1 -0
  560. package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +1 -0
  561. package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +1 -0
  562. package/dist/showcase/assets/useRender-QhawWhpb.js +1 -0
  563. package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +1 -0
  564. package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +1 -0
  565. package/dist/showcase/assets/user-plus-DbOuTfr7.js +1 -0
  566. package/dist/showcase/assets/user-u65Fo7k7.js +1 -0
  567. package/dist/showcase/assets/users-BUb7CmVp.js +1 -0
  568. package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +37 -0
  569. package/dist/showcase/assets/video-e4hDbTQ2.js +1 -0
  570. package/dist/showcase/assets/wrench-CBUvtxdr.js +1 -0
  571. package/dist/showcase/assets/x-oVTJnCJn.js +1 -0
  572. package/dist/showcase/assets/zap-CzABYL3c.js +1 -0
  573. package/dist/showcase/index.html +1 -1
  574. package/package.json +11 -3
  575. package/scripts/README.md +24 -0
  576. package/scripts/metadata.json +325 -0
  577. package/dist/_shared/accordion-BWU7zxlO.cjs +0 -2
  578. package/dist/_shared/accordion-BWU7zxlO.cjs.map +0 -1
  579. package/dist/_shared/accordion-DTYKGqWD.js +0 -130
  580. package/dist/_shared/accordion-DTYKGqWD.js.map +0 -1
  581. package/dist/_shared/action-menu-BoQnI2UF.cjs +0 -2
  582. package/dist/_shared/action-menu-BoQnI2UF.cjs.map +0 -1
  583. package/dist/_shared/action-menu-uyg1Phsn.js +0 -96
  584. package/dist/_shared/action-menu-uyg1Phsn.js.map +0 -1
  585. package/dist/_shared/ai-artifact-CY1Jf9gM.cjs +0 -3
  586. package/dist/_shared/ai-artifact-CY1Jf9gM.cjs.map +0 -1
  587. package/dist/_shared/ai-artifact-DdlK_l56.js +0 -1099
  588. package/dist/_shared/ai-artifact-DdlK_l56.js.map +0 -1
  589. package/dist/_shared/auth-CDjZFJxy.cjs +0 -2
  590. package/dist/_shared/auth-CDjZFJxy.cjs.map +0 -1
  591. package/dist/_shared/auth-_udUdWtn.js +0 -643
  592. package/dist/_shared/auth-_udUdWtn.js.map +0 -1
  593. package/dist/_shared/badge--o9wFHB_.cjs +0 -2
  594. package/dist/_shared/badge--o9wFHB_.cjs.map +0 -1
  595. package/dist/_shared/badge-yGlx9trX.js +0 -108
  596. package/dist/_shared/badge-yGlx9trX.js.map +0 -1
  597. package/dist/_shared/button-683R5quQ.js +0 -46
  598. package/dist/_shared/button-683R5quQ.js.map +0 -1
  599. package/dist/_shared/button-C1qc97U1.cjs +0 -2
  600. package/dist/_shared/button-C1qc97U1.cjs.map +0 -1
  601. package/dist/_shared/button-CjZrRLzR.cjs +0 -2
  602. package/dist/_shared/button-CjZrRLzR.cjs.map +0 -1
  603. package/dist/_shared/button-SuocMQFT.js +0 -173
  604. package/dist/_shared/button-SuocMQFT.js.map +0 -1
  605. package/dist/_shared/buttons-9YBwevkP.cjs +0 -2
  606. package/dist/_shared/buttons-9YBwevkP.cjs.map +0 -1
  607. package/dist/_shared/buttons-BR4BGVYf.js +0 -143
  608. package/dist/_shared/buttons-BR4BGVYf.js.map +0 -1
  609. package/dist/_shared/combobox-CpSmiPV8.cjs +0 -2
  610. package/dist/_shared/combobox-CpSmiPV8.cjs.map +0 -1
  611. package/dist/_shared/combobox-D01JwyFZ.js +0 -810
  612. package/dist/_shared/combobox-D01JwyFZ.js.map +0 -1
  613. package/dist/_shared/comments-D9velZAW.js +0 -952
  614. package/dist/_shared/comments-D9velZAW.js.map +0 -1
  615. package/dist/_shared/comments-DyUAKSQu.cjs +0 -2
  616. package/dist/_shared/comments-DyUAKSQu.cjs.map +0 -1
  617. package/dist/_shared/date-picker-BnsvBFOZ.cjs +0 -2
  618. package/dist/_shared/date-picker-BnsvBFOZ.cjs.map +0 -1
  619. package/dist/_shared/date-picker-TMcjGO26.js +0 -1361
  620. package/dist/_shared/date-picker-TMcjGO26.js.map +0 -1
  621. package/dist/_shared/date-pickers-BI4xLjHR.js +0 -330
  622. package/dist/_shared/date-pickers-BI4xLjHR.js.map +0 -1
  623. package/dist/_shared/date-pickers-BhaUK5S2.cjs +0 -2
  624. package/dist/_shared/date-pickers-BhaUK5S2.cjs.map +0 -1
  625. package/dist/_shared/dialog-A95-614f.js +0 -101
  626. package/dist/_shared/dialog-A95-614f.js.map +0 -1
  627. package/dist/_shared/dialog-ivDByBmO.cjs +0 -2
  628. package/dist/_shared/dialog-ivDByBmO.cjs.map +0 -1
  629. package/dist/_shared/display-C4n0uuxl.js +0 -1154
  630. package/dist/_shared/display-C4n0uuxl.js.map +0 -1
  631. package/dist/_shared/display-oDW0O9yB.cjs +0 -2
  632. package/dist/_shared/display-oDW0O9yB.cjs.map +0 -1
  633. package/dist/_shared/forms-CwJci54_.js +0 -3430
  634. package/dist/_shared/forms-CwJci54_.js.map +0 -1
  635. package/dist/_shared/forms-E3JkTgcC.cjs +0 -2
  636. package/dist/_shared/forms-E3JkTgcC.cjs.map +0 -1
  637. package/dist/_shared/header-CyBTcM-L.js +0 -360
  638. package/dist/_shared/header-CyBTcM-L.js.map +0 -1
  639. package/dist/_shared/header-kwvkesfq.cjs +0 -2
  640. package/dist/_shared/header-kwvkesfq.cjs.map +0 -1
  641. package/dist/_shared/hooks-MW0UTO3q.cjs +0 -2
  642. package/dist/_shared/hooks-MW0UTO3q.cjs.map +0 -1
  643. package/dist/_shared/hooks-ZiPIvs0_.js +0 -118
  644. package/dist/_shared/hooks-ZiPIvs0_.js.map +0 -1
  645. package/dist/_shared/mentions-Br-EP9tq.js +0 -506
  646. package/dist/_shared/mentions-Br-EP9tq.js.map +0 -1
  647. package/dist/_shared/mentions-DNTsRHJl.cjs +0 -2
  648. package/dist/_shared/mentions-DNTsRHJl.cjs.map +0 -1
  649. package/dist/_shared/metadata-CPSQGPJh.cjs +0 -2
  650. package/dist/_shared/metadata-CPSQGPJh.cjs.map +0 -1
  651. package/dist/_shared/metadata-qTNAOM7E.js +0 -235
  652. package/dist/_shared/metadata-qTNAOM7E.js.map +0 -1
  653. package/dist/_shared/navigation-HnnA6uSV.js +0 -419
  654. package/dist/_shared/navigation-HnnA6uSV.js.map +0 -1
  655. package/dist/_shared/navigation-J2g0Tw9D.cjs +0 -2
  656. package/dist/_shared/navigation-J2g0Tw9D.cjs.map +0 -1
  657. package/dist/_shared/overlays-CIeniDjj.js +0 -639
  658. package/dist/_shared/overlays-CIeniDjj.js.map +0 -1
  659. package/dist/_shared/overlays-Xc_F_Y-E.cjs +0 -2
  660. package/dist/_shared/overlays-Xc_F_Y-E.cjs.map +0 -1
  661. package/dist/_shared/page-BFV-KE8H.js +0 -262
  662. package/dist/_shared/page-BFV-KE8H.js.map +0 -1
  663. package/dist/_shared/page-UJfWfw2R.cjs +0 -2
  664. package/dist/_shared/page-UJfWfw2R.cjs.map +0 -1
  665. package/dist/_shared/rich-text-editor-B6WKHUKC.js +0 -620
  666. package/dist/_shared/rich-text-editor-B6WKHUKC.js.map +0 -1
  667. package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs +0 -2
  668. package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs.map +0 -1
  669. package/dist/_shared/sheet-BKEfwhCn.js +0 -100
  670. package/dist/_shared/sheet-BKEfwhCn.js.map +0 -1
  671. package/dist/_shared/sheet-D4yWgkwC.cjs +0 -2
  672. package/dist/_shared/sheet-D4yWgkwC.cjs.map +0 -1
  673. package/dist/_shared/sidebar-B_L_dnAe.cjs +0 -2
  674. package/dist/_shared/sidebar-B_L_dnAe.cjs.map +0 -1
  675. package/dist/_shared/sidebar-C5DApiDy.js +0 -389
  676. package/dist/_shared/sidebar-C5DApiDy.js.map +0 -1
  677. package/dist/_shared/sidebar-CIlGkVbF.js +0 -538
  678. package/dist/_shared/sidebar-CIlGkVbF.js.map +0 -1
  679. package/dist/_shared/sidebar-D3sK9otF.cjs +0 -2
  680. package/dist/_shared/sidebar-D3sK9otF.cjs.map +0 -1
  681. package/dist/_shared/smart-card-DYZGY_Su.js +0 -361
  682. package/dist/_shared/smart-card-DYZGY_Su.js.map +0 -1
  683. package/dist/_shared/smart-card-Df80VF8x.cjs +0 -2
  684. package/dist/_shared/smart-card-Df80VF8x.cjs.map +0 -1
  685. package/dist/_shared/table-CBKDA7ZE.js +0 -1189
  686. package/dist/_shared/table-CBKDA7ZE.js.map +0 -1
  687. package/dist/_shared/table-CJoxRCWy.cjs +0 -2
  688. package/dist/_shared/table-CJoxRCWy.cjs.map +0 -1
  689. package/dist/_shared/workspace-CTjIGCE0.cjs +0 -2
  690. package/dist/_shared/workspace-CTjIGCE0.cjs.map +0 -1
  691. package/dist/_shared/workspace-WgJgiSUA.js +0 -357
  692. package/dist/_shared/workspace-WgJgiSUA.js.map +0 -1
  693. package/dist/showcase/assets/AreaChart-BkAbL-UV.js +0 -6
  694. package/dist/showcase/assets/CompositeItem-Dzu0MfUC.js +0 -1
  695. package/dist/showcase/assets/CompositeRoot-CQvQ_uj2.js +0 -1
  696. package/dist/showcase/assets/DialogTrigger-BxVhSw4D.js +0 -1
  697. package/dist/showcase/assets/LabelableContext-DapqaNeY.js +0 -1
  698. package/dist/showcase/assets/PreviewLayout-CGEkbS-i.js +0 -1
  699. package/dist/showcase/assets/RadioGroup-DBA3iBQw.js +0 -1
  700. package/dist/showcase/assets/Separator-BEMr82IS.js +0 -1
  701. package/dist/showcase/assets/ToolbarRootContext-xN-ruoGR.js +0 -1
  702. package/dist/showcase/assets/accordion-B-Iy0jKu.js +0 -171
  703. package/dist/showcase/assets/accordion-variants-B9GD0oBE.js +0 -1
  704. package/dist/showcase/assets/action-menu-CMUF6gPp.js +0 -1
  705. package/dist/showcase/assets/activities-C1P9bsJm.js +0 -501
  706. package/dist/showcase/assets/activities-feed-card-WZUuGHmT.js +0 -1
  707. package/dist/showcase/assets/activity-BVP5C805.js +0 -1
  708. package/dist/showcase/assets/admin-DWOK4sj4.js +0 -80
  709. package/dist/showcase/assets/ai-Dteb3y6G.js +0 -41
  710. package/dist/showcase/assets/ai-artifact-B0d7GveY.js +0 -2
  711. package/dist/showcase/assets/ai-chat-IJ0b2FOw.js +0 -568
  712. package/dist/showcase/assets/ai-elements-Cr8GgtEV.js +0 -387
  713. package/dist/showcase/assets/ai-new-BJN9wNvX.js +0 -167
  714. package/dist/showcase/assets/ai-tool-call-BqlQuR1P.js +0 -1
  715. package/dist/showcase/assets/alert-2_0J7Vv6.js +0 -1
  716. package/dist/showcase/assets/alert-7wEOpEor.js +0 -93
  717. package/dist/showcase/assets/alert-C_FOBilU.js +0 -62
  718. package/dist/showcase/assets/api-key-list-CGV1k52v.js +0 -73
  719. package/dist/showcase/assets/app-sidebar-S6oUYO4h.js +0 -1
  720. package/dist/showcase/assets/arrow-down-VNr82bS3.js +0 -1
  721. package/dist/showcase/assets/arrow-left-BSVeKWNq.js +0 -1
  722. package/dist/showcase/assets/arrow-right-D6hTB0Bd.js +0 -1
  723. package/dist/showcase/assets/arrow-up-p9oA4cIz.js +0 -1
  724. package/dist/showcase/assets/arrow-up-right-BtlQ62bc.js +0 -1
  725. package/dist/showcase/assets/avatar-BxcQUuh0.js +0 -57
  726. package/dist/showcase/assets/avatar-LGWm52rv.js +0 -1
  727. package/dist/showcase/assets/badge-COn5psy3.js +0 -28
  728. package/dist/showcase/assets/badge-check-D2C2BPUT.js +0 -1
  729. package/dist/showcase/assets/bell-C80n9VRl.js +0 -1
  730. package/dist/showcase/assets/bot-C83bUUi9.js +0 -1
  731. package/dist/showcase/assets/box-rZ0pA-02.js +0 -1
  732. package/dist/showcase/assets/brain-BJtktdVu.js +0 -1
  733. package/dist/showcase/assets/brand-CxdIBpyJ.js +0 -36
  734. package/dist/showcase/assets/breadcrumb-BZsr_A8k.js +0 -1
  735. package/dist/showcase/assets/breadcrumb-CSU8FvWB.js +0 -52
  736. package/dist/showcase/assets/breadcrumbs-BUm4gHzL.js +0 -1
  737. package/dist/showcase/assets/briefcase-0WhUdLn5.js +0 -1
  738. package/dist/showcase/assets/building-2-1D6zVdCI.js +0 -1
  739. package/dist/showcase/assets/button-C22Gs6y0.js +0 -44
  740. package/dist/showcase/assets/button-group-C0Ts4-x3.js +0 -1
  741. package/dist/showcase/assets/buttons-Dfn6hmwe.js +0 -270
  742. package/dist/showcase/assets/calendar-7a4yQlzJ.js +0 -1
  743. package/dist/showcase/assets/calendar-Bo17POsN.js +0 -1
  744. package/dist/showcase/assets/calendar-D6XNDRVQ.js +0 -16
  745. package/dist/showcase/assets/calendar-days-C4mG2tOe.js +0 -1
  746. package/dist/showcase/assets/camera-C16z6v0m.js +0 -1
  747. package/dist/showcase/assets/card-BjqRQxxz.js +0 -1
  748. package/dist/showcase/assets/card-IzYmUTpI.js +0 -188
  749. package/dist/showcase/assets/card-primitives-BDj4DtS8.js +0 -1
  750. package/dist/showcase/assets/card-radio-group-7GU9AtWs.js +0 -1
  751. package/dist/showcase/assets/cards-DAqpr8CM.js +0 -328
  752. package/dist/showcase/assets/carousel-D1n4Kkoo.js +0 -449
  753. package/dist/showcase/assets/chart-D2EGeI3b.js +0 -358
  754. package/dist/showcase/assets/chart-column-DKcP77Dx.js +0 -1
  755. package/dist/showcase/assets/checkbox-BI3gcjED.js +0 -1
  756. package/dist/showcase/assets/chevron-down-ByPPEdNm.js +0 -1
  757. package/dist/showcase/assets/chevron-left-BNByuq3g.js +0 -1
  758. package/dist/showcase/assets/chevron-right-D4pIMCh9.js +0 -1
  759. package/dist/showcase/assets/chevron-up-Cha879Nz.js +0 -1
  760. package/dist/showcase/assets/chevrons-up-down-eAgHau5X.js +0 -1
  761. package/dist/showcase/assets/circle-V5hdlsIn.js +0 -1
  762. package/dist/showcase/assets/circle-alert-BW-Btwgh.js +0 -1
  763. package/dist/showcase/assets/circle-check-1MSds3Vu.js +0 -1
  764. package/dist/showcase/assets/circle-check-big-vBWkmhCZ.js +0 -1
  765. package/dist/showcase/assets/circle-dot-CsD5uXwH.js +0 -1
  766. package/dist/showcase/assets/circle-question-mark-xYn9p1nL.js +0 -1
  767. package/dist/showcase/assets/circle-x-VSqZOeGt.js +0 -1
  768. package/dist/showcase/assets/clock-3-CP_t59kW.js +0 -1
  769. package/dist/showcase/assets/clock-9xbB7EnW.js +0 -1
  770. package/dist/showcase/assets/code-xml-CeGA85eB.js +0 -1
  771. package/dist/showcase/assets/collapsible-C2W51-wl.js +0 -27
  772. package/dist/showcase/assets/collapsible-C4eof15p.js +0 -1
  773. package/dist/showcase/assets/combobox-i8o4u6Q0.js +0 -696
  774. package/dist/showcase/assets/command-C4F78Ppy.js +0 -1
  775. package/dist/showcase/assets/command-wjOXUieO.js +0 -1
  776. package/dist/showcase/assets/comment-composer-DeURrlgL.js +0 -1
  777. package/dist/showcase/assets/comment-item-D07Qk-Nt.js +0 -1
  778. package/dist/showcase/assets/comments-Bo-lZU18.js +0 -357
  779. package/dist/showcase/assets/commerce-extras-Cio3xn_B.js +0 -189
  780. package/dist/showcase/assets/commerce-jqA58sCZ.js +0 -79
  781. package/dist/showcase/assets/composite-BQFpnmS9.js +0 -1
  782. package/dist/showcase/assets/contact-card-4ajPhcd_.js +0 -65
  783. package/dist/showcase/assets/content-container-B83BnjFb.js +0 -1
  784. package/dist/showcase/assets/copyable-DKkroGJ3.js +0 -96
  785. package/dist/showcase/assets/course-card-DShYl03k.js +0 -77
  786. package/dist/showcase/assets/cpu-BZTsuaUu.js +0 -1
  787. package/dist/showcase/assets/credit-card-CAI3F3HB.js +0 -1
  788. package/dist/showcase/assets/currency-PXgbngHk.js +0 -149
  789. package/dist/showcase/assets/dark-surfaces-pSCicdm4.js +0 -90
  790. package/dist/showcase/assets/database-oHsxHUj-.js +0 -1
  791. package/dist/showcase/assets/date-block-CvCdJr8d.js +0 -1
  792. package/dist/showcase/assets/date-picker-Cd5vsEEd.js +0 -1
  793. package/dist/showcase/assets/date-pickers-CBK-zvSB.js +0 -73
  794. package/dist/showcase/assets/dense-info-zOdJpez6.js +0 -106
  795. package/dist/showcase/assets/dialog-D9-MRCRg.js +0 -1
  796. package/dist/showcase/assets/dialog-EDw9DvZs.js +0 -1
  797. package/dist/showcase/assets/display-CE9JWinr.js +0 -403
  798. package/dist/showcase/assets/dist-CjZ6RM9v.js +0 -45
  799. package/dist/showcase/assets/dollar-sign-BXD_x2mP.js +0 -1
  800. package/dist/showcase/assets/download-D0ur_d_N.js +0 -1
  801. package/dist/showcase/assets/dropdown-menu-Cto8-yDW.js +0 -1
  802. package/dist/showcase/assets/dropzone-9Gb4mR4x.js +0 -1
  803. package/dist/showcase/assets/earth-BN1w3w7h.js +0 -1
  804. package/dist/showcase/assets/ellipsis-DsrebD1Y.js +0 -1
  805. package/dist/showcase/assets/ellipsis-vertical-CAiMV7G2.js +0 -1
  806. package/dist/showcase/assets/empty-DoJF3uif.js +0 -1
  807. package/dist/showcase/assets/empty-item-zZ85qI6s.js +0 -49
  808. package/dist/showcase/assets/empty-state-CGfB7sOE.js +0 -1
  809. package/dist/showcase/assets/empty-state-Y_4qnNWt.js +0 -188
  810. package/dist/showcase/assets/enhanced-activities-B41hAxhb.js +0 -361
  811. package/dist/showcase/assets/enhanced-combobox-BOimEW-1.js +0 -1
  812. package/dist/showcase/assets/event-calendar-BjcfC6fM.js +0 -138
  813. package/dist/showcase/assets/event-log-BhoMXcix.js +0 -330
  814. package/dist/showcase/assets/example-Cz_880po.js +0 -1
  815. package/dist/showcase/assets/external-link-Cy1-PP8k.js +0 -1
  816. package/dist/showcase/assets/eye-C85PNNdH.js +0 -1
  817. package/dist/showcase/assets/feature-announcement-_tpahla3.js +0 -34
  818. package/dist/showcase/assets/file-C8PCBEtY.js +0 -1
  819. package/dist/showcase/assets/file-text-DwqbUujq.js +0 -1
  820. package/dist/showcase/assets/filters-ChqGg_1z.js +0 -78
  821. package/dist/showcase/assets/flag-csHQcBml.js +0 -1
  822. package/dist/showcase/assets/folder-open-BThTng3d.js +0 -1
  823. package/dist/showcase/assets/form-field-B5g_5Zjm.js +0 -1
  824. package/dist/showcase/assets/format-DrTwpH65.js +0 -1
  825. package/dist/showcase/assets/forms-BukyUSKs.js +0 -862
  826. package/dist/showcase/assets/frame-BNKhZVlb.js +0 -167
  827. package/dist/showcase/assets/getPseudoElementBounds-DwyQgIj-.js +0 -1
  828. package/dist/showcase/assets/gift-CtM--bDo.js +0 -1
  829. package/dist/showcase/assets/giftcard-cards-imm4Br0H.js +0 -85
  830. package/dist/showcase/assets/git-branch-Dl3AzbqP.js +0 -1
  831. package/dist/showcase/assets/global-search-Bhl7z_vN.js +0 -1
  832. package/dist/showcase/assets/global-search-C4yaPFSW.js +0 -215
  833. package/dist/showcase/assets/globe-BCikLfKc.js +0 -1
  834. package/dist/showcase/assets/gradient-card-Dh_5ZYv0.js +0 -58
  835. package/dist/showcase/assets/hash-C8m0EECO.js +0 -1
  836. package/dist/showcase/assets/header-BXjw7Lm_.js +0 -1
  837. package/dist/showcase/assets/header-notifications-CShSQ8kR.js +0 -1
  838. package/dist/showcase/assets/heart-BJVBFZ-j.js +0 -1
  839. package/dist/showcase/assets/house-C3fXPhlL.js +0 -1
  840. package/dist/showcase/assets/icon-badge-dwVx3Hxf.js +0 -1
  841. package/dist/showcase/assets/image-gc4qX_7C.js +0 -1
  842. package/dist/showcase/assets/inbox-C0GJ1KEC.js +0 -1
  843. package/dist/showcase/assets/index-BQIv1ffM.js +0 -10
  844. package/dist/showcase/assets/inertValue-DeVQ2cCe.js +0 -1
  845. package/dist/showcase/assets/info-BimmreJ-.js +0 -1
  846. package/dist/showcase/assets/inline-stat-DcNP6bcO.js +0 -1
  847. package/dist/showcase/assets/input-DJAWOJEx.js +0 -1
  848. package/dist/showcase/assets/input-NIgvB9CZ.js +0 -1
  849. package/dist/showcase/assets/input-group-BmqJ20bA.js +0 -1
  850. package/dist/showcase/assets/input-group-gOUubhee.js +0 -47
  851. package/dist/showcase/assets/inputs-Dk8YOVkI.js +0 -155
  852. package/dist/showcase/assets/invoice-header-BnNpWej2.js +0 -36
  853. package/dist/showcase/assets/invoice-items-BdPmW10L.js +0 -36
  854. package/dist/showcase/assets/invoice-mini-CbSYyHIb.js +0 -14
  855. package/dist/showcase/assets/invoice-table-DjnWG3KF.js +0 -30
  856. package/dist/showcase/assets/isSameDay-B2KDl_YX.js +0 -1
  857. package/dist/showcase/assets/isToday-CXNS7ELW.js +0 -1
  858. package/dist/showcase/assets/italic-BRS-PpYL.js +0 -1
  859. package/dist/showcase/assets/item--6Hx9AXZ.js +0 -1
  860. package/dist/showcase/assets/item-BszVRzXj.js +0 -134
  861. package/dist/showcase/assets/item-YF6wMI9W.js +0 -1
  862. package/dist/showcase/assets/kanban-BWBbWLVe.js +0 -186
  863. package/dist/showcase/assets/label-BgpcD3V6.js +0 -1
  864. package/dist/showcase/assets/languages-DDgmIDFe.js +0 -1
  865. package/dist/showcase/assets/layers-nkkXRmvA.js +0 -1
  866. package/dist/showcase/assets/layout-app-shell-D3MbPoGC.js +0 -608
  867. package/dist/showcase/assets/layout-auth-DIeRtG0B.js +0 -754
  868. package/dist/showcase/assets/layout-containers-Dc3-IAgV.js +0 -101
  869. package/dist/showcase/assets/layout-header-Cg6GfMST.js +0 -170
  870. package/dist/showcase/assets/layout-page-DojPq8S6.js +0 -122
  871. package/dist/showcase/assets/layout-primitives-JBSQS72B.js +0 -34
  872. package/dist/showcase/assets/layout-sidebar-C6jUJRhx.js +0 -224
  873. package/dist/showcase/assets/layout-users-uzPscfo7.js +0 -117
  874. package/dist/showcase/assets/layout-workspace-B3leaOKl.js +0 -183
  875. package/dist/showcase/assets/lock-DLIcOBUd.js +0 -1
  876. package/dist/showcase/assets/lock-keyhole-DY6aV7Mq.js +0 -1
  877. package/dist/showcase/assets/mail-AES_tOd2.js +0 -1
  878. package/dist/showcase/assets/mail-check-dJTzg2bD.js +0 -1
  879. package/dist/showcase/assets/map-CZ2l0iGH.js +0 -124
  880. package/dist/showcase/assets/map-pin-0O7GD5Dz.js +0 -1
  881. package/dist/showcase/assets/media-library-CRllxSGQ.js +0 -695
  882. package/dist/showcase/assets/mention-inline-suggestions-Dx2Z1GHF.js +0 -1
  883. package/dist/showcase/assets/mentions-CDqqGCE4.js +0 -138
  884. package/dist/showcase/assets/menus-CDgE79I5.js +0 -165
  885. package/dist/showcase/assets/message-square-CBNI_sf8.js +0 -1
  886. package/dist/showcase/assets/metadata-list-BoEVt7cX.js +0 -1
  887. package/dist/showcase/assets/metadata-list-NtWuY9W8.js +0 -288
  888. package/dist/showcase/assets/metric-Bx_LWobe.js +0 -1
  889. package/dist/showcase/assets/metric-bar-BldYHNLQ.js +0 -1
  890. package/dist/showcase/assets/metric-grid-BDw7w7d2.js +0 -1
  891. package/dist/showcase/assets/metric-trend-chip-lSjDkUEo.js +0 -1
  892. package/dist/showcase/assets/metrics-analytics-bar-CCFhTmQZ.js +0 -44
  893. package/dist/showcase/assets/metrics-analytics-cards-C1AjZqJU.js +0 -50
  894. package/dist/showcase/assets/metrics-comparison-vEE6BtuW.js +0 -76
  895. package/dist/showcase/assets/metrics-heatmap-DKkz8ibX.js +0 -27
  896. package/dist/showcase/assets/metrics-inline-badge-CZmVnReB.js +0 -17
  897. package/dist/showcase/assets/metrics-kpi-row-s2FYIYB1.js +0 -31
  898. package/dist/showcase/assets/metrics-micro-grid-DDlCl9Ep.js +0 -42
  899. package/dist/showcase/assets/metrics-overview-BgliK2L1.js +0 -192
  900. package/dist/showcase/assets/metrics-stat-cards-Cn5sRZsB.js +0 -54
  901. package/dist/showcase/assets/minus-DByvcC8K.js +0 -1
  902. package/dist/showcase/assets/money-display-DG4IaEaA.js +0 -1
  903. package/dist/showcase/assets/month-year-picker-CVurc9L7.js +0 -1
  904. package/dist/showcase/assets/navigation-CHYgQTsY.js +0 -90
  905. package/dist/showcase/assets/navigation-C_6gS4FA.js +0 -230
  906. package/dist/showcase/assets/navigation-extras-CflOar2P.js +0 -43
  907. package/dist/showcase/assets/onboarding-checklist-CYiciKwv.js +0 -119
  908. package/dist/showcase/assets/overlays-HrH2wdTK.js +0 -408
  909. package/dist/showcase/assets/overlays-cp7VMq3b.js +0 -159
  910. package/dist/showcase/assets/package-CjcwDJKu.js +0 -1
  911. package/dist/showcase/assets/package-check-CCH3ax-x.js +0 -1
  912. package/dist/showcase/assets/page-action-button-Cn5j2_EP.js +0 -1
  913. package/dist/showcase/assets/page-header-CkvCF1MQ.js +0 -1
  914. package/dist/showcase/assets/pagination-DM5QGPo2.js +0 -42
  915. package/dist/showcase/assets/pagination-DUzHnhJ6.js +0 -1
  916. package/dist/showcase/assets/paperclip-DoqDQQVa.js +0 -1
  917. package/dist/showcase/assets/password-input-CfS4sfCl.js +0 -1
  918. package/dist/showcase/assets/pencil-C2OfFQMj.js +0 -1
  919. package/dist/showcase/assets/phone-CLvml_XI.js +0 -1
  920. package/dist/showcase/assets/plus-D5swsZCz.js +0 -1
  921. package/dist/showcase/assets/popover-menu-Bu9q96nE.js +0 -1
  922. package/dist/showcase/assets/popover-nCGXR4Yd.js +0 -1
  923. package/dist/showcase/assets/popover-xC8qczvP.js +0 -1
  924. package/dist/showcase/assets/products-BbSzEFvw.js +0 -407
  925. package/dist/showcase/assets/progress-DYfoy7pk.js +0 -1
  926. package/dist/showcase/assets/progress-ENNwjW3X.js +0 -18
  927. package/dist/showcase/assets/props-table-2pIZzGC-.js +0 -1
  928. package/dist/showcase/assets/props.generated-DggzG-JL.json +0 -38611
  929. package/dist/showcase/assets/quote-BO1bufuX.js +0 -1
  930. package/dist/showcase/assets/receipt-kIVP3kxJ.js +0 -1
  931. package/dist/showcase/assets/receipt-text-BDQIvI4l.js +0 -1
  932. package/dist/showcase/assets/refresh-cw-UdL93poQ.js +0 -1
  933. package/dist/showcase/assets/resolveValueLabel-DfiI3G4i.js +0 -1
  934. package/dist/showcase/assets/rich-text-editor-CNtfwLC2.js +0 -143
  935. package/dist/showcase/assets/rich-text-editor-DB4QWptQ.js +0 -124
  936. package/dist/showcase/assets/rotate-ccw-DQPoMfMY.js +0 -1
  937. package/dist/showcase/assets/save-Cd0ZM40i.js +0 -1
  938. package/dist/showcase/assets/schema-form-Cyc6vCVO.js +0 -325
  939. package/dist/showcase/assets/scroll-area-B5NZsDdi.js +0 -32
  940. package/dist/showcase/assets/scroll-area-BvTq99pz.js +0 -1
  941. package/dist/showcase/assets/select-BRbyPtx8.js +0 -1
  942. package/dist/showcase/assets/select-Dymyvyh6.js +0 -1
  943. package/dist/showcase/assets/send-BWzI7mwi.js +0 -1
  944. package/dist/showcase/assets/separator-BsYPzBlF.js +0 -1
  945. package/dist/showcase/assets/separator-Osp0OJ78.js +0 -28
  946. package/dist/showcase/assets/settings-DRmWJILI.js +0 -1
  947. package/dist/showcase/assets/sheet-BKsjMYMo.js +0 -1
  948. package/dist/showcase/assets/shield-D1EaWJMG.js +0 -1
  949. package/dist/showcase/assets/shield-alert-DWsbR2jn.js +0 -1
  950. package/dist/showcase/assets/shield-check-DUTAPADm.js +0 -1
  951. package/dist/showcase/assets/shopping-bag-XmeqUqk9.js +0 -1
  952. package/dist/showcase/assets/sidebar-B5uO9sUB.js +0 -1
  953. package/dist/showcase/assets/sidebar.context-CRjgeYJL.js +0 -1
  954. package/dist/showcase/assets/skeleton-BtiPkfxB.js +0 -1
  955. package/dist/showcase/assets/skeleton-DbybIpkV.js +0 -29
  956. package/dist/showcase/assets/slider-vuwVVBby.js +0 -1
  957. package/dist/showcase/assets/sliders-horizontal-BE_cwUn0.js +0 -1
  958. package/dist/showcase/assets/smart-card-Dhu_1A_u.js +0 -1
  959. package/dist/showcase/assets/sonner-DZB-G4q5.js +0 -22
  960. package/dist/showcase/assets/sortable.esm-YOwRw8Hr.js +0 -5
  961. package/dist/showcase/assets/sparkles-N8rqKQez.js +0 -1
  962. package/dist/showcase/assets/spinner-B5zKCNXu.js +0 -30
  963. package/dist/showcase/assets/spinner-BOjRziLu.js +0 -1
  964. package/dist/showcase/assets/spinner-PIr8y8av.js +0 -49
  965. package/dist/showcase/assets/square-pen-ImRrVwT8.js +0 -1
  966. package/dist/showcase/assets/stacked-avatars-DnIAc098.js +0 -1
  967. package/dist/showcase/assets/star-BaV-UTPq.js +0 -1
  968. package/dist/showcase/assets/startOfDay-CtTeiGV0.js +0 -1
  969. package/dist/showcase/assets/styles-Bv0pDLVi.js +0 -1
  970. package/dist/showcase/assets/suggestions-QnLPdgnG.js +0 -126
  971. package/dist/showcase/assets/switch-DwAS_TXx.js +0 -1
  972. package/dist/showcase/assets/switch-xzxCDtyg.js +0 -1
  973. package/dist/showcase/assets/sync-LeYxWAap.js +0 -107
  974. package/dist/showcase/assets/table-BbEFanNu.js +0 -1
  975. package/dist/showcase/assets/table-CVVHBty6.js +0 -382
  976. package/dist/showcase/assets/table-actions-DvI9U67L.js +0 -1
  977. package/dist/showcase/assets/tabs-CLcyGwLd.js +0 -1
  978. package/dist/showcase/assets/tabs-ck8y1Bjr.js +0 -19
  979. package/dist/showcase/assets/tags-input-DmBY2CKI.js +0 -1
  980. package/dist/showcase/assets/text-button-C54O1rZM.js +0 -1
  981. package/dist/showcase/assets/text-link-9_mZpq_f.js +0 -1
  982. package/dist/showcase/assets/textarea-CHvnWHWH.js +0 -1
  983. package/dist/showcase/assets/textarea-jexcMklP.js +0 -1
  984. package/dist/showcase/assets/timelines-uvFVjEQv.js +0 -200
  985. package/dist/showcase/assets/toggle-group-B3fORi8i.js +0 -1
  986. package/dist/showcase/assets/toggles-Cox6Yk2k.js +0 -71
  987. package/dist/showcase/assets/toggles-group-CSvSPqCB.js +0 -32
  988. package/dist/showcase/assets/trash-2-CE9bDw49.js +0 -1
  989. package/dist/showcase/assets/trending-up-0iJl0XvC.js +0 -1
  990. package/dist/showcase/assets/truck-DlhOPoCD.js +0 -1
  991. package/dist/showcase/assets/typography-BotOITw4.js +0 -223
  992. package/dist/showcase/assets/ui-badge-hfmO1K3-.js +0 -28
  993. package/dist/showcase/assets/ui-card-Aigzxhn3.js +0 -30
  994. package/dist/showcase/assets/ui-table-CKif9sNO.js +0 -42
  995. package/dist/showcase/assets/upload-tray-BnKDNrw9.js +0 -138
  996. package/dist/showcase/assets/use-layout-link-BQ6Y9z__.js +0 -1
  997. package/dist/showcase/assets/useAnchoredPopupScrollLock-CP1vkwD7.js +0 -1
  998. package/dist/showcase/assets/useAriaLabelledBy-J_Rvjwx3.js +0 -1
  999. package/dist/showcase/assets/useCollapsiblePanel-BwUOowW2.js +0 -1
  1000. package/dist/showcase/assets/useCompositeItem-D3XOIML-.js +0 -1
  1001. package/dist/showcase/assets/useCompositeListItem-BWfShNPP.js +0 -1
  1002. package/dist/showcase/assets/useLabelableId-DxorZ3YW.js +0 -1
  1003. package/dist/showcase/assets/useOpenInteractionType-DLUX6CcH.js +0 -1
  1004. package/dist/showcase/assets/useRender-B9zzqKA1.js +0 -1
  1005. package/dist/showcase/assets/useTriggerFocusGuards-BSvL8pKg.js +0 -1
  1006. package/dist/showcase/assets/useValueChanged-DSoTBFAJ.js +0 -1
  1007. package/dist/showcase/assets/user-BZog6aIh.js +0 -1
  1008. package/dist/showcase/assets/user-plus-CPxlPoxf.js +0 -1
  1009. package/dist/showcase/assets/users-BgXAp2UO.js +0 -1
  1010. package/dist/showcase/assets/vendor-profile-BLYiDIrO.js +0 -37
  1011. package/dist/showcase/assets/video-YBnCbmIb.js +0 -1
  1012. package/dist/showcase/assets/wrench-BFTavxzg.js +0 -1
  1013. package/dist/showcase/assets/x-D8UN9pOu.js +0 -1
  1014. package/dist/showcase/assets/zap-DIJUAJEb.js +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-SuocMQFT.js","names":[],"sources":["../../src/components/base/buttons/base-button.tsx","../../src/components/base/buttons/loader-button.tsx","../../src/components/base/buttons/tooltip-button.tsx","../../src/components/base/buttons/button.tsx"],"sourcesContent":["/**\n * BaseButton — foundational button. Wraps shadcn `Button` with a richer\n * variant × style × size matrix (variants: dark / primary / secondary / error /\n * warning / success / light / action; styles: solid / outline / ghost), plus\n * optional left/right `icon` and `fullWidth`.\n */\nimport type { VariantProps } from 'class-variance-authority';\nimport type { LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Button as PrimitiveButton,\n type buttonVariants\n} from '@/components/ui/button';\nimport {\n useButtonConfig,\n type ButtonSize as ConfiguredButtonSize,\n type ButtonStyle as ConfiguredButtonStyle,\n} from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nexport type ButtonVariant =\n | 'dark'\n | 'primary'\n | 'secondary'\n | 'error'\n | 'warning'\n | 'success'\n | 'light'\n | 'action';\nexport type ButtonStyle = ConfiguredButtonStyle;\nexport type ButtonSize = ConfiguredButtonSize;\nexport type IconPosition = 'left' | 'right';\n\nexport interface BaseButtonProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof PrimitiveButton>,\n 'children' | 'variant' | 'size'\n >,\n Omit<VariantProps<typeof buttonVariants>, 'variant' | 'size'> {\n variant?: ButtonVariant;\n buttonStyle?: ButtonStyle;\n size?: ButtonSize;\n fullWidth?: boolean;\n icon?: React.ElementType | LucideIcon;\n iconPosition?: IconPosition;\n children: React.ReactNode;\n}\n\nconst variantStyles: Record<ButtonVariant, Record<ButtonStyle, string>> = {\n dark: {\n solid: 'bg-foreground text-background hover:bg-foreground/90',\n outline: 'border border-foreground/80 text-foreground hover:bg-foreground/8',\n ghost: 'text-foreground hover:bg-foreground/8'\n },\n primary: {\n solid: 'bg-primary text-primary-foreground hover:bg-primary/90',\n outline: 'border border-primary/70 text-primary hover:bg-primary/10',\n ghost: 'text-primary hover:bg-primary/10'\n },\n secondary: {\n solid: 'bg-foreground/8 text-foreground hover:bg-foreground/12',\n outline: 'border border-foreground/15 text-foreground hover:bg-foreground/8',\n ghost: 'text-foreground hover:bg-foreground/8'\n },\n light: {\n solid: 'bg-muted text-muted-foreground hover:bg-muted/80',\n outline: 'border border-border text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n ghost: 'text-muted-foreground hover:bg-accent hover:text-accent-foreground'\n },\n error: {\n solid: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-destructive/60 text-destructive hover:bg-destructive/10',\n ghost: 'text-destructive hover:bg-destructive/10'\n },\n warning: {\n solid: 'bg-warning text-warning-foreground hover:bg-warning/90',\n outline: 'border border-warning/70 text-warning-foreground hover:bg-warning/20',\n ghost: 'text-warning-foreground hover:bg-warning/20'\n },\n success: {\n solid: 'bg-success text-success-foreground hover:bg-success/90',\n outline: 'border border-success/60 text-success hover:bg-success/10',\n ghost: 'text-success hover:bg-success/10'\n },\n action: {\n solid: 'bg-info text-info-foreground hover:bg-info/90',\n outline: 'border border-info/60 text-info hover:bg-info/10',\n ghost: 'text-info hover:bg-info/10'\n }\n};\n\nconst BaseButton = React.forwardRef<HTMLButtonElement, BaseButtonProps>(\n (\n {\n variant = 'primary',\n buttonStyle,\n size: sizeProp,\n fullWidth = false,\n icon: Icon,\n iconPosition = 'left',\n children,\n className,\n disabled,\n ...props\n },\n ref\n ) => {\n const { defaultButtonStyle, defaultSize } = useButtonConfig();\n const resolvedButtonStyle: ButtonStyle =\n buttonStyle ?? defaultButtonStyle ?? 'solid';\n const size: ButtonSize = sizeProp ?? defaultSize ?? 'sm';\n const resolvedVariantStyles =\n variantStyles[variant] ?? variantStyles.secondary;\n const resolvedStyleClass =\n resolvedVariantStyles[resolvedButtonStyle] ??\n resolvedVariantStyles.solid ??\n variantStyles.secondary.solid;\n\n const iconSize =\n size === 'xs' || size === 'icon-xs'\n ? 12\n : size === 'sm' || size === 'icon-sm'\n ? 16\n : size === 'lg' || size === 'icon-lg'\n ? 20\n : 16;\n const iconSpacing =\n size === 'xs'\n ? 'gap-1'\n : size === 'sm'\n ? 'gap-2'\n : size === 'lg'\n ? 'gap-2.5'\n : 'gap-2';\n\n const primitiveVariant =\n resolvedButtonStyle === 'outline'\n ? 'outline'\n : resolvedButtonStyle === 'ghost'\n ? 'ghost'\n : 'default';\n\n return (\n <PrimitiveButton\n ref={ref}\n variant={primitiveVariant}\n size={size}\n className={cn('base-button--component',\n resolvedStyleClass,\n 'inline-flex items-center justify-center rounded-radius',\n Icon && iconSpacing,\n fullWidth && 'w-full',\n className\n )}\n disabled={disabled}\n {...props}\n >\n {!!Icon && iconPosition === 'left' && (\n <Icon\n size={iconSize}\n aria-hidden=\"true\"\n />\n )}\n {children}\n {!!Icon && iconPosition === 'right' && (\n <Icon\n size={iconSize}\n aria-hidden=\"true\"\n />\n )}\n </PrimitiveButton>\n );\n }\n);\n\nBaseButton.displayName = 'BaseButton';\n\nexport { BaseButton };\n","import { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport { cn } from '@/lib/utils';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { BaseButton, type BaseButtonProps, type ButtonSize } from './base-button';\n\nexport interface LoaderButtonStrings {\n\tloading: string;\n\tcompleted: string;\n}\n\nexport const defaultLoaderButtonStrings: LoaderButtonStrings = {\n\tloading: 'Loading...',\n\tcompleted: 'Completed',\n};\n\n/** @deprecated Use `strings` instead. */\nexport interface LoadingLabels {\n\tloading?: string;\n\tcompleted?: string;\n}\n\nexport interface LoaderButtonProps extends BaseButtonProps {\n\tloading?: boolean;\n\thandlesLoading?: boolean;\n\tstrings?: StringsProp<LoaderButtonStrings>;\n\t/** @deprecated Use `strings` instead. */\n\tloadingLabels?: LoadingLabels;\n}\n\nconst LoaderButton = React.forwardRef<HTMLButtonElement, LoaderButtonProps>(\n\t(\n\t\t{\n\t\t\tloading = false,\n\t\t\thandlesLoading,\n\t\t\tstrings: stringsProp,\n\t\t\tloadingLabels,\n\t\t\ticon: Icon,\n\t\t\ticonPosition = 'left',\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst strings = useStrings(defaultLoaderButtonStrings, {\n\t\t\t...(loadingLabels ?? {}),\n\t\t\t...(stringsProp ?? {}),\n\t\t});\n\t\tconst [isLoading, setIsLoading] = useState(loading);\n\t\tconst [, setShowCompletedState] = useState(false);\n\n\t\tuseEffect(() => {\n\t\t\tif (loading) {\n\t\t\t\tsetIsLoading(true);\n\t\t\t}\n\t\t}, [loading]);\n\n\t\tuseEffect(() => {\n\t\t\tif (handlesLoading && loading) {\n\t\t\t\tsetIsLoading(true);\n\t\t\t}\n\t\t}, [loading, handlesLoading]);\n\n\t\tuseEffect(() => {\n\t\t\tlet timeoutId: ReturnType<typeof setTimeout>;\n\t\t\tif (!loading && isLoading) {\n\t\t\t\tsetShowCompletedState(true);\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\tsetShowCompletedState(false);\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\t};\n\t\t}, [loading, isLoading]);\n\n\t\tconst getIconSize = (size?: ButtonSize) => {\n\t\t\tif (size === 'xs') return 12;\n\t\t\tif (size === 'sm') return 14;\n\t\t\tif (size === 'lg') return 20;\n\t\t\treturn 16;\n\t\t};\n\n\t\treturn (\n\t\t\t<BaseButton className=\"loader-button--component\"\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\tdisabled={disabled || isLoading}\n\t\t\t>\n\t\t\t\t{!!isLoading && (\n <Loader2\n\t\t\t\t\t\tclassName=\"animate-spin mr-2\"\n\t\t\t\t\t\tsize={getIconSize(props.size)}\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t/>\n )}\n\t\t\t\t{!!Icon && iconPosition === 'left' && !isLoading && (\n <Icon\n\t\t\t\t\t\tclassName={cn('opacity-60', children && '-ms-1 me-2')}\n\t\t\t\t\t\tsize={getIconSize(props.size)}\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t/>\n )}\n\t\t\t\t<span>\n\t\t\t\t\t{!!isLoading && strings.loading}\n\t\t\t\t\t{!isLoading && children}\n\t\t\t\t</span>\n\t\t\t\t{!!Icon && iconPosition === 'right' && !isLoading && (\n <Icon\n\t\t\t\t\t\tclassName={cn('opacity-60', children && '-me-1 ms-2')}\n\t\t\t\t\t\tsize={getIconSize(props.size)}\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t/>\n )}\n\t\t\t</BaseButton>\n\t\t);\n\t},\n);\n\nLoaderButton.displayName = 'LoaderButton';\n\nexport { LoaderButton };\n","import * as React from 'react';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\nexport interface TooltipButtonProps extends BaseButtonProps {\n\twithTooltip: string;\n}\n\nconst TooltipButton = React.forwardRef<HTMLButtonElement, TooltipButtonProps>(\n\t({ withTooltip, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<BaseButton\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\taria-label={props['aria-label'] ?? withTooltip}\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t// `render` merges props, but className needs manual merge.\n\n\t\t\t\t\t\t\tclassName={cn('tooltip-button--component', (triggerProps as { className?: string }).className, props.className)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t<TooltipContent className=\"px-2 py-1 text-xs\">\n\t\t\t\t\t{withTooltip}\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t);\n\t},\n);\n\nTooltipButton.displayName = 'TooltipButton';\n\nexport { TooltipButton };\n","/**\n * Button — combo wrapper around BaseButton. Opts in to:\n * - `loading` / `handlesLoading` → wraps in LoaderButton\n * - `withTooltip` → wraps in TooltipButton\n * - `href` → renders an `<a>` around the button\n * Mix freely; only the relevant wrappers are added.\n */\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { BaseButton, type BaseButtonProps } from './base-button';\nimport { LoaderButton, type LoaderButtonProps } from './loader-button';\nimport { TooltipButton, type TooltipButtonProps } from './tooltip-button';\n\nexport type ButtonProps = BaseButtonProps &\n\tPartial<LoaderButtonProps & TooltipButtonProps> & {\n\t\thref?: string;\n\t};\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(({\n\thref,\n\twithTooltip,\n\tloading,\n\thandlesLoading,\n\t...props\n}, ref) => {\n\tconst inner = (() => {\n\t\tif (loading !== undefined || handlesLoading) {\n\t\t\tif (withTooltip) {\n\t\t\t\treturn (\n\t\t\t\t\t<TooltipButton className=\"button--component\" ref={ref} withTooltip={withTooltip} {...props}>\n\t\t\t\t\t\t<LoaderButton loading={loading} handlesLoading={handlesLoading} {...props} />\n\t\t\t\t\t</TooltipButton>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn <LoaderButton ref={ref} loading={loading} handlesLoading={handlesLoading} {...props} />;\n\t\t}\n\n\t\tif (withTooltip) {\n\t\t\treturn <TooltipButton ref={ref} withTooltip={withTooltip} {...props} />;\n\t\t}\n\n\t\treturn <BaseButton ref={ref} {...props} />;\n\t})();\n\n\tif (href) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={href}\n\t\t\t\tclassName={cn('inline-flex', props.fullWidth && 'w-full')}\n\t\t\t>\n\t\t\t\t{inner}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn inner;\n});\n\nButton.displayName = 'Button';\n\nexport { Button };\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require("./chunk-CMqjfN_6.cjs"),t=require("./ui-provider-BF4m2cR0.cjs"),n=require("../lib/utils.cjs"),r=require("./button-C1qc97U1.cjs");let i=require("react");i=e.t(i,1);let a=require("react/jsx-runtime"),o=require("lucide-react");var s=()=>(0,a.jsxs)(`svg`,{"aria-hidden":`true`,className:`h-4 w-4`,width:`256`,height:`262`,viewBox:`0 0 256 262`,xmlns:`http://www.w3.org/2000/svg`,preserveAspectRatio:`xMidYMid`,children:[(0,a.jsx)(`path`,{d:`M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027`,fill:`#4285F4`}),(0,a.jsx)(`path`,{d:`M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1`,fill:`#34A853`}),(0,a.jsx)(`path`,{d:`M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782`,fill:`#FBBC05`}),(0,a.jsx)(`path`,{d:`M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251`,fill:`#EB4335`})]});function c({children:e,className:t,type:i=`button`,href:o,...c}){let l=(0,a.jsx)(r.i,{icon:s,iconPosition:`left`,fullWidth:!0,className:n.cn(`bg-foreground text-background ring-offset-background hover:bg-foreground/85 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,t),type:i,...c,children:e});return o?(0,a.jsx)(`a`,{href:o,className:n.cn(`google-button--component`,`inline-flex w-full`),children:l}):l}function l(e){let{resource:t,id:n,text:s,fullWidth:c,className:l,adminUrl:u}=e,d={...e};delete d.resource,delete d.id,delete d.text,delete d.fullWidth,delete d.className,delete d.adminUrl;let f=e.resource===`product_variants`?e.productId:null;return e.resource===`product_variants`&&delete d.productId,(0,a.jsx)(`a`,{href:(0,i.useMemo)(()=>{let e=(u??``).replace(/\/$/,``);return{orders:`${e}/orders/${n}`,products:`${e}/products/${n}`,product_variants:f?`${e}/products/${f}/variants/${n}`:`${e}/products/${n}`,customers:`${e}/customers/${n}`,draft_orders:`${e}/draft_orders/${n}`,collections:`${e}/collections/${n}`,discounts:`${e}/discounts/${n}`}[t]},[u,t,n,f]),target:`_blank`,rel:`noopener noreferrer`,className:`flex ${c?`w-full`:``}`,children:(0,a.jsx)(r.i,{...d,className:l,icon:o.ShoppingBag,iconPosition:`left`,children:s})})}l.displayName=`ShopifyButton`;var u={xs:`xs`,sm:`sm`,base:`default`},d={xs:`xs`,sm:`sm`,default:`base`,lg:`base`},f={xs:`text-xs h-auto px-0`,sm:`text-sm h-auto px-0`,base:`text-base h-auto px-0`},p=i.forwardRef(({className:e,type:i=`button`,size:o,disabled:s,...c},l)=>{let{defaultSize:p}=t.n(),m=o??d[p??`sm`]??`xs`;return(0,a.jsx)(r.i,{ref:l,type:i,variant:`primary`,buttonStyle:`ghost`,size:u[m],disabled:s,className:n.cn(`text-button--component`,`inline-flex items-center justify-center underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current`,`text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,`disabled:pointer-events-none disabled:opacity-50`,f[m],e),...c})});p.displayName=`TextButton`;var m={xs:`xs`,sm:`sm`,base:`default`},h={xs:`h-7 px-2.5 text-xs`,sm:`h-8 px-3 text-xs`,base:`h-9 px-3.5 text-sm`},g=i.forwardRef(({variant:e=`secondary`,size:t,className:i,...o},s)=>{let c=e===`error`?`error`:e,l=t??`sm`;return(0,a.jsx)(r.i,{ref:s,variant:c,buttonStyle:`solid`,size:m[l],className:n.cn(`page-action-button--component`,h[l],`shadow-none`,i),...o})});g.displayName=`PageActionButton`,Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}});
2
- //# sourceMappingURL=buttons-9YBwevkP.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buttons-9YBwevkP.cjs","names":[],"sources":["../../src/components/base/buttons/google-button.tsx","../../src/components/base/buttons/shopify-button.tsx","../../src/components/base/buttons/text-button.tsx","../../src/components/base/buttons/page-action-button.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\ntype GoogleButtonProps = Omit<BaseButtonProps, 'icon' | 'iconPosition' | 'fullWidth'> & {\n\thref?: string;\n};\n\n// Google brand mark — colors are dictated by Google's brand guidelines and\n// must not be themed. Do not replace with semantic tokens.\nconst GoogleIcon = () => (\n\t<svg\n\t\taria-hidden=\"true\"\n\t\tclassName=\"h-4 w-4\"\n\t\twidth=\"256\"\n\t\theight=\"262\"\n\t\tviewBox=\"0 0 256 262\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tpreserveAspectRatio=\"xMidYMid\"\n\t>\n\t\t<path\n\t\t\td=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\"\n\t\t\tfill=\"#4285F4\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\"\n\t\t\tfill=\"#34A853\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782\"\n\t\t\tfill=\"#FBBC05\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\"\n\t\t\tfill=\"#EB4335\"\n\t\t/>\n\t</svg>\n);\n\nfunction GoogleButton({ children, className, type = 'button', href, ...props }: GoogleButtonProps) {\n\tconst button = (\n\t\t<BaseButton\n\t\t\ticon={GoogleIcon}\n\t\t\ticonPosition=\"left\"\n\t\t\tfullWidth\n\t\t\tclassName={cn(\n\t\t\t\t'bg-foreground text-background ring-offset-background hover:bg-foreground/85 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</BaseButton>\n\t);\n\n\tif (href) {\n\t\treturn (\n\t\t\t<a href={href} className={cn('google-button--component', 'inline-flex w-full')}>\n\t\t\t\t{button}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn button;\n}\n\nexport { GoogleButton };\n","import { useMemo } from 'react';\nimport { ShoppingBag } from 'lucide-react';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\ntype ShopifyResource =\n\t| 'orders'\n\t| 'products'\n\t| 'product_variants'\n\t| 'customers'\n\t| 'draft_orders'\n\t| 'collections'\n\t| 'discounts';\n\ntype ShopifyButtonProps =\n\t| (Omit<BaseButtonProps, 'children'> & {\n\t\t\tresource: Exclude<ShopifyResource, 'product_variants'>;\n\t\t\tid: string | number;\n\t\t\ttext: string;\n\t\t\tadminUrl?: string;\n\t\t})\n\t| (Omit<BaseButtonProps, 'children'> & {\n\t\t\tresource: 'product_variants';\n\t\t\tproductId: string | number;\n\t\t\tid: string | number;\n\t\t\ttext: string;\n\t\t\tadminUrl?: string;\n\t\t});\n\nexport function ShopifyButton(props: ShopifyButtonProps) {\n\tconst { resource, id, text, fullWidth, className, adminUrl } = props;\n\tconst buttonProps = { ...props };\n\tdelete (buttonProps as Partial<typeof props>).resource;\n\tdelete (buttonProps as Partial<typeof props>).id;\n\tdelete (buttonProps as Partial<typeof props>).text;\n\tdelete (buttonProps as Partial<typeof props>).fullWidth;\n\tdelete (buttonProps as Partial<typeof props>).className;\n\tdelete (buttonProps as { adminUrl?: string }).adminUrl;\n\n\tconst productId = props.resource === 'product_variants' ? props.productId : null;\n\tif (props.resource === 'product_variants') {\n\t\tdelete (buttonProps as { productId?: unknown }).productId;\n\t}\n\n\tconst href = useMemo(() => {\n\t\tconst base = (adminUrl ?? '').replace(/\\/$/, '');\n\t\tconst map: Record<ShopifyResource, string> = {\n\t\t\torders: `${base}/orders/${id}`,\n\t\t\tproducts: `${base}/products/${id}`,\n\t\t\tproduct_variants: productId ? `${base}/products/${productId}/variants/${id}` : `${base}/products/${id}`,\n\t\t\tcustomers: `${base}/customers/${id}`,\n\t\t\tdraft_orders: `${base}/draft_orders/${id}`,\n\t\t\tcollections: `${base}/collections/${id}`,\n\t\t\tdiscounts: `${base}/discounts/${id}`,\n\t\t};\n\t\treturn map[resource];\n\t}, [adminUrl, resource, id, productId]);\n\n\treturn (\n\t\t<a\n\t\t\thref={href}\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\tclassName={`flex ${fullWidth ? 'w-full' : ''}`}\n\t\t>\n\t\t\t<BaseButton\n\t\t\t\t{...buttonProps}\n\t\t\t\tclassName={className}\n\t\t\t\ticon={ShoppingBag}\n\t\t\t\ticonPosition=\"left\"\n\t\t\t>\n\t\t\t\t{text}\n\t\t\t</BaseButton>\n\t\t</a>\n\t);\n}\n\nexport default ShopifyButton;\n\nShopifyButton.displayName = 'ShopifyButton';\n","/**\n * TextButton — link-styled button (underline, primary tint, no padding).\n *\n * Wraps `BaseButton` with `variant=\"primary\" buttonStyle=\"ghost\"`. Sizes map\n * 1:1 onto BaseButton's `xs | sm | default` so the `<UIProvider button>`\n * resolution chain reaches through unchanged. Pass `size` only when you\n * intentionally pin against the provider default; otherwise let\n * `useButtonConfig().defaultSize` flow through.\n */\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { useButtonConfig } from '@/lib/ui-provider';\nimport { BaseButton } from './base-button';\n\ntype TextButtonSize = 'xs' | 'sm' | 'base';\n\nconst baseButtonSizeMap: Record<TextButtonSize, 'xs' | 'sm' | 'default'> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tbase: 'default',\n};\n\nconst providerSizeMap: Record<string, TextButtonSize> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tdefault: 'base',\n\tlg: 'base',\n};\n\nconst sizeClasses: Record<TextButtonSize, string> = {\n\txs: 'text-xs h-auto px-0',\n\tsm: 'text-sm h-auto px-0',\n\tbase: 'text-base h-auto px-0',\n};\n\nexport type TextButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> & {\n\tsize?: TextButtonSize;\n\tchildren: React.ReactNode;\n};\n\nexport const TextButton = React.forwardRef<HTMLButtonElement, TextButtonProps>(\n\t({ className, type = 'button', size, disabled, ...props }, ref) => {\n\t\tconst { defaultSize: providerDefault } = useButtonConfig();\n\t\tconst resolvedSize: TextButtonSize =\n\t\t\tsize ?? providerSizeMap[providerDefault ?? 'sm'] ?? 'xs';\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\tref={ref}\n\t\t\t\ttype={type}\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tsize={baseButtonSizeMap[resolvedSize]}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={cn('text-button--component', \n\t\t\t\t\t'inline-flex items-center justify-center underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current',\n\t\t\t\t\t'text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\t\t'disabled:pointer-events-none disabled:opacity-50',\n\t\t\t\t\tsizeClasses[resolvedSize],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nTextButton.displayName = 'TextButton';\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { BaseButton, type ButtonStyle, type ButtonVariant } from './base-button';\n\nexport type PageActionButtonVariant =\n\t| 'primary'\n\t| 'secondary'\n\t| 'error';\n\ntype PageActionButtonSize = 'xs' | 'sm' | 'base';\nconst baseButtonSizeMap: Record<PageActionButtonSize, 'xs' | 'sm' | 'default'> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tbase: 'default',\n};\n\nexport type PageActionButtonProps = Omit<\n\tReact.ComponentPropsWithoutRef<typeof BaseButton>,\n\t'variant' | 'buttonStyle' | 'size'\n> & {\n\tvariant?: PageActionButtonVariant;\n\tsize?: PageActionButtonSize;\n};\n\nconst sizeClasses: Record<PageActionButtonSize, string> = {\n\txs: 'h-7 px-2.5 text-xs',\n\tsm: 'h-8 px-3 text-xs',\n\tbase: 'h-9 px-3.5 text-sm',\n};\n\nexport const PageActionButton = React.forwardRef<\n\tHTMLButtonElement,\n\tPageActionButtonProps\n>(({ variant = 'secondary', size, className, ...props }, ref) => {\n\tconst resolvedVariant: ButtonVariant = variant === 'error' ? 'error' : variant;\n\tconst resolvedStyle: ButtonStyle = 'solid';\n\tconst resolvedSize: PageActionButtonSize = size ?? 'sm';\n\n\treturn (\n\t\t<BaseButton\n\t\t\tref={ref}\n\t\t\tvariant={resolvedVariant}\n\t\t\tbuttonStyle={resolvedStyle}\n\t\t\tsize={baseButtonSizeMap[resolvedSize]}\n\t\t\tclassName={cn('page-action-button--component', sizeClasses[resolvedSize], 'shadow-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nPageActionButton.displayName = 'PageActionButton';\n"],"mappings":"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"}
@@ -1,143 +0,0 @@
1
- import { n as e } from "./ui-provider-C8Ot88lS.js";
2
- import { cn as t } from "../lib/utils.js";
3
- import { i as n } from "./button-SuocMQFT.js";
4
- import * as r from "react";
5
- import { useMemo as i } from "react";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
- import { ShoppingBag as s } from "lucide-react";
8
- //#region src/components/base/buttons/google-button.tsx
9
- var c = () => /* @__PURE__ */ o("svg", {
10
- "aria-hidden": "true",
11
- className: "h-4 w-4",
12
- width: "256",
13
- height: "262",
14
- viewBox: "0 0 256 262",
15
- xmlns: "http://www.w3.org/2000/svg",
16
- preserveAspectRatio: "xMidYMid",
17
- children: [
18
- /* @__PURE__ */ a("path", {
19
- d: "M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027",
20
- fill: "#4285F4"
21
- }),
22
- /* @__PURE__ */ a("path", {
23
- d: "M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1",
24
- fill: "#34A853"
25
- }),
26
- /* @__PURE__ */ a("path", {
27
- d: "M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782",
28
- fill: "#FBBC05"
29
- }),
30
- /* @__PURE__ */ a("path", {
31
- d: "M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251",
32
- fill: "#EB4335"
33
- })
34
- ]
35
- });
36
- function l({ children: e, className: r, type: i = "button", href: o, ...s }) {
37
- let l = /* @__PURE__ */ a(n, {
38
- icon: c,
39
- iconPosition: "left",
40
- fullWidth: !0,
41
- className: t("bg-foreground text-background ring-offset-background hover:bg-foreground/85 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", r),
42
- type: i,
43
- ...s,
44
- children: e
45
- });
46
- return o ? /* @__PURE__ */ a("a", {
47
- href: o,
48
- className: t("google-button--component", "inline-flex w-full"),
49
- children: l
50
- }) : l;
51
- }
52
- //#endregion
53
- //#region src/components/base/buttons/shopify-button.tsx
54
- function u(e) {
55
- let { resource: t, id: r, text: o, fullWidth: c, className: l, adminUrl: u } = e, d = { ...e };
56
- delete d.resource, delete d.id, delete d.text, delete d.fullWidth, delete d.className, delete d.adminUrl;
57
- let f = e.resource === "product_variants" ? e.productId : null;
58
- return e.resource === "product_variants" && delete d.productId, /* @__PURE__ */ a("a", {
59
- href: i(() => {
60
- let e = (u ?? "").replace(/\/$/, "");
61
- return {
62
- orders: `${e}/orders/${r}`,
63
- products: `${e}/products/${r}`,
64
- product_variants: f ? `${e}/products/${f}/variants/${r}` : `${e}/products/${r}`,
65
- customers: `${e}/customers/${r}`,
66
- draft_orders: `${e}/draft_orders/${r}`,
67
- collections: `${e}/collections/${r}`,
68
- discounts: `${e}/discounts/${r}`
69
- }[t];
70
- }, [
71
- u,
72
- t,
73
- r,
74
- f
75
- ]),
76
- target: "_blank",
77
- rel: "noopener noreferrer",
78
- className: `flex ${c ? "w-full" : ""}`,
79
- children: /* @__PURE__ */ a(n, {
80
- ...d,
81
- className: l,
82
- icon: s,
83
- iconPosition: "left",
84
- children: o
85
- })
86
- });
87
- }
88
- u.displayName = "ShopifyButton";
89
- //#endregion
90
- //#region src/components/base/buttons/text-button.tsx
91
- var d = {
92
- xs: "xs",
93
- sm: "sm",
94
- base: "default"
95
- }, f = {
96
- xs: "xs",
97
- sm: "sm",
98
- default: "base",
99
- lg: "base"
100
- }, p = {
101
- xs: "text-xs h-auto px-0",
102
- sm: "text-sm h-auto px-0",
103
- base: "text-base h-auto px-0"
104
- }, m = r.forwardRef(({ className: r, type: i = "button", size: o, disabled: s, ...c }, l) => {
105
- let { defaultSize: u } = e(), m = o ?? f[u ?? "sm"] ?? "xs";
106
- return /* @__PURE__ */ a(n, {
107
- ref: l,
108
- type: i,
109
- variant: "primary",
110
- buttonStyle: "ghost",
111
- size: d[m],
112
- disabled: s,
113
- className: t("text-button--component", "inline-flex items-center justify-center underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current", "text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", p[m], r),
114
- ...c
115
- });
116
- });
117
- m.displayName = "TextButton";
118
- //#endregion
119
- //#region src/components/base/buttons/page-action-button.tsx
120
- var h = {
121
- xs: "xs",
122
- sm: "sm",
123
- base: "default"
124
- }, g = {
125
- xs: "h-7 px-2.5 text-xs",
126
- sm: "h-8 px-3 text-xs",
127
- base: "h-9 px-3.5 text-sm"
128
- }, _ = r.forwardRef(({ variant: e = "secondary", size: r, className: i, ...o }, s) => {
129
- let c = e === "error" ? "error" : e, l = r ?? "sm";
130
- return /* @__PURE__ */ a(n, {
131
- ref: s,
132
- variant: c,
133
- buttonStyle: "solid",
134
- size: h[l],
135
- className: t("page-action-button--component", g[l], "shadow-none", i),
136
- ...o
137
- });
138
- });
139
- _.displayName = "PageActionButton";
140
- //#endregion
141
- export { l as i, m as n, u as r, _ as t };
142
-
143
- //# sourceMappingURL=buttons-BR4BGVYf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buttons-BR4BGVYf.js","names":[],"sources":["../../src/components/base/buttons/google-button.tsx","../../src/components/base/buttons/shopify-button.tsx","../../src/components/base/buttons/text-button.tsx","../../src/components/base/buttons/page-action-button.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\ntype GoogleButtonProps = Omit<BaseButtonProps, 'icon' | 'iconPosition' | 'fullWidth'> & {\n\thref?: string;\n};\n\n// Google brand mark — colors are dictated by Google's brand guidelines and\n// must not be themed. Do not replace with semantic tokens.\nconst GoogleIcon = () => (\n\t<svg\n\t\taria-hidden=\"true\"\n\t\tclassName=\"h-4 w-4\"\n\t\twidth=\"256\"\n\t\theight=\"262\"\n\t\tviewBox=\"0 0 256 262\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tpreserveAspectRatio=\"xMidYMid\"\n\t>\n\t\t<path\n\t\t\td=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\"\n\t\t\tfill=\"#4285F4\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\"\n\t\t\tfill=\"#34A853\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782\"\n\t\t\tfill=\"#FBBC05\"\n\t\t/>\n\t\t<path\n\t\t\td=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\"\n\t\t\tfill=\"#EB4335\"\n\t\t/>\n\t</svg>\n);\n\nfunction GoogleButton({ children, className, type = 'button', href, ...props }: GoogleButtonProps) {\n\tconst button = (\n\t\t<BaseButton\n\t\t\ticon={GoogleIcon}\n\t\t\ticonPosition=\"left\"\n\t\t\tfullWidth\n\t\t\tclassName={cn(\n\t\t\t\t'bg-foreground text-background ring-offset-background hover:bg-foreground/85 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</BaseButton>\n\t);\n\n\tif (href) {\n\t\treturn (\n\t\t\t<a href={href} className={cn('google-button--component', 'inline-flex w-full')}>\n\t\t\t\t{button}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn button;\n}\n\nexport { GoogleButton };\n","import { useMemo } from 'react';\nimport { ShoppingBag } from 'lucide-react';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\ntype ShopifyResource =\n\t| 'orders'\n\t| 'products'\n\t| 'product_variants'\n\t| 'customers'\n\t| 'draft_orders'\n\t| 'collections'\n\t| 'discounts';\n\ntype ShopifyButtonProps =\n\t| (Omit<BaseButtonProps, 'children'> & {\n\t\t\tresource: Exclude<ShopifyResource, 'product_variants'>;\n\t\t\tid: string | number;\n\t\t\ttext: string;\n\t\t\tadminUrl?: string;\n\t\t})\n\t| (Omit<BaseButtonProps, 'children'> & {\n\t\t\tresource: 'product_variants';\n\t\t\tproductId: string | number;\n\t\t\tid: string | number;\n\t\t\ttext: string;\n\t\t\tadminUrl?: string;\n\t\t});\n\nexport function ShopifyButton(props: ShopifyButtonProps) {\n\tconst { resource, id, text, fullWidth, className, adminUrl } = props;\n\tconst buttonProps = { ...props };\n\tdelete (buttonProps as Partial<typeof props>).resource;\n\tdelete (buttonProps as Partial<typeof props>).id;\n\tdelete (buttonProps as Partial<typeof props>).text;\n\tdelete (buttonProps as Partial<typeof props>).fullWidth;\n\tdelete (buttonProps as Partial<typeof props>).className;\n\tdelete (buttonProps as { adminUrl?: string }).adminUrl;\n\n\tconst productId = props.resource === 'product_variants' ? props.productId : null;\n\tif (props.resource === 'product_variants') {\n\t\tdelete (buttonProps as { productId?: unknown }).productId;\n\t}\n\n\tconst href = useMemo(() => {\n\t\tconst base = (adminUrl ?? '').replace(/\\/$/, '');\n\t\tconst map: Record<ShopifyResource, string> = {\n\t\t\torders: `${base}/orders/${id}`,\n\t\t\tproducts: `${base}/products/${id}`,\n\t\t\tproduct_variants: productId ? `${base}/products/${productId}/variants/${id}` : `${base}/products/${id}`,\n\t\t\tcustomers: `${base}/customers/${id}`,\n\t\t\tdraft_orders: `${base}/draft_orders/${id}`,\n\t\t\tcollections: `${base}/collections/${id}`,\n\t\t\tdiscounts: `${base}/discounts/${id}`,\n\t\t};\n\t\treturn map[resource];\n\t}, [adminUrl, resource, id, productId]);\n\n\treturn (\n\t\t<a\n\t\t\thref={href}\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\tclassName={`flex ${fullWidth ? 'w-full' : ''}`}\n\t\t>\n\t\t\t<BaseButton\n\t\t\t\t{...buttonProps}\n\t\t\t\tclassName={className}\n\t\t\t\ticon={ShoppingBag}\n\t\t\t\ticonPosition=\"left\"\n\t\t\t>\n\t\t\t\t{text}\n\t\t\t</BaseButton>\n\t\t</a>\n\t);\n}\n\nexport default ShopifyButton;\n\nShopifyButton.displayName = 'ShopifyButton';\n","/**\n * TextButton — link-styled button (underline, primary tint, no padding).\n *\n * Wraps `BaseButton` with `variant=\"primary\" buttonStyle=\"ghost\"`. Sizes map\n * 1:1 onto BaseButton's `xs | sm | default` so the `<UIProvider button>`\n * resolution chain reaches through unchanged. Pass `size` only when you\n * intentionally pin against the provider default; otherwise let\n * `useButtonConfig().defaultSize` flow through.\n */\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { useButtonConfig } from '@/lib/ui-provider';\nimport { BaseButton } from './base-button';\n\ntype TextButtonSize = 'xs' | 'sm' | 'base';\n\nconst baseButtonSizeMap: Record<TextButtonSize, 'xs' | 'sm' | 'default'> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tbase: 'default',\n};\n\nconst providerSizeMap: Record<string, TextButtonSize> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tdefault: 'base',\n\tlg: 'base',\n};\n\nconst sizeClasses: Record<TextButtonSize, string> = {\n\txs: 'text-xs h-auto px-0',\n\tsm: 'text-sm h-auto px-0',\n\tbase: 'text-base h-auto px-0',\n};\n\nexport type TextButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> & {\n\tsize?: TextButtonSize;\n\tchildren: React.ReactNode;\n};\n\nexport const TextButton = React.forwardRef<HTMLButtonElement, TextButtonProps>(\n\t({ className, type = 'button', size, disabled, ...props }, ref) => {\n\t\tconst { defaultSize: providerDefault } = useButtonConfig();\n\t\tconst resolvedSize: TextButtonSize =\n\t\t\tsize ?? providerSizeMap[providerDefault ?? 'sm'] ?? 'xs';\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\tref={ref}\n\t\t\t\ttype={type}\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tsize={baseButtonSizeMap[resolvedSize]}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={cn('text-button--component', \n\t\t\t\t\t'inline-flex items-center justify-center underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current',\n\t\t\t\t\t'text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\t\t'disabled:pointer-events-none disabled:opacity-50',\n\t\t\t\t\tsizeClasses[resolvedSize],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nTextButton.displayName = 'TextButton';\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { BaseButton, type ButtonStyle, type ButtonVariant } from './base-button';\n\nexport type PageActionButtonVariant =\n\t| 'primary'\n\t| 'secondary'\n\t| 'error';\n\ntype PageActionButtonSize = 'xs' | 'sm' | 'base';\nconst baseButtonSizeMap: Record<PageActionButtonSize, 'xs' | 'sm' | 'default'> = {\n\txs: 'xs',\n\tsm: 'sm',\n\tbase: 'default',\n};\n\nexport type PageActionButtonProps = Omit<\n\tReact.ComponentPropsWithoutRef<typeof BaseButton>,\n\t'variant' | 'buttonStyle' | 'size'\n> & {\n\tvariant?: PageActionButtonVariant;\n\tsize?: PageActionButtonSize;\n};\n\nconst sizeClasses: Record<PageActionButtonSize, string> = {\n\txs: 'h-7 px-2.5 text-xs',\n\tsm: 'h-8 px-3 text-xs',\n\tbase: 'h-9 px-3.5 text-sm',\n};\n\nexport const PageActionButton = React.forwardRef<\n\tHTMLButtonElement,\n\tPageActionButtonProps\n>(({ variant = 'secondary', size, className, ...props }, ref) => {\n\tconst resolvedVariant: ButtonVariant = variant === 'error' ? 'error' : variant;\n\tconst resolvedStyle: ButtonStyle = 'solid';\n\tconst resolvedSize: PageActionButtonSize = size ?? 'sm';\n\n\treturn (\n\t\t<BaseButton\n\t\t\tref={ref}\n\t\t\tvariant={resolvedVariant}\n\t\t\tbuttonStyle={resolvedStyle}\n\t\t\tsize={baseButtonSizeMap[resolvedSize]}\n\t\t\tclassName={cn('page-action-button--component', sizeClasses[resolvedSize], 'shadow-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nPageActionButton.displayName = 'PageActionButton';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-BF4m2cR0.cjs"),r=require("../lib/utils.cjs"),i=require("./heading-0DYCOrgC.cjs"),a=require("./button-C1qc97U1.cjs"),o=require("./input-COMcb1WY.cjs"),s=require("./form-sizing-aVwVuF-w.cjs");let c=require("react");c=e.t(c,1);let l=require("react/jsx-runtime"),u=require("lucide-react"),d=require("@base-ui/react/combobox");var f=d.Combobox.Root;function p({className:e,...t}){return(0,l.jsx)(d.Combobox.Input,{"data-slot":`combobox-input`,className:r.cn(`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`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive`,e),...t})}function m({className:e,children:t,...n}){return(0,l.jsxs)(d.Combobox.Trigger,{"data-slot":`combobox-trigger`,className:r.cn(`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`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive`,`[&>span]:line-clamp-1`,e),...n,children:[t,(0,l.jsx)(d.Combobox.Icon,{className:`flex`,children:(0,l.jsx)(u.ChevronDownIcon,{className:`size-4 opacity-50`})})]})}function h({placeholder:e,...t}){return(0,l.jsx)(d.Combobox.Value,{"data-slot":`combobox-value`,placeholder:!!e&&(0,l.jsx)(`span`,{className:`text-muted-foreground`,children:e}),...t})}function g({className:e,...t}){return(0,l.jsx)(d.Combobox.Clear,{"data-slot":`combobox-clear`,className:r.cn(`absolute right-8 top-1/2 -translate-y-1/2 rounded-sm opacity-50 ring-offset-background transition-opacity`,`hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`disabled:pointer-events-none`,e),...t,children:(0,l.jsx)(u.XIcon,{className:`size-4`})})}var _={sm:`h-8 text-xs pl-2 pr-8`,md:`h-10 text-sm pl-3 pr-10`,lg:`h-12 text-base pl-4 pr-12`},v={sm:`pr-14`,md:`pr-16`,lg:`pr-20`},y={sm:`right-1`,md:`right-2`,lg:`right-3`},b={sm:`size-3`,md:`size-4`,lg:`size-5`};function x({className:e,showClear:t=!1,size:n=`md`,error:i,...a}){return(0,l.jsxs)(`div`,{className:`relative`,children:[(0,l.jsx)(d.Combobox.Input,{"data-slot":`combobox-input`,className:r.cn(`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`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive`,_[n],t&&v[n],e),"aria-invalid":i||void 0,...a}),(0,l.jsxs)(`div`,{className:r.cn(`absolute top-1/2 -translate-y-1/2 flex items-center gap-1 text-muted-foreground`,y[n]),children:[!!t&&(0,l.jsx)(d.Combobox.Clear,{"data-slot":`combobox-clear`,className:`rounded-sm p-1 opacity-50 hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,children:(0,l.jsx)(u.XIcon,{className:b[n]})}),(0,l.jsx)(d.Combobox.Trigger,{className:`rounded-sm p-1 hover:bg-accent focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,children:(0,l.jsx)(u.ChevronDownIcon,{className:b[n]})})]})]})}var S=d.Combobox.Portal;function C({className:e,sideOffset:t=4,...n}){return(0,l.jsx)(d.Combobox.Positioner,{"data-slot":`combobox-positioner`,sideOffset:t,className:r.cn(`z-50 outline-none`,e),...n})}function w({className:e,...t}){return(0,l.jsx)(d.Combobox.Popup,{"data-slot":`combobox-popup`,className:r.cn(`w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]`,`overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`origin-[var(--transform-origin)]`,`data-[starting-style]:opacity-0 data-[starting-style]:scale-95`,`data-[ending-style]:opacity-0 data-[ending-style]:scale-95`,`transition-[opacity,transform] duration-150`,e),...t})}function T({className:e,...t}){return(0,l.jsx)(d.Combobox.List,{"data-slot":`combobox-list`,className:r.cn(`max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-1`,`outline-none empty:hidden`,e),...t})}var E={sm:`py-1 px-2 text-xs gap-2`,md:`py-1.5 px-2.5 text-sm gap-2`,lg:`py-2 px-3 text-base gap-2.5`},D={sm:`size-3`,md:`size-4`,lg:`size-5`};function O({className:e,children:t,size:n=`md`,...i}){return(0,l.jsxs)(d.Combobox.Item,{"data-slot":`combobox-item`,className:r.cn(`flex w-full cursor-default select-none items-center justify-between rounded-sm outline-none`,`data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground`,E[n],e),...i,children:[(0,l.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2 truncate`,children:t}),(0,l.jsx)(d.Combobox.ItemIndicator,{className:r.cn(`flex shrink-0 items-center justify-center text-muted-foreground`,D[n]),children:(0,l.jsx)(u.CheckIcon,{className:D[n]})})]})}function k({className:e,children:t,...n}){return(0,l.jsx)(d.Combobox.ItemIndicator,{"data-slot":`combobox-item-indicator`,className:r.cn(e),...n,children:t??(0,l.jsx)(u.CheckIcon,{className:`size-4`})})}function A({className:e,children:t,...n}){return(0,l.jsx)(d.Combobox.Empty,{"data-slot":`combobox-empty`,className:r.cn(`py-6 text-center text-sm text-muted-foreground empty:hidden`,e),...n,children:t})}function j({className:e,...t}){return(0,l.jsx)(d.Combobox.Status,{"data-slot":`combobox-status`,className:r.cn(`flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground empty:hidden`,e),...t})}function M({className:e,...t}){return(0,l.jsx)(d.Combobox.Group,{"data-slot":`combobox-group`,className:r.cn(`overflow-hidden p-1`,e),...t})}function N({className:e,...t}){return(0,l.jsx)(d.Combobox.GroupLabel,{"data-slot":`combobox-group-label`,className:r.cn(`px-2 py-1.5 text-xs font-medium text-muted-foreground`,e),...t})}var P=d.Combobox.Collection;function ee({className:e,...t}){return(0,l.jsx)(d.Combobox.Separator,{"data-slot":`combobox-separator`,className:r.cn(`-mx-1 my-1 h-px bg-muted`,e),...t})}var te={sm:`min-h-8 gap-1 px-2 py-1 text-xs`,md:`min-h-10 gap-1.5 px-3 py-2 text-sm`,lg:`min-h-12 gap-2 px-4 py-2.5 text-base`};function ne({className:e,size:t=`md`,error:n,...i}){return(0,l.jsx)(d.Combobox.Chips,{"data-slot":`combobox-chips`,className:r.cn(`flex flex-wrap items-center rounded-md border border-input bg-background ring-offset-background shadow-xs transition-[color,box-shadow] outline-none`,`focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15`,te[t],e),"aria-invalid":n||void 0,...i})}function F({className:e,children:t,...n}){return(0,l.jsxs)(d.Combobox.Chip,{"data-slot":`combobox-chip`,className:r.cn(`inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground`,`data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground`,`focus-within:bg-primary focus-within:text-primary-foreground`,e),...n,children:[t,(0,l.jsx)(d.Combobox.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]`,children:(0,l.jsx)(u.XIcon,{className:`size-3`})})]})}function re({className:e,...t}){return(0,l.jsx)(d.Combobox.Input,{"data-slot":`combobox-chips-input`,className:r.cn(`min-w-[80px] flex-1 bg-transparent outline-none placeholder:text-muted-foreground`,e),...t})}function I({className:e,...t}){return(0,l.jsx)(d.Combobox.Backdrop,{"data-slot":`combobox-backdrop`,className:r.cn(`fixed inset-0 z-50 bg-black/80`,`data-[starting-style]:opacity-0 data-[ending-style]:opacity-0`,`transition-opacity duration-150`,e),...t})}function L({className:e,...t}){return(0,l.jsx)(d.Combobox.Arrow,{"data-slot":`combobox-arrow`,className:r.cn(`fill-popover`,e),...t})}var R=d.Combobox.useFilter,z={placeholder:`Search...`,clear:`Clear selection`,toggle:`Open options`,searching:`Loading...`,noResults:`No results found.`,typeToSearch:`Type at least {min} characters to search...`,typeMore:`Type {remaining} more character{s} to search...`,createNew:`Create {value}`,loadingMore:`Loading...`,apply:`Apply`,cancel:`Cancel`},B=3,V=300,ie=`sm`,H=.8,ae=100,oe=500,U=Symbol(`enhanced-combobox-create-option`);function W(e){return typeof e==`object`&&!!e&&U in e}function G(e){if(!W(e))throw Error(`Item is not a create option`);return e[U]}function se(e){return{[U]:e}}function K({isLoading:e,text:t,className:n}){return e?(0,l.jsxs)(`div`,{className:r.cn(`loading-more--component`,`flex items-center justify-center gap-2 py-2 text-sm text-muted-foreground`,n),role:`status`,"aria-live":`polite`,children:[(0,l.jsx)(u.Loader2,{className:`size-4 animate-spin`,"aria-hidden":`true`}),(0,l.jsx)(`span`,{children:t})]}):null}K.displayName=`LoadingMore`;function q({isLoading:e,searchValue:t,minSearchLength:n,itemCount:r,strings:i}){let a=t.trim();if(e)return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.Loader2,{className:`size-4 animate-spin`}),i.searching]});if(a===``)return i.typeToSearch.includes(`{min}`)?i.typeToSearch.replace(`{min}`,String(n)):i.typeToSearch;if(a.length<n){let e=n-a.length;return i.typeMore.includes(`{remaining}`)||i.typeMore.includes(`{s}`)?i.typeMore.replace(`{remaining}`,String(e)).replace(`{s}`,e===1?``:`s`):i.typeMore}return null}q.displayName=`StatusContent`;function J({isLoading:e,showStatus:t,showEmpty:n,searchValue:r,minSearchLength:i,items:o,groupedItems:s,createOptionItem:c,renderItemContent:u,getItemReactKey:d,getItemDisabled:f,renderGroupLabel:p,isLoadingMore:m,strings:h,size:g=`sm`,portalContainer:_,listRef:v,anchor:y,applyFooter:b}){let x=(0,l.jsx)(C,{anchor:y,className:_==null?void 0:`z-[100]`,children:(0,l.jsxs)(w,{"aria-busy":e||void 0,children:[!!t&&(0,l.jsx)(j,{children:(0,l.jsx)(q,{isLoading:e,searchValue:r,minSearchLength:i,itemCount:o.length,strings:h})}),!!n&&(0,l.jsx)(A,{children:h.noResults}),(0,l.jsx)(T,{ref:v,children:s?(0,l.jsxs)(l.Fragment,{children:[Array.from(s.entries()).map(([e,t])=>(0,l.jsxs)(M,{className:`combobox-dropdown--component`,items:t,children:[(0,l.jsx)(N,{children:typeof p==`function`?p(e):e}),(0,l.jsx)(P,{children:e=>(0,l.jsx)(O,{value:e,size:g,disabled:f?.(e),children:u(e)},d(e))})]},e)),c!=null&&(0,l.jsx)(O,{value:c,size:g,children:u(c)},d(c))]}):(0,l.jsx)(P,{children:e=>(0,l.jsx)(O,{value:e,size:g,disabled:f?.(e),children:u(e)},d(e))})}),(0,l.jsx)(K,{isLoading:!!m,text:h.loadingMore}),!!b&&(0,l.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border/60 px-2 py-1.5`,children:[(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:e=>{e.preventDefault(),e.stopPropagation(),b.onCancel()},children:b.cancelLabel}),(0,l.jsx)(a.t,{type:`button`,variant:`primary`,onClick:e=>{e.preventDefault(),e.stopPropagation(),b.onApply()},children:b.applyLabel})]})]})});return _?(0,l.jsx)(S,{container:_,children:x}):(0,l.jsx)(S,{children:x})}J.displayName=`ComboboxDropdown`;var ce={sm:`text-xs mt-1`,md:`text-sm mt-1.5`,lg:`text-base mt-2`};function Y({error:e,size:t,className:n}){return e?(0,l.jsx)(`p`,{className:r.cn(`error-message--component`,`text-destructive`,ce[t],n),role:`alert`,"aria-live":`polite`,children:e}):null}Y.displayName=`ErrorMessage`;function le(e){return e.replace(/[$()*+.?[\\\]^{|}]/g,`\\$&`)}function X({text:e,highlight:t,highlightClassName:n=`rounded-sm bg-warning/20 px-0.5 text-warning-foreground dark:bg-warning/25`}){if(!t.trim())return e;let r=RegExp(`(${le(t)})`,`gi`),i=e.split(r),a=0;return(0,l.jsx)(l.Fragment,{children:i.map((e,t)=>{let r=t%2==1,i=String(a);return a+=e.length,r?(0,l.jsx)(`mark`,{className:n,children:e},i):(0,l.jsx)(`span`,{children:e},i)})})}X.displayName=`HighlightedText`;function ue({searchValue:e,onSearch:t,debounceMs:n=300,minSearchLength:r=3}){let i=(0,c.useRef)(null),a=(0,c.useRef)(t);(0,c.useEffect)(()=>{a.current=t},[t]),(0,c.useEffect)(()=>{if(!a.current)return;i.current&&clearTimeout(i.current);let t=e.trim();return t.length>=r&&(i.current=setTimeout(()=>{a.current?.(t)},n)),()=>{i.current&&clearTimeout(i.current)}},[e,n,r])}function Z({items:e,getItemGroup:t}){return(0,c.useMemo)(()=>{if(!t)return null;let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n},[e,t])}function Q({hasMore:e,onLoadMore:t,isLoadingMore:n}){let r=(0,c.useRef)(!1),i=(0,c.useRef)(null),a=(0,c.useCallback)(a=>{if(!e||!t||n||r.current)return;let{scrollHeight:o,scrollTop:s,clientHeight:c}=a.target;(s+c)/o>=.8&&(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r.current=!0,t(),setTimeout(()=>{r.current=!1},500)},100))},[e,t,n]);return(0,c.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),{handleScroll:a}}function de(e){return t.useStrings(z,e)}function fe(e,t,n){let r=t.toLowerCase();return e.some(e=>n(e).toLowerCase()===r)}function pe({items:e,searchValue:t,getItemLabel:n,getItemKey:a,isLoading:o=!1,minSearchLength:s=3,strings:d,renderItem:f,onSearch:p,debounceMs:m=300,creatable:h,onCreate:g,getItemGroup:_,hasMore:v,onLoadMore:y,isLoadingMore:b,highlightMatch:x,ensuredItems:S=[]}){let C=de(d),w=a??n,T=(0,c.useRef)(null),E=t.trim();ue({searchValue:t,onSearch:p,debounceMs:m,minSearchLength:s});let{handleScroll:D}=Q({hasMore:v,onLoadMore:y,isLoadingMore:b});(0,c.useEffect)(()=>{let e=T.current;if(!(!e||!v||!y))return e.addEventListener(`scroll`,D),()=>e.removeEventListener(`scroll`,D)},[D,v,y]);let O=(0,c.useMemo)(()=>{if(S.length===0)return e;let t=[...S];return e.forEach(e=>{let n=w(e);S.some(e=>w(e)===n)||t.push(e)}),t},[e,S,w]),k=Z({items:O,getItemGroup:_}),A=(0,c.useMemo)(()=>!h||!g||E.length<s?!1:!fe(O,E,n),[h,g,E,s,O,n]),j=(0,c.useMemo)(()=>A?se(E):null,[A,E]);return{strings:C,getKey:w,trimmedSearch:E,listRef:T,baseItems:O,allItems:(0,c.useMemo)(()=>j?[...O,j]:O,[O,j]),groupedItems:k,createOptionItem:j,showStatus:o||E.length<s,showEmpty:!o&&E.length>=s&&e.length===0&&!A,showCreateOption:A,renderItemContent:(0,c.useCallback)(e=>{if(W(e)){let t=G(e);return(0,l.jsxs)(`span`,{className:r.cn(`use-enhanced-combobox-core--component`,`flex items-center gap-2`),children:[(0,l.jsx)(u.PlusIcon,{className:`size-4`}),C.createNew.includes(`{value}`)?C.createNew.replace(`{value}`,t):(0,l.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,l.jsx)(`span`,{children:C.createNew}),(0,l.jsx)(i.n,{tag:`span`,weight:`medium`,children:t})]})]})}if(f)return f(e);let t=n(e);return x&&E?(0,l.jsx)(X,{text:t,highlight:E}):t},[C.createNew,f,n,x,E]),itemToStringLabel:(0,c.useCallback)(e=>W(e)?G(e):n(e),[n]),getItemReactKey:(0,c.useCallback)(e=>W(e)?`__create__:${G(e)}`:String(w(e)),[w]),handleScroll:D}}var me={sm:`md`,base:`md`,lg:`lg`};function he(e,t){return e??me[t??`sm`]??`sm`}var $={sm:`sm`,md:`base`,lg:`lg`},ge={sm:`pe-14`,md:`pe-16`,lg:`pe-20`};function _e(e){return $[e]}function ve({placeholder:e,clearLabel:t,toggleLabel:n,size:i,error:s,required:c,disabled:f,clearable:p=!0,className:m,onBlur:h}){return(0,l.jsxs)(`div`,{className:`relative`,children:[(0,l.jsx)(d.Combobox.Input,{render:(0,l.jsx)(o.t,{size:i,invalid:s,className:r.cn(`pe-16`,m)}),placeholder:e,"aria-invalid":s||void 0,"aria-required":c,disabled:f,onBlur:h}),(0,l.jsxs)(`div`,{className:`absolute inset-y-0 end-1 flex items-center gap-1 text-muted-foreground`,children:[p?(0,l.jsx)(d.Combobox.Clear,{render:(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,className:`size-7 text-muted-foreground hover:text-foreground`,"aria-label":t,children:(0,l.jsx)(u.XIcon,{className:`size-3.5`,"aria-hidden":`true`})})}):null,(0,l.jsx)(d.Combobox.Trigger,{render:(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,className:`size-7 text-muted-foreground hover:text-foreground`,"aria-label":n,children:(0,l.jsx)(u.ChevronDownIcon,{className:`size-3.5`,"aria-hidden":`true`})})})]})]})}function ye({items:e,selectedValue:t,onSelectedValueChange:i,searchValue:a,onSearchValueChange:o,getItemLabel:s,getItemKey:u,isLoading:d=!1,minSearchLength:p=3,strings:m,disabled:h=!1,className:g,clearable:_=!0,renderItem:v,portalContainer:y,name:b,invalid:x,error:S,required:C,onBlur:w,onSearch:T,debounceMs:E,creatable:D,onCreate:O,getItemGroup:k,renderGroupLabel:A,hasMore:j,onLoadMore:M,isLoadingMore:N,getItemDisabled:P,highlightMatch:ee,size:te,open:ne,onOpenChange:F}){let{defaultControlSize:re}=n.s(),I=he(te,re),L=_e(I),R=x||!!S,z=pe({items:e,searchValue:a,onSearchValueChange:o,getItemLabel:s,getItemKey:u,isLoading:d,minSearchLength:p,strings:m,renderItem:v,onSearch:T,debounceMs:E,creatable:D,onCreate:O,getItemGroup:k,hasMore:j,onLoadMore:M,isLoadingMore:N,highlightMatch:ee,size:I,ensuredItems:t?[t]:[]}),[B,V]=(0,c.useState)(!1),ie=(0,c.useCallback)(e=>{V(e),e||o(``),F?.(e)},[F,o]),H=B?a:t?z.itemToStringLabel(t):``,ae=(0,c.useCallback)(e=>{if(e&&W(e)){let t=G(e);O?.(t);return}i(e)},[i,O]);return(0,l.jsxs)(`div`,{className:`enhanced-combobox--component`,children:[(0,l.jsxs)(f,{items:z.allItems,value:t,onValueChange:ae,inputValue:H,onInputValueChange:(e,{reason:t})=>{if(t===`item-press`){o(``);return}o(e)},itemToStringLabel:z.itemToStringLabel,disabled:h,filter:null,name:b,required:C,open:ne,onOpenChange:ie,children:[(0,l.jsx)(ve,{placeholder:z.strings.placeholder,clearLabel:z.strings.clear,toggleLabel:z.strings.toggle,className:r.cn(ge[I],g),size:L,error:R,required:C,disabled:h,clearable:_,onBlur:w}),(0,l.jsx)(J,{isLoading:d,showStatus:z.showStatus,showEmpty:z.showEmpty,searchValue:a,minSearchLength:p,items:e,groupedItems:z.groupedItems,createOptionItem:z.createOptionItem,renderItemContent:z.renderItemContent,getItemReactKey:z.getItemReactKey,getItemDisabled:P,renderGroupLabel:A,isLoadingMore:N,strings:z.strings,size:I,portalContainer:y,listRef:z.listRef})]}),(0,l.jsx)(Y,{error:S,size:I})]})}function be({items:e,selectedValues:t,onSelectedValuesChange:i,searchValue:a,onSearchValueChange:o,getItemLabel:u,getItemKey:d,isLoading:p=!1,minSearchLength:m=3,strings:h,disabled:g=!1,className:_,renderItem:v,portalContainer:y,name:b,invalid:x,error:S,required:C,onBlur:w,onSearch:T,debounceMs:E,creatable:D,onCreate:O,getItemGroup:k,renderGroupLabel:A,hasMore:j,onLoadMore:M,isLoadingMore:N,getItemDisabled:P,highlightMatch:ee,size:te,open:I,onOpenChange:L,closeOnSelect:R=!1,applyButton:z=!1,onApply:B,onCancel:V}){let{defaultControlSize:ie}=n.s(),H=he(te,ie),ae=_e(H),oe=x||!!S,U=(0,c.useRef)(null),se=d??u,[K,q]=(0,c.useState)(t),[ce,le]=(0,c.useState)(!1),X=I!==void 0,ue=X?I:ce;(0,c.useEffect)(()=>{z&&q(t)},[z,t]);let Z=(0,c.useCallback)(e=>{X||le(e),L?.(e)},[X,L]),Q=pe({items:e,searchValue:a,onSearchValueChange:o,getItemLabel:u,getItemKey:d,isLoading:p,minSearchLength:m,strings:h,renderItem:v,onSearch:T,debounceMs:E,creatable:D,onCreate:O,getItemGroup:k,hasMore:j,onLoadMore:M,isLoadingMore:N,highlightMatch:ee,size:H,ensuredItems:t}),de=(0,c.useCallback)(e=>{let t=[],n=null;for(let r of e)W(r)?n=G(r):t.push(r);n&&O?.(n);let r=t.length!==e.length||!n?t:null;r&&(z?q(r):i(r)),R&&Z(!1)},[i,O,z,R,Z]),fe=(0,c.useCallback)(()=>{z&&i(K),B?.(),Z(!1)},[z,K,B,i,Z]),me=(0,c.useCallback)(()=>{z&&q(t),V?.(),Z(!1)},[z,t,V,Z]),$=z?K:t,ge=$.length>0?void 0:Q.strings.placeholder;return(0,l.jsxs)(`div`,{className:`enhanced-combobox--component`,children:[(0,l.jsxs)(f,{items:Q.allItems,multiple:!0,value:$,onValueChange:de,inputValue:a,onInputValueChange:(e,{reason:t})=>{if(t===`item-press`){o(``);return}o(e)},itemToStringLabel:Q.itemToStringLabel,disabled:g,filter:null,name:b,required:C,open:ue,onOpenChange:e=>{!e&&z&&q(t),Z(e)},children:[(0,l.jsxs)(ne,{ref:U,className:r.cn(s.t[ae],`bg-transparent px-3 py-1 text-sm !shadow-none`,_),size:H,error:oe,children:[$.map(e=>(0,l.jsx)(F,{children:u(e)},se(e))),(0,l.jsx)(re,{placeholder:ge,"aria-invalid":oe||void 0,"aria-required":C,onBlur:w})]}),(0,l.jsx)(J,{isLoading:p,showStatus:Q.showStatus,showEmpty:Q.showEmpty,searchValue:a,minSearchLength:m,items:e,groupedItems:Q.groupedItems,createOptionItem:Q.createOptionItem,renderItemContent:Q.renderItemContent,getItemReactKey:Q.getItemReactKey,getItemDisabled:P,renderGroupLabel:A,isLoadingMore:N,strings:Q.strings,size:H,portalContainer:y,listRef:Q.listRef,anchor:U,applyFooter:z?{applyLabel:Q.strings.apply,cancelLabel:Q.strings.cancel,onApply:fe,onCancel:me}:void 0})]}),(0,l.jsx)(Y,{error:S,size:H})]})}var xe=ye,Se=be;ye.displayName=`EnhancedCombobox`,be.displayName=`EnhancedComboboxMultiple`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"J",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"q",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return k}});
2
- //# sourceMappingURL=combobox-CpSmiPV8.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combobox-CpSmiPV8.cjs","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"],"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 = 'sm';\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-2 py-2 text-sm 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-4 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-4 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';\n\nimport { DEFAULT_SIZE } from '../constants';\nimport type { ComboboxStrings, ComboboxSize } from '../types';\nimport { LoadingMore } from './loading-more';\nimport { StatusContent } from './status-content';\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\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 aria-busy={isLoading || undefined}>\n\t\t\t\t{/* Status message */}\n\t\t\t\t{!!showStatus && (\n\t\t\t\t\t<ComboboxStatus>\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 && <ComboboxEmpty>{strings.noResults}</ComboboxEmpty>}\n\n\t\t\t\t{/* Items list */}\n\t\t\t\t<ComboboxList ref={listRef}>\n\t\t\t\t\t{groupedItems ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{Array.from(groupedItems.entries()).map(([group, groupItems]) => {\n\t\t\t\t\t\t\t\tconst groupLabel =\n\t\t\t\t\t\t\t\t\ttypeof renderGroupLabel === 'function'\n\t\t\t\t\t\t\t\t\t\t? renderGroupLabel(group)\n\t\t\t\t\t\t\t\t\t\t: group;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ComboboxGroup className=\"combobox-dropdown--component\" key={group} items={groupItems}>\n\t\t\t\t\t\t\t\t\t\t<ComboboxGroupLabel>{groupLabel}</ComboboxGroupLabel>\n\t\t\t\t\t\t\t\t\t\t<ComboboxCollection>\n\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<ComboboxItem\n\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\tvalue={item}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize={size}\n\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>\n\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</ComboboxItem>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</ComboboxCollection>\n\t\t\t\t\t\t\t\t\t</ComboboxGroup>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t{createOptionItem != null && (\n\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\tkey={getItemReactKey(createOptionItem)}\n\t\t\t\t\t\t\t\t\tvalue={createOptionItem}\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderItemContent(createOptionItem)}\n\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<ComboboxCollection>\n\t\t\t\t\t\t\t{(item: T) => (\n\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\tkey={getItemReactKey(item)}\n\t\t\t\t\t\t\t\t\tvalue={item}\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t\tdisabled={getItemDisabled?.(item)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderItemContent(item)}\n\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ComboboxCollection>\n\t\t\t\t\t)}\n\t\t\t\t</ComboboxList>\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-2 border-t border-border/60 px-2 py-1.5\">\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\tsm: 'text-xs mt-1',\n\tmd: 'text-sm mt-1.5',\n\tlg: 'text-base mt-2',\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-2')}>\n\t\t\t\t\t\t<PlusIcon className=\"size-4\" />\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-1\">\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\" weight=\"medium\">{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\tformControlMinHeightClasses,\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\n// Comboboxes default a notch larger than raw inputs: their dropdown items\n// need to stay legible, so the shared `sm` control size maps to a `md`\n// combobox (text-sm items) rather than the cramped `text-xs` `sm` menu.\n// Consumers can still force the compact menu with an explicit `size=\"sm\"`.\nconst formControlSizeToComboboxSize: Record<FormControlSize, ComboboxSize> = {\n\tsm: 'md',\n\tbase: 'md',\n\tlg: 'lg',\n};\n\nfunction resolveComboboxSize(\n\tsizeProp: ComboboxSize | undefined,\n\tdefaultControlSize: FormControlSize | undefined,\n): ComboboxSize {\n\treturn sizeProp ?? formControlSizeToComboboxSize[defaultControlSize ?? 'sm'] ?? DEFAULT_SIZE;\n}\n\nconst comboboxSizeToFormControlSize: Record<ComboboxSize, FormControlSize> = {\n\tsm: 'sm',\n\tmd: 'base',\n\tlg: 'lg',\n};\n\nconst inputEndPaddingBySize: Record<ComboboxSize, string> = {\n\tsm: 'pe-14',\n\tmd: 'pe-16',\n\tlg: 'pe-20',\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('pe-16', 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-xs\"\n\t\t\t\t\t\t\t\tclassName=\"size-7 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=\"size-3.5\" 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-xs\"\n\t\t\t\t\t\t\tclassName=\"size-7 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=\"size-3.5\" 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={cn(inputEndPaddingBySize[size], 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 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\t'bg-transparent px-3 py-1 text-sm !shadow-none',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tsize={size}\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"],"mappings":"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"}