admin-ui-starter-kit 0.6.7 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1224) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +2 -2
  2. package/.agents/skills/component-library-rules/references/components/INDEX.json +15 -1
  3. package/.agents/skills/component-library-rules/references/components/INDEX.md +15 -1
  4. package/.agents/skills/component-library-rules/references/components/base__boolean-indicator.md +33 -0
  5. package/.agents/skills/component-library-rules/references/components/base__cards.md +3 -2
  6. package/.agents/skills/component-library-rules/references/components/base__collapsible.md +39 -0
  7. package/.agents/skills/component-library-rules/references/components/base__conditional-rendering.md +39 -0
  8. package/.agents/skills/component-library-rules/references/components/base__date-block.md +39 -0
  9. package/.agents/skills/component-library-rules/references/components/base__dialog.md +39 -0
  10. package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +74 -103
  11. package/.agents/skills/component-library-rules/references/components/base__item.md +4 -3
  12. package/.agents/skills/component-library-rules/references/components/base__money-display.md +39 -0
  13. package/.agents/skills/component-library-rules/references/components/base__notification-banner.md +39 -0
  14. package/.agents/skills/component-library-rules/references/components/base__placeholder-pattern.md +39 -0
  15. package/.agents/skills/component-library-rules/references/components/base__progress.md +33 -0
  16. package/.agents/skills/component-library-rules/references/components/base__qr-code.md +39 -0
  17. package/.agents/skills/component-library-rules/references/components/base__separator.md +33 -0
  18. package/.agents/skills/component-library-rules/references/components/base__skeleton.md +55 -0
  19. package/.agents/skills/component-library-rules/references/components/base__throttle-alert.md +39 -0
  20. package/.agents/skills/component-library-rules/references/components/base__visually-hidden.md +39 -0
  21. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +2 -1
  22. package/.agents/skills/component-library-rules/references/ui-provider.md +2 -2
  23. package/dist/_shared/accordion-8B4OFqiT.cjs +2 -0
  24. package/dist/_shared/accordion-8B4OFqiT.cjs.map +1 -0
  25. package/dist/_shared/accordion-DlpTSZ3p.js +135 -0
  26. package/dist/_shared/accordion-DlpTSZ3p.js.map +1 -0
  27. package/dist/_shared/action-menu-BYrYdpkR.cjs +2 -0
  28. package/dist/_shared/action-menu-BYrYdpkR.cjs.map +1 -0
  29. package/dist/_shared/action-menu-CYwMZX-b.js +96 -0
  30. package/dist/_shared/action-menu-CYwMZX-b.js.map +1 -0
  31. package/dist/_shared/ai-artifact-Cv8VBibf.cjs +3 -0
  32. package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +1 -0
  33. package/dist/_shared/ai-artifact-DwfXQuh4.js +1099 -0
  34. package/dist/_shared/ai-artifact-DwfXQuh4.js.map +1 -0
  35. package/dist/_shared/auth-Cz5ci18c.cjs +2 -0
  36. package/dist/_shared/auth-Cz5ci18c.cjs.map +1 -0
  37. package/dist/_shared/auth-DDWsgFUL.js +643 -0
  38. package/dist/_shared/auth-DDWsgFUL.js.map +1 -0
  39. package/dist/_shared/badge-C65rt1M9.cjs +2 -0
  40. package/dist/_shared/badge-C65rt1M9.cjs.map +1 -0
  41. package/dist/_shared/badge-r8ae66Vd.js +110 -0
  42. package/dist/_shared/badge-r8ae66Vd.js.map +1 -0
  43. package/dist/_shared/button-Be2ayMxF.js +192 -0
  44. package/dist/_shared/button-Be2ayMxF.js.map +1 -0
  45. package/dist/_shared/button-CfQtOuBK.cjs +2 -0
  46. package/dist/_shared/button-CfQtOuBK.cjs.map +1 -0
  47. package/dist/_shared/buttons-DABiSx6N.cjs +2 -0
  48. package/dist/_shared/buttons-DABiSx6N.cjs.map +1 -0
  49. package/dist/_shared/buttons-DYQqQPpk.js +137 -0
  50. package/dist/_shared/buttons-DYQqQPpk.js.map +1 -0
  51. package/dist/_shared/card-radio-group-DKhZhBFV.cjs +2 -0
  52. package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +1 -0
  53. package/dist/_shared/card-radio-group-DRjmLN5s.js +150 -0
  54. package/dist/_shared/card-radio-group-DRjmLN5s.js.map +1 -0
  55. package/dist/_shared/cards-BJctT9KD.js +428 -0
  56. package/dist/_shared/cards-BJctT9KD.js.map +1 -0
  57. package/dist/_shared/cards-m03XN10f.cjs +2 -0
  58. package/dist/_shared/cards-m03XN10f.cjs.map +1 -0
  59. package/dist/_shared/combobox-BdBpeD3C.cjs +2 -0
  60. package/dist/_shared/combobox-BdBpeD3C.cjs.map +1 -0
  61. package/dist/_shared/combobox-D9tU_83-.js +954 -0
  62. package/dist/_shared/combobox-D9tU_83-.js.map +1 -0
  63. package/dist/_shared/command-BbJB0pjP.cjs +2 -0
  64. package/dist/_shared/command-BbJB0pjP.cjs.map +1 -0
  65. package/dist/_shared/command-IP2wy_HN.js +39 -0
  66. package/dist/_shared/command-IP2wy_HN.js.map +1 -0
  67. package/dist/_shared/comments-DAzpeuQq.cjs +2 -0
  68. package/dist/_shared/comments-DAzpeuQq.cjs.map +1 -0
  69. package/dist/_shared/comments-DzZaKP9x.js +952 -0
  70. package/dist/_shared/comments-DzZaKP9x.js.map +1 -0
  71. package/dist/_shared/copyable-BJYx2SlN.js +38 -0
  72. package/dist/_shared/copyable-BJYx2SlN.js.map +1 -0
  73. package/dist/_shared/copyable-DiDEjp8Z.cjs +2 -0
  74. package/dist/_shared/copyable-DiDEjp8Z.cjs.map +1 -0
  75. package/dist/_shared/data-display-DQUUEzCx.cjs +2 -0
  76. package/dist/_shared/data-display-DQUUEzCx.cjs.map +1 -0
  77. package/dist/_shared/data-display-LlvMEFTK.js +1878 -0
  78. package/dist/_shared/data-display-LlvMEFTK.js.map +1 -0
  79. package/dist/_shared/date-picker-CrC-lHyF.cjs +2 -0
  80. package/dist/_shared/date-picker-CrC-lHyF.cjs.map +1 -0
  81. package/dist/_shared/date-picker-DbYBek-b.js +1361 -0
  82. package/dist/_shared/date-picker-DbYBek-b.js.map +1 -0
  83. package/dist/_shared/date-pickers-9AU8YQK2.js +329 -0
  84. package/dist/_shared/date-pickers-9AU8YQK2.js.map +1 -0
  85. package/dist/_shared/date-pickers-DUEwCWig.cjs +2 -0
  86. package/dist/_shared/date-pickers-DUEwCWig.cjs.map +1 -0
  87. package/dist/_shared/display-BqoPOdof.cjs +2 -0
  88. package/dist/_shared/display-BqoPOdof.cjs.map +1 -0
  89. package/dist/_shared/display-CQoSwU74.js +986 -0
  90. package/dist/_shared/display-CQoSwU74.js.map +1 -0
  91. package/dist/_shared/forms-CNh-S9FK.cjs +2 -0
  92. package/dist/_shared/forms-CNh-S9FK.cjs.map +1 -0
  93. package/dist/_shared/forms-DIz3SCA9.js +3534 -0
  94. package/dist/_shared/forms-DIz3SCA9.js.map +1 -0
  95. package/dist/_shared/header-Bs61tQla.js +447 -0
  96. package/dist/_shared/header-Bs61tQla.js.map +1 -0
  97. package/dist/_shared/header-D01oOxna.cjs +2 -0
  98. package/dist/_shared/header-D01oOxna.cjs.map +1 -0
  99. package/dist/_shared/hooks-ACnpaIli.js +95 -0
  100. package/dist/_shared/hooks-ACnpaIli.js.map +1 -0
  101. package/dist/_shared/hooks-B7khuHkk.cjs +2 -0
  102. package/dist/_shared/hooks-B7khuHkk.cjs.map +1 -0
  103. package/dist/_shared/input-CzJzVyQ0.js +182 -0
  104. package/dist/_shared/input-CzJzVyQ0.js.map +1 -0
  105. package/dist/_shared/input-Dvvmn96E.cjs +2 -0
  106. package/dist/_shared/input-Dvvmn96E.cjs.map +1 -0
  107. package/dist/_shared/item-CVjjpHQd.js +226 -0
  108. package/dist/_shared/item-CVjjpHQd.js.map +1 -0
  109. package/dist/_shared/item-ChHblHhR.cjs +2 -0
  110. package/dist/_shared/item-ChHblHhR.cjs.map +1 -0
  111. package/dist/_shared/layout-CGi5w1mo.js +268 -0
  112. package/dist/_shared/layout-CGi5w1mo.js.map +1 -0
  113. package/dist/_shared/layout-ccVwjUG8.cjs +2 -0
  114. package/dist/_shared/layout-ccVwjUG8.cjs.map +1 -0
  115. package/dist/_shared/mentions-Cg_4vFxd.cjs +2 -0
  116. package/dist/_shared/mentions-Cg_4vFxd.cjs.map +1 -0
  117. package/dist/_shared/mentions-Ci9RFTfw.js +506 -0
  118. package/dist/_shared/mentions-Ci9RFTfw.js.map +1 -0
  119. package/dist/_shared/money-display-BFk9Gu21.cjs +2 -0
  120. package/dist/_shared/money-display-BFk9Gu21.cjs.map +1 -0
  121. package/dist/_shared/money-display-DpuLnsK2.js +198 -0
  122. package/dist/_shared/money-display-DpuLnsK2.js.map +1 -0
  123. package/dist/_shared/navigation-C1QN2-Vq.cjs +2 -0
  124. package/dist/_shared/navigation-C1QN2-Vq.cjs.map +1 -0
  125. package/dist/_shared/navigation-CMrLO8v5.js +436 -0
  126. package/dist/_shared/navigation-CMrLO8v5.js.map +1 -0
  127. package/dist/_shared/overlays-BJLczwpz.js +735 -0
  128. package/dist/_shared/overlays-BJLczwpz.js.map +1 -0
  129. package/dist/_shared/overlays-DbaPLT67.cjs +2 -0
  130. package/dist/_shared/overlays-DbaPLT67.cjs.map +1 -0
  131. package/dist/_shared/popover-menu-D_t6rCvN.cjs +2 -0
  132. package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +1 -0
  133. package/dist/_shared/popover-menu-f2O6R_27.js +93 -0
  134. package/dist/_shared/popover-menu-f2O6R_27.js.map +1 -0
  135. package/dist/_shared/rich-text-editor-DmZHbsms.js +620 -0
  136. package/dist/_shared/rich-text-editor-DmZHbsms.js.map +1 -0
  137. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +2 -0
  138. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +1 -0
  139. package/dist/_shared/separator-BXn_fnly.cjs +2 -0
  140. package/dist/_shared/separator-BXn_fnly.cjs.map +1 -0
  141. package/dist/_shared/separator-DiH-j--f.js +20 -0
  142. package/dist/_shared/separator-DiH-j--f.js.map +1 -0
  143. package/dist/_shared/settings-CgtcSI8L.js +143 -0
  144. package/dist/_shared/settings-CgtcSI8L.js.map +1 -0
  145. package/dist/_shared/settings-csNmeT7b.cjs +2 -0
  146. package/dist/_shared/settings-csNmeT7b.cjs.map +1 -0
  147. package/dist/_shared/sidebar-DyGIcJd9.cjs +2 -0
  148. package/dist/_shared/sidebar-DyGIcJd9.cjs.map +1 -0
  149. package/dist/_shared/sidebar-OT-xIguQ.js +548 -0
  150. package/dist/_shared/sidebar-OT-xIguQ.js.map +1 -0
  151. package/dist/_shared/skeleton-DwF5VdMh.cjs +2 -0
  152. package/dist/_shared/skeleton-DwF5VdMh.cjs.map +1 -0
  153. package/dist/_shared/skeleton-yUXqeWzB.js +256 -0
  154. package/dist/_shared/skeleton-yUXqeWzB.js.map +1 -0
  155. package/dist/_shared/spinner-BDrUzfTo.cjs +2 -0
  156. package/dist/_shared/spinner-BDrUzfTo.cjs.map +1 -0
  157. package/dist/_shared/spinner-CuVZhJhN.js +67 -0
  158. package/dist/_shared/spinner-CuVZhJhN.js.map +1 -0
  159. package/dist/_shared/table-BVWemr79.cjs +2 -0
  160. package/dist/_shared/table-BVWemr79.cjs.map +1 -0
  161. package/dist/_shared/table-WYSjfQRr.js +1377 -0
  162. package/dist/_shared/table-WYSjfQRr.js.map +1 -0
  163. package/dist/_shared/textarea-C0iZwWdD.js +118 -0
  164. package/dist/_shared/textarea-C0iZwWdD.js.map +1 -0
  165. package/dist/_shared/textarea-bHFAtwYd.cjs +2 -0
  166. package/dist/_shared/textarea-bHFAtwYd.cjs.map +1 -0
  167. package/dist/_shared/typography-5bLhAYaK.js +201 -0
  168. package/dist/_shared/typography-5bLhAYaK.js.map +1 -0
  169. package/dist/_shared/typography-CWEobAJV.cjs +2 -0
  170. package/dist/_shared/typography-CWEobAJV.cjs.map +1 -0
  171. package/dist/_shared/ui-provider-CrsJ_dGn.cjs +2 -0
  172. package/dist/_shared/ui-provider-CrsJ_dGn.cjs.map +1 -0
  173. package/dist/_shared/ui-provider-Dz2qXgZQ.js +89 -0
  174. package/dist/_shared/ui-provider-Dz2qXgZQ.js.map +1 -0
  175. package/dist/_shared/workspace-BkwsqTrc.cjs +2 -0
  176. package/dist/_shared/workspace-BkwsqTrc.cjs.map +1 -0
  177. package/dist/_shared/workspace-DpU1YG1t.js +357 -0
  178. package/dist/_shared/workspace-DpU1YG1t.js.map +1 -0
  179. package/dist/components/base/accordion/index.cjs +1 -1
  180. package/dist/components/base/accordion/index.js +1 -1
  181. package/dist/components/base/badge/index.cjs +1 -1
  182. package/dist/components/base/badge/index.js +1 -1
  183. package/dist/components/base/buttons/button.d.ts.map +1 -1
  184. package/dist/components/base/buttons/index.cjs +1 -1
  185. package/dist/components/base/buttons/index.js +2 -2
  186. package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
  187. package/dist/components/base/cards/index.cjs +1 -1
  188. package/dist/components/base/cards/index.js +2 -2
  189. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
  190. package/dist/components/base/cards/smart-card.d.ts.map +1 -1
  191. package/dist/components/base/cards/smart-card.types.d.ts +7 -3
  192. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
  193. package/dist/components/base/carousel/index.cjs +1 -1
  194. package/dist/components/base/carousel/index.js +1 -1
  195. package/dist/components/base/combobox/index.cjs +1 -1
  196. package/dist/components/base/combobox/index.js +1 -1
  197. package/dist/components/base/command/index.cjs +1 -1
  198. package/dist/components/base/command/index.js +1 -1
  199. package/dist/components/base/copyable/index.cjs +1 -1
  200. package/dist/components/base/copyable/index.js +1 -1
  201. package/dist/components/base/currency/index.cjs +1 -1
  202. package/dist/components/base/currency/index.js +1 -1
  203. package/dist/components/base/date-pickers/index.cjs +1 -1
  204. package/dist/components/base/date-pickers/index.js +2 -2
  205. package/dist/components/base/display/chart.cjs +1 -1
  206. package/dist/components/base/display/chart.js +1 -1
  207. package/dist/components/base/display/index.cjs +1 -1
  208. package/dist/components/base/display/index.js +6 -6
  209. package/dist/components/base/display/separator.d.ts +10 -1
  210. package/dist/components/base/display/separator.d.ts.map +1 -1
  211. package/dist/components/base/display/skeleton.d.ts +52 -1
  212. package/dist/components/base/display/skeleton.d.ts.map +1 -1
  213. package/dist/components/base/event-calendar/index.cjs +1 -1
  214. package/dist/components/base/event-calendar/index.js +4 -4
  215. package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -1
  216. package/dist/components/base/forms/index.cjs +1 -1
  217. package/dist/components/base/forms/index.js +5 -5
  218. package/dist/components/base/item/index.cjs +1 -1
  219. package/dist/components/base/item/index.js +1 -1
  220. package/dist/components/base/item/item.d.ts.map +1 -1
  221. package/dist/components/base/item/item.types.d.ts +3 -0
  222. package/dist/components/base/item/item.types.d.ts.map +1 -1
  223. package/dist/components/base/map/index.cjs +1 -1
  224. package/dist/components/base/map/index.js +2 -2
  225. package/dist/components/base/navigation/index.cjs +1 -1
  226. package/dist/components/base/navigation/index.js +2 -2
  227. package/dist/components/base/popover-menu/index.cjs +1 -1
  228. package/dist/components/base/popover-menu/index.js +1 -1
  229. package/dist/components/base/spinner/index.cjs +1 -1
  230. package/dist/components/base/spinner/index.js +1 -1
  231. package/dist/components/base/table/index.cjs +1 -1
  232. package/dist/components/base/table/index.js +1 -1
  233. package/dist/components/base/toaster/index.cjs +1 -1
  234. package/dist/components/base/toaster/index.cjs.map +1 -1
  235. package/dist/components/base/toaster/index.js +82 -23
  236. package/dist/components/base/toaster/index.js.map +1 -1
  237. package/dist/components/base/toaster/toaster.d.ts +1 -1
  238. package/dist/components/base/toaster/toaster.d.ts.map +1 -1
  239. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
  240. package/dist/components/composed/admin/index.cjs +1 -1
  241. package/dist/components/composed/admin/index.cjs.map +1 -1
  242. package/dist/components/composed/admin/index.js +67 -67
  243. package/dist/components/composed/admin/index.js.map +1 -1
  244. package/dist/components/composed/ai/index.cjs +1 -1
  245. package/dist/components/composed/ai/index.js +9 -9
  246. package/dist/components/composed/analytics/index.cjs +1 -1
  247. package/dist/components/composed/analytics/index.cjs.map +1 -1
  248. package/dist/components/composed/analytics/index.js +12 -12
  249. package/dist/components/composed/analytics/index.js.map +1 -1
  250. package/dist/components/composed/cards/index.cjs +1 -1
  251. package/dist/components/composed/cards/index.js +7 -7
  252. package/dist/components/composed/commerce/index.cjs +1 -1
  253. package/dist/components/composed/commerce/index.cjs.map +1 -1
  254. package/dist/components/composed/commerce/index.js +10 -10
  255. package/dist/components/composed/commerce/index.js.map +1 -1
  256. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  257. package/dist/components/composed/dark-surfaces/index.js +5 -5
  258. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
  259. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
  260. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -1
  261. package/dist/components/composed/data-display/index.cjs +1 -1
  262. package/dist/components/composed/data-display/index.js +1 -1
  263. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
  264. package/dist/components/composed/navigation/index.cjs +1 -1
  265. package/dist/components/composed/navigation/index.js +5 -5
  266. package/dist/components/composed/onboarding/index.cjs +1 -1
  267. package/dist/components/composed/onboarding/index.js +3 -3
  268. package/dist/components/composed/timelines/index.cjs +1 -1
  269. package/dist/components/composed/timelines/index.js +3 -3
  270. package/dist/components/features/activities/index.cjs +1 -1
  271. package/dist/components/features/activities/index.js +5 -5
  272. package/dist/components/features/ai-chat/index.cjs +1 -1
  273. package/dist/components/features/ai-chat/index.js +5 -5
  274. package/dist/components/features/card/index.cjs +1 -1
  275. package/dist/components/features/card/index.js +4 -4
  276. package/dist/components/features/comments/index.cjs +1 -1
  277. package/dist/components/features/comments/index.js +2 -2
  278. package/dist/components/features/data-view/index.cjs +1 -1
  279. package/dist/components/features/data-view/index.js +2 -2
  280. package/dist/components/features/event-log/index.cjs +1 -1
  281. package/dist/components/features/event-log/index.js +5 -5
  282. package/dist/components/features/filters/index.cjs +1 -1
  283. package/dist/components/features/filters/index.cjs.map +1 -1
  284. package/dist/components/features/filters/index.js +190 -190
  285. package/dist/components/features/filters/index.js.map +1 -1
  286. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
  287. package/dist/components/features/global-search/index.cjs +1 -1
  288. package/dist/components/features/global-search/index.js +4 -4
  289. package/dist/components/features/kanban/index.cjs +1 -1
  290. package/dist/components/features/kanban/index.js +3 -3
  291. package/dist/components/features/media-library/index.cjs +1 -1
  292. package/dist/components/features/media-library/index.js +10 -10
  293. package/dist/components/features/mentions/index.cjs +1 -1
  294. package/dist/components/features/mentions/index.js +1 -1
  295. package/dist/components/features/overlays/index.cjs +1 -1
  296. package/dist/components/features/overlays/index.js +1 -1
  297. package/dist/components/features/products/index.cjs +1 -1
  298. package/dist/components/features/products/index.js +11 -11
  299. package/dist/components/features/resource/index.cjs +1 -1
  300. package/dist/components/features/resource/index.js +5 -5
  301. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  302. package/dist/components/features/rich-text-editor/index.js +1 -1
  303. package/dist/components/features/schema-form/index.cjs +1 -1
  304. package/dist/components/features/schema-form/index.js +8 -8
  305. package/dist/components/features/suggestions/index.cjs +1 -1
  306. package/dist/components/features/suggestions/index.js +1 -1
  307. package/dist/components/features/sync/index.cjs +1 -1
  308. package/dist/components/features/sync/index.js +2 -2
  309. package/dist/components/layout/auth/index.cjs +1 -1
  310. package/dist/components/layout/auth/index.js +1 -1
  311. package/dist/components/layout/header/index.cjs +1 -1
  312. package/dist/components/layout/header/index.js +1 -1
  313. package/dist/components/layout/hooks/index.cjs +1 -1
  314. package/dist/components/layout/hooks/index.js +1 -1
  315. package/dist/components/layout/index.cjs +1 -1
  316. package/dist/components/layout/index.js +7 -7
  317. package/dist/components/layout/page/index.cjs +1 -1
  318. package/dist/components/layout/page/index.js +1 -1
  319. package/dist/components/layout/page/page.types.d.ts +5 -0
  320. package/dist/components/layout/page/page.types.d.ts.map +1 -1
  321. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  322. package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
  323. package/dist/components/layout/settings/index.cjs +1 -1
  324. package/dist/components/layout/settings/index.js +1 -1
  325. package/dist/components/layout/sidebar/index.cjs +1 -1
  326. package/dist/components/layout/sidebar/index.js +2 -2
  327. package/dist/components/layout/workspace/index.cjs +1 -1
  328. package/dist/components/layout/workspace/index.js +1 -1
  329. package/dist/components/typography/index.cjs +1 -1
  330. package/dist/components/typography/index.js +1 -1
  331. package/dist/index.cjs +1 -1
  332. package/dist/index.js +1 -1
  333. package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
  334. package/dist/lib/ui-provider/index.cjs +1 -1
  335. package/dist/lib/ui-provider/index.d.ts +1 -1
  336. package/dist/lib/ui-provider/index.d.ts.map +1 -1
  337. package/dist/lib/ui-provider/index.js +1 -1
  338. package/dist/lib/ui-provider/types.d.ts +14 -0
  339. package/dist/lib/ui-provider/types.d.ts.map +1 -1
  340. package/dist/services/actions/index.cjs +1 -1
  341. package/dist/services/actions/index.js +1 -1
  342. package/dist/showcase/assets/AreaChart-DxDBymDt.js +6 -0
  343. package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +1 -0
  344. package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +1 -0
  345. package/dist/showcase/assets/DialogTrigger-OUBMI353.js +1 -0
  346. package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +1 -0
  347. package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +1 -0
  348. package/dist/showcase/assets/RadioGroup-BzveyiIV.js +1 -0
  349. package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +1 -0
  350. package/dist/showcase/assets/Separator-CSYYEo-X.js +1 -0
  351. package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +1 -0
  352. package/dist/showcase/assets/accordion-B9VkLXiy.js +171 -0
  353. package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +1 -0
  354. package/dist/showcase/assets/action-menu-CWIvuiLO.js +1 -0
  355. package/dist/showcase/assets/actions-BuwzXYEF.js +310 -0
  356. package/dist/showcase/assets/activities-BTBlr1G4.js +500 -0
  357. package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +1 -0
  358. package/dist/showcase/assets/admin-kbK6nUjx.js +140 -0
  359. package/dist/showcase/assets/ai-CKu9EGmA.js +207 -0
  360. package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +2 -0
  361. package/dist/showcase/assets/ai-chat-DEntRhJD.js +568 -0
  362. package/dist/showcase/assets/ai-elements-DyKRCWiS.js +387 -0
  363. package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +1 -0
  364. package/dist/showcase/assets/alert-C0wSpBYn.js +93 -0
  365. package/dist/showcase/assets/alert-CZ4rgwPr.js +62 -0
  366. package/dist/showcase/assets/alert-WTKIdE4s.js +1 -0
  367. package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +1 -0
  368. package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +73 -0
  369. package/dist/showcase/assets/app-sidebar-B3veRbac.js +1 -0
  370. package/dist/showcase/assets/arrow-down-CEXJx115.js +1 -0
  371. package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +1 -0
  372. package/dist/showcase/assets/arrow-right-a3STqWgx.js +1 -0
  373. package/dist/showcase/assets/arrow-up-CCU1MaGq.js +1 -0
  374. package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +1 -0
  375. package/dist/showcase/assets/avatar-Bwgai0SK.js +67 -0
  376. package/dist/showcase/assets/avatar-DSmL52Us.js +57 -0
  377. package/dist/showcase/assets/avatar-kK9n1a25.js +1 -0
  378. package/dist/showcase/assets/avatar-nb7MgV_x.js +1 -0
  379. package/dist/showcase/assets/badge-CTGPRSXm.js +31 -0
  380. package/dist/showcase/assets/badge-check-zqoYYrVj.js +1 -0
  381. package/dist/showcase/assets/bell-D7HWGStL.js +1 -0
  382. package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +1 -0
  383. package/dist/showcase/assets/bot-Owx4SMiU.js +1 -0
  384. package/dist/showcase/assets/box-BeeoLlMd.js +1 -0
  385. package/dist/showcase/assets/braces-fzrExVIx.js +1 -0
  386. package/dist/showcase/assets/brain-Da2fsBjd.js +1 -0
  387. package/dist/showcase/assets/brand-Bo6uwdGf.js +36 -0
  388. package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +1 -0
  389. package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +52 -0
  390. package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +1 -0
  391. package/dist/showcase/assets/briefcase-DQjbh28E.js +1 -0
  392. package/dist/showcase/assets/building-2-DaQW5yJa.js +1 -0
  393. package/dist/showcase/assets/button-D3skvyQS.js +44 -0
  394. package/dist/showcase/assets/button-group-BYtbrhme.js +1 -0
  395. package/dist/showcase/assets/buttons-B3IkMmNQ.js +272 -0
  396. package/dist/showcase/assets/calendar-C4fCDK3O.js +1 -0
  397. package/dist/showcase/assets/calendar-CcwkVxCK.js +16 -0
  398. package/dist/showcase/assets/calendar-DBkwxV9H.js +1 -0
  399. package/dist/showcase/assets/calendar-days-BWed1W3Z.js +1 -0
  400. package/dist/showcase/assets/camera-BUoAyoZT.js +1 -0
  401. package/dist/showcase/assets/card-7DBPqWuv.js +1 -0
  402. package/dist/showcase/assets/card-ClwyNDHJ.js +188 -0
  403. package/dist/showcase/assets/card-primitives-BE1YpEQW.js +1 -0
  404. package/dist/showcase/assets/card-radio-group-1NMbocuG.js +1 -0
  405. package/dist/showcase/assets/cards-Bu8uaGSU.js +354 -0
  406. package/dist/showcase/assets/carousel-dTTRRSQg.js +449 -0
  407. package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +1 -0
  408. package/dist/showcase/assets/chart-BSboeIO6.js +358 -0
  409. package/dist/showcase/assets/chart-column-CCzA6B9l.js +1 -0
  410. package/dist/showcase/assets/checkbox-CSdEPNT5.js +1 -0
  411. package/dist/showcase/assets/checkbox-CqNLi9Q3.js +1 -0
  412. package/dist/showcase/assets/chevron-down-C91gNQdT.js +1 -0
  413. package/dist/showcase/assets/chevron-left-SiAoYFSo.js +1 -0
  414. package/dist/showcase/assets/chevron-up-Beb1_ET_.js +1 -0
  415. package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +1 -0
  416. package/dist/showcase/assets/circle-D9KiRp8C.js +1 -0
  417. package/dist/showcase/assets/circle-alert-BQkAwFkl.js +1 -0
  418. package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +1 -0
  419. package/dist/showcase/assets/circle-check-dqmKTiDe.js +1 -0
  420. package/dist/showcase/assets/circle-dot-B7LPN_0V.js +1 -0
  421. package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +1 -0
  422. package/dist/showcase/assets/circle-x-CW2dFcX-.js +1 -0
  423. package/dist/showcase/assets/clock-3-CXJ_JotW.js +1 -0
  424. package/dist/showcase/assets/clock-DUqvfazQ.js +1 -0
  425. package/dist/showcase/assets/code-xml-BmdQDeID.js +1 -0
  426. package/dist/showcase/assets/collapsible-C-WYhJxn.js +1 -0
  427. package/dist/showcase/assets/collapsible-CL37AlCX.js +27 -0
  428. package/dist/showcase/assets/collapsible-uGO5Rj8q.js +1 -0
  429. package/dist/showcase/assets/combobox-CFh5kUzj.js +685 -0
  430. package/dist/showcase/assets/command-CtpLaHjh.js +1 -0
  431. package/dist/showcase/assets/command-DSlK-QAE.js +1 -0
  432. package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +1 -0
  433. package/dist/showcase/assets/comment-item-Dme2o2KI.js +1 -0
  434. package/dist/showcase/assets/comments-CW2nz465.js +357 -0
  435. package/dist/showcase/assets/commerce-bwcq6oPn.js +267 -0
  436. package/dist/showcase/assets/composite-DMIR0vmP.js +1 -0
  437. package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +1 -0
  438. package/dist/showcase/assets/contact-card-BCXS9tWq.js +65 -0
  439. package/dist/showcase/assets/content-container-b1dC2caJ.js +1 -0
  440. package/dist/showcase/assets/copyable-BIABx-Vv.js +96 -0
  441. package/dist/showcase/assets/copyable-Ic9wzVaj.js +1 -0
  442. package/dist/showcase/assets/course-card-Bo5P3TYv.js +77 -0
  443. package/dist/showcase/assets/cpu-_VqU6yRO.js +1 -0
  444. package/dist/showcase/assets/credit-card-BbxO8xLo.js +1 -0
  445. package/dist/showcase/assets/css-variables-zqpBgnS1.js +1205 -0
  446. package/dist/showcase/assets/currency-Cjvt4F0b.js +149 -0
  447. package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +90 -0
  448. package/dist/showcase/assets/data-view-AtyUp7b-.js +124 -0
  449. package/dist/showcase/assets/data-view-cnEmgP1C.js +4 -0
  450. package/dist/showcase/assets/database-TbVXEw7v.js +1 -0
  451. package/dist/showcase/assets/date-block-CDHemKnP.js +1 -0
  452. package/dist/showcase/assets/date-block-COb89Y_-.js +1 -0
  453. package/dist/showcase/assets/date-picker-CK8llBIN.js +1 -0
  454. package/dist/showcase/assets/date-pickers-DFfDnW9w.js +73 -0
  455. package/dist/showcase/assets/dense-info-CaFVDE90.js +106 -0
  456. package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +264 -0
  457. package/dist/showcase/assets/dialog-CRQNEK2K.js +1 -0
  458. package/dist/showcase/assets/dialog-CsCLDb0G.js +1 -0
  459. package/dist/showcase/assets/dialog-Qh3EHEKq.js +1 -0
  460. package/dist/showcase/assets/display-utilities-rP3hb4FK.js +4 -0
  461. package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +309 -0
  462. package/dist/showcase/assets/dist-CbqRct9s.js +1 -0
  463. package/dist/showcase/assets/dist-iivamCjp.js +45 -0
  464. package/dist/showcase/assets/dollar-sign-COaRmdJE.js +1 -0
  465. package/dist/showcase/assets/download-yCcb4rfH.js +1 -0
  466. package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +1 -0
  467. package/dist/showcase/assets/dropzone-DLguWnmu.js +1 -0
  468. package/dist/showcase/assets/earth-TDRqTA4S.js +1 -0
  469. package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +1 -0
  470. package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +1 -0
  471. package/dist/showcase/assets/empty-DvmDTSAj.js +1 -0
  472. package/dist/showcase/assets/empty-item-C3HP5nuw.js +49 -0
  473. package/dist/showcase/assets/empty-state-Dcin4cOt.js +190 -0
  474. package/dist/showcase/assets/empty-state-IV_GTNEI.js +1 -0
  475. package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +357 -0
  476. package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +1 -0
  477. package/dist/showcase/assets/esm-Cf6QQstQ.js +2 -0
  478. package/dist/showcase/assets/event-calendar-zrfI_3AM.js +138 -0
  479. package/dist/showcase/assets/event-log-D-_CViAw.js +330 -0
  480. package/dist/showcase/assets/example-6bZGEb3-.js +1 -0
  481. package/dist/showcase/assets/external-link-7ldgjHZM.js +1 -0
  482. package/dist/showcase/assets/eye-pXVkim6z.js +1 -0
  483. package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +34 -0
  484. package/dist/showcase/assets/file-Bn9sAGaT.js +1 -0
  485. package/dist/showcase/assets/file-text-Cvxg6pjh.js +1 -0
  486. package/dist/showcase/assets/filter-layout-DqNRRzDU.js +1 -0
  487. package/dist/showcase/assets/filters-CQMI_T63.js +139 -0
  488. package/dist/showcase/assets/flag-vI_WJ-BU.js +1 -0
  489. package/dist/showcase/assets/folder-open-0AyKSRQS.js +1 -0
  490. package/dist/showcase/assets/form-field-BaBeXn7a.js +1 -0
  491. package/dist/showcase/assets/format-DLLMyN-3.js +1 -0
  492. package/dist/showcase/assets/forms-gPD-Caru.js +915 -0
  493. package/dist/showcase/assets/funnel-Ca9nWMHm.js +1 -0
  494. package/dist/showcase/assets/generic-AAssz0h7.js +1 -0
  495. package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +1 -0
  496. package/dist/showcase/assets/gift-BC42Oxfz.js +1 -0
  497. package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +85 -0
  498. package/dist/showcase/assets/git-branch-B-nF8w-J.js +1 -0
  499. package/dist/showcase/assets/global-search-D6Gxw0G3.js +1 -0
  500. package/dist/showcase/assets/global-search-jsb_4idg.js +215 -0
  501. package/dist/showcase/assets/globe-C92uBSrO.js +1 -0
  502. package/dist/showcase/assets/gradient-card-D4ly60sD.js +58 -0
  503. package/dist/showcase/assets/hash-BShTbxlR.js +1 -0
  504. package/dist/showcase/assets/header-CSiNqg9Q.js +1 -0
  505. package/dist/showcase/assets/header-notifications-CpHeFPQF.js +1 -0
  506. package/dist/showcase/assets/heart-B3hXs7fr.js +1 -0
  507. package/dist/showcase/assets/hooks-CamAqFFh.js +220 -0
  508. package/dist/showcase/assets/house-4_CouE-Y.js +1 -0
  509. package/dist/showcase/assets/icon-badge-CePIZqWR.js +1 -0
  510. package/dist/showcase/assets/icon-badge-DSbvvnxh.js +37 -0
  511. package/dist/showcase/assets/image-BxbFIbVJ.js +1 -0
  512. package/dist/showcase/assets/inbox-BXab1SM6.js +1 -0
  513. package/dist/showcase/assets/index-BPUtPJjB.css +2 -0
  514. package/dist/showcase/assets/index-BjjNfnhP.js +10 -0
  515. package/dist/showcase/assets/inertValue-CZOzgsmF.js +1 -0
  516. package/dist/showcase/assets/info-DzqwCq93.js +1 -0
  517. package/dist/showcase/assets/inline-stat-D5ybpUh-.js +15 -0
  518. package/dist/showcase/assets/inline-stat-Dq34wv-6.js +1 -0
  519. package/dist/showcase/assets/input-C8OfUHCK.js +1 -0
  520. package/dist/showcase/assets/input-D34Ge3rh.js +1 -0
  521. package/dist/showcase/assets/input-group-BCPZ6Pwq.js +1 -0
  522. package/dist/showcase/assets/input-group-CySTANka.js +47 -0
  523. package/dist/showcase/assets/inputs-CnmHo_lj.js +155 -0
  524. package/dist/showcase/assets/installation-BPvseS46.js +134 -0
  525. package/dist/showcase/assets/invoice-header-C9JjJWQX.js +36 -0
  526. package/dist/showcase/assets/invoice-items-DB8tbCv9.js +36 -0
  527. package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +14 -0
  528. package/dist/showcase/assets/invoice-table-CLDvpLib.js +30 -0
  529. package/dist/showcase/assets/isSameDay-D8bDebyL.js +1 -0
  530. package/dist/showcase/assets/isToday-XVjRuMtp.js +1 -0
  531. package/dist/showcase/assets/italic-Cm13b8qb.js +1 -0
  532. package/dist/showcase/assets/item-C07859JQ.js +1 -0
  533. package/dist/showcase/assets/item-LinnMxvu.js +1 -0
  534. package/dist/showcase/assets/item-i7ZUMs5t.js +140 -0
  535. package/dist/showcase/assets/kanban-CIMTpuN5.js +188 -0
  536. package/dist/showcase/assets/key-round-Bh7EzOyR.js +1 -0
  537. package/dist/showcase/assets/label-C3A4CjeG.js +1 -0
  538. package/dist/showcase/assets/languages-C37jhetw.js +1 -0
  539. package/dist/showcase/assets/layers-Lyr6p-Nt.js +1 -0
  540. package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +608 -0
  541. package/dist/showcase/assets/layout-auth-y1alnhc8.js +790 -0
  542. package/dist/showcase/assets/layout-containers-B6c-uvil.js +101 -0
  543. package/dist/showcase/assets/layout-header-DNhJHWNw.js +203 -0
  544. package/dist/showcase/assets/layout-page-CXU7CnQK.js +315 -0
  545. package/dist/showcase/assets/layout-primitives-StuFwfwh.js +34 -0
  546. package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +224 -0
  547. package/dist/showcase/assets/layout-users-D7KMzs3-.js +117 -0
  548. package/dist/showcase/assets/layout-workspace-Butr7CL5.js +191 -0
  549. package/dist/showcase/assets/lib-D5nOMXIt.js +1 -0
  550. package/dist/showcase/assets/list-checks-Cg9HZf4W.js +1 -0
  551. package/dist/showcase/assets/lock-Da21HhQx.js +1 -0
  552. package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +1 -0
  553. package/dist/showcase/assets/mail-Bamky-ti.js +1 -0
  554. package/dist/showcase/assets/mail-check-BfVYPC42.js +1 -0
  555. package/dist/showcase/assets/map-BTlWnRAQ.js +124 -0
  556. package/dist/showcase/assets/map-pin-BU2RBuvC.js +1 -0
  557. package/dist/showcase/assets/media-library-DJxgoGAF.js +699 -0
  558. package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +1 -0
  559. package/dist/showcase/assets/mentions-kMT-Z3qU.js +138 -0
  560. package/dist/showcase/assets/menus-bhp_n9PT.js +171 -0
  561. package/dist/showcase/assets/message-square-DC5Bb9Zs.js +1 -0
  562. package/dist/showcase/assets/metadata-list-DGr729EW.js +286 -0
  563. package/dist/showcase/assets/metadata-list-DyjhZi6d.js +1 -0
  564. package/dist/showcase/assets/metric-DRDok6Ci.js +1 -0
  565. package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +1 -0
  566. package/dist/showcase/assets/metric-grid-BlFXTrid.js +1 -0
  567. package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +1 -0
  568. package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +44 -0
  569. package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +50 -0
  570. package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +76 -0
  571. package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +27 -0
  572. package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +17 -0
  573. package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +31 -0
  574. package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +42 -0
  575. package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +192 -0
  576. package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +54 -0
  577. package/dist/showcase/assets/minus-Dr1iTc_q.js +1 -0
  578. package/dist/showcase/assets/money-display-B5_VqQC0.js +1 -0
  579. package/dist/showcase/assets/money-display-bU2_cVGX.js +1 -0
  580. package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +1 -0
  581. package/dist/showcase/assets/navigation-DBKvJoe-.js +231 -0
  582. package/dist/showcase/assets/navigation-DOhfmtgy.js +90 -0
  583. package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +43 -0
  584. package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +1 -0
  585. package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +119 -0
  586. package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +1 -0
  587. package/dist/showcase/assets/overlays-4E_sUgkz.js +408 -0
  588. package/dist/showcase/assets/overlays-ulNl-Vhr.js +159 -0
  589. package/dist/showcase/assets/overview-CgymfIBq.js +184 -0
  590. package/dist/showcase/assets/package-CADuUP1u.js +1 -0
  591. package/dist/showcase/assets/package-check-O7MD6XE_.js +1 -0
  592. package/dist/showcase/assets/page-GB6OIgID.js +1 -0
  593. package/dist/showcase/assets/page-action-button-Dpprot7y.js +1 -0
  594. package/dist/showcase/assets/page-header-2VEUPx67.js +1 -0
  595. package/dist/showcase/assets/pagination-BBuRtAX9.js +1 -0
  596. package/dist/showcase/assets/pagination-C4mt4Q4l.js +42 -0
  597. package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +1 -0
  598. package/dist/showcase/assets/password-input-CgZj1niQ.js +1 -0
  599. package/dist/showcase/assets/pencil-CtdXjogr.js +1 -0
  600. package/dist/showcase/assets/phone-CAFMH1vV.js +1 -0
  601. package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +1 -0
  602. package/dist/showcase/assets/plus-CN2dzUxL.js +1 -0
  603. package/dist/showcase/assets/popover-DILNXLWy.js +1 -0
  604. package/dist/showcase/assets/popover-menu-Bp08xxOf.js +1 -0
  605. package/dist/showcase/assets/popover-o1EO2yVS.js +1 -0
  606. package/dist/showcase/assets/products-CCLAbHBN.js +423 -0
  607. package/dist/showcase/assets/progress-BGna-ZmU.js +18 -0
  608. package/dist/showcase/assets/progress-BSYlNLIJ.js +1 -0
  609. package/dist/showcase/assets/progress-CZVy3LGB.js +1 -0
  610. package/dist/showcase/assets/props-table-X9St7Q4m.js +1 -0
  611. package/dist/showcase/assets/props.generated-f_jHBhPb.json +41753 -0
  612. package/dist/showcase/assets/qr-code-CEmKf9xU.js +1 -0
  613. package/dist/showcase/assets/quote-IH6r-rlY.js +1 -0
  614. package/dist/showcase/assets/receipt-m9rOe5lY.js +1 -0
  615. package/dist/showcase/assets/receipt-text-C0TobatH.js +1 -0
  616. package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +189 -0
  617. package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +1 -0
  618. package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +1 -0
  619. package/dist/showcase/assets/resource-BcJ8O6uj.js +1 -0
  620. package/dist/showcase/assets/resource-_zDXez77.js +139 -0
  621. package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +43 -0
  622. package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +143 -0
  623. package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +124 -0
  624. package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +1 -0
  625. package/dist/showcase/assets/route-C7EZ2Njy.js +1 -0
  626. package/dist/showcase/assets/save-fKrt-yFG.js +1 -0
  627. package/dist/showcase/assets/schema-form-k7TXeirD.js +327 -0
  628. package/dist/showcase/assets/scroll-area-CqNwdlI6.js +32 -0
  629. package/dist/showcase/assets/scroll-area-UVtlGOgx.js +1 -0
  630. package/dist/showcase/assets/section-DuBNJP4P.js +1 -0
  631. package/dist/showcase/assets/select-CINVEIWn.js +1 -0
  632. package/dist/showcase/assets/select-ZLaamXrm.js +1 -0
  633. package/dist/showcase/assets/send-DBvt_4jT.js +1 -0
  634. package/dist/showcase/assets/separator-BdBXRpc3.js +28 -0
  635. package/dist/showcase/assets/separator-CkJjJQWW.js +1 -0
  636. package/dist/showcase/assets/separator-CxOeStjL.js +1 -0
  637. package/dist/showcase/assets/separator-O-VQMSf_.js +1 -0
  638. package/dist/showcase/assets/settings-2-BWjMVlyS.js +1 -0
  639. package/dist/showcase/assets/settings-D9Z79UcG.js +1 -0
  640. package/dist/showcase/assets/sheet-CK9C6r7_.js +1 -0
  641. package/dist/showcase/assets/shield-BboB3Zlo.js +1 -0
  642. package/dist/showcase/assets/shield-alert-CAAobStl.js +1 -0
  643. package/dist/showcase/assets/shield-check-Rfyzz9bK.js +1 -0
  644. package/dist/showcase/assets/shopping-bag-5hLD82YW.js +1 -0
  645. package/dist/showcase/assets/showcase-DhOQXB5E.js +132 -0
  646. package/dist/showcase/assets/sidebar-ZTUACc0t.js +1 -0
  647. package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +1 -0
  648. package/dist/showcase/assets/skeleton-BZUSoHbk.js +1 -0
  649. package/dist/showcase/assets/skeleton-BZkYzAdq.js +1 -0
  650. package/dist/showcase/assets/skeleton-CrOp8tx3.js +29 -0
  651. package/dist/showcase/assets/skeleton-P5GXAj4U.js +1 -0
  652. package/dist/showcase/assets/slider-zlE7nLrp.js +1 -0
  653. package/dist/showcase/assets/smart-card-OExZHSsj.js +1 -0
  654. package/dist/showcase/assets/sonner-eMphKM9E.js +22 -0
  655. package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +5 -0
  656. package/dist/showcase/assets/sparkles-CIB5irID.js +1 -0
  657. package/dist/showcase/assets/spinner-11-kP-Ob.js +1 -0
  658. package/dist/showcase/assets/spinner-D4G5TFSm.js +49 -0
  659. package/dist/showcase/assets/spinner-DKGukuFV.js +30 -0
  660. package/dist/showcase/assets/square-pen-zflKy9oX.js +1 -0
  661. package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +1 -0
  662. package/dist/showcase/assets/star-DleXDkCp.js +1 -0
  663. package/dist/showcase/assets/startOfDay-TDP2erzM.js +1 -0
  664. package/dist/showcase/assets/styles-BKlX_Ipc.js +1 -0
  665. package/dist/showcase/assets/suggestions-Dt2hm1NY.js +126 -0
  666. package/dist/showcase/assets/switch-DAPAgJbv.js +1 -0
  667. package/dist/showcase/assets/switch-fQpP2tJl.js +1 -0
  668. package/dist/showcase/assets/sync-BRcK160D.js +124 -0
  669. package/dist/showcase/assets/table-Dhmbe1yN.js +686 -0
  670. package/dist/showcase/assets/table-actions-GGrPOQcv.js +1 -0
  671. package/dist/showcase/assets/table-v0Eu5yZn.js +1 -0
  672. package/dist/showcase/assets/tabs-DmaXB1aF.js +19 -0
  673. package/dist/showcase/assets/tabs-vbNIJ-eo.js +1 -0
  674. package/dist/showcase/assets/tags-input-Bms_Q5CE.js +1 -0
  675. package/dist/showcase/assets/text-button-gvJCzaXS.js +1 -0
  676. package/dist/showcase/assets/text-link-DkByVX4d.js +1 -0
  677. package/dist/showcase/assets/textarea-B6Ho29y3.js +1 -0
  678. package/dist/showcase/assets/textarea-JCb0yhZ1.js +1 -0
  679. package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +1 -0
  680. package/dist/showcase/assets/timelines-Bw7mvAdx.js +200 -0
  681. package/dist/showcase/assets/toggle-group-jlIGX1zh.js +1 -0
  682. package/dist/showcase/assets/toggles-DV6V9vj-.js +71 -0
  683. package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +32 -0
  684. package/dist/showcase/assets/tooltip-CDtPyNOv.js +31 -0
  685. package/dist/showcase/assets/trash-2-CXRm3lMl.js +1 -0
  686. package/dist/showcase/assets/trending-up-Bcyp9cw8.js +1 -0
  687. package/dist/showcase/assets/truck-DVgzuKLP.js +1 -0
  688. package/dist/showcase/assets/typography-BKPf4j85.js +223 -0
  689. package/dist/showcase/assets/ui-badge-D-Ud2MES.js +28 -0
  690. package/dist/showcase/assets/ui-card-gGqI2cfr.js +30 -0
  691. package/dist/showcase/assets/ui-table-Bqcab_kq.js +42 -0
  692. package/dist/showcase/assets/upload-tray-BFh6twLE.js +138 -0
  693. package/dist/showcase/assets/use-layout-link-e9jr981L.js +1 -0
  694. package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +1 -0
  695. package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +1 -0
  696. package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +1 -0
  697. package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +1 -0
  698. package/dist/showcase/assets/useLabelableId-COfjI9qt.js +1 -0
  699. package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +1 -0
  700. package/dist/showcase/assets/useRender-Bgu76j1u.js +1 -0
  701. package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +1 -0
  702. package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +1 -0
  703. package/dist/showcase/assets/user-CmkLnMh9.js +1 -0
  704. package/dist/showcase/assets/user-plus-3CGFNUf0.js +1 -0
  705. package/dist/showcase/assets/users-CuO8W7wn.js +1 -0
  706. package/dist/showcase/assets/vendor-profile-HLMsE22G.js +37 -0
  707. package/dist/showcase/assets/video-CoHnn0fp.js +1 -0
  708. package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +1 -0
  709. package/dist/showcase/assets/wrench-C93IxaGt.js +1 -0
  710. package/dist/showcase/assets/x-BJDvVLAz.js +1 -0
  711. package/dist/showcase/assets/zap-DYD_Ljkv.js +1 -0
  712. package/dist/showcase/index.html +2 -2
  713. package/dist/style.css +1 -1
  714. package/package.json +1 -1
  715. package/src/css/themes/shadcn.default.css +2 -2
  716. package/src/css/tokens/foundation.css +1 -1
  717. package/src/css/tokens/primitives.css +1 -1
  718. package/src/css/tokens/states.css +3 -0
  719. package/dist/_shared/accordion-CxjH2WZG.js +0 -135
  720. package/dist/_shared/accordion-CxjH2WZG.js.map +0 -1
  721. package/dist/_shared/accordion-mTdJmy23.cjs +0 -2
  722. package/dist/_shared/accordion-mTdJmy23.cjs.map +0 -1
  723. package/dist/_shared/action-menu-BrHF4nss.cjs +0 -2
  724. package/dist/_shared/action-menu-BrHF4nss.cjs.map +0 -1
  725. package/dist/_shared/action-menu-Crn22LKo.js +0 -96
  726. package/dist/_shared/action-menu-Crn22LKo.js.map +0 -1
  727. package/dist/_shared/ai-artifact-CS2Pv-bu.js +0 -1099
  728. package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +0 -1
  729. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +0 -3
  730. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +0 -1
  731. package/dist/_shared/alert-BisCSsOE.cjs +0 -2
  732. package/dist/_shared/alert-BisCSsOE.cjs.map +0 -1
  733. package/dist/_shared/alert-D23Q7I0W.js +0 -81
  734. package/dist/_shared/alert-D23Q7I0W.js.map +0 -1
  735. package/dist/_shared/auth-BV9Daibu.cjs +0 -2
  736. package/dist/_shared/auth-BV9Daibu.cjs.map +0 -1
  737. package/dist/_shared/auth-DACpcTnL.js +0 -643
  738. package/dist/_shared/auth-DACpcTnL.js.map +0 -1
  739. package/dist/_shared/badge-B4oBB5BJ.js +0 -110
  740. package/dist/_shared/badge-B4oBB5BJ.js.map +0 -1
  741. package/dist/_shared/badge-DvUA9Pr2.cjs +0 -2
  742. package/dist/_shared/badge-DvUA9Pr2.cjs.map +0 -1
  743. package/dist/_shared/button-BMiPFJIb.cjs +0 -2
  744. package/dist/_shared/button-BMiPFJIb.cjs.map +0 -1
  745. package/dist/_shared/button-vv59_uS_.js +0 -189
  746. package/dist/_shared/button-vv59_uS_.js.map +0 -1
  747. package/dist/_shared/buttons-CvqIMv3I.js +0 -137
  748. package/dist/_shared/buttons-CvqIMv3I.js.map +0 -1
  749. package/dist/_shared/buttons-tCkWktN3.cjs +0 -2
  750. package/dist/_shared/buttons-tCkWktN3.cjs.map +0 -1
  751. package/dist/_shared/card-radio-group-BL--IyPB.js +0 -150
  752. package/dist/_shared/card-radio-group-BL--IyPB.js.map +0 -1
  753. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +0 -2
  754. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +0 -1
  755. package/dist/_shared/cards-CMNXFo3Y.js +0 -354
  756. package/dist/_shared/cards-CMNXFo3Y.js.map +0 -1
  757. package/dist/_shared/cards-DQN9fcwo.cjs +0 -2
  758. package/dist/_shared/cards-DQN9fcwo.cjs.map +0 -1
  759. package/dist/_shared/combobox-D0avSXIB.cjs +0 -2
  760. package/dist/_shared/combobox-D0avSXIB.cjs.map +0 -1
  761. package/dist/_shared/combobox-Df0srISK.js +0 -954
  762. package/dist/_shared/combobox-Df0srISK.js.map +0 -1
  763. package/dist/_shared/command-B5BpMgBT.js +0 -39
  764. package/dist/_shared/command-B5BpMgBT.js.map +0 -1
  765. package/dist/_shared/command-en62SpQ7.cjs +0 -2
  766. package/dist/_shared/command-en62SpQ7.cjs.map +0 -1
  767. package/dist/_shared/comments-CfkortDW.js +0 -952
  768. package/dist/_shared/comments-CfkortDW.js.map +0 -1
  769. package/dist/_shared/comments-yVd7QMOu.cjs +0 -2
  770. package/dist/_shared/comments-yVd7QMOu.cjs.map +0 -1
  771. package/dist/_shared/copyable-Cn7tRGL5.js +0 -38
  772. package/dist/_shared/copyable-Cn7tRGL5.js.map +0 -1
  773. package/dist/_shared/copyable-CoKTxMSP.cjs +0 -2
  774. package/dist/_shared/copyable-CoKTxMSP.cjs.map +0 -1
  775. package/dist/_shared/data-display-BG7CD164.js +0 -1873
  776. package/dist/_shared/data-display-BG7CD164.js.map +0 -1
  777. package/dist/_shared/data-display-CXVoX3la.cjs +0 -2
  778. package/dist/_shared/data-display-CXVoX3la.cjs.map +0 -1
  779. package/dist/_shared/date-picker-Bf-nnyi-.js +0 -1361
  780. package/dist/_shared/date-picker-Bf-nnyi-.js.map +0 -1
  781. package/dist/_shared/date-picker-Cox4PAUt.cjs +0 -2
  782. package/dist/_shared/date-picker-Cox4PAUt.cjs.map +0 -1
  783. package/dist/_shared/date-pickers-DbN4q0dn.cjs +0 -2
  784. package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +0 -1
  785. package/dist/_shared/date-pickers-DvrOCP-s.js +0 -329
  786. package/dist/_shared/date-pickers-DvrOCP-s.js.map +0 -1
  787. package/dist/_shared/display-BQijMo37.js +0 -986
  788. package/dist/_shared/display-BQijMo37.js.map +0 -1
  789. package/dist/_shared/display-C0ut-Lew.cjs +0 -2
  790. package/dist/_shared/display-C0ut-Lew.cjs.map +0 -1
  791. package/dist/_shared/forms-BjG7QIb1.cjs +0 -2
  792. package/dist/_shared/forms-BjG7QIb1.cjs.map +0 -1
  793. package/dist/_shared/forms-DljDdyXR.js +0 -3533
  794. package/dist/_shared/forms-DljDdyXR.js.map +0 -1
  795. package/dist/_shared/header-BpFJRINR.cjs +0 -2
  796. package/dist/_shared/header-BpFJRINR.cjs.map +0 -1
  797. package/dist/_shared/header-CKqQF4_r.js +0 -447
  798. package/dist/_shared/header-CKqQF4_r.js.map +0 -1
  799. package/dist/_shared/hooks-DcCkbP1F.js +0 -95
  800. package/dist/_shared/hooks-DcCkbP1F.js.map +0 -1
  801. package/dist/_shared/hooks-RkLytuGj.cjs +0 -2
  802. package/dist/_shared/hooks-RkLytuGj.cjs.map +0 -1
  803. package/dist/_shared/input-Cin0qpjj.js +0 -182
  804. package/dist/_shared/input-Cin0qpjj.js.map +0 -1
  805. package/dist/_shared/input-uuWeiagN.cjs +0 -2
  806. package/dist/_shared/input-uuWeiagN.cjs.map +0 -1
  807. package/dist/_shared/item-CIlSaQg8.js +0 -226
  808. package/dist/_shared/item-CIlSaQg8.js.map +0 -1
  809. package/dist/_shared/item-CSk9Y2qB.cjs +0 -2
  810. package/dist/_shared/item-CSk9Y2qB.cjs.map +0 -1
  811. package/dist/_shared/layout-Cun0HPL4.cjs +0 -2
  812. package/dist/_shared/layout-Cun0HPL4.cjs.map +0 -1
  813. package/dist/_shared/layout-HrU5gwH3.js +0 -261
  814. package/dist/_shared/layout-HrU5gwH3.js.map +0 -1
  815. package/dist/_shared/mentions-BqN82Fon.cjs +0 -2
  816. package/dist/_shared/mentions-BqN82Fon.cjs.map +0 -1
  817. package/dist/_shared/mentions-DV0FT1Th.js +0 -506
  818. package/dist/_shared/mentions-DV0FT1Th.js.map +0 -1
  819. package/dist/_shared/money-display-D5FCRhzB.cjs +0 -2
  820. package/dist/_shared/money-display-D5FCRhzB.cjs.map +0 -1
  821. package/dist/_shared/money-display-FcCAQDCz.js +0 -198
  822. package/dist/_shared/money-display-FcCAQDCz.js.map +0 -1
  823. package/dist/_shared/navigation-CI_Dd8jM.js +0 -436
  824. package/dist/_shared/navigation-CI_Dd8jM.js.map +0 -1
  825. package/dist/_shared/navigation-DUGhCPzJ.cjs +0 -2
  826. package/dist/_shared/navigation-DUGhCPzJ.cjs.map +0 -1
  827. package/dist/_shared/overlays-BRLemLSn.cjs +0 -2
  828. package/dist/_shared/overlays-BRLemLSn.cjs.map +0 -1
  829. package/dist/_shared/overlays-Bef7VNYY.js +0 -735
  830. package/dist/_shared/overlays-Bef7VNYY.js.map +0 -1
  831. package/dist/_shared/popover-menu-CAjhhTfX.js +0 -93
  832. package/dist/_shared/popover-menu-CAjhhTfX.js.map +0 -1
  833. package/dist/_shared/popover-menu-DlkRgOkR.cjs +0 -2
  834. package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +0 -1
  835. package/dist/_shared/rich-text-editor-Bpt3r3J3.js +0 -620
  836. package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +0 -1
  837. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +0 -2
  838. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +0 -1
  839. package/dist/_shared/settings-CNT4-6u8.cjs +0 -2
  840. package/dist/_shared/settings-CNT4-6u8.cjs.map +0 -1
  841. package/dist/_shared/settings-CRP6409J.js +0 -143
  842. package/dist/_shared/settings-CRP6409J.js.map +0 -1
  843. package/dist/_shared/sidebar-B0LcBrfI.cjs +0 -2
  844. package/dist/_shared/sidebar-B0LcBrfI.cjs.map +0 -1
  845. package/dist/_shared/sidebar-Bc6JsOTD.js +0 -548
  846. package/dist/_shared/sidebar-Bc6JsOTD.js.map +0 -1
  847. package/dist/_shared/spinner-CVG62sGs.js +0 -67
  848. package/dist/_shared/spinner-CVG62sGs.js.map +0 -1
  849. package/dist/_shared/spinner-VjdonFU2.cjs +0 -2
  850. package/dist/_shared/spinner-VjdonFU2.cjs.map +0 -1
  851. package/dist/_shared/table-_yujELN3.js +0 -1377
  852. package/dist/_shared/table-_yujELN3.js.map +0 -1
  853. package/dist/_shared/table-iV8H1AE0.cjs +0 -2
  854. package/dist/_shared/table-iV8H1AE0.cjs.map +0 -1
  855. package/dist/_shared/textarea-B4zbbqff.cjs +0 -2
  856. package/dist/_shared/textarea-B4zbbqff.cjs.map +0 -1
  857. package/dist/_shared/textarea-Dp0RU-rc.js +0 -118
  858. package/dist/_shared/textarea-Dp0RU-rc.js.map +0 -1
  859. package/dist/_shared/typography-DXvCmE8w.js +0 -201
  860. package/dist/_shared/typography-DXvCmE8w.js.map +0 -1
  861. package/dist/_shared/typography-pzCKaFOc.cjs +0 -2
  862. package/dist/_shared/typography-pzCKaFOc.cjs.map +0 -1
  863. package/dist/_shared/ui-provider-DZWtUXf2.cjs +0 -2
  864. package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +0 -1
  865. package/dist/_shared/ui-provider-Dj6OSOZi.js +0 -81
  866. package/dist/_shared/ui-provider-Dj6OSOZi.js.map +0 -1
  867. package/dist/_shared/workspace-C3U57t2a.cjs +0 -2
  868. package/dist/_shared/workspace-C3U57t2a.cjs.map +0 -1
  869. package/dist/_shared/workspace-Db--ow3r.js +0 -357
  870. package/dist/_shared/workspace-Db--ow3r.js.map +0 -1
  871. package/dist/showcase/assets/AreaChart-DtVzijR8.js +0 -6
  872. package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +0 -1
  873. package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +0 -1
  874. package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +0 -1
  875. package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +0 -1
  876. package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +0 -1
  877. package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +0 -1
  878. package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +0 -1
  879. package/dist/showcase/assets/Separator-DMs71Vib.js +0 -1
  880. package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +0 -1
  881. package/dist/showcase/assets/accordion-Clw5XNXP.js +0 -171
  882. package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +0 -1
  883. package/dist/showcase/assets/action-menu-CW8zR6Ne.js +0 -1
  884. package/dist/showcase/assets/actions-Cf7vl3u0.js +0 -310
  885. package/dist/showcase/assets/activities-CyI5sJuS.js +0 -500
  886. package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +0 -1
  887. package/dist/showcase/assets/admin-CQVbTxGD.js +0 -140
  888. package/dist/showcase/assets/ai-Bkp2BY_z.js +0 -207
  889. package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +0 -2
  890. package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +0 -568
  891. package/dist/showcase/assets/ai-elements-VbMUV2-i.js +0 -387
  892. package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +0 -1
  893. package/dist/showcase/assets/alert-BUmpNcXV.js +0 -1
  894. package/dist/showcase/assets/alert-CWPNW7eb.js +0 -93
  895. package/dist/showcase/assets/alert-nUwhk3AB.js +0 -62
  896. package/dist/showcase/assets/api-key-list-B1qVywOP.js +0 -73
  897. package/dist/showcase/assets/api-key-list-BI2FGbzV.js +0 -1
  898. package/dist/showcase/assets/app-sidebar-B35a8HWK.js +0 -1
  899. package/dist/showcase/assets/arrow-down-C1w0M8tE.js +0 -1
  900. package/dist/showcase/assets/arrow-left-DtILDtAv.js +0 -1
  901. package/dist/showcase/assets/arrow-right-TnZMfDbP.js +0 -1
  902. package/dist/showcase/assets/arrow-up-BX-KDIDB.js +0 -1
  903. package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +0 -1
  904. package/dist/showcase/assets/avatar-C5YI0roK.js +0 -67
  905. package/dist/showcase/assets/avatar-DsnH-Xmz.js +0 -1
  906. package/dist/showcase/assets/avatar-S4vMi7Be.js +0 -57
  907. package/dist/showcase/assets/avatar-q4wqX6yD.js +0 -1
  908. package/dist/showcase/assets/badge-DJacF8-J.js +0 -31
  909. package/dist/showcase/assets/badge-check-DDJtQHcD.js +0 -1
  910. package/dist/showcase/assets/bell-DiXXE8YI.js +0 -1
  911. package/dist/showcase/assets/bot-bONqc_7j.js +0 -1
  912. package/dist/showcase/assets/box-lhUq3Chj.js +0 -1
  913. package/dist/showcase/assets/braces-IKXiJgb3.js +0 -1
  914. package/dist/showcase/assets/brain-DcXlhbJZ.js +0 -1
  915. package/dist/showcase/assets/brand-CramZg2-.js +0 -36
  916. package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +0 -1
  917. package/dist/showcase/assets/breadcrumb-CZRbcf09.js +0 -52
  918. package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +0 -1
  919. package/dist/showcase/assets/briefcase-CQQ0m97G.js +0 -1
  920. package/dist/showcase/assets/building-2-BkQcv8WR.js +0 -1
  921. package/dist/showcase/assets/button-K7M0irWq.js +0 -44
  922. package/dist/showcase/assets/button-group-KCGa38c8.js +0 -1
  923. package/dist/showcase/assets/buttons-CvyBMRD6.js +0 -272
  924. package/dist/showcase/assets/calendar-BJHjhWQX.js +0 -1
  925. package/dist/showcase/assets/calendar-ChMVRsNC.js +0 -16
  926. package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +0 -1
  927. package/dist/showcase/assets/calendar-xpHhfGnq.js +0 -1
  928. package/dist/showcase/assets/camera-C67freYi.js +0 -1
  929. package/dist/showcase/assets/card-CfOqXMVz.js +0 -188
  930. package/dist/showcase/assets/card-bLjedjT5.js +0 -1
  931. package/dist/showcase/assets/card-primitives-FUPmQCsu.js +0 -1
  932. package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +0 -1
  933. package/dist/showcase/assets/cards-yHZa0kEf.js +0 -353
  934. package/dist/showcase/assets/carousel-DG1cKry4.js +0 -449
  935. package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +0 -1
  936. package/dist/showcase/assets/chart-B_yVfbWJ.js +0 -358
  937. package/dist/showcase/assets/chart-column-CYrVWmMk.js +0 -1
  938. package/dist/showcase/assets/checkbox-NW6EcvtD.js +0 -1
  939. package/dist/showcase/assets/checkbox-pA_L1P-f.js +0 -1
  940. package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +0 -1
  941. package/dist/showcase/assets/chevron-left-B_NQOEWI.js +0 -1
  942. package/dist/showcase/assets/chevron-up-6hst2jwR.js +0 -1
  943. package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +0 -1
  944. package/dist/showcase/assets/circle-Cw9qV72m.js +0 -1
  945. package/dist/showcase/assets/circle-alert-D3Vcma6L.js +0 -1
  946. package/dist/showcase/assets/circle-check-DdjJpGc9.js +0 -1
  947. package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +0 -1
  948. package/dist/showcase/assets/circle-dot-DN8DFgIP.js +0 -1
  949. package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +0 -1
  950. package/dist/showcase/assets/circle-x-BzTSkndC.js +0 -1
  951. package/dist/showcase/assets/clock-3-CVwHXCmo.js +0 -1
  952. package/dist/showcase/assets/clock-BIJ9p953.js +0 -1
  953. package/dist/showcase/assets/code-xml-DrU5ziCA.js +0 -1
  954. package/dist/showcase/assets/collapsible-7rdCo71k.js +0 -27
  955. package/dist/showcase/assets/collapsible-DCcTSlEH.js +0 -1
  956. package/dist/showcase/assets/combobox-mx8o5sV1.js +0 -685
  957. package/dist/showcase/assets/command-CKJDGdA9.js +0 -1
  958. package/dist/showcase/assets/command-CzGLPzoO.js +0 -1
  959. package/dist/showcase/assets/comment-composer-CSoEIapl.js +0 -1
  960. package/dist/showcase/assets/comment-item-pjaH53iB.js +0 -1
  961. package/dist/showcase/assets/comments-_ccotzWA.js +0 -357
  962. package/dist/showcase/assets/commerce-BuiQiRsf.js +0 -267
  963. package/dist/showcase/assets/composite-Bghohd0p.js +0 -1
  964. package/dist/showcase/assets/contact-card-CqM2uz_w.js +0 -65
  965. package/dist/showcase/assets/content-container-fC4z98GI.js +0 -1
  966. package/dist/showcase/assets/copyable-BMQK8sID.js +0 -1
  967. package/dist/showcase/assets/copyable-DVR2FAa0.js +0 -96
  968. package/dist/showcase/assets/course-card-Cku2z18g.js +0 -77
  969. package/dist/showcase/assets/cpu-A072t3kq.js +0 -1
  970. package/dist/showcase/assets/credit-card-BGwhx9Zo.js +0 -1
  971. package/dist/showcase/assets/css-variables-BAW_VrGk.js +0 -1205
  972. package/dist/showcase/assets/currency-Da3C0Uzb.js +0 -149
  973. package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +0 -90
  974. package/dist/showcase/assets/data-view--EAYihh0.js +0 -124
  975. package/dist/showcase/assets/data-view-BAMwKzZO.js +0 -4
  976. package/dist/showcase/assets/database-C489WIbr.js +0 -1
  977. package/dist/showcase/assets/date-block-DuNaPSBU.js +0 -1
  978. package/dist/showcase/assets/date-picker-Dq-9L64y.js +0 -1
  979. package/dist/showcase/assets/date-pickers-D0ReMKc9.js +0 -73
  980. package/dist/showcase/assets/dense-info-CXwjqQB1.js +0 -106
  981. package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +0 -264
  982. package/dist/showcase/assets/dialog-DIrJcAzq.js +0 -1
  983. package/dist/showcase/assets/dialog-O45UwQJs.js +0 -1
  984. package/dist/showcase/assets/display-utilities-VKOARJyC.js +0 -267
  985. package/dist/showcase/assets/dist-BavkTE-I.js +0 -1
  986. package/dist/showcase/assets/dist-DPxPKIgU.js +0 -45
  987. package/dist/showcase/assets/dollar-sign-CH2fcyek.js +0 -1
  988. package/dist/showcase/assets/download-whAw79X4.js +0 -1
  989. package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +0 -1
  990. package/dist/showcase/assets/dropzone-B9sc8Mwa.js +0 -1
  991. package/dist/showcase/assets/earth-BpkE9LMh.js +0 -1
  992. package/dist/showcase/assets/ellipsis-CEVdIbhD.js +0 -1
  993. package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +0 -1
  994. package/dist/showcase/assets/empty-Dp1eCMIl.js +0 -1
  995. package/dist/showcase/assets/empty-item--dZz4VlJ.js +0 -49
  996. package/dist/showcase/assets/empty-state-ZOiE-hWY.js +0 -190
  997. package/dist/showcase/assets/empty-state-dsivN4CA.js +0 -1
  998. package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +0 -357
  999. package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +0 -1
  1000. package/dist/showcase/assets/esm-DT-TXPCJ.js +0 -2
  1001. package/dist/showcase/assets/event-calendar-aVpAFZFq.js +0 -138
  1002. package/dist/showcase/assets/event-log-DVcvyQ-P.js +0 -330
  1003. package/dist/showcase/assets/example-CzbL5xoH.js +0 -1
  1004. package/dist/showcase/assets/external-link-BaLE1QE5.js +0 -1
  1005. package/dist/showcase/assets/eye-Dq0mLKrs.js +0 -1
  1006. package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +0 -34
  1007. package/dist/showcase/assets/file-CgW3NvCL.js +0 -1
  1008. package/dist/showcase/assets/file-text-JGaJQ8Wd.js +0 -1
  1009. package/dist/showcase/assets/filter-layout-jfahl8aJ.js +0 -1
  1010. package/dist/showcase/assets/filters-D7zegZVD.js +0 -139
  1011. package/dist/showcase/assets/flag-H6U1f4wd.js +0 -1
  1012. package/dist/showcase/assets/folder-open-sT96wRxJ.js +0 -1
  1013. package/dist/showcase/assets/form-field-CQuSWnj8.js +0 -1
  1014. package/dist/showcase/assets/format-DGPJ5dDq.js +0 -1
  1015. package/dist/showcase/assets/forms-CdDJkAFt.js +0 -915
  1016. package/dist/showcase/assets/funnel-Bh56GDO0.js +0 -1
  1017. package/dist/showcase/assets/generic-CqSABKHr.js +0 -1
  1018. package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +0 -1
  1019. package/dist/showcase/assets/gift-ChVS2ovQ.js +0 -1
  1020. package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +0 -85
  1021. package/dist/showcase/assets/git-branch-86jQZnz4.js +0 -1
  1022. package/dist/showcase/assets/global-search-C92CjOf8.js +0 -215
  1023. package/dist/showcase/assets/global-search-DpVIWyO9.js +0 -1
  1024. package/dist/showcase/assets/globe-DmGzYOlq.js +0 -1
  1025. package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +0 -58
  1026. package/dist/showcase/assets/hash-pc6IIDge.js +0 -1
  1027. package/dist/showcase/assets/header-DbM4l1Z6.js +0 -1
  1028. package/dist/showcase/assets/header-notifications-CaymUd4n.js +0 -1
  1029. package/dist/showcase/assets/heart-DtfPBlXq.js +0 -1
  1030. package/dist/showcase/assets/hooks-JiLlGOJ-.js +0 -220
  1031. package/dist/showcase/assets/house-CzNWewi5.js +0 -1
  1032. package/dist/showcase/assets/icon-badge-G9Fp891n.js +0 -1
  1033. package/dist/showcase/assets/icon-badge-e8N5BSYf.js +0 -37
  1034. package/dist/showcase/assets/image-9IQW7agU.js +0 -1
  1035. package/dist/showcase/assets/inbox-DU4YaGtc.js +0 -1
  1036. package/dist/showcase/assets/index-CuXjv2p6.css +0 -2
  1037. package/dist/showcase/assets/index-DN09-Vts.js +0 -10
  1038. package/dist/showcase/assets/inertValue-kRQb7jwi.js +0 -1
  1039. package/dist/showcase/assets/info-B9AXwUDF.js +0 -1
  1040. package/dist/showcase/assets/inline-stat-BkLIKCvD.js +0 -1
  1041. package/dist/showcase/assets/inline-stat-XqGHDQrK.js +0 -15
  1042. package/dist/showcase/assets/input-BXHv6p9P.js +0 -1
  1043. package/dist/showcase/assets/input-D_T9s_tn.js +0 -1
  1044. package/dist/showcase/assets/input-group-Bs8dmhR6.js +0 -47
  1045. package/dist/showcase/assets/input-group-CqkASeoV.js +0 -1
  1046. package/dist/showcase/assets/inputs-DY7w_ssI.js +0 -155
  1047. package/dist/showcase/assets/installation-Dg3FdGJ1.js +0 -134
  1048. package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +0 -36
  1049. package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +0 -36
  1050. package/dist/showcase/assets/invoice-mini-BISFvM7J.js +0 -14
  1051. package/dist/showcase/assets/invoice-table-DcyVZTvl.js +0 -30
  1052. package/dist/showcase/assets/isSameDay-av07hGac.js +0 -1
  1053. package/dist/showcase/assets/isToday-GY5FlPL9.js +0 -1
  1054. package/dist/showcase/assets/italic-Du0n76Xk.js +0 -1
  1055. package/dist/showcase/assets/item-D8Lp4R-T.js +0 -139
  1056. package/dist/showcase/assets/item-DTsZnSJG.js +0 -1
  1057. package/dist/showcase/assets/item-Di7HZF5G.js +0 -1
  1058. package/dist/showcase/assets/kanban-Dcminjsa.js +0 -188
  1059. package/dist/showcase/assets/key-round-BBue3xKx.js +0 -1
  1060. package/dist/showcase/assets/label-dkUEHYaz.js +0 -1
  1061. package/dist/showcase/assets/languages-XxP8Uu82.js +0 -1
  1062. package/dist/showcase/assets/layers-Bi_-RuHS.js +0 -1
  1063. package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +0 -608
  1064. package/dist/showcase/assets/layout-auth-DffIslnp.js +0 -790
  1065. package/dist/showcase/assets/layout-containers-BuSg6L6o.js +0 -101
  1066. package/dist/showcase/assets/layout-header-DAxSUI18.js +0 -203
  1067. package/dist/showcase/assets/layout-page-CVgVJHf1.js +0 -314
  1068. package/dist/showcase/assets/layout-primitives-q8NXbEld.js +0 -34
  1069. package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +0 -224
  1070. package/dist/showcase/assets/layout-users-DG5u517t.js +0 -117
  1071. package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +0 -191
  1072. package/dist/showcase/assets/lib-CaQvPpSJ.js +0 -1
  1073. package/dist/showcase/assets/list-checks-Dhr60VvL.js +0 -1
  1074. package/dist/showcase/assets/lock-CYVbyBpM.js +0 -1
  1075. package/dist/showcase/assets/lock-keyhole-TUVID45I.js +0 -1
  1076. package/dist/showcase/assets/mail-DfkwmVKE.js +0 -1
  1077. package/dist/showcase/assets/mail-check-CnBhgH_h.js +0 -1
  1078. package/dist/showcase/assets/map-Ck14_o-F.js +0 -124
  1079. package/dist/showcase/assets/map-pin-Di7TUhai.js +0 -1
  1080. package/dist/showcase/assets/media-library-CzM_to29.js +0 -699
  1081. package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +0 -1
  1082. package/dist/showcase/assets/mentions-CdaPXOLl.js +0 -138
  1083. package/dist/showcase/assets/menus-DuqcLdg1.js +0 -171
  1084. package/dist/showcase/assets/message-square-DuW3PrFI.js +0 -1
  1085. package/dist/showcase/assets/metadata-list-CCRGSPaS.js +0 -286
  1086. package/dist/showcase/assets/metadata-list-Drvz5mwy.js +0 -1
  1087. package/dist/showcase/assets/metric-BSaXa3Z_.js +0 -1
  1088. package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +0 -1
  1089. package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +0 -1
  1090. package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +0 -1
  1091. package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +0 -44
  1092. package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +0 -50
  1093. package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +0 -76
  1094. package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +0 -27
  1095. package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +0 -17
  1096. package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +0 -31
  1097. package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +0 -42
  1098. package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +0 -192
  1099. package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +0 -54
  1100. package/dist/showcase/assets/minus-BaXg6nPb.js +0 -1
  1101. package/dist/showcase/assets/money-display-HegN6NVU.js +0 -1
  1102. package/dist/showcase/assets/month-year-picker-DGSalGea.js +0 -1
  1103. package/dist/showcase/assets/navigation-B9kcgNmJ.js +0 -90
  1104. package/dist/showcase/assets/navigation-D4OJbw4T.js +0 -231
  1105. package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +0 -43
  1106. package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +0 -119
  1107. package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +0 -1
  1108. package/dist/showcase/assets/overlays-BHf9SZOh.js +0 -159
  1109. package/dist/showcase/assets/overlays-DziL3nVU.js +0 -408
  1110. package/dist/showcase/assets/overview-Cc69up8i.js +0 -184
  1111. package/dist/showcase/assets/package-Bc-NuFnd.js +0 -1
  1112. package/dist/showcase/assets/package-check-5LQwCfGh.js +0 -1
  1113. package/dist/showcase/assets/page-B2o5HSfY.js +0 -1
  1114. package/dist/showcase/assets/page-action-button-CfS6vsyC.js +0 -1
  1115. package/dist/showcase/assets/page-header-W6quU5pO.js +0 -1
  1116. package/dist/showcase/assets/pagination-Bfs7Zszm.js +0 -1
  1117. package/dist/showcase/assets/pagination-DHs104ji.js +0 -42
  1118. package/dist/showcase/assets/paperclip-CXeiMywc.js +0 -1
  1119. package/dist/showcase/assets/password-input-C61t743N.js +0 -1
  1120. package/dist/showcase/assets/pencil-C1TXsTfP.js +0 -1
  1121. package/dist/showcase/assets/phone-Bh-68R_E.js +0 -1
  1122. package/dist/showcase/assets/plus-CKBaO4jG.js +0 -1
  1123. package/dist/showcase/assets/popover-C_7qLizt.js +0 -1
  1124. package/dist/showcase/assets/popover-hgtHqd0h.js +0 -1
  1125. package/dist/showcase/assets/popover-menu-DmYSBsji.js +0 -1
  1126. package/dist/showcase/assets/products-DSvcQz-Q.js +0 -423
  1127. package/dist/showcase/assets/progress-Chxeo8g4.js +0 -18
  1128. package/dist/showcase/assets/progress-fYPoCyf-.js +0 -1
  1129. package/dist/showcase/assets/props-table-izArO1Pv.js +0 -1
  1130. package/dist/showcase/assets/props.generated-cO7HmIpY.json +0 -41578
  1131. package/dist/showcase/assets/quote-wvfNu9t7.js +0 -1
  1132. package/dist/showcase/assets/receipt-BlXBX4ZJ.js +0 -1
  1133. package/dist/showcase/assets/receipt-text-stSsUTV5.js +0 -1
  1134. package/dist/showcase/assets/refinement-guide-Bri81J9N.js +0 -189
  1135. package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +0 -1
  1136. package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +0 -1
  1137. package/dist/showcase/assets/resource-B727CTVi.js +0 -139
  1138. package/dist/showcase/assets/resource-DytT_quB.js +0 -1
  1139. package/dist/showcase/assets/resource-selector-card-wNuW382N.js +0 -43
  1140. package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +0 -143
  1141. package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +0 -124
  1142. package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +0 -1
  1143. package/dist/showcase/assets/route-D2owHMka.js +0 -1
  1144. package/dist/showcase/assets/save-DjC_iy0t.js +0 -1
  1145. package/dist/showcase/assets/schema-form-CQtLwGC1.js +0 -327
  1146. package/dist/showcase/assets/scroll-area-BQlHFfkG.js +0 -32
  1147. package/dist/showcase/assets/scroll-area-D3Rrt85s.js +0 -1
  1148. package/dist/showcase/assets/section-DYfGx1Q5.js +0 -1
  1149. package/dist/showcase/assets/select-BCJGhRpc.js +0 -1
  1150. package/dist/showcase/assets/select-Cf5EigqA.js +0 -1
  1151. package/dist/showcase/assets/send-86Vr11Ys.js +0 -1
  1152. package/dist/showcase/assets/separator-BHjNVb5O.js +0 -1
  1153. package/dist/showcase/assets/separator-BejjbTbO.js +0 -28
  1154. package/dist/showcase/assets/settings-2-DNNVOsjP.js +0 -1
  1155. package/dist/showcase/assets/settings-Bsi5BLx5.js +0 -1
  1156. package/dist/showcase/assets/sheet-BazhMvfb.js +0 -1
  1157. package/dist/showcase/assets/shield-alert-D-Jbocfj.js +0 -1
  1158. package/dist/showcase/assets/shield-check-D9eDVcJ1.js +0 -1
  1159. package/dist/showcase/assets/shield-xI2P9G5d.js +0 -1
  1160. package/dist/showcase/assets/shopping-bag-DOGs3sez.js +0 -1
  1161. package/dist/showcase/assets/showcase-s-5CuLAJ.js +0 -132
  1162. package/dist/showcase/assets/sidebar-Rz44gw_a.js +0 -1
  1163. package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +0 -1
  1164. package/dist/showcase/assets/skeleton-CY8ieqD-.js +0 -1
  1165. package/dist/showcase/assets/skeleton-CgoH6CPT.js +0 -29
  1166. package/dist/showcase/assets/slider-okW2bgkG.js +0 -1
  1167. package/dist/showcase/assets/smart-card-CVwEPwfI.js +0 -1
  1168. package/dist/showcase/assets/sonner-CixCpxj2.js +0 -22
  1169. package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +0 -5
  1170. package/dist/showcase/assets/sparkles-DDEVdtmy.js +0 -1
  1171. package/dist/showcase/assets/spinner-BVGPoAEv.js +0 -49
  1172. package/dist/showcase/assets/spinner-FURXSp1Q.js +0 -1
  1173. package/dist/showcase/assets/spinner-u6TwJ3Ii.js +0 -30
  1174. package/dist/showcase/assets/square-pen-DVXVT0cQ.js +0 -1
  1175. package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +0 -1
  1176. package/dist/showcase/assets/star-B3ZPfxuz.js +0 -1
  1177. package/dist/showcase/assets/startOfDay-LwMBRUSU.js +0 -1
  1178. package/dist/showcase/assets/styles-UIKkojWJ.js +0 -1
  1179. package/dist/showcase/assets/suggestions-DbrzKjbi.js +0 -126
  1180. package/dist/showcase/assets/switch-CAw84QpS.js +0 -1
  1181. package/dist/showcase/assets/switch-Cjt2MCgr.js +0 -1
  1182. package/dist/showcase/assets/sync-DWbqfpBH.js +0 -124
  1183. package/dist/showcase/assets/table-Bx5lo5FP.js +0 -686
  1184. package/dist/showcase/assets/table-C2RQulDb.js +0 -1
  1185. package/dist/showcase/assets/table-actions-Clo3WEfM.js +0 -1
  1186. package/dist/showcase/assets/tabs-DRtlcg6b.js +0 -19
  1187. package/dist/showcase/assets/tabs-wMPtvuT5.js +0 -1
  1188. package/dist/showcase/assets/tags-input-D5FpWOWF.js +0 -1
  1189. package/dist/showcase/assets/text-button-Cwh6D6qG.js +0 -1
  1190. package/dist/showcase/assets/text-link-DI1uXdGl.js +0 -1
  1191. package/dist/showcase/assets/textarea-CGbt4gBZ.js +0 -1
  1192. package/dist/showcase/assets/textarea-JPgPLhyk.js +0 -1
  1193. package/dist/showcase/assets/timelines-CkHN08n6.js +0 -200
  1194. package/dist/showcase/assets/toggle-group-BpXkR9uD.js +0 -1
  1195. package/dist/showcase/assets/toggles-DK9iCbki.js +0 -71
  1196. package/dist/showcase/assets/toggles-group-DwzRj0f7.js +0 -32
  1197. package/dist/showcase/assets/tooltip-PtP1suag.js +0 -31
  1198. package/dist/showcase/assets/trash-2-BE4XUI2g.js +0 -1
  1199. package/dist/showcase/assets/trending-up-ByxOf-nR.js +0 -1
  1200. package/dist/showcase/assets/truck-RTOdcRV0.js +0 -1
  1201. package/dist/showcase/assets/typography-BKLgHDxU.js +0 -223
  1202. package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +0 -28
  1203. package/dist/showcase/assets/ui-card-BOdHnZwv.js +0 -30
  1204. package/dist/showcase/assets/ui-table-BW4FCClv.js +0 -42
  1205. package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +0 -138
  1206. package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +0 -1
  1207. package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +0 -1
  1208. package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +0 -1
  1209. package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +0 -1
  1210. package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +0 -1
  1211. package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +0 -1
  1212. package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +0 -1
  1213. package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +0 -1
  1214. package/dist/showcase/assets/useRender-Ogz5zjeJ.js +0 -1
  1215. package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +0 -1
  1216. package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +0 -1
  1217. package/dist/showcase/assets/user-plus-CLj8AZe1.js +0 -1
  1218. package/dist/showcase/assets/user-ymdT26JK.js +0 -1
  1219. package/dist/showcase/assets/users-BGba2Xwv.js +0 -1
  1220. package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +0 -37
  1221. package/dist/showcase/assets/video-BcKa36-p.js +0 -1
  1222. package/dist/showcase/assets/wrench-Cj2hRrih.js +0 -1
  1223. package/dist/showcase/assets/x-iCqjAC2D.js +0 -1
  1224. package/dist/showcase/assets/zap-H4bc_OhS.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-D01oOxna.cjs","names":[],"sources":["../../src/components/layout/header/partials/header-breadcrumbs.tsx","../../src/components/layout/header/header.tsx","../../src/components/layout/header/header.types.ts","../../src/components/layout/header/partials/header-search.tsx","../../src/components/layout/header/partials/header-global-search-trigger.tsx","../../src/components/layout/header/partials/header-tool-button.tsx","../../src/components/layout/header/partials/header-tool-popover.tsx","../../src/components/layout/header/partials/header-user-menu.tsx","../../src/components/layout/header/partials/header-notifications.tsx"],"sourcesContent":["/** HeaderBreadcrumbs — breadcrumbs trail with optional sidebar trigger. */\nimport * as React from 'react';\n\nimport { Separator } from '@/components/base/display/separator';\nimport { Breadcrumbs } from '@/components/base/navigation/breadcrumbs';\nimport { SidebarTrigger } from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { BreadcrumbItem } from '../../layout.types';\nimport type { HeaderBreadcrumbsProps } from '../header.types';\n\nexport function HeaderBreadcrumbs({\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\ttriggerSlot,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: HeaderBreadcrumbsProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst items = React.useMemo<BreadcrumbItem[]>(() => {\n\t\tconst out: BreadcrumbItem[] = [];\n\t\tif (homeBreadcrumb) out.push(homeBreadcrumb);\n\t\tout.push(...breadcrumbs);\n\t\treturn out;\n\t}, [homeBreadcrumb, breadcrumbs]);\n\n\tconst showCrumbs = items.length > 0;\n\n\treturn (\n\t\t<div className={cn('relative flex min-h-9 min-w-0 items-stretch gap-3 overflow-hidden', className)}>\n\t\t\t{!!showSidebarTrigger && (\n\t\t\t\t<div className=\"relative flex min-h-9 items-center justify-center gap-2\">\n\t\t\t\t\t{triggerSlot ?? <SidebarTrigger className=\"size-7 [&_svg]:size-4\" />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!showCrumbs && (\n\t\t\t\t<>\n\t\t\t\t\t{!!showSidebarTrigger && <Separator orientation=\"vertical\" className=\"h-auto self-stretch\" />}\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center overflow-hidden\">\n\t\t\t\t\t\t<Breadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={items}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'min-w-0 overflow-hidden',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-list]]:flex-nowrap [&_[data-slot=breadcrumb-list]]:overflow-hidden [&_[data-slot=breadcrumb-list]]:break-normal',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-item]]:min-w-0 [&_[data-slot=breadcrumb-item]]:shrink',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-link]]:truncate [&_[data-slot=breadcrumb-page]]:truncate',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","/** Header — sticky top bar with breadcrumbs and slot-driven content regions. */\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { HeaderBreadcrumbs } from './partials/header-breadcrumbs';\nimport type { HeaderProps } from './header.types';\n\nexport function Header({\n\tshowBreadcrumbs = true,\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\tbrand,\n\tleftContent,\n\tcenterContent,\n\trightContent,\n\tslots,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n\tcontentClassName,\n\tleftClassName,\n\tcenterClassName,\n\trightClassName,\n\tbreadcrumbsClassName,\n}: HeaderProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t'sticky top-0 z-40 flex min-h-shell-header items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5',\n\t\t\t\t'dark:bg-topbar',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('flex min-h-9 min-w-0 flex-1 items-stretch gap-4', contentClassName)}>\n\t\t\t\t{!!(slots?.brand ?? brand) && (\n\t\t\t\t\t<div className=\"hidden min-w-0 shrink-0 items-center md:flex\">\n\t\t\t\t\t\t{slots?.brand ?? brand}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!showBreadcrumbs && (slots?.breadcrumbs ?? (\n\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t<HeaderBreadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={breadcrumbs}\n\t\t\t\t\t\t\thomeBreadcrumb={homeBreadcrumb}\n\t\t\t\t\t\t\tshowSidebarTrigger={showSidebarTrigger}\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={breadcrumbsClassName}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t\t{!!(slots?.left ?? leftContent) && (\n\t\t\t\t\t<div className={cn('flex min-w-0 items-center', leftClassName)}>\n\t\t\t\t\t\t{slots?.left ?? leftContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.center ?? centerContent) && (\n\t\t\t\t\t<div className={cn('hidden min-w-0 shrink-0 items-center justify-center lg:flex', centerClassName)}>\n\t\t\t\t\t\t{slots?.center ?? centerContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.right ?? rightContent) && (\n\t\t\t\t\t<div className={cn('ml-auto flex shrink-0 items-center gap-2', rightClassName)}>\n\t\t\t\t\t\t{slots?.right ?? rightContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</header>\n\t);\n}\n","/**\n * Header layout and partial types.\n *\n * This layer is intentionally framework-neutral: links and route state enter\n * through `renderLink`, and app-specific content enters through slots.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type { StringsProp } from '@/lib/strings';\n\nimport type {\n\tBreadcrumbItem,\n\tLayoutNavigationAdapter,\n\tLayoutUser,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface HeaderBreadcrumbsProps extends LayoutNavigationAdapter {\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\ttriggerSlot?: ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type NotificationTone = 'info' | 'success' | 'warning' | 'error';\n\nexport interface HeaderNotification {\n\tid: string | number;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttime?: ReactNode;\n\tread?: boolean;\n\ttone?: NotificationTone;\n\thref?: string;\n}\n\nexport interface HeaderNotificationsStrings {\n\ttriggerLabel: string;\n\theading: string;\n\tmarkAllRead: string;\n\tempty: string;\n\tviewAll: string;\n}\n\nexport const defaultHeaderNotificationsStrings: HeaderNotificationsStrings = {\n\ttriggerLabel: 'Notifications',\n\theading: 'Notifications',\n\tmarkAllRead: 'Mark all as read',\n\tempty: 'No new notifications',\n\tviewAll: 'View all notifications',\n};\n\nexport interface HeaderNotificationsProps extends LayoutNavigationAdapter {\n\tnotifications?: HeaderNotification[];\n\tunreadCount?: number;\n\tonNotificationClick?: (notification: HeaderNotification) => void;\n\tonMarkAllRead?: () => void;\n\tonViewAll?: () => void;\n\tviewAllHref?: string;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: StringsProp<HeaderNotificationsStrings>;\n\tclassName?: string;\n\tcontentClassName?: string;\n\trenderNotification?: (notification: HeaderNotification) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface HeaderSearchStrings {\n\tplaceholder: string;\n\tshortcutMac: string;\n\tshortcutPc: string;\n}\n\nexport const defaultHeaderSearchStrings: HeaderSearchStrings = {\n\tplaceholder: 'Search...',\n\tshortcutMac: '⌘K',\n\tshortcutPc: 'Ctrl+K',\n};\n\nexport interface HeaderSearchProps {\n\tonOpen?: () => void;\n\tisMac?: boolean;\n\tenableShortcut?: boolean;\n\tstrings?: StringsProp<HeaderSearchStrings>;\n\tclassName?: string;\n\ticonClassName?: string;\n\tshortcutSlot?: ReactNode;\n}\n\nexport interface HeaderGlobalSearchTriggerProps extends HeaderSearchProps {\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\nexport interface HeaderToolButtonProps {\n\tlabel: string;\n\ticon: ComponentType<{ className?: string }>;\n\tactive?: boolean;\n\tdisabled?: boolean;\n\tbadge?: ReactNode;\n\tonClick?: () => void;\n\tclassName?: string;\n\ticonClassName?: string;\n}\n\nexport interface HeaderToolPopoverProps {\n\tlabel: string;\n\ticon: ComponentType<{ className?: string }>;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tactive?: boolean;\n\tdisabled?: boolean;\n\tbadge?: ReactNode;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tsideOffset?: number;\n\tclassName?: string;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\tchildren?: ReactNode;\n}\n\nexport interface HeaderUserMenuProps {\n\tuser: LayoutUser;\n\tshowEmail?: boolean;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: StringsProp<HeaderUserMenuStrings>;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nexport interface HeaderUserMenuStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultHeaderUserMenuStrings: HeaderUserMenuStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface HeaderSlots {\n\t/** Leading brand/logo region before breadcrumbs. */\n\tbrand?: ReactNode;\n\t/** Replaces the breadcrumb/sidebar-trigger region. */\n\tbreadcrumbs?: ReactNode;\n\t/** Leading content after breadcrumbs. Prefer this over `leftContent` for new code. */\n\tleft?: ReactNode;\n\t/** Center content, usually search or a scope switcher. */\n\tcenter?: ReactNode;\n\t/** Trailing content, usually notifications/user menu/actions. */\n\tright?: ReactNode;\n}\n\nexport interface HeaderProps extends LayoutNavigationAdapter {\n\tshowBreadcrumbs?: boolean;\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\tbrand?: ReactNode;\n\t/** @deprecated Prefer `slots.left`. */\n\tleftContent?: ReactNode;\n\t/** @deprecated Prefer `slots.center`. */\n\tcenterContent?: ReactNode;\n\t/** @deprecated Prefer `slots.right`. */\n\trightContent?: ReactNode;\n\tslots?: HeaderSlots;\n\tclassName?: string;\n\tcontentClassName?: string;\n\tleftClassName?: string;\n\tcenterClassName?: string;\n\trightClassName?: string;\n\tbreadcrumbsClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** HeaderSearch — framework-neutral search trigger with optional Cmd/Ctrl+K. */\nimport { useMemo } from 'react';\nimport { Command, Search } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useCommandShortcut } from '../../hooks';\nimport {\n\tdefaultHeaderSearchStrings,\n\ttype HeaderSearchProps,\n} from '../header.types';\n\nfunction detectMac(): boolean {\n\tif (typeof navigator === 'undefined') return false;\n\tconst ua = (navigator as Navigator & { userAgentData?: { platform?: string } }).userAgentData;\n\tif (ua?.platform) return ua.platform === 'macOS';\n\treturn /Mac|iPhone|iPad/.test(navigator.platform);\n}\n\nexport function HeaderSearch({\n\tonOpen,\n\tisMac,\n\tenableShortcut = true,\n\tstrings: stringsProp,\n\tclassName,\n\ticonClassName,\n\tshortcutSlot,\n}: HeaderSearchProps) {\n\tconst strings = useStrings(defaultHeaderSearchStrings, stringsProp);\n\tconst isMacResolved = useMemo(() => isMac ?? detectMac(), [isMac]);\n\tuseCommandShortcut({ key: 'k', enabled: enableShortcut, onTrigger: onOpen });\n\n\tconst shortcutTitle = isMacResolved ? strings.shortcutMac : strings.shortcutPc;\n\tconst shortcut = shortcutSlot ?? (\n\t\t<kbd className=\"header-search--shortcut hidden h-5 shrink-0 items-center gap-space-sm rounded-md border border-border/70 bg-background/60 px-space-sm font-mono text-xs text-muted-foreground lg:inline-flex\">\n\t\t\t{isMacResolved ? (\n\t\t\t\t<>\n\t\t\t\t\t<Command className=\"size-icon-sm text-muted-foreground\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">K</Text>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">Ctrl+K</Text>\n\t\t\t)}\n\t\t</kbd>\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tdata-component=\"header-search\"\n\t\t\tdata-slot=\"header-search-trigger\"\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"outline\"\n\t\t\tonClick={onOpen}\n\t\t\tclassName={cn(\n\t\t\t\t'header-search--component header-search--trigger h-control-sm w-full min-w-52 justify-start gap-space-md rounded-lg border-border/80 bg-muted/40 px-control-sm text-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border hover:bg-muted/60 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background dark:border-border/80 dark:bg-muted dark:hover:bg-muted/60 dark:hover:text-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttitle={shortcutTitle}\n\t\t>\n\t\t\t<Search data-slot=\"header-search-icon\" className={cn('header-search--icon size-icon shrink-0 text-muted-foreground', iconClassName)} aria-hidden=\"true\" />\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" data-slot=\"header-search-placeholder\" className=\"header-search--placeholder flex-1 text-left\">\n\t\t\t\t{strings.placeholder}\n\t\t\t</Text>\n\t\t\t{shortcut}\n\t\t\t<span className=\"sr-only\">{strings.placeholder}</span>\n\t\t</Button>\n\t);\n}\n","/** HeaderGlobalSearchTrigger — header search trigger with controlled open callback. */\nimport { HeaderSearch } from './header-search';\nimport type { HeaderGlobalSearchTriggerProps } from '../header.types';\n\nexport function HeaderGlobalSearchTrigger({\n\tonOpen,\n\tonOpenChange,\n\t...props\n}: HeaderGlobalSearchTriggerProps) {\n\treturn (\n\t\t<HeaderSearch\n\t\t\t{...props}\n\t\t\tonOpen={() => {\n\t\t\t\tonOpen?.();\n\t\t\t\tonOpenChange?.(true);\n\t\t\t}}\n\t\t/>\n\t);\n}\n","/** HeaderToolButton — icon control for dense app headers. */\nimport * as React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\n\nimport type { HeaderToolButtonProps } from '../header.types';\n\nexport const HeaderToolButton = React.forwardRef<\n\tHTMLButtonElement,\n\tHeaderToolButtonProps\n>((\n\t{\n\t\tlabel,\n\t\ticon: Icon,\n\t\tactive = false,\n\t\tdisabled = false,\n\t\tbadge,\n\t\tonClick,\n\t\tclassName,\n\t\ticonClassName,\n\t},\n\tref,\n) => (\n\t<Button\n\t\tref={ref}\n\t\tdata-component=\"header-tool-button\"\n\t\tdata-slot=\"header-tool-button\"\n\t\ttype=\"button\"\n\t\tvariant=\"secondary\"\n\t\tbuttonStyle=\"ghost\"\n\t\tsize=\"icon-small\"\n\t\taria-label={label}\n\t\taria-pressed={active || undefined}\n\t\ttitle={label}\n\t\tdisabled={disabled}\n\t\tonClick={onClick}\n\t\tclassName={cn(\n\t\t\t'header-tool-button--component header-tool-button--trigger relative size-control rounded-lg text-foreground transition-[background-color,color,box-shadow] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background',\n\t\t\tactive && 'bg-accent text-accent-foreground',\n\t\t\tclassName,\n\t\t)}\n\t>\n\t\t<Icon\n\t\t\tdata-slot=\"header-tool-icon\"\n\t\t\tclassName={cn('header-tool-button--icon size-icon', iconClassName)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t\t{!!badge && (\n\t\t\t<span data-slot=\"header-tool-badge\" className=\"header-tool-button--badge absolute right-space-xs top-space-xs flex min-h-space-lg min-w-space-lg items-center justify-center rounded-full bg-destructive px-space-2xs text-xs font-medium leading-none text-destructive-foreground\">\n\t\t\t\t{badge}\n\t\t\t</span>\n\t\t)}\n\t\t<span className=\"sr-only\">{label}</span>\n\t</Button>\n));\n\nHeaderToolButton.displayName = 'HeaderToolButton';\n","/** HeaderToolPopover — controlled header icon trigger plus popover content. */\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger,\n} from '@/components/base/popover';\nimport { cn } from '@/lib/utils';\n\nimport type { HeaderToolPopoverProps } from '../header.types';\nimport { HeaderToolButton } from './header-tool-button';\n\nexport function HeaderToolPopover({\n\tlabel,\n\ticon,\n\topen,\n\tdefaultOpen,\n\tonOpenChange,\n\tactive,\n\tdisabled,\n\tbadge,\n\talign = 'end',\n\tside = 'bottom',\n\tsideOffset = 8,\n\tclassName,\n\ttriggerClassName,\n\tcontentClassName,\n\tchildren,\n}: HeaderToolPopoverProps) {\n\treturn (\n\t\t<Popover\n\t\t\topen={open}\n\t\t\tdefaultOpen={defaultOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t>\n\t\t\t<PopoverTrigger asChild>\n\t\t\t\t<HeaderToolButton\n\t\t\t\t\tlabel={label}\n\t\t\t\t\ticon={icon}\n\t\t\t\t\tactive={active ?? open}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tbadge={badge}\n\t\t\t\t\tclassName={triggerClassName}\n\t\t\t\t/>\n\t\t\t</PopoverTrigger>\n\t\t\t<PopoverContent\n\t\t\t\tdata-component=\"header-tool-popover\"\n\t\t\t\tdata-slot=\"header-tool-popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'header-tool-popover--component w-80 max-w-[calc(100vw-2rem)] p-0',\n\t\t\t\t\tclassName,\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t);\n}\n","/** HeaderUserMenu — avatar/name trigger with consumer-wired menu callbacks. */\nimport type { ReactElement } from 'react';\n\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultHeaderUserMenuStrings,\n\ttype HeaderUserMenuProps,\n} from '../header.types';\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function HeaderUserMenu({\n\tuser,\n\tshowEmail = true,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\ttriggerClassName,\n\tcontentClassName,\n\trenderTrigger,\n}: HeaderUserMenuProps) {\n\tconst strings = useStrings(defaultHeaderUserMenuStrings, stringsProp);\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst trigger = renderTrigger?.(user) ?? (\n\t\t<Button\n\t\t\tdata-component=\"header-user-menu\"\n\t\t\tdata-slot=\"header-user-menu-trigger\"\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tclassName={cn(\n\t\t\t\t'header-user-menu--component header-user-menu--trigger group h-control-lg max-w-56 justify-start gap-space-md rounded-lg px-space-sm pr-space-md text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5',\n\t\t\t\tshowEmail ? 'py-space-sm' : 'py-space-xs',\n\t\t\t\t'dark:text-background dark:hover:bg-topbar-accent/50',\n\t\t\t\ttriggerClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Avatar data-slot=\"header-user-avatar\" className=\"header-user-menu--avatar size-avatar-sm overflow-hidden rounded-full ring-1 ring-border/60\">\n\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t<AvatarFallback className=\"rounded-md bg-success text-xs font-semibold text-background\">\n\t\t\t\t\t{initials}\n\t\t\t\t</AvatarFallback>\n\t\t\t</Avatar>\n\t\t\t<div data-slot=\"header-user-identity\" className=\"header-user-menu--identity grid min-w-0 flex-1 text-left leading-none\">\n\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"truncate\">{user.name}</Text>\n\t\t\t\t{!!showEmail && !!user.email && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">{user.email}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ChevronsUpDown className=\"header-user-menu--chevron size-icon-sm shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n\t\t</Button>\n\t);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger render={trigger as ReactElement} />\n\t\t\t<DropdownMenuContent\n\t\t\t\tdata-component=\"header-user-menu-content\"\n\t\t\t\tdata-slot=\"header-user-menu-content\"\n\t\t\t\tclassName={cn('header-user-menu--content w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-surface-sm', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t{customContent ?? defaultContent}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/** HeaderNotifications — bell dropdown for consumer-supplied notifications. */\nimport type { ReactElement } from 'react';\n\nimport { Bell } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuLinkItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultHeaderNotificationsStrings,\n\ttype HeaderNotification,\n\ttype HeaderNotificationsProps,\n} from '../header.types';\n\nexport function HeaderNotifications({\n\tnotifications = [],\n\tunreadCount = 0,\n\tonNotificationClick,\n\tonMarkAllRead,\n\tonViewAll,\n\tviewAllHref,\n\trenderLink,\n\tLinkComponent,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\tclassName,\n\tcontentClassName,\n\trenderNotification,\n}: HeaderNotificationsProps) {\n\tconst strings = useStrings(defaultHeaderNotificationsStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst badgeText = unreadCount > 99 ? '99+' : String(unreadCount);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-component=\"header-notifications\"\n\t\t\t\t\t\tdata-slot=\"header-notifications-trigger\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\taria-label={strings.triggerLabel}\n\t\t\t\t\t\tclassName={cn('header-notifications--component header-notifications--trigger relative', className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Bell className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tclassName=\"absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 leading-none\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badgeText}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<DropdownMenuContent\n\t\t\t\tdata-component=\"header-notifications-content\"\n\t\t\t\tdata-slot=\"header-notifications-content\"\n\t\t\t\tclassName={cn('header-notifications--content w-80 max-w-[calc(100vw-2rem)]', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuLabel className=\"header-notifications--label flex items-center justify-between gap-3\">\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{strings.heading}</Text>\n\t\t\t\t\t\t{unreadCount > 0 && !!onMarkAllRead && (\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=\"small\"\n\t\t\t\t\t\t\t\tonClick={onMarkAllRead}\n\t\t\t\t\t\t\t\tclassName=\"h-auto px-1 py-0 text-xs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.markAllRead}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t<DropdownMenuSeparator />\n\n\t\t\t\t\t{notifications.length === 0 ? (\n\t\t\t\t\t\t<div className=\"header-notifications--empty p-4 text-center\">\n\t\t\t\t\t\t\t<Text type=\"secondary\">{strings.empty}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"space-y-1 p-1\">\n\t\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t\t<NotificationRow\n\t\t\t\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\t\t\t\tnotification={notification}\n\t\t\t\t\t\t\t\t\tonClick={onNotificationClick}\n\t\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\t\trenderNotification={renderNotification}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</DropdownMenuGroup>\n\n\t\t\t\t{!!(onViewAll || viewAllHref) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t{viewAllHref ? (\n\t\t\t\t\t\t\t<DropdownMenuLinkItem\n\t\t\t\t\t\t\t\thref={viewAllHref}\n\t\t\t\t\t\t\t\trender={(props) =>\n\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t\thref: viewAllHref,\n\t\t\t\t\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t\t\t\t\t}) as ReactElement\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.viewAll}\n\t\t\t\t\t\t\t</DropdownMenuLinkItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={onViewAll}>{strings.viewAll}</DropdownMenuItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction NotificationRow({\n\tnotification,\n\tonClick,\n\trenderLink,\n\trenderNotification,\n}: {\n\tnotification: HeaderNotification;\n\tonClick?: (n: HeaderNotification) => void;\n\trenderLink: NonNullable<HeaderNotificationsProps['renderLink']>;\n\trenderNotification?: HeaderNotificationsProps['renderNotification'];\n}) {\n\tif (renderNotification) return renderNotification(notification);\n\n\tconst content = (\n\t\t<div className=\"header-notifications--item-content min-w-0 space-y-1\">\n\t\t\t<Text weight=\"medium\">{notification.title}</Text>\n\t\t\t{!!notification.description && <Text size=\"xs\" type=\"secondary\">{notification.description}</Text>}\n\t\t\t{!!notification.time && <Text size=\"xs\" type=\"secondary\">{notification.time}</Text>}\n\t\t</div>\n\t);\n\n\tconst className = cn(\n\t\t'header-notifications--item items-start rounded-md px-3 py-2',\n\t\t!notification.read && 'bg-muted/40',\n\t);\n\n\tif (notification.href) {\n\t\treturn (\n\t\t\t<DropdownMenuLinkItem\n\t\t\t\thref={notification.href}\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={() => onClick?.(notification)}\n\t\t\t\trender={(props) =>\n\t\t\t\t\trenderLink({\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\thref: notification.href,\n\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t}) as ReactElement\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</DropdownMenuLinkItem>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DropdownMenuItem onClick={() => onClick?.(notification)} className={className}>\n\t\t\t{content}\n\t\t</DropdownMenuItem>\n\t);\n}\n\n/** @deprecated Re-exported for backwards compat — use `HeaderNotification`. */\nexport type Notification = HeaderNotification;\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { cn as e } from "../lib/utils.js";
2
+ import { t } from "./badge-r8ae66Vd.js";
3
+ import { r as n } from "./layout.types-ip8BYRa7.js";
4
+ import * as r from "react";
5
+ import { useCallback as i, useEffect as a, useMemo as o } from "react";
6
+ import { jsx as s } from "react/jsx-runtime";
7
+ //#region src/components/layout/hooks/use-layout-link.tsx
8
+ function c({ renderLink: e, LinkComponent: t } = {}) {
9
+ return o(() => n({
10
+ renderLink: e,
11
+ LinkComponent: t
12
+ }), [e, t]);
13
+ }
14
+ //#endregion
15
+ //#region src/components/layout/sidebar/sidebar.utils.tsx
16
+ function l(e) {
17
+ if (e.startsWith("#/")) return e.slice(1).split("?")[0]?.split("#")[0] || "/";
18
+ try {
19
+ return new URL(e, "http://local.invalid").pathname;
20
+ } catch {
21
+ return e;
22
+ }
23
+ }
24
+ function u(e, t) {
25
+ let n = l(e);
26
+ return n === t || n.startsWith(t + "/") || n.startsWith(t + "?");
27
+ }
28
+ function d(e) {
29
+ return e.label ?? e.title ?? "";
30
+ }
31
+ function f(e, t) {
32
+ let n = d(e);
33
+ return e.handle ?? e.href ?? (typeof n == "string" || typeof n == "number" ? n : `nav-${t ?? 0}`);
34
+ }
35
+ function p({ value: n, size: r = "default" }) {
36
+ return /* @__PURE__ */ s(t, {
37
+ variant: "secondary",
38
+ className: e("ml-auto rounded-full tabular-nums text-sidebar-foreground", r === "small" ? "h-4 min-w-4 px-1.5" : "h-5 min-w-5 px-1.5"),
39
+ children: n
40
+ });
41
+ }
42
+ function m(e, t, n) {
43
+ return e && n && n[e] != null ? n[e] : t;
44
+ }
45
+ function h({ icon: t, iconMap: n = {}, size: i = 20, className: a = "size-4", ...o }) {
46
+ if (!t) return null;
47
+ if (typeof t == "string") {
48
+ let e = n[t];
49
+ return e ? /* @__PURE__ */ s(e, { className: a }) : null;
50
+ }
51
+ return r.isValidElement(t) ? r.cloneElement(t, {
52
+ className: e(a, t.props.className),
53
+ ...o
54
+ }) : typeof t == "function" || typeof t == "object" && t && "$$typeof" in t ? /* @__PURE__ */ s(t, {
55
+ className: a,
56
+ width: i,
57
+ height: i,
58
+ ...o
59
+ }) : null;
60
+ }
61
+ function g(e, t, n, r, i) {
62
+ return e({
63
+ href: t.href,
64
+ children: n,
65
+ className: r,
66
+ active: i,
67
+ disabled: t.disabled || !t.href,
68
+ external: t.external
69
+ });
70
+ }
71
+ //#endregion
72
+ //#region src/components/layout/hooks/use-active-path.ts
73
+ function _(e = "/") {
74
+ return i((t) => !!t && u(e, l(t)), [e]);
75
+ }
76
+ //#endregion
77
+ //#region src/components/layout/hooks/use-command-shortcut.ts
78
+ function v({ key: e, enabled: t = !0, onTrigger: n, preventDefault: r = !0 }) {
79
+ a(() => {
80
+ if (!t || !n || typeof document > "u") return;
81
+ let i = (t) => {
82
+ (t.metaKey || t.ctrlKey) && t.key.toLowerCase() === e.toLowerCase() && (r && t.preventDefault(), n());
83
+ };
84
+ return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
85
+ }, [
86
+ t,
87
+ e,
88
+ n,
89
+ r
90
+ ]);
91
+ }
92
+ //#endregion
93
+ export { f as a, g as c, c as d, p as i, m as l, _ as n, d as o, h as r, u as s, v as t, l as u };
94
+
95
+ //# sourceMappingURL=hooks-ACnpaIli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-ACnpaIli.js","names":[],"sources":["../../src/components/layout/hooks/use-layout-link.tsx","../../src/components/layout/sidebar/sidebar.utils.tsx","../../src/components/layout/hooks/use-active-path.ts","../../src/components/layout/hooks/use-command-shortcut.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport function useLayoutLinkRenderer({\n\trenderLink,\n\tLinkComponent,\n}: LayoutNavigationAdapter = {}): LayoutLinkRenderer {\n\treturn useMemo(\n\t\t() => resolveLayoutLinkRenderer({ renderLink, LinkComponent }),\n\t\t[renderLink, LinkComponent],\n\t);\n}\n"," \n/** Sidebar utilities — pure path helpers, labels, icon rendering, badge pill. */\nimport * as React from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { cn } from '@/lib/utils';\n\nimport type { LayoutIconSource, LayoutLinkRenderer } from '../layout.types';\nimport type { SidebarNavItem } from './sidebar.types';\n\nexport function toPath(href: string): string {\n\tif (href.startsWith('#/')) {\n\t\treturn href.slice(1).split('?')[0]?.split('#')[0] || '/';\n\t}\n\n\ttry {\n\t\treturn new URL(href, 'http://local.invalid').pathname;\n\t} catch {\n\t\treturn href;\n\t}\n}\n\nexport function isPathMatch(currentUrl: string, path: string): boolean {\n\tconst currentPath = toPath(currentUrl);\n\treturn currentPath === path || currentPath.startsWith(path + '/') || currentPath.startsWith(path + '?');\n}\n\nexport function getNavLabel(item: Pick<SidebarNavItem, 'label' | 'title'>): React.ReactNode {\n\treturn item.label ?? item.title ?? '';\n}\n\nexport function getNavKey(item: SidebarNavItem, fallbackIndex?: number): React.Key {\n\tconst label = getNavLabel(item);\n\treturn item.handle ?? item.href ?? (typeof label === 'string' || typeof label === 'number' ? label : `nav-${fallbackIndex ?? 0}`);\n}\n\nexport function NavBadge({\n\tvalue,\n\tsize = 'default',\n}: {\n\tvalue: string | number;\n\tsize?: 'default' | 'small';\n}) {\n\treturn (\n\t\t<Badge\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\t'ml-auto rounded-full tabular-nums text-sidebar-foreground',\n\t\t\t\tsize === 'small' ? 'h-4 min-w-4 px-1.5' : 'h-5 min-w-5 px-1.5',\n\t\t\t)}\n\t\t>\n\t\t\t{value}\n\t\t</Badge>\n\t);\n}\n\nexport function resolveNavBadge(\n\thandle: string | undefined,\n\titemBadge: string | number | undefined,\n\tliveBadges: Record<string, string | number> | undefined,\n): string | number | undefined {\n\tif (handle && liveBadges && liveBadges[handle] != null) {\n\t\treturn liveBadges[handle];\n\t}\n\treturn itemBadge;\n}\n\nexport interface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n\ticon: LayoutIconSource;\n\ticonMap?: Record<string, React.ComponentType<{ className?: string }>>;\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport function DynamicIcon({\n\ticon,\n\ticonMap = {},\n\tsize = 20,\n\tclassName = 'size-4',\n\t...props\n}: DynamicIconProps) {\n\tif (!icon) return null;\n\n\tif (typeof icon === 'string') {\n\t\tconst IconComponent = iconMap[icon];\n\t\treturn IconComponent ? <IconComponent className={className} /> : null;\n\t}\n\n\tif (React.isValidElement(icon)) {\n\t\treturn React.cloneElement(icon as React.ReactElement<React.SVGProps<SVGSVGElement>>, {\n\t\t\tclassName: cn(className, (icon.props as { className?: string }).className),\n\t\t\t...props,\n\t\t});\n\t}\n\n\tif (\n\t\ttypeof icon === 'function'\n\t\t|| (typeof icon === 'object' && icon !== null && '$$typeof' in icon)\n\t) {\n\t\tconst IconComponent = icon as React.ElementType<React.SVGProps<SVGSVGElement>>;\n\t\treturn <IconComponent className={className} width={size} height={size} {...props} />;\n\t}\n\n\treturn null;\n}\n\nexport function renderSidebarLink(\n\trenderLink: LayoutLinkRenderer,\n\titem: SidebarNavItem,\n\tchildren: React.ReactNode,\n\tclassName?: string,\n\tactive?: boolean,\n) {\n\treturn renderLink({\n\t\thref: item.href,\n\t\tchildren,\n\t\tclassName,\n\t\tactive,\n\t\tdisabled: item.disabled || !item.href,\n\t\texternal: item.external,\n\t});\n}\n","import { useCallback } from 'react';\n\nimport { isPathMatch, toPath } from '../sidebar/sidebar.utils';\n\nexport function useActivePath(currentUrl = '/') {\n\treturn useCallback(\n\t\t(href?: string) => !!href && isPathMatch(currentUrl, toPath(href)),\n\t\t[currentUrl],\n\t);\n}\n","import { useEffect } from 'react';\n\nexport interface UseCommandShortcutOptions {\n\tkey: string;\n\tenabled?: boolean;\n\tonTrigger?: () => void;\n\tpreventDefault?: boolean;\n}\n\nexport function useCommandShortcut({\n\tkey,\n\tenabled = true,\n\tonTrigger,\n\tpreventDefault = true,\n}: UseCommandShortcutOptions) {\n\tuseEffect(() => {\n\t\tif (!enabled || !onTrigger || typeof document === 'undefined') return;\n\n\t\tconst handler = (event: KeyboardEvent) => {\n\t\t\tif (!(event.metaKey || event.ctrlKey)) return;\n\t\t\tif (event.key.toLowerCase() !== key.toLowerCase()) return;\n\t\t\tif (preventDefault) event.preventDefault();\n\t\t\tonTrigger();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handler);\n\t\treturn () => document.removeEventListener('keydown', handler);\n\t}, [enabled, key, onTrigger, preventDefault]);\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,EAAsB,EACrC,eACA,qBAC4B,CAAC,GAAuB;CACpD,OAAO,QACA,EAA0B;EAAE;EAAY;CAAc,CAAC,GAC7D,CAAC,GAAY,CAAa,CAC3B;AACD;;;ACNA,SAAgB,EAAO,GAAsB;CAC5C,IAAI,EAAK,WAAW,IAAI,GACvB,OAAO,EAAK,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,MAAM;CAGtD,IAAI;EACH,OAAO,IAAI,IAAI,GAAM,sBAAsB,EAAE;CAC9C,QAAQ;EACP,OAAO;CACR;AACD;AAEA,SAAgB,EAAY,GAAoB,GAAuB;CACtE,IAAM,IAAc,EAAO,CAAU;CACrC,OAAO,MAAgB,KAAQ,EAAY,WAAW,IAAO,GAAG,KAAK,EAAY,WAAW,IAAO,GAAG;AACvG;AAEA,SAAgB,EAAY,GAAgE;CAC3F,OAAO,EAAK,SAAS,EAAK,SAAS;AACpC;AAEA,SAAgB,EAAU,GAAsB,GAAmC;CAClF,IAAM,IAAQ,EAAY,CAAI;CAC9B,OAAO,EAAK,UAAU,EAAK,SAAS,OAAO,KAAU,YAAY,OAAO,KAAU,WAAW,IAAQ,OAAO,KAAiB;AAC9H;AAEA,SAAgB,EAAS,EACxB,UACA,UAAO,aAIL;CACF,OACC,kBAAC,GAAD;EACC,SAAQ;EACR,WAAW,EACV,6DACA,MAAS,UAAU,uBAAuB,oBAC3C;YAEC;CACK,CAAA;AAET;AAEA,SAAgB,EACf,GACA,GACA,GAC8B;CAI9B,OAHI,KAAU,KAAc,EAAW,MAAW,OAC1C,EAAW,KAEZ;AACR;AASA,SAAgB,EAAY,EAC3B,SACA,aAAU,CAAC,GACX,UAAO,IACP,eAAY,UACZ,GAAG,KACiB;CACpB,IAAI,CAAC,GAAM,OAAO;CAElB,IAAI,OAAO,KAAS,UAAU;EAC7B,IAAM,IAAgB,EAAQ;EAC9B,OAAO,IAAgB,kBAAC,GAAD,EAA0B,aAAY,CAAA,IAAI;CAClE;CAiBA,OAfI,EAAM,eAAe,CAAI,IACrB,EAAM,aAAa,GAA2D;EACpF,WAAW,EAAG,GAAY,EAAK,MAAiC,SAAS;EACzE,GAAG;CACJ,CAAC,IAID,OAAO,KAAS,cACZ,OAAO,KAAS,YAAY,KAAiB,cAAc,IAGxD,kBAAC,GAAD;EAA0B;EAAW,OAAO;EAAM,QAAQ;EAAM,GAAI;CAAQ,CAAA,IAG7E;AACR;AAEA,SAAgB,EACf,GACA,GACA,GACA,GACA,GACC;CACD,OAAO,EAAW;EACjB,MAAM,EAAK;EACX;EACA;EACA;EACA,UAAU,EAAK,YAAY,CAAC,EAAK;EACjC,UAAU,EAAK;CAChB,CAAC;AACF;;;ACrHA,SAAgB,EAAc,IAAa,KAAK;CAC/C,OAAO,GACL,MAAkB,CAAC,CAAC,KAAQ,EAAY,GAAY,EAAO,CAAI,CAAC,GACjE,CAAC,CAAU,CACZ;AACD;;;ACAA,SAAgB,EAAmB,EAClC,QACA,aAAU,IACV,cACA,oBAAiB,MACY;CAC7B,QAAgB;EACf,IAAI,CAAC,KAAW,CAAC,KAAa,OAAO,WAAa,KAAa;EAE/D,IAAM,KAAW,MAAyB;GACnC,GAAM,WAAW,EAAM,YACzB,EAAM,IAAI,YAAY,MAAM,EAAI,YAAY,MAC5C,KAAgB,EAAM,eAAe,GACzC,EAAU;EACX;EAGA,OADA,SAAS,iBAAiB,WAAW,CAAO,SAC/B,SAAS,oBAAoB,WAAW,CAAO;CAC7D,GAAG;EAAC;EAAS;EAAK;EAAW;CAAc,CAAC;AAC7C"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/utils.cjs"),n=require("./badge-C65rt1M9.cjs"),r=require("./layout.types-CXFAjJCj.cjs");let i=require("react");i=e.t(i,1);let a=require("react/jsx-runtime");function o({renderLink:e,LinkComponent:t}={}){return(0,i.useMemo)(()=>r.r({renderLink:e,LinkComponent:t}),[e,t])}function s(e){if(e.startsWith(`#/`))return e.slice(1).split(`?`)[0]?.split(`#`)[0]||`/`;try{return new URL(e,`http://local.invalid`).pathname}catch{return e}}function c(e,t){let n=s(e);return n===t||n.startsWith(t+`/`)||n.startsWith(t+`?`)}function l(e){return e.label??e.title??``}function u(e,t){let n=l(e);return e.handle??e.href??(typeof n==`string`||typeof n==`number`?n:`nav-${t??0}`)}function d({value:e,size:r=`default`}){return(0,a.jsx)(n.t,{variant:`secondary`,className:t.cn(`ml-auto rounded-full tabular-nums text-sidebar-foreground`,r===`small`?`h-4 min-w-4 px-1.5`:`h-5 min-w-5 px-1.5`),children:e})}function f(e,t,n){return e&&n&&n[e]!=null?n[e]:t}function p({icon:e,iconMap:n={},size:r=20,className:o=`size-4`,...s}){if(!e)return null;if(typeof e==`string`){let t=n[e];return t?(0,a.jsx)(t,{className:o}):null}return i.isValidElement(e)?i.cloneElement(e,{className:t.cn(o,e.props.className),...s}):typeof e==`function`||typeof e==`object`&&e&&`$$typeof`in e?(0,a.jsx)(e,{className:o,width:r,height:r,...s}):null}function m(e,t,n,r,i){return e({href:t.href,children:n,className:r,active:i,disabled:t.disabled||!t.href,external:t.external})}function h(e=`/`){return(0,i.useCallback)(t=>!!t&&c(e,s(t)),[e])}function g({key:e,enabled:t=!0,onTrigger:n,preventDefault:r=!0}){(0,i.useEffect)(()=>{if(!t||!n||typeof document>`u`)return;let i=t=>{(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===e.toLowerCase()&&(r&&t.preventDefault(),n())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[t,e,n,r])}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return s}});
2
+ //# sourceMappingURL=hooks-B7khuHkk.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-B7khuHkk.cjs","names":[],"sources":["../../src/components/layout/hooks/use-layout-link.tsx","../../src/components/layout/sidebar/sidebar.utils.tsx","../../src/components/layout/hooks/use-active-path.ts","../../src/components/layout/hooks/use-command-shortcut.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport function useLayoutLinkRenderer({\n\trenderLink,\n\tLinkComponent,\n}: LayoutNavigationAdapter = {}): LayoutLinkRenderer {\n\treturn useMemo(\n\t\t() => resolveLayoutLinkRenderer({ renderLink, LinkComponent }),\n\t\t[renderLink, LinkComponent],\n\t);\n}\n"," \n/** Sidebar utilities — pure path helpers, labels, icon rendering, badge pill. */\nimport * as React from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { cn } from '@/lib/utils';\n\nimport type { LayoutIconSource, LayoutLinkRenderer } from '../layout.types';\nimport type { SidebarNavItem } from './sidebar.types';\n\nexport function toPath(href: string): string {\n\tif (href.startsWith('#/')) {\n\t\treturn href.slice(1).split('?')[0]?.split('#')[0] || '/';\n\t}\n\n\ttry {\n\t\treturn new URL(href, 'http://local.invalid').pathname;\n\t} catch {\n\t\treturn href;\n\t}\n}\n\nexport function isPathMatch(currentUrl: string, path: string): boolean {\n\tconst currentPath = toPath(currentUrl);\n\treturn currentPath === path || currentPath.startsWith(path + '/') || currentPath.startsWith(path + '?');\n}\n\nexport function getNavLabel(item: Pick<SidebarNavItem, 'label' | 'title'>): React.ReactNode {\n\treturn item.label ?? item.title ?? '';\n}\n\nexport function getNavKey(item: SidebarNavItem, fallbackIndex?: number): React.Key {\n\tconst label = getNavLabel(item);\n\treturn item.handle ?? item.href ?? (typeof label === 'string' || typeof label === 'number' ? label : `nav-${fallbackIndex ?? 0}`);\n}\n\nexport function NavBadge({\n\tvalue,\n\tsize = 'default',\n}: {\n\tvalue: string | number;\n\tsize?: 'default' | 'small';\n}) {\n\treturn (\n\t\t<Badge\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\t'ml-auto rounded-full tabular-nums text-sidebar-foreground',\n\t\t\t\tsize === 'small' ? 'h-4 min-w-4 px-1.5' : 'h-5 min-w-5 px-1.5',\n\t\t\t)}\n\t\t>\n\t\t\t{value}\n\t\t</Badge>\n\t);\n}\n\nexport function resolveNavBadge(\n\thandle: string | undefined,\n\titemBadge: string | number | undefined,\n\tliveBadges: Record<string, string | number> | undefined,\n): string | number | undefined {\n\tif (handle && liveBadges && liveBadges[handle] != null) {\n\t\treturn liveBadges[handle];\n\t}\n\treturn itemBadge;\n}\n\nexport interface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n\ticon: LayoutIconSource;\n\ticonMap?: Record<string, React.ComponentType<{ className?: string }>>;\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport function DynamicIcon({\n\ticon,\n\ticonMap = {},\n\tsize = 20,\n\tclassName = 'size-4',\n\t...props\n}: DynamicIconProps) {\n\tif (!icon) return null;\n\n\tif (typeof icon === 'string') {\n\t\tconst IconComponent = iconMap[icon];\n\t\treturn IconComponent ? <IconComponent className={className} /> : null;\n\t}\n\n\tif (React.isValidElement(icon)) {\n\t\treturn React.cloneElement(icon as React.ReactElement<React.SVGProps<SVGSVGElement>>, {\n\t\t\tclassName: cn(className, (icon.props as { className?: string }).className),\n\t\t\t...props,\n\t\t});\n\t}\n\n\tif (\n\t\ttypeof icon === 'function'\n\t\t|| (typeof icon === 'object' && icon !== null && '$$typeof' in icon)\n\t) {\n\t\tconst IconComponent = icon as React.ElementType<React.SVGProps<SVGSVGElement>>;\n\t\treturn <IconComponent className={className} width={size} height={size} {...props} />;\n\t}\n\n\treturn null;\n}\n\nexport function renderSidebarLink(\n\trenderLink: LayoutLinkRenderer,\n\titem: SidebarNavItem,\n\tchildren: React.ReactNode,\n\tclassName?: string,\n\tactive?: boolean,\n) {\n\treturn renderLink({\n\t\thref: item.href,\n\t\tchildren,\n\t\tclassName,\n\t\tactive,\n\t\tdisabled: item.disabled || !item.href,\n\t\texternal: item.external,\n\t});\n}\n","import { useCallback } from 'react';\n\nimport { isPathMatch, toPath } from '../sidebar/sidebar.utils';\n\nexport function useActivePath(currentUrl = '/') {\n\treturn useCallback(\n\t\t(href?: string) => !!href && isPathMatch(currentUrl, toPath(href)),\n\t\t[currentUrl],\n\t);\n}\n","import { useEffect } from 'react';\n\nexport interface UseCommandShortcutOptions {\n\tkey: string;\n\tenabled?: boolean;\n\tonTrigger?: () => void;\n\tpreventDefault?: boolean;\n}\n\nexport function useCommandShortcut({\n\tkey,\n\tenabled = true,\n\tonTrigger,\n\tpreventDefault = true,\n}: UseCommandShortcutOptions) {\n\tuseEffect(() => {\n\t\tif (!enabled || !onTrigger || typeof document === 'undefined') return;\n\n\t\tconst handler = (event: KeyboardEvent) => {\n\t\t\tif (!(event.metaKey || event.ctrlKey)) return;\n\t\t\tif (event.key.toLowerCase() !== key.toLowerCase()) return;\n\t\t\tif (preventDefault) event.preventDefault();\n\t\t\tonTrigger();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handler);\n\t\treturn () => document.removeEventListener('keydown', handler);\n\t}, [enabled, key, onTrigger, preventDefault]);\n}\n"],"mappings":"sNAQA,SAAgB,EAAsB,CACrC,aACA,iBAC4B,CAAC,EAAuB,CACpD,OAAA,EAAA,EAAA,aACO,EAAA,EAA0B,CAAE,aAAY,eAAc,CAAC,EAC7D,CAAC,EAAY,CAAa,CAC3B,CACD,CCNA,SAAgB,EAAO,EAAsB,CAC5C,GAAI,EAAK,WAAW,IAAI,EACvB,OAAO,EAAK,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,IAAM,IAGtD,GAAI,CACH,OAAO,IAAI,IAAI,EAAM,sBAAsB,EAAE,QAC9C,MAAQ,CACP,OAAO,CACR,CACD,CAEA,SAAgB,EAAY,EAAoB,EAAuB,CACtE,IAAM,EAAc,EAAO,CAAU,EACrC,OAAO,IAAgB,GAAQ,EAAY,WAAW,EAAO,GAAG,GAAK,EAAY,WAAW,EAAO,GAAG,CACvG,CAEA,SAAgB,EAAY,EAAgE,CAC3F,OAAO,EAAK,OAAS,EAAK,OAAS,EACpC,CAEA,SAAgB,EAAU,EAAsB,EAAmC,CAClF,IAAM,EAAQ,EAAY,CAAI,EAC9B,OAAO,EAAK,QAAU,EAAK,OAAS,OAAO,GAAU,UAAY,OAAO,GAAU,SAAW,EAAQ,OAAO,GAAiB,IAC9H,CAEA,SAAgB,EAAS,CACxB,QACA,OAAO,WAIL,CACF,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAQ,YACR,UAAW,EAAA,GACV,4DACA,IAAS,QAAU,qBAAuB,oBAC3C,WAEC,CACK,CAAA,CAET,CAEA,SAAgB,EACf,EACA,EACA,EAC8B,CAI9B,OAHI,GAAU,GAAc,EAAW,IAAW,KAC1C,EAAW,GAEZ,CACR,CASA,SAAgB,EAAY,CAC3B,OACA,UAAU,CAAC,EACX,OAAO,GACP,YAAY,SACZ,GAAG,GACiB,CACpB,GAAI,CAAC,EAAM,OAAO,KAElB,GAAI,OAAO,GAAS,SAAU,CAC7B,IAAM,EAAgB,EAAQ,GAC9B,OAAO,GAAgB,EAAA,EAAA,KAAC,EAAD,CAA0B,WAAY,CAAA,EAAI,IAClE,CAiBA,OAfI,EAAM,eAAe,CAAI,EACrB,EAAM,aAAa,EAA2D,CACpF,UAAW,EAAA,GAAG,EAAY,EAAK,MAAiC,SAAS,EACzE,GAAG,CACJ,CAAC,EAID,OAAO,GAAS,YACZ,OAAO,GAAS,UAAY,GAAiB,aAAc,GAGxD,EAAA,EAAA,KAAC,EAAD,CAA0B,YAAW,MAAO,EAAM,OAAQ,EAAM,GAAI,CAAQ,CAAA,EAG7E,IACR,CAEA,SAAgB,EACf,EACA,EACA,EACA,EACA,EACC,CACD,OAAO,EAAW,CACjB,KAAM,EAAK,KACX,WACA,YACA,SACA,SAAU,EAAK,UAAY,CAAC,EAAK,KACjC,SAAU,EAAK,QAChB,CAAC,CACF,CCrHA,SAAgB,EAAc,EAAa,IAAK,CAC/C,OAAA,EAAA,EAAA,aACE,GAAkB,CAAC,CAAC,GAAQ,EAAY,EAAY,EAAO,CAAI,CAAC,EACjE,CAAC,CAAU,CACZ,CACD,CCAA,SAAgB,EAAmB,CAClC,MACA,UAAU,GACV,YACA,iBAAiB,IACY,EAC7B,EAAA,EAAA,eAAgB,CACf,GAAI,CAAC,GAAW,CAAC,GAAa,OAAO,SAAa,IAAa,OAE/D,IAAM,EAAW,GAAyB,EACnC,EAAM,SAAW,EAAM,UACzB,EAAM,IAAI,YAAY,IAAM,EAAI,YAAY,IAC5C,GAAgB,EAAM,eAAe,EACzC,EAAU,EACX,EAGA,OADA,SAAS,iBAAiB,UAAW,CAAO,MAC/B,SAAS,oBAAoB,UAAW,CAAO,CAC7D,EAAG,CAAC,EAAS,EAAK,EAAW,CAAc,CAAC,CAC7C"}
@@ -0,0 +1,182 @@
1
+ import { useStrings as e } from "../lib/strings.js";
2
+ import { o as t } from "./ui-provider-Dz2qXgZQ.js";
3
+ import { cn as n } from "../lib/utils.js";
4
+ import { s as r } from "./typography-5bLhAYaK.js";
5
+ import { a as i, f as a, i as o, l as s, n as c, o as l, r as u, t as d, u as f } from "./form-sizing-DWjJsQSR.js";
6
+ import * as p from "react";
7
+ import { memo as m, useCallback as h, useId as g, useMemo as _, useRef as v, useState as y } from "react";
8
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
+ import { CircleXIcon as S, Loader2Icon as C } from "lucide-react";
10
+ //#region src/components/base/forms/fields/hooks/use-form-field-state.ts
11
+ function w({ controlledValue: e, defaultValue: t, maxLength: n, showCharacterCount: r, providedId: i, idPrefix: a = "field", hasOnChange: o }) {
12
+ let s = g(), c = i || `${a}${s}`, [l, u] = y(t || ""), d = e !== void 0, f = (d ? e : l) ?? "", p = !!(o && !d && !t), m = f.length, v = n !== void 0, b = r === !1 ? !1 : !!(r || v), x = f !== "", S = h((e) => v && e.length > n, [v, n]), C = h((e) => S(e) ? !1 : (d || u(e), !0), [d, S]), w = h(() => {
13
+ d || u("");
14
+ }, [d]);
15
+ return _(() => ({
16
+ id: c,
17
+ value: f,
18
+ isControlled: d,
19
+ isReactHookForm: p,
20
+ characterCount: m,
21
+ hasCharacterLimit: v,
22
+ showCount: b,
23
+ hasValue: x,
24
+ updateValue: C,
25
+ clearValue: w,
26
+ wouldExceedLimit: S
27
+ }), [
28
+ c,
29
+ f,
30
+ d,
31
+ p,
32
+ m,
33
+ v,
34
+ b,
35
+ x,
36
+ C,
37
+ w,
38
+ S
39
+ ]);
40
+ }
41
+ //#endregion
42
+ //#region src/components/base/forms/fields/input.tsx
43
+ var ee = { clear: "Clear input" }, T = (e, t, n) => {
44
+ let r = e || "";
45
+ return t && r && (r = t + r), n && r && (r += n), r;
46
+ };
47
+ function E({ className: p, type: m = "text", startIcon: g, endIcon: y, startAddon: E, endAddon: D, maxLength: O, showCharacterCount: te, clearable: ne, onClear: k, isLoading: A, returnValueWithAddons: j, invalid: re, size: M, onChange: N, value: ie, defaultValue: ae, id: oe, strings: se, ...P }, F) {
48
+ let I = v(null), ce = e(ee, se), { defaultControlSize: le } = t(), L = a(M, le), R = h((e) => {
49
+ typeof F == "function" ? F(e) : F && (F.current = e), I.current = e;
50
+ }, [F]), { id: z, value: B, isReactHookForm: V, characterCount: H, hasCharacterLimit: U, showCount: W, hasValue: G, updateValue: K, clearValue: q, wouldExceedLimit: J } = w({
51
+ controlledValue: ie,
52
+ defaultValue: ae,
53
+ maxLength: O,
54
+ showCharacterCount: te,
55
+ providedId: oe,
56
+ idPrefix: "input",
57
+ hasOnChange: N !== void 0
58
+ }), Y = !!ne, X = !!A, ue = !!y, de = !!D, Z = m === "file", Q = !!re, fe = _(() => {
59
+ let e = L === "small" ? "ps-control-sm" : "ps-control", t = L === "small" ? "pe-control-sm" : "pe-control";
60
+ return g && (e = l[L]), E && (e = d[L]), y && (t = o[L]), D && (t = u[L]), (Y && G || X) && (t = o[L]), W && (t = c[L]), `${e} ${t}`;
61
+ }, [
62
+ g,
63
+ E,
64
+ y,
65
+ D,
66
+ Y,
67
+ G,
68
+ X,
69
+ W,
70
+ L
71
+ ]), pe = h((e) => {
72
+ let t = e.target.value;
73
+ if (!J(t) && (K(t), N)) if (j) {
74
+ let n = T(t, E, D);
75
+ N({
76
+ ...e,
77
+ target: {
78
+ ...e.target,
79
+ value: n
80
+ },
81
+ currentTarget: {
82
+ ...e.currentTarget,
83
+ value: n
84
+ }
85
+ });
86
+ } else N(e);
87
+ }, [
88
+ N,
89
+ j,
90
+ E,
91
+ D,
92
+ K,
93
+ J
94
+ ]), me = h(() => {
95
+ let e = j ? T("", E, D) : "", t = {
96
+ target: { value: e },
97
+ currentTarget: { value: e }
98
+ };
99
+ q(), N?.(t), k?.(), I.current?.focus();
100
+ }, [
101
+ j,
102
+ E,
103
+ D,
104
+ q,
105
+ N,
106
+ k
107
+ ]), he = Y && G && !W && !X, ge = X && !W, $ = ue && !Y && !W && !X, _e = de && !Y && !W && !X;
108
+ return /* @__PURE__ */ x("div", {
109
+ className: n("input--component", "relative"),
110
+ children: [
111
+ /* @__PURE__ */ b("input", {
112
+ ref: R,
113
+ id: z,
114
+ type: m,
115
+ ...!V && { value: B },
116
+ onChange: pe,
117
+ maxLength: O,
118
+ "aria-invalid": Q || void 0,
119
+ disabled: P.disabled || A,
120
+ className: n("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground", "border-input flex w-full min-w-0 rounded-radius border", "transition-[color,box-shadow] outline-none", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", f[L], s[L], "file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium", "file:text-sm", Z ? "cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground" : "bg-transparent", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive", "aria-invalid:placeholder:text-destructive/40", Z ? "read-only:bg-background" : "read-only:bg-muted", fe, p),
121
+ ...P
122
+ }),
123
+ !!g && /* @__PURE__ */ b("div", {
124
+ className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground/80"),
125
+ children: /* @__PURE__ */ b(g, {
126
+ className: i[L],
127
+ "aria-hidden": "true"
128
+ })
129
+ }),
130
+ !!E && /* @__PURE__ */ b("span", {
131
+ className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center", L === "small" ? "ps-control-sm text-sm" : "ps-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
132
+ children: E
133
+ }),
134
+ !!$ && !!y && /* @__PURE__ */ b("div", {
135
+ className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground/80"),
136
+ children: /* @__PURE__ */ b(y, {
137
+ className: i[L],
138
+ "aria-hidden": "true"
139
+ })
140
+ }),
141
+ !!_e && /* @__PURE__ */ b("span", {
142
+ className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center", L === "small" ? "pe-control-sm text-sm" : "pe-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
143
+ children: D
144
+ }),
145
+ !!W && /* @__PURE__ */ b("div", {
146
+ className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums", L === "small" ? "pe-control-sm text-sm" : "pe-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
147
+ "aria-live": "polite",
148
+ role: "status",
149
+ children: /* @__PURE__ */ x(r, {
150
+ tag: "span",
151
+ size: L === "small" ? "xxs" : "xs",
152
+ type: Q ? "error" : "secondary",
153
+ children: [H, U ? `/${O}` : ""]
154
+ })
155
+ }),
156
+ !!ge && /* @__PURE__ */ b("div", {
157
+ className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control", Q ? "text-destructive" : "text-muted-foreground/80"),
158
+ children: /* @__PURE__ */ b(C, {
159
+ className: n(i[L], "animate-spin"),
160
+ "aria-hidden": "true"
161
+ })
162
+ }),
163
+ !!he && /* @__PURE__ */ b("button", {
164
+ type: "button",
165
+ className: "text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
166
+ "aria-label": ce.clear,
167
+ onClick: me,
168
+ disabled: A,
169
+ children: /* @__PURE__ */ b(S, {
170
+ className: i[L],
171
+ "aria-hidden": "true"
172
+ })
173
+ })
174
+ ]
175
+ });
176
+ }
177
+ var D = m(p.forwardRef(E));
178
+ D.displayName = "Input";
179
+ //#endregion
180
+ export { w as n, D as t };
181
+
182
+ //# sourceMappingURL=input-CzJzVyQ0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-CzJzVyQ0.js","names":[],"sources":["../../src/components/base/forms/fields/hooks/use-form-field-state.ts","../../src/components/base/forms/fields/input.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useId } from 'react';\n\nexport interface UseFormFieldStateOptions {\n /** Controlled value from parent */\n controlledValue?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Maximum character length */\n maxLength?: number;\n /** Whether to show character count */\n showCharacterCount?: boolean;\n /** Provided ID or auto-generate */\n providedId?: string;\n /** Prefix for auto-generated ID */\n idPrefix?: string;\n /** Whether onChange is provided (for react-hook-form detection) */\n hasOnChange?: boolean;\n}\n\nexport interface UseFormFieldStateReturn {\n /** Generated or provided ID */\n id: string;\n /** Current value (controlled or internal) */\n value: string;\n /** Whether component is in controlled mode */\n isControlled: boolean;\n /** Whether using react-hook-form (has onChange but no controlled value) */\n isReactHookForm: boolean;\n /** Current character count */\n characterCount: number;\n /** Whether a character limit is set */\n hasCharacterLimit: boolean;\n /** Whether to show character count UI */\n showCount: boolean;\n /** Whether the field has a value */\n hasValue: boolean;\n /** Update value - returns false if blocked by character limit */\n updateValue: (newValue: string) => boolean;\n /** Clear the value */\n clearValue: () => void;\n /** Check if a new value would exceed the character limit */\n wouldExceedLimit: (newValue: string) => boolean;\n}\n\n/**\n * Shared hook for managing form field state including:\n * - Controlled vs uncontrolled value handling\n * - Character counting and limits\n * - React Hook Form compatibility detection\n * - ID generation\n */\nexport function useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix = 'field',\n hasOnChange,\n}: UseFormFieldStateOptions): UseFormFieldStateReturn {\n // Generate stable ID using React 18's useId (SSR-safe)\n const reactId = useId();\n const id = providedId || `${idPrefix}${reactId}`;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n // Determine control mode\n const isControlled = controlledValue !== undefined;\n\n // Normalize value (handle null from backend)\n const rawValue = isControlled ? controlledValue : internalValue;\n const value = rawValue ?? '';\n\n // React Hook Form detection: has onChange but no controlled value or defaultValue\n const isReactHookForm = Boolean(hasOnChange && !isControlled && !defaultValue);\n\n // Character counting\n const characterCount = value.length;\n const hasCharacterLimit = maxLength !== undefined;\n const showCount = showCharacterCount === false ? false : Boolean(showCharacterCount || hasCharacterLimit);\n const hasValue = value !== '';\n\n // Check if value would exceed limit\n const wouldExceedLimit = useCallback(\n (newValue: string) => {\n return hasCharacterLimit && newValue.length > maxLength;\n },\n [hasCharacterLimit, maxLength]\n );\n\n // Update value (respects character limit, updates internal state if uncontrolled)\n const updateValue = useCallback(\n (newValue: string): boolean => {\n if (wouldExceedLimit(newValue)) {\n return false;\n }\n if (!isControlled) {\n setInternalValue(newValue);\n }\n return true;\n },\n [isControlled, wouldExceedLimit]\n );\n\n // Clear value\n const clearValue = useCallback(() => {\n if (!isControlled) {\n setInternalValue('');\n }\n }, [isControlled]);\n\n return useMemo(\n () => ({\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n }),\n [\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n ]\n );\n}\n","import { CircleXIcon, Loader2Icon, type LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useMemo, memo } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n formControlAddonOffsetClasses,\n formControlCountOffsetClasses,\n formControlEndAddonOffsetClasses,\n formControlEndIconOffsetClasses,\n formControlIconClasses,\n formControlIconOffsetClasses,\n formControlPaddingClasses,\n formControlSizeClasses,\n resolveFormControlSize,\n} from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface InputStrings {\n clear: string;\n}\n\nexport const defaultInputStrings: InputStrings = {\n clear: 'Clear input',\n};\n\n/**\n * Helper function to get value with prefix/suffix\n */\nconst getValueWithAddons = (value: string, startAddon?: string, endAddon?: string): string => {\n let result = value || '';\n if (startAddon && result) result = startAddon + result;\n if (endAddon && result) result = result + endAddon;\n return result;\n};\n\nexport interface InputProps extends Omit<React.ComponentProps<'input'>, 'onChange' | 'size'> {\n // Icon props\n startIcon?: LucideIcon;\n endIcon?: LucideIcon;\n\n // Add-on props (visual prefix/suffix inside input)\n startAddon?: string;\n endAddon?: string;\n\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Return value with addons in onChange\n returnValueWithAddons?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value?: string;\n defaultValue?: string;\n\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<InputStrings>;\n}\n\nfunction InputImpl(\n\t{\n\t\tclassName,\n\t\ttype = 'text',\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tstartAddon,\n\t\tendAddon,\n\t\tmaxLength,\n\t\tshowCharacterCount,\n\t\tclearable,\n\t\tonClear,\n\t\tisLoading,\n\t\treturnValueWithAddons,\n\t\tinvalid,\n\t\tsize: sizeProp,\n\t\tonChange,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tid: providedId,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: InputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const strings = useStrings(defaultInputStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize ref callback to avoid recreation on every render\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n inputRef.current = node;\n },\n [forwardedRef]\n );\n\n // Use shared form field state hook\n const {\n id,\n value: inputValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'input',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states (simple booleans, no need for useMemo)\n const isClearable = !!clearable;\n const isShowingLoading = !!isLoading;\n const hasEndIcon = !!EndIcon;\n const hasEndAddon = !!endAddon;\n const isFileInput = type === 'file';\n const hasError = !!invalid;\n\n // Memoize padding classes based on add-ons and icons\n // Addon padding sized so the value sits adjacent to the addon — `ps-3`\n // baseline + a measured space for addon text. Wider addons can override\n // via `className` (`ps-16` etc.) at the call site.\n const inputPaddingClasses = useMemo(() => {\n let paddingStart = size === 'small' ? 'ps-control-sm' : 'ps-control';\n let paddingEnd = size === 'small' ? 'pe-control-sm' : 'pe-control';\n\n if (StartIcon) paddingStart = formControlIconOffsetClasses[size];\n if (startAddon) paddingStart = formControlAddonOffsetClasses[size];\n\n if (EndIcon) paddingEnd = formControlEndIconOffsetClasses[size];\n if (endAddon) paddingEnd = formControlEndAddonOffsetClasses[size];\n if ((isClearable && hasValue) || isShowingLoading) paddingEnd = formControlEndIconOffsetClasses[size];\n if (showCount) paddingEnd = formControlCountOffsetClasses[size];\n\n return `${paddingStart} ${paddingEnd}`;\n }, [StartIcon, startAddon, EndIcon, endAddon, isClearable, hasValue, isShowingLoading, showCount, size]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange with modified event if addons are requested\n if (onChange) {\n if (returnValueWithAddons) {\n const valueWithAddons = getValueWithAddons(newValue, startAddon, endAddon);\n const modifiedEvent = {\n ...e,\n target: { ...e.target, value: valueWithAddons },\n currentTarget: { ...e.currentTarget, value: valueWithAddons },\n };\n onChange(modifiedEvent as React.ChangeEvent<HTMLInputElement>);\n } else {\n onChange(e);\n }\n }\n },\n [onChange, returnValueWithAddons, startAddon, endAddon, updateValue, wouldExceedLimit]\n );\n\n const handleClear = useCallback(() => {\n const clearValueWithAddons = returnValueWithAddons\n ? getValueWithAddons('', startAddon, endAddon)\n : '';\n const syntheticEvent = {\n target: { value: clearValueWithAddons },\n currentTarget: { value: clearValueWithAddons },\n } as React.ChangeEvent<HTMLInputElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the input after clearing\n inputRef.current?.focus();\n }, [returnValueWithAddons, startAddon, endAddon, clearValue, onChange, onClear]);\n\n // Determine what to show in the end position (priority order)\n const showClearButton = isClearable && hasValue && !showCount && !isShowingLoading;\n const showLoadingSpinner = isShowingLoading && !showCount;\n const showEndIcon = hasEndIcon && !isClearable && !showCount && !isShowingLoading;\n const showEndAddon = hasEndAddon && !isClearable && !showCount && !isShowingLoading;\n\n return (\n <div className={cn('input--component', 'relative')}>\n <input\n ref={setRefs}\n id={id}\n type={type}\n {...(!isReactHookForm && { value: inputValue })}\n onChange={handleInputChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n className={cn(\n // Base styles\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full min-w-0 rounded-radius border',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formControlSizeClasses[size],\n formControlPaddingClasses[size],\n // File input styles\n 'file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium',\n 'file:text-sm',\n isFileInput\n ? 'cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground'\n : 'bg-transparent',\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles — destructive border, ring, value text\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive',\n 'aria-invalid:placeholder:text-destructive/40',\n // Read-only styles\n isFileInput\n ? 'read-only:bg-background'\n : 'read-only:bg-muted',\n // Dynamic padding\n inputPaddingClasses,\n className\n )}\n {...props}\n />\n\n {/* Start Icon */}\n {!!StartIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <StartIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Start Add-on */}\n {!!startAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n size === 'small' ? 'ps-control-sm text-sm' : 'ps-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {startAddon}\n </span>\n )}\n\n {/* End Icon */}\n {!!showEndIcon && !!EndIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <EndIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* End Add-on */}\n {!!showEndAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {endAddon}\n </span>\n )}\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size={size === 'small' ? 'xxs' : 'xs'} type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!showLoadingSpinner && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className={cn(formControlIconClasses[size], 'animate-spin')} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n}\n\n// forwardRef + memo (needed for callers that require refs, e.g. segmented inputs)\nconst Input = memo(React.forwardRef<HTMLInputElement, InputProps>(InputImpl));\nInput.displayName = 'Input';\n\nexport { Input };\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-CrsJ_dGn.cjs"),r=require("../lib/utils.cjs"),i=require("./typography-CWEobAJV.cjs"),a=require("./form-sizing-DJus3nK3.cjs");let o=require("react");o=e.t(o,1);let s=require("react/jsx-runtime"),c=require("lucide-react");function l({controlledValue:e,defaultValue:t,maxLength:n,showCharacterCount:r,providedId:i,idPrefix:a=`field`,hasOnChange:s}){let c=(0,o.useId)(),l=i||`${a}${c}`,[u,d]=(0,o.useState)(t||``),f=e!==void 0,p=(f?e:u)??``,m=!!(s&&!f&&!t),h=p.length,g=n!==void 0,_=r===!1?!1:!!(r||g),v=p!==``,y=(0,o.useCallback)(e=>g&&e.length>n,[g,n]),b=(0,o.useCallback)(e=>y(e)?!1:(f||d(e),!0),[f,y]),x=(0,o.useCallback)(()=>{f||d(``)},[f]);return(0,o.useMemo)(()=>({id:l,value:p,isControlled:f,isReactHookForm:m,characterCount:h,hasCharacterLimit:g,showCount:_,hasValue:v,updateValue:b,clearValue:x,wouldExceedLimit:y}),[l,p,f,m,h,g,_,v,b,x,y])}var u={clear:`Clear input`},d=(e,t,n)=>{let r=e||``;return t&&r&&(r=t+r),n&&r&&(r+=n),r};function f({className:e,type:f=`text`,startIcon:p,endIcon:m,startAddon:h,endAddon:g,maxLength:_,showCharacterCount:v,clearable:y,onClear:b,isLoading:x,returnValueWithAddons:S,invalid:C,size:w,onChange:T,value:E,defaultValue:D,id:O,strings:k,...A},j){let M=(0,o.useRef)(null),N=t.useStrings(u,k),{defaultControlSize:P}=n.o(),F=a.f(w,P),I=(0,o.useCallback)(e=>{typeof j==`function`?j(e):j&&(j.current=e),M.current=e},[j]),{id:L,value:R,isReactHookForm:z,characterCount:B,hasCharacterLimit:V,showCount:H,hasValue:U,updateValue:W,clearValue:G,wouldExceedLimit:K}=l({controlledValue:E,defaultValue:D,maxLength:_,showCharacterCount:v,providedId:O,idPrefix:`input`,hasOnChange:T!==void 0}),q=!!y,J=!!x,Y=!!m,X=!!g,Z=f===`file`,Q=!!C,$=(0,o.useMemo)(()=>{let e=F===`small`?`ps-control-sm`:`ps-control`,t=F===`small`?`pe-control-sm`:`pe-control`;return p&&(e=a.o[F]),h&&(e=a.t[F]),m&&(t=a.i[F]),g&&(t=a.r[F]),(q&&U||J)&&(t=a.i[F]),H&&(t=a.n[F]),`${e} ${t}`},[p,h,m,g,q,U,J,H,F]),ee=(0,o.useCallback)(e=>{let t=e.target.value;if(!K(t)&&(W(t),T))if(S){let n=d(t,h,g);T({...e,target:{...e.target,value:n},currentTarget:{...e.currentTarget,value:n}})}else T(e)},[T,S,h,g,W,K]),te=(0,o.useCallback)(()=>{let e=S?d(``,h,g):``,t={target:{value:e},currentTarget:{value:e}};G(),T?.(t),b?.(),M.current?.focus()},[S,h,g,G,T,b]),ne=q&&U&&!H&&!J,re=J&&!H,ie=Y&&!q&&!H&&!J,ae=X&&!q&&!H&&!J;return(0,s.jsxs)(`div`,{className:r.cn(`input--component`,`relative`),children:[(0,s.jsx)(`input`,{ref:I,id:L,type:f,...!z&&{value:R},onChange:ee,maxLength:_,"aria-invalid":Q||void 0,disabled:A.disabled||x,className:r.cn(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground`,`border-input flex w-full min-w-0 rounded-radius border`,`transition-[color,box-shadow] outline-none`,`disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,a.u[F],a.l[F],`file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium`,`file:text-sm`,Z?`cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground`:`bg-transparent`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive`,`aria-invalid:placeholder:text-destructive/40`,Z?`read-only:bg-background`:`read-only:bg-muted`,$,e),...A}),!!p&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(p,{className:a.a[F],"aria-hidden":`true`})}),!!h&&(0,s.jsx)(`span`,{className:r.cn(`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center`,F===`small`?`ps-control-sm text-sm`:`ps-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),children:h}),!!ie&&!!m&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(m,{className:a.a[F],"aria-hidden":`true`})}),!!ae&&(0,s.jsx)(`span`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center`,F===`small`?`pe-control-sm text-sm`:`pe-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),children:g}),!!H&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums`,F===`small`?`pe-control-sm text-sm`:`pe-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),"aria-live":`polite`,role:`status`,children:(0,s.jsxs)(i.s,{tag:`span`,size:F===`small`?`xxs`:`xs`,type:Q?`error`:`secondary`,children:[B,V?`/${_}`:``]})}),!!re&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(c.Loader2Icon,{className:r.cn(a.a[F],`animate-spin`),"aria-hidden":`true`})}),!!ne&&(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":N.clear,onClick:te,disabled:x,children:(0,s.jsx)(c.CircleXIcon,{className:a.a[F],"aria-hidden":`true`})})]})}var p=(0,o.memo)(o.forwardRef(f));p.displayName=`Input`,Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
2
+ //# sourceMappingURL=input-Dvvmn96E.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-Dvvmn96E.cjs","names":[],"sources":["../../src/components/base/forms/fields/hooks/use-form-field-state.ts","../../src/components/base/forms/fields/input.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useId } from 'react';\n\nexport interface UseFormFieldStateOptions {\n /** Controlled value from parent */\n controlledValue?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Maximum character length */\n maxLength?: number;\n /** Whether to show character count */\n showCharacterCount?: boolean;\n /** Provided ID or auto-generate */\n providedId?: string;\n /** Prefix for auto-generated ID */\n idPrefix?: string;\n /** Whether onChange is provided (for react-hook-form detection) */\n hasOnChange?: boolean;\n}\n\nexport interface UseFormFieldStateReturn {\n /** Generated or provided ID */\n id: string;\n /** Current value (controlled or internal) */\n value: string;\n /** Whether component is in controlled mode */\n isControlled: boolean;\n /** Whether using react-hook-form (has onChange but no controlled value) */\n isReactHookForm: boolean;\n /** Current character count */\n characterCount: number;\n /** Whether a character limit is set */\n hasCharacterLimit: boolean;\n /** Whether to show character count UI */\n showCount: boolean;\n /** Whether the field has a value */\n hasValue: boolean;\n /** Update value - returns false if blocked by character limit */\n updateValue: (newValue: string) => boolean;\n /** Clear the value */\n clearValue: () => void;\n /** Check if a new value would exceed the character limit */\n wouldExceedLimit: (newValue: string) => boolean;\n}\n\n/**\n * Shared hook for managing form field state including:\n * - Controlled vs uncontrolled value handling\n * - Character counting and limits\n * - React Hook Form compatibility detection\n * - ID generation\n */\nexport function useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix = 'field',\n hasOnChange,\n}: UseFormFieldStateOptions): UseFormFieldStateReturn {\n // Generate stable ID using React 18's useId (SSR-safe)\n const reactId = useId();\n const id = providedId || `${idPrefix}${reactId}`;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n // Determine control mode\n const isControlled = controlledValue !== undefined;\n\n // Normalize value (handle null from backend)\n const rawValue = isControlled ? controlledValue : internalValue;\n const value = rawValue ?? '';\n\n // React Hook Form detection: has onChange but no controlled value or defaultValue\n const isReactHookForm = Boolean(hasOnChange && !isControlled && !defaultValue);\n\n // Character counting\n const characterCount = value.length;\n const hasCharacterLimit = maxLength !== undefined;\n const showCount = showCharacterCount === false ? false : Boolean(showCharacterCount || hasCharacterLimit);\n const hasValue = value !== '';\n\n // Check if value would exceed limit\n const wouldExceedLimit = useCallback(\n (newValue: string) => {\n return hasCharacterLimit && newValue.length > maxLength;\n },\n [hasCharacterLimit, maxLength]\n );\n\n // Update value (respects character limit, updates internal state if uncontrolled)\n const updateValue = useCallback(\n (newValue: string): boolean => {\n if (wouldExceedLimit(newValue)) {\n return false;\n }\n if (!isControlled) {\n setInternalValue(newValue);\n }\n return true;\n },\n [isControlled, wouldExceedLimit]\n );\n\n // Clear value\n const clearValue = useCallback(() => {\n if (!isControlled) {\n setInternalValue('');\n }\n }, [isControlled]);\n\n return useMemo(\n () => ({\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n }),\n [\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n ]\n );\n}\n","import { CircleXIcon, Loader2Icon, type LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useMemo, memo } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n formControlAddonOffsetClasses,\n formControlCountOffsetClasses,\n formControlEndAddonOffsetClasses,\n formControlEndIconOffsetClasses,\n formControlIconClasses,\n formControlIconOffsetClasses,\n formControlPaddingClasses,\n formControlSizeClasses,\n resolveFormControlSize,\n} from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface InputStrings {\n clear: string;\n}\n\nexport const defaultInputStrings: InputStrings = {\n clear: 'Clear input',\n};\n\n/**\n * Helper function to get value with prefix/suffix\n */\nconst getValueWithAddons = (value: string, startAddon?: string, endAddon?: string): string => {\n let result = value || '';\n if (startAddon && result) result = startAddon + result;\n if (endAddon && result) result = result + endAddon;\n return result;\n};\n\nexport interface InputProps extends Omit<React.ComponentProps<'input'>, 'onChange' | 'size'> {\n // Icon props\n startIcon?: LucideIcon;\n endIcon?: LucideIcon;\n\n // Add-on props (visual prefix/suffix inside input)\n startAddon?: string;\n endAddon?: string;\n\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Return value with addons in onChange\n returnValueWithAddons?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value?: string;\n defaultValue?: string;\n\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<InputStrings>;\n}\n\nfunction InputImpl(\n\t{\n\t\tclassName,\n\t\ttype = 'text',\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tstartAddon,\n\t\tendAddon,\n\t\tmaxLength,\n\t\tshowCharacterCount,\n\t\tclearable,\n\t\tonClear,\n\t\tisLoading,\n\t\treturnValueWithAddons,\n\t\tinvalid,\n\t\tsize: sizeProp,\n\t\tonChange,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tid: providedId,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: InputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const strings = useStrings(defaultInputStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize ref callback to avoid recreation on every render\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n inputRef.current = node;\n },\n [forwardedRef]\n );\n\n // Use shared form field state hook\n const {\n id,\n value: inputValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'input',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states (simple booleans, no need for useMemo)\n const isClearable = !!clearable;\n const isShowingLoading = !!isLoading;\n const hasEndIcon = !!EndIcon;\n const hasEndAddon = !!endAddon;\n const isFileInput = type === 'file';\n const hasError = !!invalid;\n\n // Memoize padding classes based on add-ons and icons\n // Addon padding sized so the value sits adjacent to the addon — `ps-3`\n // baseline + a measured space for addon text. Wider addons can override\n // via `className` (`ps-16` etc.) at the call site.\n const inputPaddingClasses = useMemo(() => {\n let paddingStart = size === 'small' ? 'ps-control-sm' : 'ps-control';\n let paddingEnd = size === 'small' ? 'pe-control-sm' : 'pe-control';\n\n if (StartIcon) paddingStart = formControlIconOffsetClasses[size];\n if (startAddon) paddingStart = formControlAddonOffsetClasses[size];\n\n if (EndIcon) paddingEnd = formControlEndIconOffsetClasses[size];\n if (endAddon) paddingEnd = formControlEndAddonOffsetClasses[size];\n if ((isClearable && hasValue) || isShowingLoading) paddingEnd = formControlEndIconOffsetClasses[size];\n if (showCount) paddingEnd = formControlCountOffsetClasses[size];\n\n return `${paddingStart} ${paddingEnd}`;\n }, [StartIcon, startAddon, EndIcon, endAddon, isClearable, hasValue, isShowingLoading, showCount, size]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange with modified event if addons are requested\n if (onChange) {\n if (returnValueWithAddons) {\n const valueWithAddons = getValueWithAddons(newValue, startAddon, endAddon);\n const modifiedEvent = {\n ...e,\n target: { ...e.target, value: valueWithAddons },\n currentTarget: { ...e.currentTarget, value: valueWithAddons },\n };\n onChange(modifiedEvent as React.ChangeEvent<HTMLInputElement>);\n } else {\n onChange(e);\n }\n }\n },\n [onChange, returnValueWithAddons, startAddon, endAddon, updateValue, wouldExceedLimit]\n );\n\n const handleClear = useCallback(() => {\n const clearValueWithAddons = returnValueWithAddons\n ? getValueWithAddons('', startAddon, endAddon)\n : '';\n const syntheticEvent = {\n target: { value: clearValueWithAddons },\n currentTarget: { value: clearValueWithAddons },\n } as React.ChangeEvent<HTMLInputElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the input after clearing\n inputRef.current?.focus();\n }, [returnValueWithAddons, startAddon, endAddon, clearValue, onChange, onClear]);\n\n // Determine what to show in the end position (priority order)\n const showClearButton = isClearable && hasValue && !showCount && !isShowingLoading;\n const showLoadingSpinner = isShowingLoading && !showCount;\n const showEndIcon = hasEndIcon && !isClearable && !showCount && !isShowingLoading;\n const showEndAddon = hasEndAddon && !isClearable && !showCount && !isShowingLoading;\n\n return (\n <div className={cn('input--component', 'relative')}>\n <input\n ref={setRefs}\n id={id}\n type={type}\n {...(!isReactHookForm && { value: inputValue })}\n onChange={handleInputChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n className={cn(\n // Base styles\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full min-w-0 rounded-radius border',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formControlSizeClasses[size],\n formControlPaddingClasses[size],\n // File input styles\n 'file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium',\n 'file:text-sm',\n isFileInput\n ? 'cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground'\n : 'bg-transparent',\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles — destructive border, ring, value text\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive',\n 'aria-invalid:placeholder:text-destructive/40',\n // Read-only styles\n isFileInput\n ? 'read-only:bg-background'\n : 'read-only:bg-muted',\n // Dynamic padding\n inputPaddingClasses,\n className\n )}\n {...props}\n />\n\n {/* Start Icon */}\n {!!StartIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <StartIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Start Add-on */}\n {!!startAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n size === 'small' ? 'ps-control-sm text-sm' : 'ps-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {startAddon}\n </span>\n )}\n\n {/* End Icon */}\n {!!showEndIcon && !!EndIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <EndIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* End Add-on */}\n {!!showEndAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {endAddon}\n </span>\n )}\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size={size === 'small' ? 'xxs' : 'xs'} type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!showLoadingSpinner && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className={cn(formControlIconClasses[size], 'animate-spin')} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n}\n\n// forwardRef + memo (needed for callers that require refs, e.g. segmented inputs)\nconst Input = memo(React.forwardRef<HTMLInputElement, InputProps>(InputImpl));\nInput.displayName = 'Input';\n\nexport { Input };\n"],"mappings":"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"}