admin-ui-starter-kit 0.6.5 → 0.6.7

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 (1204) hide show
  1. package/.agents/skills/component-library-rules/references/components/base__cards.md +7 -8
  2. package/.agents/skills/component-library-rules/references/components/base__carousel.md +4 -4
  3. package/.agents/skills/component-library-rules/references/components/base__combobox.md +1 -1
  4. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +2 -1
  5. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  6. package/.agents/skills/component-library-rules/references/components/base__table.md +32 -11
  7. package/.agents/skills/component-library-rules/references/components/base__typography.md +1 -1
  8. package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +3 -3
  9. package/.agents/skills/component-library-rules/references/components/features__activities.md +1 -1
  10. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +6 -6
  11. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +3 -3
  12. package/.agents/skills/component-library-rules/references/components/features__overlays.md +2 -2
  13. package/.agents/skills/component-library-rules/references/components/features__products.md +1 -1
  14. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +1 -1
  15. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +3 -3
  16. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +2 -2
  17. package/dist/_shared/accordion-CxjH2WZG.js +135 -0
  18. package/dist/_shared/accordion-CxjH2WZG.js.map +1 -0
  19. package/dist/_shared/accordion-mTdJmy23.cjs +2 -0
  20. package/dist/_shared/accordion-mTdJmy23.cjs.map +1 -0
  21. package/dist/_shared/action-menu-BrHF4nss.cjs +2 -0
  22. package/dist/_shared/action-menu-BrHF4nss.cjs.map +1 -0
  23. package/dist/_shared/action-menu-Crn22LKo.js +96 -0
  24. package/dist/_shared/action-menu-Crn22LKo.js.map +1 -0
  25. package/dist/_shared/ai-artifact-CS2Pv-bu.js +1099 -0
  26. package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +1 -0
  27. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +3 -0
  28. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +1 -0
  29. package/dist/_shared/alert-BisCSsOE.cjs +2 -0
  30. package/dist/_shared/alert-BisCSsOE.cjs.map +1 -0
  31. package/dist/_shared/alert-D23Q7I0W.js +81 -0
  32. package/dist/_shared/alert-D23Q7I0W.js.map +1 -0
  33. package/dist/_shared/app-shell-BZQJfTkf.cjs +2 -0
  34. package/dist/_shared/app-shell-BZQJfTkf.cjs.map +1 -0
  35. package/dist/_shared/app-shell-Da6GHxTZ.js +69 -0
  36. package/dist/_shared/app-shell-Da6GHxTZ.js.map +1 -0
  37. package/dist/_shared/auth-BV9Daibu.cjs +2 -0
  38. package/dist/_shared/auth-BV9Daibu.cjs.map +1 -0
  39. package/dist/_shared/auth-DACpcTnL.js +643 -0
  40. package/dist/_shared/auth-DACpcTnL.js.map +1 -0
  41. package/dist/_shared/badge-B4oBB5BJ.js +110 -0
  42. package/dist/_shared/badge-B4oBB5BJ.js.map +1 -0
  43. package/dist/_shared/badge-DvUA9Pr2.cjs +2 -0
  44. package/dist/_shared/badge-DvUA9Pr2.cjs.map +1 -0
  45. package/dist/_shared/breadcrumbs-CuT0YIfo.js +105 -0
  46. package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +1 -0
  47. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +2 -0
  48. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +1 -0
  49. package/dist/_shared/button-BMiPFJIb.cjs +2 -0
  50. package/dist/_shared/button-BMiPFJIb.cjs.map +1 -0
  51. package/dist/_shared/button-vv59_uS_.js +189 -0
  52. package/dist/_shared/button-vv59_uS_.js.map +1 -0
  53. package/dist/_shared/buttons-CvqIMv3I.js +137 -0
  54. package/dist/_shared/buttons-CvqIMv3I.js.map +1 -0
  55. package/dist/_shared/buttons-tCkWktN3.cjs +2 -0
  56. package/dist/_shared/buttons-tCkWktN3.cjs.map +1 -0
  57. package/dist/_shared/card-radio-group-BL--IyPB.js +150 -0
  58. package/dist/_shared/card-radio-group-BL--IyPB.js.map +1 -0
  59. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +2 -0
  60. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +1 -0
  61. package/dist/_shared/cards-CMNXFo3Y.js +354 -0
  62. package/dist/_shared/cards-CMNXFo3Y.js.map +1 -0
  63. package/dist/_shared/cards-DQN9fcwo.cjs +2 -0
  64. package/dist/_shared/cards-DQN9fcwo.cjs.map +1 -0
  65. package/dist/_shared/combobox-D0avSXIB.cjs +2 -0
  66. package/dist/_shared/combobox-D0avSXIB.cjs.map +1 -0
  67. package/dist/_shared/combobox-Df0srISK.js +954 -0
  68. package/dist/_shared/combobox-Df0srISK.js.map +1 -0
  69. package/dist/_shared/command-B5BpMgBT.js +39 -0
  70. package/dist/_shared/command-B5BpMgBT.js.map +1 -0
  71. package/dist/_shared/command-en62SpQ7.cjs +2 -0
  72. package/dist/_shared/command-en62SpQ7.cjs.map +1 -0
  73. package/dist/_shared/comments-CfkortDW.js +952 -0
  74. package/dist/_shared/comments-CfkortDW.js.map +1 -0
  75. package/dist/_shared/comments-yVd7QMOu.cjs +2 -0
  76. package/dist/_shared/comments-yVd7QMOu.cjs.map +1 -0
  77. package/dist/_shared/copyable-Cn7tRGL5.js +38 -0
  78. package/dist/_shared/copyable-Cn7tRGL5.js.map +1 -0
  79. package/dist/_shared/copyable-CoKTxMSP.cjs +2 -0
  80. package/dist/_shared/copyable-CoKTxMSP.cjs.map +1 -0
  81. package/dist/_shared/data-display-BG7CD164.js +1873 -0
  82. package/dist/_shared/data-display-BG7CD164.js.map +1 -0
  83. package/dist/_shared/data-display-CXVoX3la.cjs +2 -0
  84. package/dist/_shared/data-display-CXVoX3la.cjs.map +1 -0
  85. package/dist/_shared/date-picker-Bf-nnyi-.js +1361 -0
  86. package/dist/_shared/date-picker-Bf-nnyi-.js.map +1 -0
  87. package/dist/_shared/date-picker-Cox4PAUt.cjs +2 -0
  88. package/dist/_shared/date-picker-Cox4PAUt.cjs.map +1 -0
  89. package/dist/_shared/date-pickers-DbN4q0dn.cjs +2 -0
  90. package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +1 -0
  91. package/dist/_shared/date-pickers-DvrOCP-s.js +329 -0
  92. package/dist/_shared/date-pickers-DvrOCP-s.js.map +1 -0
  93. package/dist/_shared/display-BQijMo37.js +986 -0
  94. package/dist/_shared/display-BQijMo37.js.map +1 -0
  95. package/dist/_shared/display-C0ut-Lew.cjs +2 -0
  96. package/dist/_shared/display-C0ut-Lew.cjs.map +1 -0
  97. package/dist/_shared/form-sizing-DJus3nK3.cjs +2 -0
  98. package/dist/_shared/form-sizing-DJus3nK3.cjs.map +1 -0
  99. package/dist/_shared/form-sizing-DWjJsQSR.js +42 -0
  100. package/dist/_shared/form-sizing-DWjJsQSR.js.map +1 -0
  101. package/dist/_shared/forms-BjG7QIb1.cjs +2 -0
  102. package/dist/_shared/forms-BjG7QIb1.cjs.map +1 -0
  103. package/dist/_shared/forms-DljDdyXR.js +3533 -0
  104. package/dist/_shared/forms-DljDdyXR.js.map +1 -0
  105. package/dist/_shared/header-BpFJRINR.cjs +2 -0
  106. package/dist/_shared/header-BpFJRINR.cjs.map +1 -0
  107. package/dist/_shared/header-CKqQF4_r.js +447 -0
  108. package/dist/_shared/header-CKqQF4_r.js.map +1 -0
  109. package/dist/_shared/hooks-DcCkbP1F.js +95 -0
  110. package/dist/_shared/hooks-DcCkbP1F.js.map +1 -0
  111. package/dist/_shared/hooks-RkLytuGj.cjs +2 -0
  112. package/dist/_shared/hooks-RkLytuGj.cjs.map +1 -0
  113. package/dist/_shared/input-Cin0qpjj.js +182 -0
  114. package/dist/_shared/input-Cin0qpjj.js.map +1 -0
  115. package/dist/_shared/input-uuWeiagN.cjs +2 -0
  116. package/dist/_shared/input-uuWeiagN.cjs.map +1 -0
  117. package/dist/_shared/item-CIlSaQg8.js +226 -0
  118. package/dist/_shared/item-CIlSaQg8.js.map +1 -0
  119. package/dist/_shared/item-CSk9Y2qB.cjs +2 -0
  120. package/dist/_shared/item-CSk9Y2qB.cjs.map +1 -0
  121. package/dist/_shared/layout-Cun0HPL4.cjs +2 -0
  122. package/dist/_shared/layout-Cun0HPL4.cjs.map +1 -0
  123. package/dist/_shared/layout-HrU5gwH3.js +261 -0
  124. package/dist/_shared/layout-HrU5gwH3.js.map +1 -0
  125. package/dist/_shared/mentions-BqN82Fon.cjs +2 -0
  126. package/dist/_shared/mentions-BqN82Fon.cjs.map +1 -0
  127. package/dist/_shared/mentions-DV0FT1Th.js +506 -0
  128. package/dist/_shared/mentions-DV0FT1Th.js.map +1 -0
  129. package/dist/_shared/money-display-D5FCRhzB.cjs +2 -0
  130. package/dist/_shared/money-display-D5FCRhzB.cjs.map +1 -0
  131. package/dist/_shared/money-display-FcCAQDCz.js +198 -0
  132. package/dist/_shared/money-display-FcCAQDCz.js.map +1 -0
  133. package/dist/_shared/navigation-CI_Dd8jM.js +436 -0
  134. package/dist/_shared/navigation-CI_Dd8jM.js.map +1 -0
  135. package/dist/_shared/navigation-DUGhCPzJ.cjs +2 -0
  136. package/dist/_shared/navigation-DUGhCPzJ.cjs.map +1 -0
  137. package/dist/_shared/overlays-BRLemLSn.cjs +2 -0
  138. package/dist/_shared/overlays-BRLemLSn.cjs.map +1 -0
  139. package/dist/_shared/overlays-Bef7VNYY.js +735 -0
  140. package/dist/_shared/overlays-Bef7VNYY.js.map +1 -0
  141. package/dist/_shared/popover-menu-CAjhhTfX.js +93 -0
  142. package/dist/_shared/popover-menu-CAjhhTfX.js.map +1 -0
  143. package/dist/_shared/popover-menu-DlkRgOkR.cjs +2 -0
  144. package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +1 -0
  145. package/dist/_shared/rich-text-editor-Bpt3r3J3.js +620 -0
  146. package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +1 -0
  147. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +2 -0
  148. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +1 -0
  149. package/dist/_shared/settings-CNT4-6u8.cjs +2 -0
  150. package/dist/_shared/settings-CNT4-6u8.cjs.map +1 -0
  151. package/dist/_shared/settings-CRP6409J.js +143 -0
  152. package/dist/_shared/settings-CRP6409J.js.map +1 -0
  153. package/dist/_shared/sidebar-B0LcBrfI.cjs +2 -0
  154. package/dist/_shared/sidebar-B0LcBrfI.cjs.map +1 -0
  155. package/dist/_shared/sidebar-Bc6JsOTD.js +548 -0
  156. package/dist/_shared/sidebar-Bc6JsOTD.js.map +1 -0
  157. package/dist/_shared/spinner-CVG62sGs.js +67 -0
  158. package/dist/_shared/spinner-CVG62sGs.js.map +1 -0
  159. package/dist/_shared/spinner-VjdonFU2.cjs +2 -0
  160. package/dist/_shared/spinner-VjdonFU2.cjs.map +1 -0
  161. package/dist/_shared/table-_yujELN3.js +1377 -0
  162. package/dist/_shared/table-_yujELN3.js.map +1 -0
  163. package/dist/_shared/table-iV8H1AE0.cjs +2 -0
  164. package/dist/_shared/table-iV8H1AE0.cjs.map +1 -0
  165. package/dist/_shared/textarea-B4zbbqff.cjs +2 -0
  166. package/dist/_shared/textarea-B4zbbqff.cjs.map +1 -0
  167. package/dist/_shared/textarea-Dp0RU-rc.js +118 -0
  168. package/dist/_shared/textarea-Dp0RU-rc.js.map +1 -0
  169. package/dist/_shared/typography-DXvCmE8w.js +201 -0
  170. package/dist/_shared/typography-DXvCmE8w.js.map +1 -0
  171. package/dist/_shared/typography-pzCKaFOc.cjs +2 -0
  172. package/dist/_shared/typography-pzCKaFOc.cjs.map +1 -0
  173. package/dist/_shared/workspace-C3U57t2a.cjs +2 -0
  174. package/dist/_shared/workspace-C3U57t2a.cjs.map +1 -0
  175. package/dist/_shared/workspace-Db--ow3r.js +357 -0
  176. package/dist/_shared/workspace-Db--ow3r.js.map +1 -0
  177. package/dist/components/base/accordion/index.cjs +1 -1
  178. package/dist/components/base/accordion/index.js +1 -1
  179. package/dist/components/base/badge/badge.d.ts.map +1 -1
  180. package/dist/components/base/badge/index.cjs +1 -1
  181. package/dist/components/base/badge/index.js +1 -1
  182. package/dist/components/base/buttons/index.cjs +1 -1
  183. package/dist/components/base/buttons/index.js +2 -2
  184. package/dist/components/base/cards/index.cjs +1 -1
  185. package/dist/components/base/cards/index.js +1 -1
  186. package/dist/components/base/cards/smart-card.types.d.ts +3 -3
  187. package/dist/components/base/carousel/index.cjs +1 -1
  188. package/dist/components/base/carousel/index.js +1 -1
  189. package/dist/components/base/combobox/index.cjs +1 -1
  190. package/dist/components/base/combobox/index.js +1 -1
  191. package/dist/components/base/command/index.cjs +1 -1
  192. package/dist/components/base/command/index.js +1 -1
  193. package/dist/components/base/copyable/index.cjs +1 -1
  194. package/dist/components/base/copyable/index.js +1 -1
  195. package/dist/components/base/currency/index.cjs +1 -1
  196. package/dist/components/base/currency/index.js +1 -1
  197. package/dist/components/base/date-pickers/index.cjs +1 -1
  198. package/dist/components/base/date-pickers/index.js +2 -2
  199. package/dist/components/base/display/chart.cjs +1 -1
  200. package/dist/components/base/display/chart.js +1 -1
  201. package/dist/components/base/display/index.cjs +1 -1
  202. package/dist/components/base/display/index.js +3 -3
  203. package/dist/components/base/event-calendar/index.cjs +1 -1
  204. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  205. package/dist/components/base/event-calendar/index.js +6 -6
  206. package/dist/components/base/event-calendar/index.js.map +1 -1
  207. package/dist/components/base/forms/index.cjs +1 -1
  208. package/dist/components/base/forms/index.js +5 -5
  209. package/dist/components/base/item/index.cjs +1 -1
  210. package/dist/components/base/item/index.js +1 -1
  211. package/dist/components/base/map/index.cjs +1 -1
  212. package/dist/components/base/map/index.js +2 -2
  213. package/dist/components/base/navigation/index.cjs +1 -1
  214. package/dist/components/base/navigation/index.js +3 -3
  215. package/dist/components/base/popover-menu/index.cjs +1 -1
  216. package/dist/components/base/popover-menu/index.js +1 -1
  217. package/dist/components/base/spinner/index.cjs +1 -1
  218. package/dist/components/base/spinner/index.js +1 -1
  219. package/dist/components/base/table/data-table.d.ts.map +1 -1
  220. package/dist/components/base/table/index.cjs +1 -1
  221. package/dist/components/base/table/index.js +1 -1
  222. package/dist/components/base/table/table-header.d.ts.map +1 -1
  223. package/dist/components/composed/admin/index.cjs +1 -1
  224. package/dist/components/composed/admin/index.cjs.map +1 -1
  225. package/dist/components/composed/admin/index.js +13 -13
  226. package/dist/components/composed/admin/index.js.map +1 -1
  227. package/dist/components/composed/ai/index.cjs +1 -1
  228. package/dist/components/composed/ai/index.cjs.map +1 -1
  229. package/dist/components/composed/ai/index.js +25 -25
  230. package/dist/components/composed/ai/index.js.map +1 -1
  231. package/dist/components/composed/analytics/index.cjs +1 -1
  232. package/dist/components/composed/analytics/index.cjs.map +1 -1
  233. package/dist/components/composed/analytics/index.js +26 -26
  234. package/dist/components/composed/analytics/index.js.map +1 -1
  235. package/dist/components/composed/cards/index.cjs +1 -1
  236. package/dist/components/composed/cards/index.cjs.map +1 -1
  237. package/dist/components/composed/cards/index.js +15 -15
  238. package/dist/components/composed/cards/index.js.map +1 -1
  239. package/dist/components/composed/commerce/index.cjs +1 -1
  240. package/dist/components/composed/commerce/index.cjs.map +1 -1
  241. package/dist/components/composed/commerce/index.js +28 -28
  242. package/dist/components/composed/commerce/index.js.map +1 -1
  243. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  244. package/dist/components/composed/dark-surfaces/index.js +4 -4
  245. package/dist/components/composed/data-display/index.cjs +1 -1
  246. package/dist/components/composed/data-display/index.js +1 -1
  247. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
  248. package/dist/components/composed/navigation/index.cjs +1 -1
  249. package/dist/components/composed/navigation/index.cjs.map +1 -1
  250. package/dist/components/composed/navigation/index.js +15 -15
  251. package/dist/components/composed/navigation/index.js.map +1 -1
  252. package/dist/components/composed/onboarding/index.cjs +1 -1
  253. package/dist/components/composed/onboarding/index.js +3 -3
  254. package/dist/components/composed/timelines/index.cjs +1 -1
  255. package/dist/components/composed/timelines/index.cjs.map +1 -1
  256. package/dist/components/composed/timelines/index.js +10 -10
  257. package/dist/components/composed/timelines/index.js.map +1 -1
  258. package/dist/components/features/activities/index.cjs +1 -1
  259. package/dist/components/features/activities/index.cjs.map +1 -1
  260. package/dist/components/features/activities/index.js +9 -9
  261. package/dist/components/features/activities/index.js.map +1 -1
  262. package/dist/components/features/ai-chat/index.cjs +2 -2
  263. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  264. package/dist/components/features/ai-chat/index.js +8 -8
  265. package/dist/components/features/ai-chat/index.js.map +1 -1
  266. package/dist/components/features/card/index.cjs +1 -1
  267. package/dist/components/features/card/index.js +4 -4
  268. package/dist/components/features/comments/index.cjs +1 -1
  269. package/dist/components/features/comments/index.js +2 -2
  270. package/dist/components/features/data-view/index.cjs +1 -1
  271. package/dist/components/features/data-view/index.cjs.map +1 -1
  272. package/dist/components/features/data-view/index.js +3 -3
  273. package/dist/components/features/data-view/index.js.map +1 -1
  274. package/dist/components/features/event-log/index.cjs +1 -1
  275. package/dist/components/features/event-log/index.js +4 -4
  276. package/dist/components/features/filters/index.cjs +1 -1
  277. package/dist/components/features/filters/index.cjs.map +1 -1
  278. package/dist/components/features/filters/index.js +11 -11
  279. package/dist/components/features/filters/index.js.map +1 -1
  280. package/dist/components/features/global-search/index.cjs +1 -1
  281. package/dist/components/features/global-search/index.cjs.map +1 -1
  282. package/dist/components/features/global-search/index.js +14 -14
  283. package/dist/components/features/global-search/index.js.map +1 -1
  284. package/dist/components/features/kanban/index.cjs +1 -1
  285. package/dist/components/features/kanban/index.js +3 -3
  286. package/dist/components/features/media-library/index.cjs +1 -1
  287. package/dist/components/features/media-library/index.cjs.map +1 -1
  288. package/dist/components/features/media-library/index.js +23 -23
  289. package/dist/components/features/media-library/index.js.map +1 -1
  290. package/dist/components/features/mentions/index.cjs +1 -1
  291. package/dist/components/features/mentions/index.js +1 -1
  292. package/dist/components/features/overlays/index.cjs +1 -1
  293. package/dist/components/features/overlays/index.js +1 -1
  294. package/dist/components/features/products/index.cjs +1 -1
  295. package/dist/components/features/products/index.cjs.map +1 -1
  296. package/dist/components/features/products/index.js +14 -14
  297. package/dist/components/features/products/index.js.map +1 -1
  298. package/dist/components/features/resource/index.cjs +1 -1
  299. package/dist/components/features/resource/index.cjs.map +1 -1
  300. package/dist/components/features/resource/index.js +5 -5
  301. package/dist/components/features/resource/index.js.map +1 -1
  302. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  303. package/dist/components/features/rich-text-editor/index.js +1 -1
  304. package/dist/components/features/schema-form/index.cjs +1 -1
  305. package/dist/components/features/schema-form/index.js +8 -8
  306. package/dist/components/features/suggestions/index.cjs +1 -1
  307. package/dist/components/features/suggestions/index.js +1 -1
  308. package/dist/components/features/sync/index.cjs +1 -1
  309. package/dist/components/features/sync/index.js +2 -2
  310. package/dist/components/layout/app-shell/index.cjs +1 -1
  311. package/dist/components/layout/app-shell/index.js +1 -1
  312. package/dist/components/layout/auth/index.cjs +1 -1
  313. package/dist/components/layout/auth/index.js +1 -1
  314. package/dist/components/layout/header/index.cjs +1 -1
  315. package/dist/components/layout/header/index.js +1 -1
  316. package/dist/components/layout/hooks/index.cjs +1 -1
  317. package/dist/components/layout/hooks/index.js +1 -1
  318. package/dist/components/layout/index.cjs +1 -1
  319. package/dist/components/layout/index.js +8 -8
  320. package/dist/components/layout/page/index.cjs +1 -1
  321. package/dist/components/layout/page/index.js +1 -1
  322. package/dist/components/layout/settings/index.cjs +1 -1
  323. package/dist/components/layout/settings/index.js +1 -1
  324. package/dist/components/layout/sidebar/index.cjs +1 -1
  325. package/dist/components/layout/sidebar/index.js +2 -2
  326. package/dist/components/layout/workspace/index.cjs +1 -1
  327. package/dist/components/layout/workspace/index.js +1 -1
  328. package/dist/components/typography/index.cjs +1 -1
  329. package/dist/components/typography/index.js +1 -1
  330. package/dist/services/actions/index.cjs +1 -1
  331. package/dist/services/actions/index.js +1 -1
  332. package/dist/showcase/assets/AreaChart-DtVzijR8.js +6 -0
  333. package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +1 -0
  334. package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +1 -0
  335. package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +1 -0
  336. package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +1 -0
  337. package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +1 -0
  338. package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +1 -0
  339. package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +1 -0
  340. package/dist/showcase/assets/Separator-DMs71Vib.js +1 -0
  341. package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +1 -0
  342. package/dist/showcase/assets/accordion-Clw5XNXP.js +171 -0
  343. package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +1 -0
  344. package/dist/showcase/assets/action-menu-CW8zR6Ne.js +1 -0
  345. package/dist/showcase/assets/actions-Cf7vl3u0.js +310 -0
  346. package/dist/showcase/assets/activities-CyI5sJuS.js +500 -0
  347. package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +1 -0
  348. package/dist/showcase/assets/admin-CQVbTxGD.js +140 -0
  349. package/dist/showcase/assets/ai-Bkp2BY_z.js +207 -0
  350. package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +2 -0
  351. package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +568 -0
  352. package/dist/showcase/assets/ai-elements-VbMUV2-i.js +387 -0
  353. package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +1 -0
  354. package/dist/showcase/assets/alert-BUmpNcXV.js +1 -0
  355. package/dist/showcase/assets/alert-CWPNW7eb.js +93 -0
  356. package/dist/showcase/assets/alert-nUwhk3AB.js +62 -0
  357. package/dist/showcase/assets/api-key-list-B1qVywOP.js +73 -0
  358. package/dist/showcase/assets/api-key-list-BI2FGbzV.js +1 -0
  359. package/dist/showcase/assets/app-sidebar-B35a8HWK.js +1 -0
  360. package/dist/showcase/assets/arrow-down-C1w0M8tE.js +1 -0
  361. package/dist/showcase/assets/arrow-left-DtILDtAv.js +1 -0
  362. package/dist/showcase/assets/arrow-right-TnZMfDbP.js +1 -0
  363. package/dist/showcase/assets/arrow-up-BX-KDIDB.js +1 -0
  364. package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +1 -0
  365. package/dist/showcase/assets/avatar-C5YI0roK.js +67 -0
  366. package/dist/showcase/assets/avatar-DsnH-Xmz.js +1 -0
  367. package/dist/showcase/assets/avatar-S4vMi7Be.js +57 -0
  368. package/dist/showcase/assets/avatar-q4wqX6yD.js +1 -0
  369. package/dist/showcase/assets/badge-DJacF8-J.js +31 -0
  370. package/dist/showcase/assets/badge-check-DDJtQHcD.js +1 -0
  371. package/dist/showcase/assets/bell-DiXXE8YI.js +1 -0
  372. package/dist/showcase/assets/bot-bONqc_7j.js +1 -0
  373. package/dist/showcase/assets/box-lhUq3Chj.js +1 -0
  374. package/dist/showcase/assets/braces-IKXiJgb3.js +1 -0
  375. package/dist/showcase/assets/brain-DcXlhbJZ.js +1 -0
  376. package/dist/showcase/assets/brand-CramZg2-.js +36 -0
  377. package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +1 -0
  378. package/dist/showcase/assets/breadcrumb-CZRbcf09.js +52 -0
  379. package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +1 -0
  380. package/dist/showcase/assets/briefcase-CQQ0m97G.js +1 -0
  381. package/dist/showcase/assets/building-2-BkQcv8WR.js +1 -0
  382. package/dist/showcase/assets/button-K7M0irWq.js +44 -0
  383. package/dist/showcase/assets/button-group-KCGa38c8.js +1 -0
  384. package/dist/showcase/assets/buttons-CvyBMRD6.js +272 -0
  385. package/dist/showcase/assets/calendar-BJHjhWQX.js +1 -0
  386. package/dist/showcase/assets/calendar-ChMVRsNC.js +16 -0
  387. package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +1 -0
  388. package/dist/showcase/assets/calendar-xpHhfGnq.js +1 -0
  389. package/dist/showcase/assets/camera-C67freYi.js +1 -0
  390. package/dist/showcase/assets/card-CfOqXMVz.js +188 -0
  391. package/dist/showcase/assets/card-bLjedjT5.js +1 -0
  392. package/dist/showcase/assets/card-primitives-FUPmQCsu.js +1 -0
  393. package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +1 -0
  394. package/dist/showcase/assets/cards-yHZa0kEf.js +353 -0
  395. package/dist/showcase/assets/carousel-DG1cKry4.js +449 -0
  396. package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +1 -0
  397. package/dist/showcase/assets/chart-B_yVfbWJ.js +358 -0
  398. package/dist/showcase/assets/chart-column-CYrVWmMk.js +1 -0
  399. package/dist/showcase/assets/checkbox-NW6EcvtD.js +1 -0
  400. package/dist/showcase/assets/checkbox-pA_L1P-f.js +1 -0
  401. package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +1 -0
  402. package/dist/showcase/assets/chevron-left-B_NQOEWI.js +1 -0
  403. package/dist/showcase/assets/chevron-up-6hst2jwR.js +1 -0
  404. package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +1 -0
  405. package/dist/showcase/assets/circle-Cw9qV72m.js +1 -0
  406. package/dist/showcase/assets/circle-alert-D3Vcma6L.js +1 -0
  407. package/dist/showcase/assets/circle-check-DdjJpGc9.js +1 -0
  408. package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +1 -0
  409. package/dist/showcase/assets/circle-dot-DN8DFgIP.js +1 -0
  410. package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +1 -0
  411. package/dist/showcase/assets/circle-x-BzTSkndC.js +1 -0
  412. package/dist/showcase/assets/clock-3-CVwHXCmo.js +1 -0
  413. package/dist/showcase/assets/clock-BIJ9p953.js +1 -0
  414. package/dist/showcase/assets/code-xml-DrU5ziCA.js +1 -0
  415. package/dist/showcase/assets/collapsible-7rdCo71k.js +27 -0
  416. package/dist/showcase/assets/collapsible-DCcTSlEH.js +1 -0
  417. package/dist/showcase/assets/combobox-mx8o5sV1.js +685 -0
  418. package/dist/showcase/assets/command-CKJDGdA9.js +1 -0
  419. package/dist/showcase/assets/command-CzGLPzoO.js +1 -0
  420. package/dist/showcase/assets/comment-composer-CSoEIapl.js +1 -0
  421. package/dist/showcase/assets/comment-item-pjaH53iB.js +1 -0
  422. package/dist/showcase/assets/comments-_ccotzWA.js +357 -0
  423. package/dist/showcase/assets/commerce-BuiQiRsf.js +267 -0
  424. package/dist/showcase/assets/composite-Bghohd0p.js +1 -0
  425. package/dist/showcase/assets/contact-card-CqM2uz_w.js +65 -0
  426. package/dist/showcase/assets/content-container-fC4z98GI.js +1 -0
  427. package/dist/showcase/assets/copyable-BMQK8sID.js +1 -0
  428. package/dist/showcase/assets/copyable-DVR2FAa0.js +96 -0
  429. package/dist/showcase/assets/course-card-Cku2z18g.js +77 -0
  430. package/dist/showcase/assets/cpu-A072t3kq.js +1 -0
  431. package/dist/showcase/assets/credit-card-BGwhx9Zo.js +1 -0
  432. package/dist/showcase/assets/css-variables-BAW_VrGk.js +1205 -0
  433. package/dist/showcase/assets/currency-Da3C0Uzb.js +149 -0
  434. package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +90 -0
  435. package/dist/showcase/assets/data-view--EAYihh0.js +124 -0
  436. package/dist/showcase/assets/data-view-BAMwKzZO.js +4 -0
  437. package/dist/showcase/assets/database-C489WIbr.js +1 -0
  438. package/dist/showcase/assets/date-block-DuNaPSBU.js +1 -0
  439. package/dist/showcase/assets/date-picker-Dq-9L64y.js +1 -0
  440. package/dist/showcase/assets/date-pickers-D0ReMKc9.js +73 -0
  441. package/dist/showcase/assets/dense-info-CXwjqQB1.js +106 -0
  442. package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +264 -0
  443. package/dist/showcase/assets/dialog-DIrJcAzq.js +1 -0
  444. package/dist/showcase/assets/dialog-O45UwQJs.js +1 -0
  445. package/dist/showcase/assets/display-utilities-VKOARJyC.js +267 -0
  446. package/dist/showcase/assets/dist-BavkTE-I.js +1 -0
  447. package/dist/showcase/assets/dist-DPxPKIgU.js +45 -0
  448. package/dist/showcase/assets/dollar-sign-CH2fcyek.js +1 -0
  449. package/dist/showcase/assets/download-whAw79X4.js +1 -0
  450. package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +1 -0
  451. package/dist/showcase/assets/dropzone-B9sc8Mwa.js +1 -0
  452. package/dist/showcase/assets/earth-BpkE9LMh.js +1 -0
  453. package/dist/showcase/assets/ellipsis-CEVdIbhD.js +1 -0
  454. package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +1 -0
  455. package/dist/showcase/assets/empty-Dp1eCMIl.js +1 -0
  456. package/dist/showcase/assets/empty-item--dZz4VlJ.js +49 -0
  457. package/dist/showcase/assets/empty-state-ZOiE-hWY.js +190 -0
  458. package/dist/showcase/assets/empty-state-dsivN4CA.js +1 -0
  459. package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +357 -0
  460. package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +1 -0
  461. package/dist/showcase/assets/esm-DT-TXPCJ.js +2 -0
  462. package/dist/showcase/assets/event-calendar-aVpAFZFq.js +138 -0
  463. package/dist/showcase/assets/event-log-DVcvyQ-P.js +330 -0
  464. package/dist/showcase/assets/example-CzbL5xoH.js +1 -0
  465. package/dist/showcase/assets/external-link-BaLE1QE5.js +1 -0
  466. package/dist/showcase/assets/eye-Dq0mLKrs.js +1 -0
  467. package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +34 -0
  468. package/dist/showcase/assets/file-CgW3NvCL.js +1 -0
  469. package/dist/showcase/assets/file-text-JGaJQ8Wd.js +1 -0
  470. package/dist/showcase/assets/filter-layout-jfahl8aJ.js +1 -0
  471. package/dist/showcase/assets/filters-D7zegZVD.js +139 -0
  472. package/dist/showcase/assets/flag-H6U1f4wd.js +1 -0
  473. package/dist/showcase/assets/folder-open-sT96wRxJ.js +1 -0
  474. package/dist/showcase/assets/form-field-CQuSWnj8.js +1 -0
  475. package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +1 -0
  476. package/dist/showcase/assets/format-DGPJ5dDq.js +1 -0
  477. package/dist/showcase/assets/forms-CdDJkAFt.js +915 -0
  478. package/dist/showcase/assets/funnel-Bh56GDO0.js +1 -0
  479. package/dist/showcase/assets/generic-CqSABKHr.js +1 -0
  480. package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +1 -0
  481. package/dist/showcase/assets/gift-ChVS2ovQ.js +1 -0
  482. package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +85 -0
  483. package/dist/showcase/assets/git-branch-86jQZnz4.js +1 -0
  484. package/dist/showcase/assets/global-search-C92CjOf8.js +215 -0
  485. package/dist/showcase/assets/global-search-DpVIWyO9.js +1 -0
  486. package/dist/showcase/assets/globe-DmGzYOlq.js +1 -0
  487. package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +58 -0
  488. package/dist/showcase/assets/hash-pc6IIDge.js +1 -0
  489. package/dist/showcase/assets/header-DbM4l1Z6.js +1 -0
  490. package/dist/showcase/assets/header-notifications-CaymUd4n.js +1 -0
  491. package/dist/showcase/assets/heart-DtfPBlXq.js +1 -0
  492. package/dist/showcase/assets/hooks-JiLlGOJ-.js +220 -0
  493. package/dist/showcase/assets/house-CzNWewi5.js +1 -0
  494. package/dist/showcase/assets/icon-badge-G9Fp891n.js +1 -0
  495. package/dist/showcase/assets/icon-badge-e8N5BSYf.js +37 -0
  496. package/dist/showcase/assets/image-9IQW7agU.js +1 -0
  497. package/dist/showcase/assets/inbox-DU4YaGtc.js +1 -0
  498. package/dist/showcase/assets/index-CuXjv2p6.css +2 -0
  499. package/dist/showcase/assets/index-DN09-Vts.js +10 -0
  500. package/dist/showcase/assets/inertValue-kRQb7jwi.js +1 -0
  501. package/dist/showcase/assets/info-B9AXwUDF.js +1 -0
  502. package/dist/showcase/assets/inline-stat-BkLIKCvD.js +1 -0
  503. package/dist/showcase/assets/inline-stat-XqGHDQrK.js +15 -0
  504. package/dist/showcase/assets/input-BXHv6p9P.js +1 -0
  505. package/dist/showcase/assets/input-D_T9s_tn.js +1 -0
  506. package/dist/showcase/assets/input-group-Bs8dmhR6.js +47 -0
  507. package/dist/showcase/assets/input-group-CqkASeoV.js +1 -0
  508. package/dist/showcase/assets/inputs-DY7w_ssI.js +155 -0
  509. package/dist/showcase/assets/installation-Dg3FdGJ1.js +134 -0
  510. package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +36 -0
  511. package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +36 -0
  512. package/dist/showcase/assets/invoice-mini-BISFvM7J.js +14 -0
  513. package/dist/showcase/assets/invoice-table-DcyVZTvl.js +30 -0
  514. package/dist/showcase/assets/isSameDay-av07hGac.js +1 -0
  515. package/dist/showcase/assets/isToday-GY5FlPL9.js +1 -0
  516. package/dist/showcase/assets/italic-Du0n76Xk.js +1 -0
  517. package/dist/showcase/assets/item-D8Lp4R-T.js +139 -0
  518. package/dist/showcase/assets/item-DTsZnSJG.js +1 -0
  519. package/dist/showcase/assets/item-Di7HZF5G.js +1 -0
  520. package/dist/showcase/assets/kanban-Dcminjsa.js +188 -0
  521. package/dist/showcase/assets/key-round-BBue3xKx.js +1 -0
  522. package/dist/showcase/assets/label-dkUEHYaz.js +1 -0
  523. package/dist/showcase/assets/languages-XxP8Uu82.js +1 -0
  524. package/dist/showcase/assets/layers-Bi_-RuHS.js +1 -0
  525. package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +608 -0
  526. package/dist/showcase/assets/layout-auth-DffIslnp.js +790 -0
  527. package/dist/showcase/assets/layout-containers-BuSg6L6o.js +101 -0
  528. package/dist/showcase/assets/layout-header-DAxSUI18.js +203 -0
  529. package/dist/showcase/assets/layout-page-CVgVJHf1.js +314 -0
  530. package/dist/showcase/assets/layout-primitives-q8NXbEld.js +34 -0
  531. package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +224 -0
  532. package/dist/showcase/assets/layout-users-DG5u517t.js +117 -0
  533. package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +191 -0
  534. package/dist/showcase/assets/lib-CaQvPpSJ.js +1 -0
  535. package/dist/showcase/assets/list-checks-Dhr60VvL.js +1 -0
  536. package/dist/showcase/assets/lock-CYVbyBpM.js +1 -0
  537. package/dist/showcase/assets/lock-keyhole-TUVID45I.js +1 -0
  538. package/dist/showcase/assets/mail-DfkwmVKE.js +1 -0
  539. package/dist/showcase/assets/mail-check-CnBhgH_h.js +1 -0
  540. package/dist/showcase/assets/map-Ck14_o-F.js +124 -0
  541. package/dist/showcase/assets/map-pin-Di7TUhai.js +1 -0
  542. package/dist/showcase/assets/media-library-CzM_to29.js +699 -0
  543. package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +1 -0
  544. package/dist/showcase/assets/mentions-CdaPXOLl.js +138 -0
  545. package/dist/showcase/assets/menus-DuqcLdg1.js +171 -0
  546. package/dist/showcase/assets/message-square-DuW3PrFI.js +1 -0
  547. package/dist/showcase/assets/metadata-list-CCRGSPaS.js +286 -0
  548. package/dist/showcase/assets/metadata-list-Drvz5mwy.js +1 -0
  549. package/dist/showcase/assets/metric-BSaXa3Z_.js +1 -0
  550. package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +1 -0
  551. package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +1 -0
  552. package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +1 -0
  553. package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +44 -0
  554. package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +50 -0
  555. package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +76 -0
  556. package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +27 -0
  557. package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +17 -0
  558. package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +31 -0
  559. package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +42 -0
  560. package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +192 -0
  561. package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +54 -0
  562. package/dist/showcase/assets/minus-BaXg6nPb.js +1 -0
  563. package/dist/showcase/assets/money-display-HegN6NVU.js +1 -0
  564. package/dist/showcase/assets/month-year-picker-DGSalGea.js +1 -0
  565. package/dist/showcase/assets/navigation-B9kcgNmJ.js +90 -0
  566. package/dist/showcase/assets/navigation-D4OJbw4T.js +231 -0
  567. package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +43 -0
  568. package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +119 -0
  569. package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +1 -0
  570. package/dist/showcase/assets/overlays-BHf9SZOh.js +159 -0
  571. package/dist/showcase/assets/overlays-DziL3nVU.js +408 -0
  572. package/dist/showcase/assets/overview-Cc69up8i.js +184 -0
  573. package/dist/showcase/assets/package-Bc-NuFnd.js +1 -0
  574. package/dist/showcase/assets/package-check-5LQwCfGh.js +1 -0
  575. package/dist/showcase/assets/page-B2o5HSfY.js +1 -0
  576. package/dist/showcase/assets/page-action-button-CfS6vsyC.js +1 -0
  577. package/dist/showcase/assets/page-header-W6quU5pO.js +1 -0
  578. package/dist/showcase/assets/pagination-Bfs7Zszm.js +1 -0
  579. package/dist/showcase/assets/pagination-DHs104ji.js +42 -0
  580. package/dist/showcase/assets/paperclip-CXeiMywc.js +1 -0
  581. package/dist/showcase/assets/password-input-C61t743N.js +1 -0
  582. package/dist/showcase/assets/pencil-C1TXsTfP.js +1 -0
  583. package/dist/showcase/assets/phone-Bh-68R_E.js +1 -0
  584. package/dist/showcase/assets/plus-CKBaO4jG.js +1 -0
  585. package/dist/showcase/assets/popover-C_7qLizt.js +1 -0
  586. package/dist/showcase/assets/popover-hgtHqd0h.js +1 -0
  587. package/dist/showcase/assets/popover-menu-DmYSBsji.js +1 -0
  588. package/dist/showcase/assets/products-DSvcQz-Q.js +423 -0
  589. package/dist/showcase/assets/progress-Chxeo8g4.js +18 -0
  590. package/dist/showcase/assets/progress-fYPoCyf-.js +1 -0
  591. package/dist/showcase/assets/props-table-izArO1Pv.js +1 -0
  592. package/dist/showcase/assets/quote-wvfNu9t7.js +1 -0
  593. package/dist/showcase/assets/receipt-BlXBX4ZJ.js +1 -0
  594. package/dist/showcase/assets/receipt-text-stSsUTV5.js +1 -0
  595. package/dist/showcase/assets/refinement-guide-Bri81J9N.js +189 -0
  596. package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +1 -0
  597. package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +1 -0
  598. package/dist/showcase/assets/resource-B727CTVi.js +139 -0
  599. package/dist/showcase/assets/resource-DytT_quB.js +1 -0
  600. package/dist/showcase/assets/resource-selector-card-wNuW382N.js +43 -0
  601. package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +143 -0
  602. package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +124 -0
  603. package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +1 -0
  604. package/dist/showcase/assets/route-D2owHMka.js +1 -0
  605. package/dist/showcase/assets/save-DjC_iy0t.js +1 -0
  606. package/dist/showcase/assets/schema-form-CQtLwGC1.js +327 -0
  607. package/dist/showcase/assets/scroll-area-BQlHFfkG.js +32 -0
  608. package/dist/showcase/assets/scroll-area-D3Rrt85s.js +1 -0
  609. package/dist/showcase/assets/section-DYfGx1Q5.js +1 -0
  610. package/dist/showcase/assets/select-BCJGhRpc.js +1 -0
  611. package/dist/showcase/assets/select-Cf5EigqA.js +1 -0
  612. package/dist/showcase/assets/send-86Vr11Ys.js +1 -0
  613. package/dist/showcase/assets/separator-BHjNVb5O.js +1 -0
  614. package/dist/showcase/assets/separator-BejjbTbO.js +28 -0
  615. package/dist/showcase/assets/settings-2-DNNVOsjP.js +1 -0
  616. package/dist/showcase/assets/settings-Bsi5BLx5.js +1 -0
  617. package/dist/showcase/assets/sheet-BazhMvfb.js +1 -0
  618. package/dist/showcase/assets/shield-alert-D-Jbocfj.js +1 -0
  619. package/dist/showcase/assets/shield-check-D9eDVcJ1.js +1 -0
  620. package/dist/showcase/assets/shield-xI2P9G5d.js +1 -0
  621. package/dist/showcase/assets/shopping-bag-DOGs3sez.js +1 -0
  622. package/dist/showcase/assets/showcase-s-5CuLAJ.js +132 -0
  623. package/dist/showcase/assets/sidebar-Rz44gw_a.js +1 -0
  624. package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +1 -0
  625. package/dist/showcase/assets/skeleton-CY8ieqD-.js +1 -0
  626. package/dist/showcase/assets/skeleton-CgoH6CPT.js +29 -0
  627. package/dist/showcase/assets/slider-okW2bgkG.js +1 -0
  628. package/dist/showcase/assets/smart-card-CVwEPwfI.js +1 -0
  629. package/dist/showcase/assets/sonner-CixCpxj2.js +22 -0
  630. package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +5 -0
  631. package/dist/showcase/assets/sparkles-DDEVdtmy.js +1 -0
  632. package/dist/showcase/assets/spinner-BVGPoAEv.js +49 -0
  633. package/dist/showcase/assets/spinner-FURXSp1Q.js +1 -0
  634. package/dist/showcase/assets/spinner-u6TwJ3Ii.js +30 -0
  635. package/dist/showcase/assets/square-pen-DVXVT0cQ.js +1 -0
  636. package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +1 -0
  637. package/dist/showcase/assets/star-B3ZPfxuz.js +1 -0
  638. package/dist/showcase/assets/startOfDay-LwMBRUSU.js +1 -0
  639. package/dist/showcase/assets/styles-UIKkojWJ.js +1 -0
  640. package/dist/showcase/assets/suggestions-DbrzKjbi.js +126 -0
  641. package/dist/showcase/assets/switch-CAw84QpS.js +1 -0
  642. package/dist/showcase/assets/switch-Cjt2MCgr.js +1 -0
  643. package/dist/showcase/assets/sync-DWbqfpBH.js +124 -0
  644. package/dist/showcase/assets/table-Bx5lo5FP.js +686 -0
  645. package/dist/showcase/assets/table-C2RQulDb.js +1 -0
  646. package/dist/showcase/assets/table-actions-Clo3WEfM.js +1 -0
  647. package/dist/showcase/assets/tabs-DRtlcg6b.js +19 -0
  648. package/dist/showcase/assets/tabs-wMPtvuT5.js +1 -0
  649. package/dist/showcase/assets/tags-input-D5FpWOWF.js +1 -0
  650. package/dist/showcase/assets/text-button-Cwh6D6qG.js +1 -0
  651. package/dist/showcase/assets/text-link-DI1uXdGl.js +1 -0
  652. package/dist/showcase/assets/textarea-CGbt4gBZ.js +1 -0
  653. package/dist/showcase/assets/textarea-JPgPLhyk.js +1 -0
  654. package/dist/showcase/assets/timelines-CkHN08n6.js +200 -0
  655. package/dist/showcase/assets/toggle-group-BpXkR9uD.js +1 -0
  656. package/dist/showcase/assets/toggles-DK9iCbki.js +71 -0
  657. package/dist/showcase/assets/toggles-group-DwzRj0f7.js +32 -0
  658. package/dist/showcase/assets/tooltip-PtP1suag.js +31 -0
  659. package/dist/showcase/assets/trash-2-BE4XUI2g.js +1 -0
  660. package/dist/showcase/assets/trending-up-ByxOf-nR.js +1 -0
  661. package/dist/showcase/assets/truck-RTOdcRV0.js +1 -0
  662. package/dist/showcase/assets/typography-BKLgHDxU.js +223 -0
  663. package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +28 -0
  664. package/dist/showcase/assets/ui-card-BOdHnZwv.js +30 -0
  665. package/dist/showcase/assets/ui-table-BW4FCClv.js +42 -0
  666. package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +138 -0
  667. package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +1 -0
  668. package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +1 -0
  669. package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +1 -0
  670. package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +1 -0
  671. package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +1 -0
  672. package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +1 -0
  673. package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +1 -0
  674. package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +1 -0
  675. package/dist/showcase/assets/useRender-Ogz5zjeJ.js +1 -0
  676. package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +1 -0
  677. package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +1 -0
  678. package/dist/showcase/assets/user-plus-CLj8AZe1.js +1 -0
  679. package/dist/showcase/assets/user-ymdT26JK.js +1 -0
  680. package/dist/showcase/assets/users-BGba2Xwv.js +1 -0
  681. package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +37 -0
  682. package/dist/showcase/assets/video-BcKa36-p.js +1 -0
  683. package/dist/showcase/assets/wrench-Cj2hRrih.js +1 -0
  684. package/dist/showcase/assets/x-iCqjAC2D.js +1 -0
  685. package/dist/showcase/assets/zap-H4bc_OhS.js +1 -0
  686. package/dist/showcase/index.html +2 -2
  687. package/dist/style.css +1 -1
  688. package/package.json +1 -1
  689. package/src/css/themes/shadcn.default.css +6 -6
  690. package/src/css/tokens/foundation.css +23 -9
  691. package/dist/_shared/accordion-B9EjlZLY.js +0 -135
  692. package/dist/_shared/accordion-B9EjlZLY.js.map +0 -1
  693. package/dist/_shared/accordion-IFDIc0E7.cjs +0 -2
  694. package/dist/_shared/accordion-IFDIc0E7.cjs.map +0 -1
  695. package/dist/_shared/action-menu-B6yFRDz1.cjs +0 -2
  696. package/dist/_shared/action-menu-B6yFRDz1.cjs.map +0 -1
  697. package/dist/_shared/action-menu-CNS-fwQr.js +0 -96
  698. package/dist/_shared/action-menu-CNS-fwQr.js.map +0 -1
  699. package/dist/_shared/ai-artifact-B3qhuiKC.js +0 -1099
  700. package/dist/_shared/ai-artifact-B3qhuiKC.js.map +0 -1
  701. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +0 -3
  702. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +0 -1
  703. package/dist/_shared/alert-V0V36Sny.cjs +0 -2
  704. package/dist/_shared/alert-V0V36Sny.cjs.map +0 -1
  705. package/dist/_shared/alert-m-4s0Hqq.js +0 -81
  706. package/dist/_shared/alert-m-4s0Hqq.js.map +0 -1
  707. package/dist/_shared/app-shell-D3eGUtL-.js +0 -69
  708. package/dist/_shared/app-shell-D3eGUtL-.js.map +0 -1
  709. package/dist/_shared/app-shell-QJHARDMB.cjs +0 -2
  710. package/dist/_shared/app-shell-QJHARDMB.cjs.map +0 -1
  711. package/dist/_shared/auth-BZY91F5_.cjs +0 -2
  712. package/dist/_shared/auth-BZY91F5_.cjs.map +0 -1
  713. package/dist/_shared/auth-DcotjEbY.js +0 -643
  714. package/dist/_shared/auth-DcotjEbY.js.map +0 -1
  715. package/dist/_shared/badge-BeSKxX1u.cjs +0 -2
  716. package/dist/_shared/badge-BeSKxX1u.cjs.map +0 -1
  717. package/dist/_shared/badge-a2Z3K5aQ.js +0 -110
  718. package/dist/_shared/badge-a2Z3K5aQ.js.map +0 -1
  719. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +0 -2
  720. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +0 -1
  721. package/dist/_shared/breadcrumbs-B57Unsoe.js +0 -105
  722. package/dist/_shared/breadcrumbs-B57Unsoe.js.map +0 -1
  723. package/dist/_shared/button-Bd5bEIiB.cjs +0 -2
  724. package/dist/_shared/button-Bd5bEIiB.cjs.map +0 -1
  725. package/dist/_shared/button-DHksjMvc.js +0 -189
  726. package/dist/_shared/button-DHksjMvc.js.map +0 -1
  727. package/dist/_shared/buttons-Bek9F7qK.cjs +0 -2
  728. package/dist/_shared/buttons-Bek9F7qK.cjs.map +0 -1
  729. package/dist/_shared/buttons-DcynMPnE.js +0 -137
  730. package/dist/_shared/buttons-DcynMPnE.js.map +0 -1
  731. package/dist/_shared/card-radio-group-C2p_iBal.cjs +0 -2
  732. package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +0 -1
  733. package/dist/_shared/card-radio-group-Fdi1Cz1j.js +0 -150
  734. package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +0 -1
  735. package/dist/_shared/cards-C1ythc0Q.js +0 -354
  736. package/dist/_shared/cards-C1ythc0Q.js.map +0 -1
  737. package/dist/_shared/cards-GSYfJ-oX.cjs +0 -2
  738. package/dist/_shared/cards-GSYfJ-oX.cjs.map +0 -1
  739. package/dist/_shared/combobox-BIe72dV3.js +0 -954
  740. package/dist/_shared/combobox-BIe72dV3.js.map +0 -1
  741. package/dist/_shared/combobox-CJiFDoTi.cjs +0 -2
  742. package/dist/_shared/combobox-CJiFDoTi.cjs.map +0 -1
  743. package/dist/_shared/command-ByedBajF.js +0 -39
  744. package/dist/_shared/command-ByedBajF.js.map +0 -1
  745. package/dist/_shared/command-EGR0nhGc.cjs +0 -2
  746. package/dist/_shared/command-EGR0nhGc.cjs.map +0 -1
  747. package/dist/_shared/comments-CmljtbAW.js +0 -952
  748. package/dist/_shared/comments-CmljtbAW.js.map +0 -1
  749. package/dist/_shared/comments-ColUq7eh.cjs +0 -2
  750. package/dist/_shared/comments-ColUq7eh.cjs.map +0 -1
  751. package/dist/_shared/copyable-Dopk9pEJ.js +0 -38
  752. package/dist/_shared/copyable-Dopk9pEJ.js.map +0 -1
  753. package/dist/_shared/copyable-rQwxsTJ3.cjs +0 -2
  754. package/dist/_shared/copyable-rQwxsTJ3.cjs.map +0 -1
  755. package/dist/_shared/data-display-BTsCY7A5.js +0 -1873
  756. package/dist/_shared/data-display-BTsCY7A5.js.map +0 -1
  757. package/dist/_shared/data-display-BdGQMXit.cjs +0 -2
  758. package/dist/_shared/data-display-BdGQMXit.cjs.map +0 -1
  759. package/dist/_shared/date-picker-BiUgIkjP.cjs +0 -2
  760. package/dist/_shared/date-picker-BiUgIkjP.cjs.map +0 -1
  761. package/dist/_shared/date-picker-DFkLiveH.js +0 -1361
  762. package/dist/_shared/date-picker-DFkLiveH.js.map +0 -1
  763. package/dist/_shared/date-pickers-C86tVD8e.cjs +0 -2
  764. package/dist/_shared/date-pickers-C86tVD8e.cjs.map +0 -1
  765. package/dist/_shared/date-pickers-D4oxOOHE.js +0 -329
  766. package/dist/_shared/date-pickers-D4oxOOHE.js.map +0 -1
  767. package/dist/_shared/display-B0wLVN8t.js +0 -986
  768. package/dist/_shared/display-B0wLVN8t.js.map +0 -1
  769. package/dist/_shared/display-Bin2vVex.cjs +0 -2
  770. package/dist/_shared/display-Bin2vVex.cjs.map +0 -1
  771. package/dist/_shared/form-sizing-C51oI3Di.js +0 -42
  772. package/dist/_shared/form-sizing-C51oI3Di.js.map +0 -1
  773. package/dist/_shared/form-sizing-Co53Drri.cjs +0 -2
  774. package/dist/_shared/form-sizing-Co53Drri.cjs.map +0 -1
  775. package/dist/_shared/forms-CEE1te78.cjs +0 -2
  776. package/dist/_shared/forms-CEE1te78.cjs.map +0 -1
  777. package/dist/_shared/forms-CQoGvG7q.js +0 -3533
  778. package/dist/_shared/forms-CQoGvG7q.js.map +0 -1
  779. package/dist/_shared/header-B9IPDQRW.js +0 -447
  780. package/dist/_shared/header-B9IPDQRW.js.map +0 -1
  781. package/dist/_shared/header-C_1x4-rd.cjs +0 -2
  782. package/dist/_shared/header-C_1x4-rd.cjs.map +0 -1
  783. package/dist/_shared/hooks---vunGQ6.js +0 -95
  784. package/dist/_shared/hooks---vunGQ6.js.map +0 -1
  785. package/dist/_shared/hooks-CjVzmgvY.cjs +0 -2
  786. package/dist/_shared/hooks-CjVzmgvY.cjs.map +0 -1
  787. package/dist/_shared/input-CB6hxh-5.cjs +0 -2
  788. package/dist/_shared/input-CB6hxh-5.cjs.map +0 -1
  789. package/dist/_shared/input-CfnHBT--.js +0 -182
  790. package/dist/_shared/input-CfnHBT--.js.map +0 -1
  791. package/dist/_shared/item-Xs-fgzaT.js +0 -226
  792. package/dist/_shared/item-Xs-fgzaT.js.map +0 -1
  793. package/dist/_shared/item-eUP9Rtmg.cjs +0 -2
  794. package/dist/_shared/item-eUP9Rtmg.cjs.map +0 -1
  795. package/dist/_shared/layout-BXrQqUKq.js +0 -262
  796. package/dist/_shared/layout-BXrQqUKq.js.map +0 -1
  797. package/dist/_shared/layout-DWicdsPI.cjs +0 -2
  798. package/dist/_shared/layout-DWicdsPI.cjs.map +0 -1
  799. package/dist/_shared/mentions-BahbwDwU.js +0 -506
  800. package/dist/_shared/mentions-BahbwDwU.js.map +0 -1
  801. package/dist/_shared/mentions-aHalksbt.cjs +0 -2
  802. package/dist/_shared/mentions-aHalksbt.cjs.map +0 -1
  803. package/dist/_shared/money-display-BLPNMmiT.cjs +0 -2
  804. package/dist/_shared/money-display-BLPNMmiT.cjs.map +0 -1
  805. package/dist/_shared/money-display-D_-Cb8-9.js +0 -198
  806. package/dist/_shared/money-display-D_-Cb8-9.js.map +0 -1
  807. package/dist/_shared/navigation-BcYAwgzo.js +0 -436
  808. package/dist/_shared/navigation-BcYAwgzo.js.map +0 -1
  809. package/dist/_shared/navigation-DAB7uuBj.cjs +0 -2
  810. package/dist/_shared/navigation-DAB7uuBj.cjs.map +0 -1
  811. package/dist/_shared/overlays-DW8OIK5R.js +0 -735
  812. package/dist/_shared/overlays-DW8OIK5R.js.map +0 -1
  813. package/dist/_shared/overlays-Du65iCkx.cjs +0 -2
  814. package/dist/_shared/overlays-Du65iCkx.cjs.map +0 -1
  815. package/dist/_shared/popover-menu-qxBZlTck.js +0 -93
  816. package/dist/_shared/popover-menu-qxBZlTck.js.map +0 -1
  817. package/dist/_shared/popover-menu-z9QTjl4o.cjs +0 -2
  818. package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +0 -1
  819. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +0 -2
  820. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +0 -1
  821. package/dist/_shared/rich-text-editor-VIBlL0x3.js +0 -620
  822. package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +0 -1
  823. package/dist/_shared/settings-Bfr6PgSi.cjs +0 -2
  824. package/dist/_shared/settings-Bfr6PgSi.cjs.map +0 -1
  825. package/dist/_shared/settings-CrPaYr4A.js +0 -143
  826. package/dist/_shared/settings-CrPaYr4A.js.map +0 -1
  827. package/dist/_shared/sidebar-CDOLD8fN.js +0 -548
  828. package/dist/_shared/sidebar-CDOLD8fN.js.map +0 -1
  829. package/dist/_shared/sidebar-DcsxeNml.cjs +0 -2
  830. package/dist/_shared/sidebar-DcsxeNml.cjs.map +0 -1
  831. package/dist/_shared/spinner-D35zNriU.cjs +0 -2
  832. package/dist/_shared/spinner-D35zNriU.cjs.map +0 -1
  833. package/dist/_shared/spinner-DMC2IIml.js +0 -67
  834. package/dist/_shared/spinner-DMC2IIml.js.map +0 -1
  835. package/dist/_shared/table-B_pqCQxC.js +0 -1377
  836. package/dist/_shared/table-B_pqCQxC.js.map +0 -1
  837. package/dist/_shared/table-CGVOXtdv.cjs +0 -2
  838. package/dist/_shared/table-CGVOXtdv.cjs.map +0 -1
  839. package/dist/_shared/textarea-B24qgdmd.cjs +0 -2
  840. package/dist/_shared/textarea-B24qgdmd.cjs.map +0 -1
  841. package/dist/_shared/textarea-ChLRmmVU.js +0 -118
  842. package/dist/_shared/textarea-ChLRmmVU.js.map +0 -1
  843. package/dist/_shared/typography-CO9uwZhF.cjs +0 -2
  844. package/dist/_shared/typography-CO9uwZhF.cjs.map +0 -1
  845. package/dist/_shared/typography-DE0NGEIE.js +0 -201
  846. package/dist/_shared/typography-DE0NGEIE.js.map +0 -1
  847. package/dist/_shared/workspace-C1twu23r.cjs +0 -2
  848. package/dist/_shared/workspace-C1twu23r.cjs.map +0 -1
  849. package/dist/_shared/workspace-CkOZLdcN.js +0 -357
  850. package/dist/_shared/workspace-CkOZLdcN.js.map +0 -1
  851. package/dist/showcase/assets/AreaChart-WJREayr9.js +0 -6
  852. package/dist/showcase/assets/CompositeItem-CY3XmFuI.js +0 -1
  853. package/dist/showcase/assets/CompositeRoot-BPMF0t1F.js +0 -1
  854. package/dist/showcase/assets/DialogTrigger-BzaF3YN8.js +0 -1
  855. package/dist/showcase/assets/LabelableContext-LKvvFFnV.js +0 -1
  856. package/dist/showcase/assets/PreviewLayout-B0n7l00P.js +0 -1
  857. package/dist/showcase/assets/RadioGroup-VBtGFETg.js +0 -1
  858. package/dist/showcase/assets/ScrollAreaCorner-BimGwdGs.js +0 -1
  859. package/dist/showcase/assets/Separator-BfKe0YiY.js +0 -1
  860. package/dist/showcase/assets/ToolbarRootContext-Cscyv1PN.js +0 -1
  861. package/dist/showcase/assets/accordion-BEN0VkL4.js +0 -171
  862. package/dist/showcase/assets/accordion-variants-QFG3H38z.js +0 -1
  863. package/dist/showcase/assets/action-menu-Bfw1tFqM.js +0 -1
  864. package/dist/showcase/assets/actions-CFpHs5IC.js +0 -310
  865. package/dist/showcase/assets/activities-CDxlaghU.js +0 -500
  866. package/dist/showcase/assets/activities-feed-card-BO1kcjRK.js +0 -1
  867. package/dist/showcase/assets/admin-DFpHXeuv.js +0 -140
  868. package/dist/showcase/assets/ai-DyO6VqQP.js +0 -207
  869. package/dist/showcase/assets/ai-artifact-MVA3ikv6.js +0 -2
  870. package/dist/showcase/assets/ai-chat-D-xcp6Jf.js +0 -568
  871. package/dist/showcase/assets/ai-elements-DlFqIOYp.js +0 -387
  872. package/dist/showcase/assets/ai-tool-call-DedG9TdK.js +0 -1
  873. package/dist/showcase/assets/alert-CmRK2lOe.js +0 -1
  874. package/dist/showcase/assets/alert-DCIVryEp.js +0 -62
  875. package/dist/showcase/assets/alert-DDP3Ktic.js +0 -93
  876. package/dist/showcase/assets/api-key-list-CWa997YX.js +0 -1
  877. package/dist/showcase/assets/api-key-list-mTPebHF3.js +0 -73
  878. package/dist/showcase/assets/app-sidebar-Cnfk9z5K.js +0 -1
  879. package/dist/showcase/assets/arrow-down-CCYWFimd.js +0 -1
  880. package/dist/showcase/assets/arrow-left-CrYjfZJ0.js +0 -1
  881. package/dist/showcase/assets/arrow-right-eLxbBrdm.js +0 -1
  882. package/dist/showcase/assets/arrow-up-kA33fcPv.js +0 -1
  883. package/dist/showcase/assets/arrow-up-right-BSWGQVDB.js +0 -1
  884. package/dist/showcase/assets/avatar-BDGhB3aA.js +0 -57
  885. package/dist/showcase/assets/avatar-CLBQvnYG.js +0 -1
  886. package/dist/showcase/assets/avatar-WUMW3Qjo.js +0 -1
  887. package/dist/showcase/assets/avatar-cKSNuTzf.js +0 -67
  888. package/dist/showcase/assets/badge--mqVg8Ry.js +0 -31
  889. package/dist/showcase/assets/badge-check-D7YjWqnm.js +0 -1
  890. package/dist/showcase/assets/bell-6YyocFK6.js +0 -1
  891. package/dist/showcase/assets/bot-BC4pGAB3.js +0 -1
  892. package/dist/showcase/assets/box-CPGIu4Nv.js +0 -1
  893. package/dist/showcase/assets/braces-9jywZtTA.js +0 -1
  894. package/dist/showcase/assets/brain-wf_S427C.js +0 -1
  895. package/dist/showcase/assets/brand-78lhbKSW.js +0 -36
  896. package/dist/showcase/assets/breadcrumb-6XHObtqO.js +0 -1
  897. package/dist/showcase/assets/breadcrumb-BVrrS53_.js +0 -52
  898. package/dist/showcase/assets/breadcrumbs-BwC3Iaae.js +0 -1
  899. package/dist/showcase/assets/briefcase-BViWYew9.js +0 -1
  900. package/dist/showcase/assets/building-2-CwR3gV1I.js +0 -1
  901. package/dist/showcase/assets/button-BWwsy37B.js +0 -44
  902. package/dist/showcase/assets/button-group-BTiMRQIO.js +0 -1
  903. package/dist/showcase/assets/buttons-D9pH8hPs.js +0 -272
  904. package/dist/showcase/assets/calendar-Bzl2i1lu.js +0 -1
  905. package/dist/showcase/assets/calendar-CNMlC7Fn.js +0 -16
  906. package/dist/showcase/assets/calendar-D5NdEmaD.js +0 -1
  907. package/dist/showcase/assets/calendar-days-j8QDBUc5.js +0 -1
  908. package/dist/showcase/assets/camera-Cwb84N8a.js +0 -1
  909. package/dist/showcase/assets/card-CX3vQ2Te.js +0 -1
  910. package/dist/showcase/assets/card-FLJkfdKP.js +0 -188
  911. package/dist/showcase/assets/card-primitives-C2s13Uvp.js +0 -1
  912. package/dist/showcase/assets/card-radio-group-BP27dErL.js +0 -1
  913. package/dist/showcase/assets/cards-DcdxRM9W.js +0 -354
  914. package/dist/showcase/assets/carousel-CTKyiHD2.js +0 -449
  915. package/dist/showcase/assets/cell-renderers-ouSypXTE.js +0 -1
  916. package/dist/showcase/assets/chart-CMsMyCah.js +0 -358
  917. package/dist/showcase/assets/chart-column-BrwpEFzy.js +0 -1
  918. package/dist/showcase/assets/checkbox-4qgEfnjv.js +0 -1
  919. package/dist/showcase/assets/checkbox-ratLYBAF.js +0 -1
  920. package/dist/showcase/assets/chevron-down-BInaIfd1.js +0 -1
  921. package/dist/showcase/assets/chevron-left-Bjy3FJ_M.js +0 -1
  922. package/dist/showcase/assets/chevron-up-Ufl6UEyV.js +0 -1
  923. package/dist/showcase/assets/chevrons-up-down-CrOH-P5z.js +0 -1
  924. package/dist/showcase/assets/circle-G0dEx2Ay.js +0 -1
  925. package/dist/showcase/assets/circle-alert-CiibDCe8.js +0 -1
  926. package/dist/showcase/assets/circle-check-Bqm54c03.js +0 -1
  927. package/dist/showcase/assets/circle-check-big-BfiY_qy_.js +0 -1
  928. package/dist/showcase/assets/circle-dot-VNm7CEgH.js +0 -1
  929. package/dist/showcase/assets/circle-question-mark-mM7PKy4G.js +0 -1
  930. package/dist/showcase/assets/circle-x-2tzzp_vB.js +0 -1
  931. package/dist/showcase/assets/clock-3-CfdZnMP2.js +0 -1
  932. package/dist/showcase/assets/clock-ByB7C11p.js +0 -1
  933. package/dist/showcase/assets/code-xml-D2fN-BaU.js +0 -1
  934. package/dist/showcase/assets/collapsible-B2lI_uVI.js +0 -1
  935. package/dist/showcase/assets/collapsible-Bs5YFx-M.js +0 -27
  936. package/dist/showcase/assets/combobox-BqNSwFaM.js +0 -685
  937. package/dist/showcase/assets/command-Dcbh_YP-.js +0 -1
  938. package/dist/showcase/assets/command-Mb30xkwq.js +0 -1
  939. package/dist/showcase/assets/comment-composer-DqTw0zIM.js +0 -1
  940. package/dist/showcase/assets/comment-item-DbQAZ3yP.js +0 -1
  941. package/dist/showcase/assets/comments-CGMOOi7k.js +0 -357
  942. package/dist/showcase/assets/commerce-bVpLHwpS.js +0 -267
  943. package/dist/showcase/assets/composite-CTpmYme_.js +0 -1
  944. package/dist/showcase/assets/contact-card-nuS10UKK.js +0 -65
  945. package/dist/showcase/assets/content-container-NexBp0FV.js +0 -1
  946. package/dist/showcase/assets/copyable-CNltkC2A.js +0 -1
  947. package/dist/showcase/assets/copyable-qr6--oJx.js +0 -96
  948. package/dist/showcase/assets/course-card-0kkl37FX.js +0 -77
  949. package/dist/showcase/assets/cpu-DSD9h0l5.js +0 -1
  950. package/dist/showcase/assets/credit-card-CN0E6FU8.js +0 -1
  951. package/dist/showcase/assets/css-variables-CzmmLWxt.js +0 -1190
  952. package/dist/showcase/assets/currency-BtofP745.js +0 -149
  953. package/dist/showcase/assets/dark-surfaces-BU7kfTIi.js +0 -90
  954. package/dist/showcase/assets/data-view-3W7_KBli.js +0 -124
  955. package/dist/showcase/assets/data-view-snL5QtHe.js +0 -4
  956. package/dist/showcase/assets/database-BarEYzaF.js +0 -1
  957. package/dist/showcase/assets/date-block-dTt9Rcfd.js +0 -1
  958. package/dist/showcase/assets/date-picker-BKzZeQGc.js +0 -1
  959. package/dist/showcase/assets/date-pickers-CYERVYRo.js +0 -73
  960. package/dist/showcase/assets/dense-info-hnKZfRnQ.js +0 -106
  961. package/dist/showcase/assets/design-system-consistency-D6qngflS.js +0 -264
  962. package/dist/showcase/assets/dialog-mO0FpHmT.js +0 -1
  963. package/dist/showcase/assets/dialog-xbuhPXmf.js +0 -1
  964. package/dist/showcase/assets/display-utilities-C4IflxoK.js +0 -267
  965. package/dist/showcase/assets/dist-BFChHTWK.js +0 -45
  966. package/dist/showcase/assets/dist-BkVfs5PY.js +0 -1
  967. package/dist/showcase/assets/dollar-sign-BES-Y4q8.js +0 -1
  968. package/dist/showcase/assets/download-CuEg-4DT.js +0 -1
  969. package/dist/showcase/assets/dropdown-menu-C4Fcfk9z.js +0 -1
  970. package/dist/showcase/assets/dropzone-CrJ_k9fJ.js +0 -1
  971. package/dist/showcase/assets/earth-Cmx-Axig.js +0 -1
  972. package/dist/showcase/assets/ellipsis-Co7iTzp_.js +0 -1
  973. package/dist/showcase/assets/ellipsis-vertical-DMYJFiqQ.js +0 -1
  974. package/dist/showcase/assets/empty-Dw4ozyll.js +0 -1
  975. package/dist/showcase/assets/empty-item-DQwAsl0J.js +0 -49
  976. package/dist/showcase/assets/empty-state-BKvbnAy1.js +0 -1
  977. package/dist/showcase/assets/empty-state-Dv6f2fmP.js +0 -190
  978. package/dist/showcase/assets/enhanced-activities-Ctmivg46.js +0 -357
  979. package/dist/showcase/assets/enhanced-combobox-D0AsPZ-b.js +0 -1
  980. package/dist/showcase/assets/esm-oZ6qcNoa.js +0 -2
  981. package/dist/showcase/assets/event-calendar-ChXdeehr.js +0 -138
  982. package/dist/showcase/assets/event-log-DeOCb2tT.js +0 -330
  983. package/dist/showcase/assets/example-CDvNeHNP.js +0 -1
  984. package/dist/showcase/assets/external-link-BaiCqIx3.js +0 -1
  985. package/dist/showcase/assets/eye-zG-fqYfd.js +0 -1
  986. package/dist/showcase/assets/feature-announcement-C2XGWNgI.js +0 -34
  987. package/dist/showcase/assets/file-sAbDfDuO.js +0 -1
  988. package/dist/showcase/assets/file-text-Boa9IOND.js +0 -1
  989. package/dist/showcase/assets/filter-layout-tZmZz-2B.js +0 -1
  990. package/dist/showcase/assets/filters-D8gEkDAE.js +0 -139
  991. package/dist/showcase/assets/flag-Cu20rcE4.js +0 -1
  992. package/dist/showcase/assets/folder-open-Cuk6KKLi.js +0 -1
  993. package/dist/showcase/assets/form-field-D8sL8tat.js +0 -1
  994. package/dist/showcase/assets/form-sizing-C3UG5WKC.js +0 -1
  995. package/dist/showcase/assets/format-CaRklI--.js +0 -1
  996. package/dist/showcase/assets/forms-CNk2oX65.js +0 -915
  997. package/dist/showcase/assets/funnel-B2kBprKZ.js +0 -1
  998. package/dist/showcase/assets/generic-oWYKMvId.js +0 -1
  999. package/dist/showcase/assets/getPseudoElementBounds-GjucWEcD.js +0 -1
  1000. package/dist/showcase/assets/gift-C_D_-5GL.js +0 -1
  1001. package/dist/showcase/assets/giftcard-cards-B4DDGzdi.js +0 -85
  1002. package/dist/showcase/assets/git-branch-DlTTLnjW.js +0 -1
  1003. package/dist/showcase/assets/global-search-BjHAfaqS.js +0 -215
  1004. package/dist/showcase/assets/global-search-hKQWHfrf.js +0 -1
  1005. package/dist/showcase/assets/globe-D-gH7XQ2.js +0 -1
  1006. package/dist/showcase/assets/gradient-card-jVxEisUP.js +0 -58
  1007. package/dist/showcase/assets/hash-DySqEhph.js +0 -1
  1008. package/dist/showcase/assets/header-B8hHkAVl.js +0 -1
  1009. package/dist/showcase/assets/header-notifications-s180jNb1.js +0 -1
  1010. package/dist/showcase/assets/heart-DDFCk8Tb.js +0 -1
  1011. package/dist/showcase/assets/hooks-0A_FzYrt.js +0 -220
  1012. package/dist/showcase/assets/house-BqE1X-Wf.js +0 -1
  1013. package/dist/showcase/assets/icon-badge-CyiMjD7j.js +0 -37
  1014. package/dist/showcase/assets/icon-badge-fJVhEHym.js +0 -1
  1015. package/dist/showcase/assets/image-DCtwKHqe.js +0 -1
  1016. package/dist/showcase/assets/inbox-DZA-pAGB.js +0 -1
  1017. package/dist/showcase/assets/index-B37z19z3.js +0 -10
  1018. package/dist/showcase/assets/index-CIsKgiSF.css +0 -2
  1019. package/dist/showcase/assets/inertValue-SPYMBsOM.js +0 -1
  1020. package/dist/showcase/assets/info-DrfDr3GT.js +0 -1
  1021. package/dist/showcase/assets/inline-stat-BVJNx4xR.js +0 -1
  1022. package/dist/showcase/assets/inline-stat-C3cWbSUK.js +0 -15
  1023. package/dist/showcase/assets/input-CKTTGrnR.js +0 -1
  1024. package/dist/showcase/assets/input-UHuWYPMF.js +0 -1
  1025. package/dist/showcase/assets/input-group-BR_lU__a.js +0 -1
  1026. package/dist/showcase/assets/input-group-iZaLbsTP.js +0 -47
  1027. package/dist/showcase/assets/inputs-C7j8Xivm.js +0 -155
  1028. package/dist/showcase/assets/installation-DYnTwaPR.js +0 -134
  1029. package/dist/showcase/assets/invoice-header-D_0KvXQe.js +0 -36
  1030. package/dist/showcase/assets/invoice-items-jcNb-sST.js +0 -36
  1031. package/dist/showcase/assets/invoice-mini-DrZAbjPq.js +0 -14
  1032. package/dist/showcase/assets/invoice-table-DlAw0U4U.js +0 -30
  1033. package/dist/showcase/assets/isSameDay-Cl6v_syG.js +0 -1
  1034. package/dist/showcase/assets/isToday-BBoFjSnJ.js +0 -1
  1035. package/dist/showcase/assets/italic-j2U8krYa.js +0 -1
  1036. package/dist/showcase/assets/item-B2WoC1SD.js +0 -139
  1037. package/dist/showcase/assets/item-BMJ5hfT5.js +0 -1
  1038. package/dist/showcase/assets/item-C_5-EHNK.js +0 -1
  1039. package/dist/showcase/assets/kanban-Cv64Szxq.js +0 -188
  1040. package/dist/showcase/assets/key-round-CORDYqE2.js +0 -1
  1041. package/dist/showcase/assets/label-B0UjYqfw.js +0 -1
  1042. package/dist/showcase/assets/languages-Njdo5y8i.js +0 -1
  1043. package/dist/showcase/assets/layers-Dyew-8IP.js +0 -1
  1044. package/dist/showcase/assets/layout-app-shell-DEZt0d84.js +0 -608
  1045. package/dist/showcase/assets/layout-auth-BT84haSd.js +0 -790
  1046. package/dist/showcase/assets/layout-containers-D6SP4vRB.js +0 -101
  1047. package/dist/showcase/assets/layout-header-kLYjJnHz.js +0 -203
  1048. package/dist/showcase/assets/layout-page-CmS4d8jw.js +0 -314
  1049. package/dist/showcase/assets/layout-primitives-BW858Ymj.js +0 -34
  1050. package/dist/showcase/assets/layout-sidebar-eIDEoyzV.js +0 -224
  1051. package/dist/showcase/assets/layout-users-HyZHQIov.js +0 -117
  1052. package/dist/showcase/assets/layout-workspace-BrDwVUvn.js +0 -191
  1053. package/dist/showcase/assets/lib-Dhty05ZR.js +0 -1
  1054. package/dist/showcase/assets/list-checks-CcWjdDq8.js +0 -1
  1055. package/dist/showcase/assets/lock-CwH3bXx5.js +0 -1
  1056. package/dist/showcase/assets/lock-keyhole-BdBxeIkW.js +0 -1
  1057. package/dist/showcase/assets/mail-Cn94c8yp.js +0 -1
  1058. package/dist/showcase/assets/mail-check-D-q_vPxD.js +0 -1
  1059. package/dist/showcase/assets/map-BfUZMScw.js +0 -124
  1060. package/dist/showcase/assets/map-pin-BZB9GUXP.js +0 -1
  1061. package/dist/showcase/assets/media-library-DguE2q94.js +0 -699
  1062. package/dist/showcase/assets/mention-inline-suggestions-CyGplHOl.js +0 -1
  1063. package/dist/showcase/assets/mentions-lmr_XmfN.js +0 -138
  1064. package/dist/showcase/assets/menus-D0qYbzKk.js +0 -171
  1065. package/dist/showcase/assets/message-square-7VpiUwcS.js +0 -1
  1066. package/dist/showcase/assets/metadata-list-B8O2ljIS.js +0 -1
  1067. package/dist/showcase/assets/metadata-list-BcYg9Ru3.js +0 -286
  1068. package/dist/showcase/assets/metric-HzQnjCpO.js +0 -1
  1069. package/dist/showcase/assets/metric-bar-Fr1TDnSu.js +0 -1
  1070. package/dist/showcase/assets/metric-grid-CM-P894v.js +0 -1
  1071. package/dist/showcase/assets/metric-trend-chip-DqYH_U8e.js +0 -1
  1072. package/dist/showcase/assets/metrics-analytics-bar-DKRLzyXq.js +0 -44
  1073. package/dist/showcase/assets/metrics-analytics-cards-qMbAYBbk.js +0 -50
  1074. package/dist/showcase/assets/metrics-comparison-GSWVebL_.js +0 -76
  1075. package/dist/showcase/assets/metrics-heatmap-Fj5QZoO3.js +0 -27
  1076. package/dist/showcase/assets/metrics-inline-badge-BuyhiYDl.js +0 -17
  1077. package/dist/showcase/assets/metrics-kpi-row-xNn4bjZc.js +0 -31
  1078. package/dist/showcase/assets/metrics-micro-grid-W_ZYCffp.js +0 -42
  1079. package/dist/showcase/assets/metrics-overview-D-km110k.js +0 -192
  1080. package/dist/showcase/assets/metrics-stat-cards-odVtufFY.js +0 -54
  1081. package/dist/showcase/assets/minus-DZsXg5PW.js +0 -1
  1082. package/dist/showcase/assets/money-display-C7Hp2pT3.js +0 -1
  1083. package/dist/showcase/assets/month-year-picker-Dnr4J0mO.js +0 -1
  1084. package/dist/showcase/assets/navigation-0nrtBP5O.js +0 -90
  1085. package/dist/showcase/assets/navigation-BaWNq9oa.js +0 -231
  1086. package/dist/showcase/assets/navigation-extras-B22W1Vkk.js +0 -43
  1087. package/dist/showcase/assets/onboarding-checklist-BFj7rmdZ.js +0 -119
  1088. package/dist/showcase/assets/overflow-tab-bar-D_rltswa.js +0 -1
  1089. package/dist/showcase/assets/overlays-CNfiB-zF.js +0 -408
  1090. package/dist/showcase/assets/overlays-CuxuFGC8.js +0 -159
  1091. package/dist/showcase/assets/overview-CBmdAWO6.js +0 -184
  1092. package/dist/showcase/assets/package-BwwfLMWb.js +0 -1
  1093. package/dist/showcase/assets/package-check-BepTKJLy.js +0 -1
  1094. package/dist/showcase/assets/page-_JDFUWqe.js +0 -1
  1095. package/dist/showcase/assets/page-action-button-Cf34I-B2.js +0 -1
  1096. package/dist/showcase/assets/page-header-pdHFvyTo.js +0 -1
  1097. package/dist/showcase/assets/pagination-Db1WJvjK.js +0 -42
  1098. package/dist/showcase/assets/pagination-s8_MGk9D.js +0 -1
  1099. package/dist/showcase/assets/paperclip-B9HQ47_2.js +0 -1
  1100. package/dist/showcase/assets/password-input-D-eZWMGX.js +0 -1
  1101. package/dist/showcase/assets/pencil-Dm53P6Db.js +0 -1
  1102. package/dist/showcase/assets/phone-a4Ja9xAp.js +0 -1
  1103. package/dist/showcase/assets/plus-DbOlx2x0.js +0 -1
  1104. package/dist/showcase/assets/popover-B8qrRgt3.js +0 -1
  1105. package/dist/showcase/assets/popover-Bm5wETUP.js +0 -1
  1106. package/dist/showcase/assets/popover-menu-EH4P-BuI.js +0 -1
  1107. package/dist/showcase/assets/products-n6VBSMDh.js +0 -423
  1108. package/dist/showcase/assets/progress-D9r6PSCF.js +0 -1
  1109. package/dist/showcase/assets/progress-DVnMcpeq.js +0 -18
  1110. package/dist/showcase/assets/props-table-udnF7Z46.js +0 -1
  1111. package/dist/showcase/assets/quote-qVQF4JC7.js +0 -1
  1112. package/dist/showcase/assets/receipt-DaC4l-Mr.js +0 -1
  1113. package/dist/showcase/assets/receipt-text-BnwhWHdU.js +0 -1
  1114. package/dist/showcase/assets/refinement-guide-zBbAE-vw.js +0 -189
  1115. package/dist/showcase/assets/refresh-cw-CX6ghqEe.js +0 -1
  1116. package/dist/showcase/assets/resolveValueLabel-Cjbd_80A.js +0 -1
  1117. package/dist/showcase/assets/resource-D1fXD_Pt.js +0 -139
  1118. package/dist/showcase/assets/resource-i2YV9aHL.js +0 -1
  1119. package/dist/showcase/assets/resource-selector-card-CdQEPr9U.js +0 -43
  1120. package/dist/showcase/assets/rich-text-editor-DJ2i03XV.js +0 -143
  1121. package/dist/showcase/assets/rich-text-editor-Wh8r117d.js +0 -124
  1122. package/dist/showcase/assets/rotate-ccw-2_FhUcdG.js +0 -1
  1123. package/dist/showcase/assets/route-EGSdKgEp.js +0 -1
  1124. package/dist/showcase/assets/save-nXKvyYEx.js +0 -1
  1125. package/dist/showcase/assets/schema-form-D_9UkVBe.js +0 -327
  1126. package/dist/showcase/assets/scroll-area-CB7X4JqZ.js +0 -1
  1127. package/dist/showcase/assets/scroll-area-DCHN9iYj.js +0 -32
  1128. package/dist/showcase/assets/section-C2ovQgbv.js +0 -1
  1129. package/dist/showcase/assets/select-BTOraQSw.js +0 -1
  1130. package/dist/showcase/assets/select-CE0BbUs7.js +0 -1
  1131. package/dist/showcase/assets/send-CI0r12bX.js +0 -1
  1132. package/dist/showcase/assets/separator-CmGfh7lI.js +0 -1
  1133. package/dist/showcase/assets/separator-PhQTNRIB.js +0 -28
  1134. package/dist/showcase/assets/settings-2-qkVb0lyz.js +0 -1
  1135. package/dist/showcase/assets/settings-YXjlZ9zs.js +0 -1
  1136. package/dist/showcase/assets/sheet-CFDUB2H1.js +0 -1
  1137. package/dist/showcase/assets/shield-Dr_UeG6H.js +0 -1
  1138. package/dist/showcase/assets/shield-alert-7rAVXg-K.js +0 -1
  1139. package/dist/showcase/assets/shield-check-BbzHL-nM.js +0 -1
  1140. package/dist/showcase/assets/shopping-bag-DeprN0fB.js +0 -1
  1141. package/dist/showcase/assets/showcase-BU6Fvpg_.js +0 -132
  1142. package/dist/showcase/assets/sidebar-CudnhnWN.js +0 -1
  1143. package/dist/showcase/assets/sidebar.context-CZaDhRhh.js +0 -1
  1144. package/dist/showcase/assets/skeleton-DD6VPVrv.js +0 -1
  1145. package/dist/showcase/assets/skeleton-Dc5LvW7E.js +0 -29
  1146. package/dist/showcase/assets/slider-BxvP9nxk.js +0 -1
  1147. package/dist/showcase/assets/smart-card-B0Llbpiy.js +0 -1
  1148. package/dist/showcase/assets/sonner-mszFoDWT.js +0 -22
  1149. package/dist/showcase/assets/sortable.esm-J5bJPtH9.js +0 -5
  1150. package/dist/showcase/assets/sparkles-CQSdl3Gw.js +0 -1
  1151. package/dist/showcase/assets/spinner-BSxBn2qs.js +0 -49
  1152. package/dist/showcase/assets/spinner-DJxoGJtq.js +0 -30
  1153. package/dist/showcase/assets/spinner-DihTCcve.js +0 -1
  1154. package/dist/showcase/assets/square-pen-CGMSA_p6.js +0 -1
  1155. package/dist/showcase/assets/stacked-avatars-Ct8B4doW.js +0 -1
  1156. package/dist/showcase/assets/star-DFlmmJdh.js +0 -1
  1157. package/dist/showcase/assets/startOfDay-BedffeNt.js +0 -1
  1158. package/dist/showcase/assets/styles-jR6uS97D.js +0 -1
  1159. package/dist/showcase/assets/suggestions-DnjJ-U9n.js +0 -126
  1160. package/dist/showcase/assets/switch-Dkojf4Yd.js +0 -1
  1161. package/dist/showcase/assets/switch-bTb6CSLr.js +0 -1
  1162. package/dist/showcase/assets/sync-rk8eFwoJ.js +0 -124
  1163. package/dist/showcase/assets/table-4qIerTVI.js +0 -686
  1164. package/dist/showcase/assets/table-BjMmmYd7.js +0 -1
  1165. package/dist/showcase/assets/table-actions-DqofOI1V.js +0 -1
  1166. package/dist/showcase/assets/tabs-BV6mMsfk.js +0 -19
  1167. package/dist/showcase/assets/tabs-u2fkHRw8.js +0 -1
  1168. package/dist/showcase/assets/tags-input-Cu_UwlwT.js +0 -1
  1169. package/dist/showcase/assets/text-button-Fyy21evq.js +0 -1
  1170. package/dist/showcase/assets/text-link-WRyY3ZZo.js +0 -1
  1171. package/dist/showcase/assets/textarea-BbCxWNzV.js +0 -1
  1172. package/dist/showcase/assets/textarea-CtD7JQsv.js +0 -1
  1173. package/dist/showcase/assets/timelines-BBPQpCFX.js +0 -200
  1174. package/dist/showcase/assets/toggle-group-B8mQ6wer.js +0 -1
  1175. package/dist/showcase/assets/toggles-CCClWVXZ.js +0 -71
  1176. package/dist/showcase/assets/toggles-group-DgCilPMo.js +0 -32
  1177. package/dist/showcase/assets/tooltip-ClJCWWTI.js +0 -31
  1178. package/dist/showcase/assets/trash-2-Cs7y4-K-.js +0 -1
  1179. package/dist/showcase/assets/trending-up-spYhMxs6.js +0 -1
  1180. package/dist/showcase/assets/truck-DENWgqxK.js +0 -1
  1181. package/dist/showcase/assets/typography-DMmYNFQj.js +0 -223
  1182. package/dist/showcase/assets/ui-badge-BJEtsa7X.js +0 -28
  1183. package/dist/showcase/assets/ui-card-CrPKoi3P.js +0 -30
  1184. package/dist/showcase/assets/ui-table-2HhDwPcu.js +0 -42
  1185. package/dist/showcase/assets/upload-tray-CUZAErkI.js +0 -138
  1186. package/dist/showcase/assets/use-layout-link-Co3GiFmb.js +0 -1
  1187. package/dist/showcase/assets/useAnchoredPopupScrollLock-DgIA0IXg.js +0 -1
  1188. package/dist/showcase/assets/useAriaLabelledBy-CDdoyQgg.js +0 -1
  1189. package/dist/showcase/assets/useCollapsiblePanel-BT0RSjGM.js +0 -1
  1190. package/dist/showcase/assets/useCompositeItem-DFghnuRZ.js +0 -1
  1191. package/dist/showcase/assets/useCompositeListItem-vXyRoJ2x.js +0 -1
  1192. package/dist/showcase/assets/useLabelableId-D__l5sQX.js +0 -1
  1193. package/dist/showcase/assets/useOpenInteractionType-bZIaLWfE.js +0 -1
  1194. package/dist/showcase/assets/useRender-BV0akLbc.js +0 -1
  1195. package/dist/showcase/assets/useTriggerFocusGuards-dYriJrQP.js +0 -1
  1196. package/dist/showcase/assets/useValueChanged-Dg0AWST0.js +0 -1
  1197. package/dist/showcase/assets/user-B9eCi5Vl.js +0 -1
  1198. package/dist/showcase/assets/user-plus-Uo4IAY7e.js +0 -1
  1199. package/dist/showcase/assets/users-DLep-WjV.js +0 -1
  1200. package/dist/showcase/assets/vendor-profile-BbcE51Pa.js +0 -37
  1201. package/dist/showcase/assets/video-BasdlaQE.js +0 -1
  1202. package/dist/showcase/assets/wrench-BYUVe1-z.js +0 -1
  1203. package/dist/showcase/assets/x-Bx9ayVXr.js +0 -1
  1204. package/dist/showcase/assets/zap-Mgu5HEtF.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-CKqQF4_r.js","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 text-xs\"\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-B4oBB5BJ.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-DcCkbP1F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-DcCkbP1F.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-DvUA9Pr2.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-RkLytuGj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-RkLytuGj.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-Dj6OSOZi.js";
3
+ import { cn as n } from "../lib/utils.js";
4
+ import { s as r } from "./typography-DXvCmE8w.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-Cin0qpjj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-Cin0qpjj.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-DZWtUXf2.cjs"),r=require("../lib/utils.cjs"),i=require("./typography-pzCKaFOc.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-uuWeiagN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-uuWeiagN.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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"}