admin-ui-starter-kit 0.6.9 → 0.7.0

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 (1355) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +29 -1
  2. package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +14 -0
  3. package/.agents/skills/admin-ui-consumer-migration/references/theme-overrides.md +172 -0
  4. package/.agents/skills/component-library-rules/SKILL.md +5 -4
  5. package/.agents/skills/component-library-rules/references/components/INDEX.json +22 -3
  6. package/.agents/skills/component-library-rules/references/components/INDEX.md +21 -2
  7. package/.agents/skills/component-library-rules/references/components/base__avatar.md +3 -3
  8. package/.agents/skills/component-library-rules/references/components/base__carousel.md +8 -5
  9. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +1 -0
  10. package/.agents/skills/component-library-rules/references/components/base__currency.md +10 -11
  11. package/.agents/skills/component-library-rules/references/components/base__item.md +7 -7
  12. package/.agents/skills/component-library-rules/references/components/base__money-display.md +4 -0
  13. package/.agents/skills/component-library-rules/references/components/base__typography.md +3 -3
  14. package/.agents/skills/component-library-rules/references/components/composed__commerce-address-card.md +74 -0
  15. package/.agents/skills/component-library-rules/references/components/composed__commerce-cart-summary.md +84 -0
  16. package/.agents/skills/component-library-rules/references/components/composed__commerce-coupon-input.md +52 -0
  17. package/.agents/skills/component-library-rules/references/components/composed__commerce-discount-stack.md +58 -0
  18. package/.agents/skills/component-library-rules/references/components/composed__commerce-inventory-section.md +168 -0
  19. package/.agents/skills/component-library-rules/references/components/composed__commerce-loyalty-points.md +60 -0
  20. package/.agents/skills/component-library-rules/references/components/composed__commerce-order-status.md +62 -0
  21. package/.agents/skills/component-library-rules/references/components/composed__commerce-payment-method.md +58 -0
  22. package/.agents/skills/component-library-rules/references/components/composed__commerce-refund-status.md +58 -0
  23. package/.agents/skills/component-library-rules/references/components/composed__commerce-seo-listing.md +106 -0
  24. package/.agents/skills/component-library-rules/references/components/composed__commerce-shipment-tracking.md +65 -0
  25. package/.agents/skills/component-library-rules/references/components/composed__commerce-subscription-summary.md +66 -0
  26. package/.agents/skills/component-library-rules/references/components/composed__commerce-tax-breakdown.md +60 -0
  27. package/.agents/skills/component-library-rules/references/components/composed__commerce-upcoming-booking.md +62 -0
  28. package/.agents/skills/component-library-rules/references/components/composed__commerce-voucher-entry.md +60 -0
  29. package/.agents/skills/component-library-rules/references/components/composed__commerce.md +29 -143
  30. package/.agents/skills/component-library-rules/references/components/features__products.md +18 -462
  31. package/.agents/skills/component-library-rules/references/components/features__products__actions.md +37 -0
  32. package/.agents/skills/component-library-rules/references/components/features__products__support-rail.md +73 -0
  33. package/.agents/skills/component-library-rules/references/components/features__products__variant-details.md +97 -0
  34. package/.agents/skills/component-library-rules/references/components/features__products__variant-management.md +269 -0
  35. package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +1 -1
  36. package/.agents/skills/component-library-rules/references/testing.md +1 -1
  37. package/.agents/skills/token-system/SKILL.md +4 -1
  38. package/AGENTS.md +4 -3
  39. package/COMPONENT_SELECTION.md +15 -0
  40. package/INTEGRATION.md +41 -2
  41. package/MIGRATION.md +7 -7
  42. package/README.md +7 -3
  43. package/dist/_shared/accordion-CSRRDWVZ.js +135 -0
  44. package/dist/_shared/accordion-CSRRDWVZ.js.map +1 -0
  45. package/dist/_shared/accordion-ClVkIaCy.cjs +2 -0
  46. package/dist/_shared/accordion-ClVkIaCy.cjs.map +1 -0
  47. package/dist/_shared/action-menu-8RN2_Jdr.js +96 -0
  48. package/dist/_shared/action-menu-8RN2_Jdr.js.map +1 -0
  49. package/dist/_shared/action-menu-Cx2xaBjN.cjs +2 -0
  50. package/dist/_shared/action-menu-Cx2xaBjN.cjs.map +1 -0
  51. package/dist/_shared/ai-artifact-BO0XGFHz.cjs +3 -0
  52. package/dist/_shared/ai-artifact-BO0XGFHz.cjs.map +1 -0
  53. package/dist/_shared/ai-artifact-CbsGR1t8.js +1099 -0
  54. package/dist/_shared/ai-artifact-CbsGR1t8.js.map +1 -0
  55. package/dist/_shared/auth-CwipRgNB.cjs +2 -0
  56. package/dist/_shared/auth-CwipRgNB.cjs.map +1 -0
  57. package/dist/_shared/auth-Wipu0Oa_.js +643 -0
  58. package/dist/_shared/auth-Wipu0Oa_.js.map +1 -0
  59. package/dist/_shared/badge-B0Ashqkn.cjs +2 -0
  60. package/dist/_shared/badge-B0Ashqkn.cjs.map +1 -0
  61. package/dist/_shared/badge-DOJpEtsa.js +110 -0
  62. package/dist/_shared/badge-DOJpEtsa.js.map +1 -0
  63. package/dist/_shared/breadcrumbs-C7PI8sxx.cjs +2 -0
  64. package/dist/_shared/breadcrumbs-C7PI8sxx.cjs.map +1 -0
  65. package/dist/_shared/breadcrumbs-xNjbIrGc.js +105 -0
  66. package/dist/_shared/breadcrumbs-xNjbIrGc.js.map +1 -0
  67. package/dist/_shared/button-CB8e7fui.cjs +2 -0
  68. package/dist/_shared/button-CB8e7fui.cjs.map +1 -0
  69. package/dist/_shared/button-CNEMqDHK.js +192 -0
  70. package/dist/_shared/button-CNEMqDHK.js.map +1 -0
  71. package/dist/_shared/buttons-BCFKQuB5.js +137 -0
  72. package/dist/_shared/buttons-BCFKQuB5.js.map +1 -0
  73. package/dist/_shared/buttons-DHj5I2YL.cjs +2 -0
  74. package/dist/_shared/buttons-DHj5I2YL.cjs.map +1 -0
  75. package/dist/_shared/card-radio-group-DdubYUJ6.cjs +2 -0
  76. package/dist/_shared/card-radio-group-DdubYUJ6.cjs.map +1 -0
  77. package/dist/_shared/card-radio-group-Du6rzuoC.js +150 -0
  78. package/dist/_shared/card-radio-group-Du6rzuoC.js.map +1 -0
  79. package/dist/_shared/cards-B7voInTJ.js +430 -0
  80. package/dist/_shared/cards-B7voInTJ.js.map +1 -0
  81. package/dist/_shared/cards-DvE5gRFf.cjs +2 -0
  82. package/dist/_shared/cards-DvE5gRFf.cjs.map +1 -0
  83. package/dist/_shared/combobox-AbXh9ft4.cjs +2 -0
  84. package/dist/_shared/combobox-AbXh9ft4.cjs.map +1 -0
  85. package/dist/_shared/combobox-ImXiC1qy.js +957 -0
  86. package/dist/_shared/combobox-ImXiC1qy.js.map +1 -0
  87. package/dist/_shared/command-B-Yokco3.js +39 -0
  88. package/dist/_shared/command-B-Yokco3.js.map +1 -0
  89. package/dist/_shared/command-kcPx4TM_.cjs +2 -0
  90. package/dist/_shared/command-kcPx4TM_.cjs.map +1 -0
  91. package/dist/_shared/comments-BR5ENvoo.cjs +2 -0
  92. package/dist/_shared/comments-BR5ENvoo.cjs.map +1 -0
  93. package/dist/_shared/comments-a3l--GJ-.js +952 -0
  94. package/dist/_shared/comments-a3l--GJ-.js.map +1 -0
  95. package/dist/_shared/containers-8ryMAXNr.js +48 -0
  96. package/dist/_shared/containers-8ryMAXNr.js.map +1 -0
  97. package/dist/_shared/containers-BcrM8-22.cjs +2 -0
  98. package/dist/_shared/containers-BcrM8-22.cjs.map +1 -0
  99. package/dist/_shared/copyable-C0KJlRVr.js +38 -0
  100. package/dist/_shared/copyable-C0KJlRVr.js.map +1 -0
  101. package/dist/_shared/copyable-tJxsOyn-.cjs +2 -0
  102. package/dist/_shared/copyable-tJxsOyn-.cjs.map +1 -0
  103. package/dist/_shared/data-display-B9Lciun3.cjs +2 -0
  104. package/dist/_shared/data-display-B9Lciun3.cjs.map +1 -0
  105. package/dist/_shared/data-display-CYmwUdmU.js +1878 -0
  106. package/dist/_shared/data-display-CYmwUdmU.js.map +1 -0
  107. package/dist/_shared/date-picker-BaPDfs1p.js +1361 -0
  108. package/dist/_shared/date-picker-BaPDfs1p.js.map +1 -0
  109. package/dist/_shared/date-picker-DrkoZZdr.cjs +2 -0
  110. package/dist/_shared/date-picker-DrkoZZdr.cjs.map +1 -0
  111. package/dist/_shared/date-pickers-CT3aZpPn.cjs +2 -0
  112. package/dist/_shared/date-pickers-CT3aZpPn.cjs.map +1 -0
  113. package/dist/_shared/date-pickers-DRp0VM7k.js +329 -0
  114. package/dist/_shared/date-pickers-DRp0VM7k.js.map +1 -0
  115. package/dist/_shared/display-BHIs_Y_j.js +1006 -0
  116. package/dist/_shared/display-BHIs_Y_j.js.map +1 -0
  117. package/dist/_shared/display-DV7n0KA1.cjs +2 -0
  118. package/dist/_shared/display-DV7n0KA1.cjs.map +1 -0
  119. package/dist/_shared/dropdown-menu-5fFMhKo4.js +147 -0
  120. package/dist/_shared/dropdown-menu-5fFMhKo4.js.map +1 -0
  121. package/dist/_shared/dropdown-menu-B_SCGRL2.cjs +2 -0
  122. package/dist/_shared/dropdown-menu-B_SCGRL2.cjs.map +1 -0
  123. package/dist/_shared/form-sizing-VNEGzvM7.js +42 -0
  124. package/dist/_shared/form-sizing-VNEGzvM7.js.map +1 -0
  125. package/dist/_shared/form-sizing-lBFpJWv4.cjs +2 -0
  126. package/dist/_shared/form-sizing-lBFpJWv4.cjs.map +1 -0
  127. package/dist/_shared/forms-B7LYVbAy.cjs +2 -0
  128. package/dist/_shared/forms-B7LYVbAy.cjs.map +1 -0
  129. package/dist/_shared/forms-C5uZX_kQ.js +3534 -0
  130. package/dist/_shared/forms-C5uZX_kQ.js.map +1 -0
  131. package/dist/_shared/header-B4wGB6Ca.cjs +2 -0
  132. package/dist/_shared/header-B4wGB6Ca.cjs.map +1 -0
  133. package/dist/_shared/header-CWyOry0f.js +447 -0
  134. package/dist/_shared/header-CWyOry0f.js.map +1 -0
  135. package/dist/_shared/hooks-B4Cop5YI.cjs +2 -0
  136. package/dist/_shared/hooks-B4Cop5YI.cjs.map +1 -0
  137. package/dist/_shared/hooks-CFUZJW_S.js +95 -0
  138. package/dist/_shared/hooks-CFUZJW_S.js.map +1 -0
  139. package/dist/_shared/icon-size-CMNigtUu.js +15 -0
  140. package/dist/_shared/icon-size-CMNigtUu.js.map +1 -0
  141. package/dist/_shared/icon-size-D2NnYd0K.cjs +2 -0
  142. package/dist/_shared/icon-size-D2NnYd0K.cjs.map +1 -0
  143. package/dist/_shared/input-BEhrcsk7.js +182 -0
  144. package/dist/_shared/input-BEhrcsk7.js.map +1 -0
  145. package/dist/_shared/input-DGvh-izk.cjs +2 -0
  146. package/dist/_shared/input-DGvh-izk.cjs.map +1 -0
  147. package/dist/_shared/item-BG2iK1sy.cjs +2 -0
  148. package/dist/_shared/item-BG2iK1sy.cjs.map +1 -0
  149. package/dist/_shared/item-D75eGy8G.js +227 -0
  150. package/dist/_shared/item-D75eGy8G.js.map +1 -0
  151. package/dist/_shared/layout-CZVEJ3p_.cjs +2 -0
  152. package/dist/_shared/layout-CZVEJ3p_.cjs.map +1 -0
  153. package/dist/_shared/layout-D75TJTaD.js +268 -0
  154. package/dist/_shared/layout-D75TJTaD.js.map +1 -0
  155. package/dist/_shared/mentions-CWqC8Xds.js +506 -0
  156. package/dist/_shared/mentions-CWqC8Xds.js.map +1 -0
  157. package/dist/_shared/mentions-wtkrL2hX.cjs +2 -0
  158. package/dist/_shared/mentions-wtkrL2hX.cjs.map +1 -0
  159. package/dist/_shared/money-display-BabyaIWb.js +198 -0
  160. package/dist/_shared/money-display-BabyaIWb.js.map +1 -0
  161. package/dist/_shared/money-display-CrNRbByx.cjs +2 -0
  162. package/dist/_shared/money-display-CrNRbByx.cjs.map +1 -0
  163. package/dist/_shared/navigation-9DB-vtGI.js +436 -0
  164. package/dist/_shared/navigation-9DB-vtGI.js.map +1 -0
  165. package/dist/_shared/navigation-DAjFLSv5.cjs +2 -0
  166. package/dist/_shared/navigation-DAjFLSv5.cjs.map +1 -0
  167. package/dist/_shared/overlays-BK0J8zSv.cjs +2 -0
  168. package/dist/_shared/overlays-BK0J8zSv.cjs.map +1 -0
  169. package/dist/_shared/overlays-DKsXufDv.js +735 -0
  170. package/dist/_shared/overlays-DKsXufDv.js.map +1 -0
  171. package/dist/_shared/popover-menu-DXh14PIu.js +93 -0
  172. package/dist/_shared/popover-menu-DXh14PIu.js.map +1 -0
  173. package/dist/_shared/popover-menu-DkjPUZ4v.cjs +2 -0
  174. package/dist/_shared/popover-menu-DkjPUZ4v.cjs.map +1 -0
  175. package/dist/_shared/rich-text-editor-DjZTJzdm.cjs +2 -0
  176. package/dist/_shared/rich-text-editor-DjZTJzdm.cjs.map +1 -0
  177. package/dist/_shared/rich-text-editor-DloyZq46.js +620 -0
  178. package/dist/_shared/rich-text-editor-DloyZq46.js.map +1 -0
  179. package/dist/_shared/settings-AIgixHbB.cjs +2 -0
  180. package/dist/_shared/settings-AIgixHbB.cjs.map +1 -0
  181. package/dist/_shared/settings-D3KdypJk.js +143 -0
  182. package/dist/_shared/settings-D3KdypJk.js.map +1 -0
  183. package/dist/_shared/sidebar-BzBincq3.js +548 -0
  184. package/dist/_shared/sidebar-BzBincq3.js.map +1 -0
  185. package/dist/_shared/sidebar-D5NLbyow.cjs +2 -0
  186. package/dist/_shared/sidebar-D5NLbyow.cjs.map +1 -0
  187. package/dist/_shared/skeleton-Bc_qa5l_.js +256 -0
  188. package/dist/_shared/skeleton-Bc_qa5l_.js.map +1 -0
  189. package/dist/_shared/skeleton-Wq6G0Kya.cjs +2 -0
  190. package/dist/_shared/skeleton-Wq6G0Kya.cjs.map +1 -0
  191. package/dist/_shared/spinner-C-yoZUk-.cjs +2 -0
  192. package/dist/_shared/spinner-C-yoZUk-.cjs.map +1 -0
  193. package/dist/_shared/spinner-CDVWFN0N.js +67 -0
  194. package/dist/_shared/spinner-CDVWFN0N.js.map +1 -0
  195. package/dist/_shared/table-B70kyH2E.js +1377 -0
  196. package/dist/_shared/table-B70kyH2E.js.map +1 -0
  197. package/dist/_shared/table-DQA2m2F0.cjs +2 -0
  198. package/dist/_shared/table-DQA2m2F0.cjs.map +1 -0
  199. package/dist/_shared/textarea-Dx9yEZY2.js +118 -0
  200. package/dist/_shared/textarea-Dx9yEZY2.js.map +1 -0
  201. package/dist/_shared/textarea-rfnSeHHC.cjs +2 -0
  202. package/dist/_shared/textarea-rfnSeHHC.cjs.map +1 -0
  203. package/dist/_shared/typography-C_kCoR1d.js +204 -0
  204. package/dist/_shared/typography-C_kCoR1d.js.map +1 -0
  205. package/dist/_shared/typography-sXFd02zl.cjs +2 -0
  206. package/dist/_shared/typography-sXFd02zl.cjs.map +1 -0
  207. package/dist/_shared/workspace-Bw-k_HXQ.js +357 -0
  208. package/dist/_shared/workspace-Bw-k_HXQ.js.map +1 -0
  209. package/dist/_shared/workspace-CLUsYC5y.cjs +2 -0
  210. package/dist/_shared/workspace-CLUsYC5y.cjs.map +1 -0
  211. package/dist/components/base/accordion/index.cjs +1 -1
  212. package/dist/components/base/accordion/index.js +1 -1
  213. package/dist/components/base/badge/index.cjs +1 -1
  214. package/dist/components/base/badge/index.js +1 -1
  215. package/dist/components/base/buttons/index.cjs +1 -1
  216. package/dist/components/base/buttons/index.js +2 -2
  217. package/dist/components/base/cards/index.cjs +1 -1
  218. package/dist/components/base/cards/index.js +1 -1
  219. package/dist/components/base/carousel/carousel.d.ts.map +1 -1
  220. package/dist/components/base/carousel/index.cjs +1 -1
  221. package/dist/components/base/carousel/index.cjs.map +1 -1
  222. package/dist/components/base/carousel/index.js +98 -97
  223. package/dist/components/base/carousel/index.js.map +1 -1
  224. package/dist/components/base/combobox/components/combobox-dropdown.d.ts.map +1 -1
  225. package/dist/components/base/combobox/index.cjs +1 -1
  226. package/dist/components/base/combobox/index.js +1 -1
  227. package/dist/components/base/command/command.d.ts +1 -1
  228. package/dist/components/base/command/index.cjs +1 -1
  229. package/dist/components/base/command/index.js +1 -1
  230. package/dist/components/base/copyable/index.cjs +1 -1
  231. package/dist/components/base/copyable/index.js +1 -1
  232. package/dist/components/base/currency/index.cjs +1 -1
  233. package/dist/components/base/currency/index.js +1 -1
  234. package/dist/components/base/date-pickers/index.cjs +1 -1
  235. package/dist/components/base/date-pickers/index.js +2 -2
  236. package/dist/components/base/display/alert.d.ts.map +1 -1
  237. package/dist/components/base/display/chart.cjs +1 -1
  238. package/dist/components/base/display/chart.js +1 -1
  239. package/dist/components/base/display/icon-size.d.ts +6 -0
  240. package/dist/components/base/display/icon-size.d.ts.map +1 -0
  241. package/dist/components/base/display/index.cjs +1 -1
  242. package/dist/components/base/display/index.d.ts +1 -0
  243. package/dist/components/base/display/index.d.ts.map +1 -1
  244. package/dist/components/base/display/index.js +10 -9
  245. package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
  246. package/dist/components/base/event-calendar/index.cjs +1 -1
  247. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  248. package/dist/components/base/event-calendar/index.js +4 -4
  249. package/dist/components/base/event-calendar/index.js.map +1 -1
  250. package/dist/components/base/forms/index.cjs +1 -1
  251. package/dist/components/base/forms/index.js +5 -5
  252. package/dist/components/base/item/index.cjs +1 -1
  253. package/dist/components/base/item/index.js +1 -1
  254. package/dist/components/base/item/item.d.ts.map +1 -1
  255. package/dist/components/base/map/index.cjs +1 -1
  256. package/dist/components/base/map/index.cjs.map +1 -1
  257. package/dist/components/base/map/index.js +3 -3
  258. package/dist/components/base/map/index.js.map +1 -1
  259. package/dist/components/base/map/map.d.ts +1 -1
  260. package/dist/components/base/map/map.d.ts.map +1 -1
  261. package/dist/components/base/navigation/dropdown-menu.d.ts +33 -1
  262. package/dist/components/base/navigation/dropdown-menu.d.ts.map +1 -1
  263. package/dist/components/base/navigation/index.cjs +1 -1
  264. package/dist/components/base/navigation/index.js +4 -4
  265. package/dist/components/base/popover-menu/index.cjs +1 -1
  266. package/dist/components/base/popover-menu/index.js +1 -1
  267. package/dist/components/base/spinner/index.cjs +1 -1
  268. package/dist/components/base/spinner/index.js +1 -1
  269. package/dist/components/base/table/index.cjs +1 -1
  270. package/dist/components/base/table/index.js +1 -1
  271. package/dist/components/composed/admin/index.cjs +1 -1
  272. package/dist/components/composed/admin/index.cjs.map +1 -1
  273. package/dist/components/composed/admin/index.js +10 -11
  274. package/dist/components/composed/admin/index.js.map +1 -1
  275. package/dist/components/composed/ai/index.cjs +1 -1
  276. package/dist/components/composed/ai/index.cjs.map +1 -1
  277. package/dist/components/composed/ai/index.js +8 -9
  278. package/dist/components/composed/ai/index.js.map +1 -1
  279. package/dist/components/composed/analytics/index.cjs +1 -1
  280. package/dist/components/composed/analytics/index.cjs.map +1 -1
  281. package/dist/components/composed/analytics/index.js +4 -4
  282. package/dist/components/composed/analytics/index.js.map +1 -1
  283. package/dist/components/composed/cards/index.cjs +1 -1
  284. package/dist/components/composed/cards/index.cjs.map +1 -1
  285. package/dist/components/composed/cards/index.js +13 -15
  286. package/dist/components/composed/cards/index.js.map +1 -1
  287. package/dist/components/composed/commerce/index.cjs +1 -1
  288. package/dist/components/composed/commerce/index.cjs.map +1 -1
  289. package/dist/components/composed/commerce/index.d.ts +2 -0
  290. package/dist/components/composed/commerce/index.d.ts.map +1 -1
  291. package/dist/components/composed/commerce/index.js +1246 -382
  292. package/dist/components/composed/commerce/index.js.map +1 -1
  293. package/dist/components/composed/commerce/inventory-section/index.d.ts +3 -0
  294. package/dist/components/composed/commerce/inventory-section/index.d.ts.map +1 -0
  295. package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts +6 -0
  296. package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts.map +1 -0
  297. package/dist/components/composed/commerce/inventory-section/types.d.ts +85 -0
  298. package/dist/components/composed/commerce/inventory-section/types.d.ts.map +1 -0
  299. package/dist/components/composed/commerce/seo-listing/index.d.ts +4 -0
  300. package/dist/components/composed/commerce/seo-listing/index.d.ts.map +1 -0
  301. package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts +6 -0
  302. package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts.map +1 -0
  303. package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts +6 -0
  304. package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts.map +1 -0
  305. package/dist/components/composed/commerce/seo-listing/types.d.ts +68 -0
  306. package/dist/components/composed/commerce/seo-listing/types.d.ts.map +1 -0
  307. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  308. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  309. package/dist/components/composed/dark-surfaces/index.js +7 -7
  310. package/dist/components/composed/dark-surfaces/index.js.map +1 -1
  311. package/dist/components/composed/data-display/index.cjs +1 -1
  312. package/dist/components/composed/data-display/index.js +1 -1
  313. package/dist/components/composed/navigation/index.cjs +1 -1
  314. package/dist/components/composed/navigation/index.cjs.map +1 -1
  315. package/dist/components/composed/navigation/index.js +5 -6
  316. package/dist/components/composed/navigation/index.js.map +1 -1
  317. package/dist/components/composed/onboarding/index.cjs +1 -1
  318. package/dist/components/composed/onboarding/index.js +3 -3
  319. package/dist/components/composed/timelines/index.cjs +1 -1
  320. package/dist/components/composed/timelines/index.js +3 -3
  321. package/dist/components/features/activities/index.cjs +1 -1
  322. package/dist/components/features/activities/index.js +5 -5
  323. package/dist/components/features/ai-chat/index.cjs +1 -1
  324. package/dist/components/features/ai-chat/index.js +5 -5
  325. package/dist/components/features/card/index.cjs +1 -1
  326. package/dist/components/features/card/index.js +4 -4
  327. package/dist/components/features/comments/index.cjs +1 -1
  328. package/dist/components/features/comments/index.js +2 -2
  329. package/dist/components/features/data-view/index.cjs +1 -1
  330. package/dist/components/features/data-view/index.js +2 -2
  331. package/dist/components/features/event-log/index.cjs +1 -1
  332. package/dist/components/features/event-log/index.js +4 -4
  333. package/dist/components/features/filters/index.cjs +1 -1
  334. package/dist/components/features/filters/index.cjs.map +1 -1
  335. package/dist/components/features/filters/index.js +64 -64
  336. package/dist/components/features/filters/index.js.map +1 -1
  337. package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
  338. package/dist/components/features/global-search/index.cjs +1 -1
  339. package/dist/components/features/global-search/index.js +4 -4
  340. package/dist/components/features/kanban/index.cjs +1 -1
  341. package/dist/components/features/kanban/index.js +3 -3
  342. package/dist/components/features/media-library/index.cjs +1 -1
  343. package/dist/components/features/media-library/index.cjs.map +1 -1
  344. package/dist/components/features/media-library/index.js +230 -206
  345. package/dist/components/features/media-library/index.js.map +1 -1
  346. package/dist/components/features/media-library/media-library.d.ts.map +1 -1
  347. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  348. package/dist/components/features/media-library/media-library.strings.d.ts.map +1 -1
  349. package/dist/components/features/media-library/partials/media-library-partials.d.ts.map +1 -1
  350. package/dist/components/features/mentions/index.cjs +1 -1
  351. package/dist/components/features/mentions/index.js +1 -1
  352. package/dist/components/features/overlays/index.cjs +1 -1
  353. package/dist/components/features/overlays/index.js +1 -1
  354. package/dist/components/features/products/components/index.d.ts +3 -0
  355. package/dist/components/features/products/components/index.d.ts.map +1 -1
  356. package/dist/components/features/products/components/product-options-matrix.d.ts +6 -0
  357. package/dist/components/features/products/components/product-options-matrix.d.ts.map +1 -0
  358. package/dist/components/features/products/components/product-variants-bulk-table.d.ts +6 -0
  359. package/dist/components/features/products/components/product-variants-bulk-table.d.ts.map +1 -0
  360. package/dist/components/features/products/components/product-variants-manager.d.ts +6 -0
  361. package/dist/components/features/products/components/product-variants-manager.d.ts.map +1 -0
  362. package/dist/components/features/products/index.cjs +1 -1
  363. package/dist/components/features/products/index.cjs.map +1 -1
  364. package/dist/components/features/products/index.js +1705 -511
  365. package/dist/components/features/products/index.js.map +1 -1
  366. package/dist/components/features/products/products.strings.d.ts +70 -0
  367. package/dist/components/features/products/products.strings.d.ts.map +1 -1
  368. package/dist/components/features/products/products.types.d.ts +163 -1
  369. package/dist/components/features/products/products.types.d.ts.map +1 -1
  370. package/dist/components/features/resource/index.cjs +1 -1
  371. package/dist/components/features/resource/index.js +5 -5
  372. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  373. package/dist/components/features/rich-text-editor/index.js +1 -1
  374. package/dist/components/features/schema-form/index.cjs +1 -1
  375. package/dist/components/features/schema-form/index.js +8 -8
  376. package/dist/components/features/suggestions/index.cjs +1 -1
  377. package/dist/components/features/suggestions/index.js +1 -1
  378. package/dist/components/features/sync/index.cjs +1 -1
  379. package/dist/components/features/sync/index.js +2 -2
  380. package/dist/components/layout/auth/index.cjs +1 -1
  381. package/dist/components/layout/auth/index.js +1 -1
  382. package/dist/components/layout/containers/index.cjs +1 -1
  383. package/dist/components/layout/containers/index.js +1 -1
  384. package/dist/components/layout/header/index.cjs +1 -1
  385. package/dist/components/layout/header/index.js +1 -1
  386. package/dist/components/layout/hooks/index.cjs +1 -1
  387. package/dist/components/layout/hooks/index.js +1 -1
  388. package/dist/components/layout/index.cjs +1 -1
  389. package/dist/components/layout/index.js +8 -8
  390. package/dist/components/layout/page/index.cjs +1 -1
  391. package/dist/components/layout/page/index.js +1 -1
  392. package/dist/components/layout/page/page-content.d.ts +1 -1
  393. package/dist/components/layout/page/page-content.d.ts.map +1 -1
  394. package/dist/components/layout/settings/index.cjs +1 -1
  395. package/dist/components/layout/settings/index.js +1 -1
  396. package/dist/components/layout/sidebar/index.cjs +1 -1
  397. package/dist/components/layout/sidebar/index.js +2 -2
  398. package/dist/components/layout/workspace/index.cjs +1 -1
  399. package/dist/components/layout/workspace/index.js +1 -1
  400. package/dist/components/typography/index.cjs +1 -1
  401. package/dist/components/typography/index.js +1 -1
  402. package/dist/components/typography/text-link.d.ts +3 -1
  403. package/dist/components/typography/text-link.d.ts.map +1 -1
  404. package/dist/components/typography/text.d.ts.map +1 -1
  405. package/dist/lib/ui-provider/types.d.ts +1 -1
  406. package/dist/lib/ui-provider/types.d.ts.map +1 -1
  407. package/dist/lib/utils.cjs +1 -1
  408. package/dist/lib/utils.cjs.map +1 -1
  409. package/dist/lib/utils.d.ts.map +1 -1
  410. package/dist/lib/utils.js +1 -0
  411. package/dist/lib/utils.js.map +1 -1
  412. package/dist/services/actions/index.cjs +1 -1
  413. package/dist/services/actions/index.js +1 -1
  414. package/dist/showcase/assets/AreaChart-iGBzUSAV.js +6 -0
  415. package/dist/showcase/assets/CompositeItem-1e8qsdC5.js +1 -0
  416. package/dist/showcase/assets/CompositeRoot-DneCUh3i.js +1 -0
  417. package/dist/showcase/assets/DialogTrigger-CVhas4X-.js +1 -0
  418. package/dist/showcase/assets/LabelableContext-Bfc22fLa.js +1 -0
  419. package/dist/showcase/assets/MenuTrigger-WTiiOMpe.js +1 -0
  420. package/dist/showcase/assets/PreviewLayout-ClbLOtTa.js +1 -0
  421. package/dist/showcase/assets/RadioGroup-DEBYMgi5.js +1 -0
  422. package/dist/showcase/assets/ScrollAreaCorner-CilamsvS.js +1 -0
  423. package/dist/showcase/assets/Separator-DSecBOlo.js +1 -0
  424. package/dist/showcase/assets/ToolbarRootContext-BY_Czi0-.js +1 -0
  425. package/dist/showcase/assets/accordion-FV2cJ9V1.js +171 -0
  426. package/dist/showcase/assets/accordion-variants-DRNuXgFT.js +1 -0
  427. package/dist/showcase/assets/action-menu-uhMTzBIl.js +1 -0
  428. package/dist/showcase/assets/actions-C3kChFSc.js +310 -0
  429. package/dist/showcase/assets/actions-DizTzuf8.js +38 -0
  430. package/dist/showcase/assets/activities-DQ7u_XKr.js +500 -0
  431. package/dist/showcase/assets/activities-feed-card-DoxFXr20.js +1 -0
  432. package/dist/showcase/assets/admin-CRVq1bj-.js +140 -0
  433. package/dist/showcase/assets/ai-DMBh2BKA.js +207 -0
  434. package/dist/showcase/assets/ai-artifact-DnSz7Xj1.js +2 -0
  435. package/dist/showcase/assets/ai-chat-Ba60tj9x.js +568 -0
  436. package/dist/showcase/assets/ai-elements-CaMbMARm.js +387 -0
  437. package/dist/showcase/assets/ai-tool-call-Cg11pnXq.js +1 -0
  438. package/dist/showcase/assets/alert-AeDTPQQ5.js +62 -0
  439. package/dist/showcase/assets/alert-BQucj-0f.js +1 -0
  440. package/dist/showcase/assets/alert-DY0yMYc3.js +93 -0
  441. package/dist/showcase/assets/api-key-list-DZiVRCkz.js +73 -0
  442. package/dist/showcase/assets/api-key-list-DuoC5nyO.js +1 -0
  443. package/dist/showcase/assets/app-sidebar-D_RbOUZC.js +1 -0
  444. package/dist/showcase/assets/arrow-down-J_5dmfVv.js +1 -0
  445. package/dist/showcase/assets/arrow-left-DeKmFjyi.js +1 -0
  446. package/dist/showcase/assets/arrow-right-ztHj2bIY.js +1 -0
  447. package/dist/showcase/assets/arrow-up-CCenfeVW.js +1 -0
  448. package/dist/showcase/assets/arrow-up-right-URGvP7LF.js +1 -0
  449. package/dist/showcase/assets/avatar-CTFW3AQa.js +1 -0
  450. package/dist/showcase/assets/avatar-DH3vm33j.js +1 -0
  451. package/dist/showcase/assets/avatar-DRi6ZWB2.js +67 -0
  452. package/dist/showcase/assets/avatar-eEOgFI6D.js +57 -0
  453. package/dist/showcase/assets/badge-C9RqIyT7.js +31 -0
  454. package/dist/showcase/assets/badge-check-CRkt0WPY.js +1 -0
  455. package/dist/showcase/assets/bell-B-bFEx5I.js +1 -0
  456. package/dist/showcase/assets/boolean-indicator-CD3scHDz.js +1 -0
  457. package/dist/showcase/assets/bot-DbSsnrvR.js +1 -0
  458. package/dist/showcase/assets/box-BDLbaerX.js +1 -0
  459. package/dist/showcase/assets/braces-nP1Ffv07.js +1 -0
  460. package/dist/showcase/assets/brain-B69nRyRF.js +1 -0
  461. package/dist/showcase/assets/brand-WHRuwaVX.js +36 -0
  462. package/dist/showcase/assets/breadcrumb-CYxS57Ko.js +1 -0
  463. package/dist/showcase/assets/breadcrumb-viDsLdax.js +52 -0
  464. package/dist/showcase/assets/breadcrumbs-CX6eCwn4.js +1 -0
  465. package/dist/showcase/assets/briefcase-BCMmOuh2.js +1 -0
  466. package/dist/showcase/assets/building-2-DCSQxFoC.js +1 -0
  467. package/dist/showcase/assets/button-It_u4rRb.js +44 -0
  468. package/dist/showcase/assets/button-group-B2NgHAyn.js +1 -0
  469. package/dist/showcase/assets/buttons-ClK1qR3J.js +272 -0
  470. package/dist/showcase/assets/calendar-CX89JdTd.js +16 -0
  471. package/dist/showcase/assets/calendar-DV83xhzB.js +1 -0
  472. package/dist/showcase/assets/calendar-HrkenM2F.js +1 -0
  473. package/dist/showcase/assets/calendar-days-O55Ncg5j.js +1 -0
  474. package/dist/showcase/assets/camera-C6hO-Q3l.js +1 -0
  475. package/dist/showcase/assets/card-CXet5wLR.js +1 -0
  476. package/dist/showcase/assets/card-ChwovoeQ.js +188 -0
  477. package/dist/showcase/assets/card-checkbox-group-DN7Ui724.js +1 -0
  478. package/dist/showcase/assets/card-primitives-C5YmKK4H.js +1 -0
  479. package/dist/showcase/assets/card-radio-group-DaiWsziy.js +1 -0
  480. package/dist/showcase/assets/cards-CpYk7Lcz.js +354 -0
  481. package/dist/showcase/assets/carousel-CaoSMqW3.js +452 -0
  482. package/dist/showcase/assets/cell-renderers-BTLGZyvy.js +1 -0
  483. package/dist/showcase/assets/chart-DukdMlSE.js +358 -0
  484. package/dist/showcase/assets/chart-column-BqDA22mr.js +1 -0
  485. package/dist/showcase/assets/checkbox-CJg8G3-s.js +1 -0
  486. package/dist/showcase/assets/checkbox-DlOCnOfc.js +1 -0
  487. package/dist/showcase/assets/chevron-down-CjLLqYjs.js +1 -0
  488. package/dist/showcase/assets/chevron-left-lE5l5Y1q.js +1 -0
  489. package/dist/showcase/assets/chevron-up-WpyEPcvJ.js +1 -0
  490. package/dist/showcase/assets/chevrons-up-down-CPkjAe_j.js +1 -0
  491. package/dist/showcase/assets/circle-B9E-rFdh.js +1 -0
  492. package/dist/showcase/assets/circle-alert-DX4Q8Agf.js +1 -0
  493. package/dist/showcase/assets/circle-check-BdcUhuQ7.js +1 -0
  494. package/dist/showcase/assets/circle-check-big-CeaAGVP1.js +1 -0
  495. package/dist/showcase/assets/circle-dot-DoXkol-T.js +1 -0
  496. package/dist/showcase/assets/circle-question-mark-CYE6Hj4n.js +1 -0
  497. package/dist/showcase/assets/circle-x-BpB4A5gs.js +1 -0
  498. package/dist/showcase/assets/clock-3-B7Fa1qg-.js +1 -0
  499. package/dist/showcase/assets/clock-B1cuTZnL.js +1 -0
  500. package/dist/showcase/assets/code-xml-C_ICl6NY.js +1 -0
  501. package/dist/showcase/assets/collapsible-CtrQcEWW.js +27 -0
  502. package/dist/showcase/assets/collapsible-XZ4qRG4O.js +1 -0
  503. package/dist/showcase/assets/collapsible-ZP3Pv6SI.js +1 -0
  504. package/dist/showcase/assets/combobox-GMkDgk_z.js +685 -0
  505. package/dist/showcase/assets/command-BXhyoNX1.js +1 -0
  506. package/dist/showcase/assets/command-DNHjxTyl.js +1 -0
  507. package/dist/showcase/assets/comment-composer-BtE5Erp8.js +1 -0
  508. package/dist/showcase/assets/comment-item-TztxmXc7.js +1 -0
  509. package/dist/showcase/assets/comments-CEMkLRtb.js +357 -0
  510. package/dist/showcase/assets/commerce-BtvCQH0C.js +19 -0
  511. package/dist/showcase/assets/commerce-address-card-8PUGRwNW.js +33 -0
  512. package/dist/showcase/assets/commerce-cart-summary-nrO5v1O8.js +43 -0
  513. package/dist/showcase/assets/commerce-coupon-input-C-sT1FNq.js +11 -0
  514. package/dist/showcase/assets/commerce-discount-stack-BdGk8tbD.js +17 -0
  515. package/dist/showcase/assets/commerce-inventory-section-BnBu7wK5.js +123 -0
  516. package/dist/showcase/assets/commerce-loyalty-points-Bjei3EdW.js +19 -0
  517. package/dist/showcase/assets/commerce-order-status--TMOLhrS.js +21 -0
  518. package/dist/showcase/assets/commerce-payment-method-C8fVquyN.js +17 -0
  519. package/dist/showcase/assets/commerce-refund-status-Cs6dbewH.js +17 -0
  520. package/dist/showcase/assets/commerce-seo-listing-C4WvKFei.js +61 -0
  521. package/dist/showcase/assets/commerce-shipment-tracking-BcezyjSw.js +24 -0
  522. package/dist/showcase/assets/commerce-subscription-summary-BjhnmqOx.js +25 -0
  523. package/dist/showcase/assets/commerce-tax-breakdown-js8xMRDn.js +19 -0
  524. package/dist/showcase/assets/commerce-upcoming-booking-doggTqfA.js +20 -0
  525. package/dist/showcase/assets/commerce-voucher-entry-ByMZAiZO.js +19 -0
  526. package/dist/showcase/assets/composite-D2jjTQvZ.js +1 -0
  527. package/dist/showcase/assets/conditional-rendering-Cy3xN7KO.js +1 -0
  528. package/dist/showcase/assets/contact-card-BSH_KDbf.js +65 -0
  529. package/dist/showcase/assets/content-container-Q9Bp8aFE.js +1 -0
  530. package/dist/showcase/assets/copyable-8_0ImOB2.js +1 -0
  531. package/dist/showcase/assets/copyable-B3R9lXVu.js +96 -0
  532. package/dist/showcase/assets/course-card-zh8fH-6n.js +77 -0
  533. package/dist/showcase/assets/cpu-DlPQMchp.js +1 -0
  534. package/dist/showcase/assets/credit-card-DeuhwEKG.js +1 -0
  535. package/dist/showcase/assets/css-variables-BxE5DqUm.js +1223 -0
  536. package/dist/showcase/assets/currency-D3DomSfR.js +148 -0
  537. package/dist/showcase/assets/dark-surfaces-DYh199dt.js +90 -0
  538. package/dist/showcase/assets/data-view-HJme-PWk.js +124 -0
  539. package/dist/showcase/assets/data-view-s5TQvt4f.js +4 -0
  540. package/dist/showcase/assets/database-KGU1LGqB.js +1 -0
  541. package/dist/showcase/assets/date-block-CxFhNxK2.js +1 -0
  542. package/dist/showcase/assets/date-block-DmRDymLD.js +1 -0
  543. package/dist/showcase/assets/date-picker-CScVl5jV.js +1 -0
  544. package/dist/showcase/assets/date-pickers-D4EmH-RF.js +73 -0
  545. package/dist/showcase/assets/dense-info-DXbmG0Nf.js +106 -0
  546. package/dist/showcase/assets/design-system-consistency-D_j9P0qR.js +264 -0
  547. package/dist/showcase/assets/dialog-BHymSzYi.js +1 -0
  548. package/dist/showcase/assets/dialog-CGr-za_Y.js +1 -0
  549. package/dist/showcase/assets/dialog-DeXQn0Lm.js +1 -0
  550. package/dist/showcase/assets/display-utilities-Y1wtHZNJ.js +4 -0
  551. package/dist/showcase/assets/display-utilities.examples-BMKQv0ep.js +309 -0
  552. package/dist/showcase/assets/dist-DfpWey5P.js +1 -0
  553. package/dist/showcase/assets/dist-DrnHE1zU.js +45 -0
  554. package/dist/showcase/assets/dollar-sign-DzPcAVIr.js +1 -0
  555. package/dist/showcase/assets/download-YQyeAxpe.js +1 -0
  556. package/dist/showcase/assets/dropdown-menu-DijrdxTg.js +1 -0
  557. package/dist/showcase/assets/dropzone-CJQVfB6l.js +1 -0
  558. package/dist/showcase/assets/earth-CzKdl3sr.js +1 -0
  559. package/dist/showcase/assets/ellipsis-Bm3jOBg8.js +1 -0
  560. package/dist/showcase/assets/ellipsis-vertical-BfYWo5Lf.js +1 -0
  561. package/dist/showcase/assets/empty-BdJ7O2MX.js +1 -0
  562. package/dist/showcase/assets/empty-item-BQdBtp6f.js +49 -0
  563. package/dist/showcase/assets/empty-state-62UU8y5C.js +1 -0
  564. package/dist/showcase/assets/empty-state-CCL_J3tY.js +190 -0
  565. package/dist/showcase/assets/enhanced-activities-CC1UzTfz.js +357 -0
  566. package/dist/showcase/assets/enhanced-combobox-B9cjPsF6.js +1 -0
  567. package/dist/showcase/assets/esm-B-fRlXh3.js +2 -0
  568. package/dist/showcase/assets/event-calendar-Bhwxq8YS.js +138 -0
  569. package/dist/showcase/assets/event-log-CnKaX_Qy.js +330 -0
  570. package/dist/showcase/assets/example-DDhaO2UY.js +1 -0
  571. package/dist/showcase/assets/external-link-CANOM2jg.js +1 -0
  572. package/dist/showcase/assets/eye-Bipckkwy.js +1 -0
  573. package/dist/showcase/assets/feature-announcement-lwmHkJsA.js +34 -0
  574. package/dist/showcase/assets/file-D3AT65yE.js +1 -0
  575. package/dist/showcase/assets/file-text-BzM5AARd.js +1 -0
  576. package/dist/showcase/assets/filter-layout-Dcg6Bnrn.js +1 -0
  577. package/dist/showcase/assets/filters-CqlLV9PM.js +139 -0
  578. package/dist/showcase/assets/fixtures-yK2xR5Qs.js +1 -0
  579. package/dist/showcase/assets/flag-DwDsuNoj.js +1 -0
  580. package/dist/showcase/assets/folder-open-CU6X87LZ.js +1 -0
  581. package/dist/showcase/assets/form-field-CpRcKtwS.js +1 -0
  582. package/dist/showcase/assets/form-sizing-Bv0A0Oi0.js +1 -0
  583. package/dist/showcase/assets/format-DmB3OvZa.js +1 -0
  584. package/dist/showcase/assets/forms-htLZTBP2.js +915 -0
  585. package/dist/showcase/assets/funnel-Dg-pRz2W.js +1 -0
  586. package/dist/showcase/assets/generic-C19aoW0F.js +1 -0
  587. package/dist/showcase/assets/getPseudoElementBounds-r_QLBIGn.js +1 -0
  588. package/dist/showcase/assets/gift-CpwvL7we.js +1 -0
  589. package/dist/showcase/assets/giftcard-cards-DHZQPc_n.js +85 -0
  590. package/dist/showcase/assets/git-branch-CZga8VLM.js +1 -0
  591. package/dist/showcase/assets/global-search-DqJo5jCc.js +1 -0
  592. package/dist/showcase/assets/global-search-_HODxZaU.js +215 -0
  593. package/dist/showcase/assets/globe-pWzZwcAv.js +1 -0
  594. package/dist/showcase/assets/gradient-card-D9fPawlx.js +58 -0
  595. package/dist/showcase/assets/grip-vertical-oqI1TI-N.js +1 -0
  596. package/dist/showcase/assets/hash-DQPCJKw8.js +1 -0
  597. package/dist/showcase/assets/header-DkCzYf6f.js +1 -0
  598. package/dist/showcase/assets/header-notifications-CPiuGNR5.js +1 -0
  599. package/dist/showcase/assets/heart-0z9BLROt.js +1 -0
  600. package/dist/showcase/assets/hooks-CXwg9TyF.js +220 -0
  601. package/dist/showcase/assets/house-Bg4YZsNF.js +1 -0
  602. package/dist/showcase/assets/icon-badge-CrSkFExw.js +1 -0
  603. package/dist/showcase/assets/icon-badge-D1fdev_s.js +37 -0
  604. package/dist/showcase/assets/icon-size-BHn0d6Zp.js +1 -0
  605. package/dist/showcase/assets/image-BXWnqpeJ.js +1 -0
  606. package/dist/showcase/assets/inbox-CObYzZZR.js +1 -0
  607. package/dist/showcase/assets/index-DBheiRxz.css +2 -0
  608. package/dist/showcase/assets/index-DSBghWdd.js +10 -0
  609. package/dist/showcase/assets/inertValue-DOcq7b5x.js +1 -0
  610. package/dist/showcase/assets/info-wAcLD6Uj.js +1 -0
  611. package/dist/showcase/assets/inline-stat-CufTTte_.js +1 -0
  612. package/dist/showcase/assets/inline-stat-D4GrY6tT.js +15 -0
  613. package/dist/showcase/assets/input-Bq9vs-9_.js +1 -0
  614. package/dist/showcase/assets/input-DsP89oH1.js +1 -0
  615. package/dist/showcase/assets/input-group-CCaNByLp.js +1 -0
  616. package/dist/showcase/assets/input-group-m-swxf-o.js +47 -0
  617. package/dist/showcase/assets/inputs-BSEM9vfa.js +155 -0
  618. package/dist/showcase/assets/installation-uRaDUCjH.js +134 -0
  619. package/dist/showcase/assets/invoice-header-D48jDTWC.js +36 -0
  620. package/dist/showcase/assets/invoice-items-jRLo8FHu.js +36 -0
  621. package/dist/showcase/assets/invoice-mini-DLS8PQrl.js +14 -0
  622. package/dist/showcase/assets/invoice-table-D4y33M95.js +30 -0
  623. package/dist/showcase/assets/isSameDay-Cn7Vlp79.js +1 -0
  624. package/dist/showcase/assets/isToday-B0jKMww1.js +1 -0
  625. package/dist/showcase/assets/italic-BHsKu0Gj.js +1 -0
  626. package/dist/showcase/assets/item-BLXAOZLR.js +1 -0
  627. package/dist/showcase/assets/item-C8eCX4DH.js +140 -0
  628. package/dist/showcase/assets/item-D5xwkRvf.js +1 -0
  629. package/dist/showcase/assets/kanban-ujfZHhvd.js +188 -0
  630. package/dist/showcase/assets/key-round-B_fKEPa6.js +1 -0
  631. package/dist/showcase/assets/label-NSapdBaB.js +1 -0
  632. package/dist/showcase/assets/languages-TkdVe7-2.js +1 -0
  633. package/dist/showcase/assets/layers-1IEBbvoc.js +1 -0
  634. package/dist/showcase/assets/layout-app-shell-D4PFTEsD.js +608 -0
  635. package/dist/showcase/assets/layout-auth-BTriDNME.js +790 -0
  636. package/dist/showcase/assets/layout-containers-CLJfaL-J.js +101 -0
  637. package/dist/showcase/assets/layout-header-CsNPnQde.js +203 -0
  638. package/dist/showcase/assets/layout-page-CSejcBCR.js +315 -0
  639. package/dist/showcase/assets/layout-primitives-D1MJs2E3.js +34 -0
  640. package/dist/showcase/assets/layout-sidebar-CO8Hdnoh.js +224 -0
  641. package/dist/showcase/assets/layout-users-BgrXF4nn.js +117 -0
  642. package/dist/showcase/assets/layout-workspace-DLg1f_o-.js +191 -0
  643. package/dist/showcase/assets/lib-B7vzArq-.js +1 -0
  644. package/dist/showcase/assets/list-checks-tsvYcEx2.js +1 -0
  645. package/dist/showcase/assets/lock-CPztxP5s.js +1 -0
  646. package/dist/showcase/assets/lock-keyhole-BHaFzps8.js +1 -0
  647. package/dist/showcase/assets/mail-DFoR3rHO.js +1 -0
  648. package/dist/showcase/assets/mail-check-QV1zqP5D.js +1 -0
  649. package/dist/showcase/assets/map-BOo4UMER.js +124 -0
  650. package/dist/showcase/assets/map-pin-CEcA7jdk.js +1 -0
  651. package/dist/showcase/assets/media-library-CKR3NF1Y.js +699 -0
  652. package/dist/showcase/assets/mention-inline-suggestions-Chbuzkb7.js +1 -0
  653. package/dist/showcase/assets/mentions-syVuen0M.js +138 -0
  654. package/dist/showcase/assets/menus-COIxEKPm.js +171 -0
  655. package/dist/showcase/assets/message-square-CYSVV7nZ.js +1 -0
  656. package/dist/showcase/assets/metadata-list-BHIfOKD6.js +1 -0
  657. package/dist/showcase/assets/metadata-list-DLI17y0k.js +286 -0
  658. package/dist/showcase/assets/metric-bar-OTyaeNJY.js +1 -0
  659. package/dist/showcase/assets/metric-grid-BcjDZqHZ.js +1 -0
  660. package/dist/showcase/assets/metric-opI4qu4r.js +1 -0
  661. package/dist/showcase/assets/metric-trend-chip-BvhqlY9f.js +1 -0
  662. package/dist/showcase/assets/metrics-analytics-bar-Z8xY1Gwq.js +44 -0
  663. package/dist/showcase/assets/metrics-analytics-cards-DfzbV-8j.js +50 -0
  664. package/dist/showcase/assets/metrics-comparison-C71X-WeV.js +76 -0
  665. package/dist/showcase/assets/metrics-heatmap-Cs1ixWQX.js +27 -0
  666. package/dist/showcase/assets/metrics-inline-badge-DP1guaTx.js +17 -0
  667. package/dist/showcase/assets/metrics-kpi-row-CVwHH3rN.js +31 -0
  668. package/dist/showcase/assets/metrics-micro-grid-CQGKibEU.js +42 -0
  669. package/dist/showcase/assets/metrics-overview-DPGjh2Gi.js +192 -0
  670. package/dist/showcase/assets/metrics-stat-cards-C3k7Uyt1.js +54 -0
  671. package/dist/showcase/assets/minus-BTHZFjKs.js +1 -0
  672. package/dist/showcase/assets/money-display-B8BodAKb.js +1 -0
  673. package/dist/showcase/assets/money-display-C7TuSgzA.js +3 -0
  674. package/dist/showcase/assets/month-year-picker-DQcCIbM9.js +1 -0
  675. package/dist/showcase/assets/navigation-BjYK7JTx.js +231 -0
  676. package/dist/showcase/assets/navigation-DkkHPGFq.js +90 -0
  677. package/dist/showcase/assets/navigation-extras-drFz7Xmf.js +43 -0
  678. package/dist/showcase/assets/notification-banner-CATA6COT.js +1 -0
  679. package/dist/showcase/assets/onboarding-checklist-CjGo74ic.js +119 -0
  680. package/dist/showcase/assets/overflow-tab-bar-BYRykiZn.js +1 -0
  681. package/dist/showcase/assets/overlays-BtfkqYL1.js +159 -0
  682. package/dist/showcase/assets/overlays-CzmrvPNh.js +408 -0
  683. package/dist/showcase/assets/overview-B5ckb1et.js +184 -0
  684. package/dist/showcase/assets/package-Db-MTVUx.js +1 -0
  685. package/dist/showcase/assets/package-check-UP9srP8w.js +1 -0
  686. package/dist/showcase/assets/page-BFvDdpX3.js +1 -0
  687. package/dist/showcase/assets/page-action-button-CROlcZJb.js +1 -0
  688. package/dist/showcase/assets/page-header-B8xYCCzF.js +1 -0
  689. package/dist/showcase/assets/pagination-B7j6cJXU.js +1 -0
  690. package/dist/showcase/assets/pagination-B8LN9MT7.js +42 -0
  691. package/dist/showcase/assets/paperclip-CAcGOT6G.js +1 -0
  692. package/dist/showcase/assets/password-input-DzO1QEsL.js +1 -0
  693. package/dist/showcase/assets/pencil-Db0qlNpO.js +1 -0
  694. package/dist/showcase/assets/phone-BHkprQ5O.js +1 -0
  695. package/dist/showcase/assets/placeholder-pattern-Ba0rjJa5.js +1 -0
  696. package/dist/showcase/assets/plus-CaAfJIjc.js +1 -0
  697. package/dist/showcase/assets/popover-BZsIv1AP.js +1 -0
  698. package/dist/showcase/assets/popover-DCfeA2ZY.js +1 -0
  699. package/dist/showcase/assets/popover-menu-kjcHCICE.js +1 -0
  700. package/dist/showcase/assets/product-empty-state-CSdeHHZT.js +1 -0
  701. package/dist/showcase/assets/product-option-action-menu-FvgEaWA7.js +1 -0
  702. package/dist/showcase/assets/product-rows-Cb8gLOeV.js +1 -0
  703. package/dist/showcase/assets/product-structure-card-CFqufBoJ.js +1 -0
  704. package/dist/showcase/assets/product-variant-action-menu-BvSn7PuK.js +1 -0
  705. package/dist/showcase/assets/products-D1aG4KFi.js +61 -0
  706. package/dist/showcase/assets/progress-2NWkkA6x.js +18 -0
  707. package/dist/showcase/assets/progress-DECH8qUu.js +1 -0
  708. package/dist/showcase/assets/progress-DHsjY-V1.js +1 -0
  709. package/dist/showcase/assets/props-table-CzpevabQ.js +1 -0
  710. package/dist/showcase/assets/props.generated-CXbCZMUk.json +42824 -0
  711. package/dist/showcase/assets/qr-code-DLeRQu83.js +1 -0
  712. package/dist/showcase/assets/quote-eFsPYmD1.js +1 -0
  713. package/dist/showcase/assets/receipt-V9T3dONa.js +1 -0
  714. package/dist/showcase/assets/receipt-text-866Msgc2.js +1 -0
  715. package/dist/showcase/assets/refinement-guide-BoerkamA.js +189 -0
  716. package/dist/showcase/assets/refresh-cw-Crg4uqw8.js +1 -0
  717. package/dist/showcase/assets/resolveValueLabel-D8poX7JF.js +1 -0
  718. package/dist/showcase/assets/resource-Ca8tGlsX.js +139 -0
  719. package/dist/showcase/assets/resource-aE-LkpW8.js +1 -0
  720. package/dist/showcase/assets/resource-selector-card-DzDG2Wl6.js +43 -0
  721. package/dist/showcase/assets/rich-text-editor-BCTbpMcY.js +143 -0
  722. package/dist/showcase/assets/rich-text-editor-CdklzzLj.js +124 -0
  723. package/dist/showcase/assets/rotate-ccw-CCPhnEPA.js +1 -0
  724. package/dist/showcase/assets/route-CODe9_7c.js +1 -0
  725. package/dist/showcase/assets/save-B_ze9MC9.js +1 -0
  726. package/dist/showcase/assets/schema-form-CEmpu59s.js +327 -0
  727. package/dist/showcase/assets/scroll-area-BM0asGLD.js +32 -0
  728. package/dist/showcase/assets/scroll-area-zRw8lSrA.js +1 -0
  729. package/dist/showcase/assets/section-DLqBJGPH.js +1 -0
  730. package/dist/showcase/assets/select-B0ivd5pJ.js +1 -0
  731. package/dist/showcase/assets/select-BrPUZL6Z.js +1 -0
  732. package/dist/showcase/assets/send-B4jTMdd9.js +1 -0
  733. package/dist/showcase/assets/separator-7f_tdxB3.js +28 -0
  734. package/dist/showcase/assets/separator-BvhVS5L0.js +1 -0
  735. package/dist/showcase/assets/separator-DeMF0eCd.js +1 -0
  736. package/dist/showcase/assets/separator-Dsqit2yw.js +1 -0
  737. package/dist/showcase/assets/settings-2-DnZeyxSR.js +1 -0
  738. package/dist/showcase/assets/settings-GFwewlvm.js +1 -0
  739. package/dist/showcase/assets/sheet-B06fRKgl.js +1 -0
  740. package/dist/showcase/assets/shield-NNzIJA-o.js +1 -0
  741. package/dist/showcase/assets/shield-alert-dlgSUsVl.js +1 -0
  742. package/dist/showcase/assets/shield-check-CkqmRaJd.js +1 -0
  743. package/dist/showcase/assets/shopping-bag-x4S32KGc.js +1 -0
  744. package/dist/showcase/assets/showcase-CiXeaTrT.js +132 -0
  745. package/dist/showcase/assets/sidebar-BDOvomlZ.js +1 -0
  746. package/dist/showcase/assets/sidebar.context-M_w0AsBU.js +1 -0
  747. package/dist/showcase/assets/skeleton-C0-TGyFP.js +29 -0
  748. package/dist/showcase/assets/skeleton-ClY9N5IF.js +1 -0
  749. package/dist/showcase/assets/skeleton-CyCX3AHa.js +1 -0
  750. package/dist/showcase/assets/skeleton-JapnB0xo.js +1 -0
  751. package/dist/showcase/assets/slider-BagnbSUE.js +1 -0
  752. package/dist/showcase/assets/smart-card-BA097ZGN.js +1 -0
  753. package/dist/showcase/assets/sonner-bg55zTHJ.js +22 -0
  754. package/dist/showcase/assets/sortable.esm-DCj5rKPd.js +5 -0
  755. package/dist/showcase/assets/sparkles-a2TsduRv.js +1 -0
  756. package/dist/showcase/assets/spinner-BRTHJLPS.js +49 -0
  757. package/dist/showcase/assets/spinner-RQ5TsGWE.js +30 -0
  758. package/dist/showcase/assets/spinner-yQrc4KLG.js +1 -0
  759. package/dist/showcase/assets/square-pen-wg5I0K5c.js +1 -0
  760. package/dist/showcase/assets/stacked-avatars-BGpGV4Is.js +1 -0
  761. package/dist/showcase/assets/star-Ccv6TKPm.js +1 -0
  762. package/dist/showcase/assets/startOfDay-BslQvd9l.js +1 -0
  763. package/dist/showcase/assets/styles-CMmKOMCT.js +1 -0
  764. package/dist/showcase/assets/suggestions--A7bRqHY.js +126 -0
  765. package/dist/showcase/assets/support-rail-b2WhhyFB.js +26 -0
  766. package/dist/showcase/assets/switch-Cv_v9byU.js +1 -0
  767. package/dist/showcase/assets/switch-DY-b3cEd.js +1 -0
  768. package/dist/showcase/assets/switch-card-C-Q3eon2.js +1 -0
  769. package/dist/showcase/assets/sync-BmH6kK2e.js +124 -0
  770. package/dist/showcase/assets/table-DAil3SVn.js +686 -0
  771. package/dist/showcase/assets/table-DNimuqS6.js +1 -0
  772. package/dist/showcase/assets/table-actions-Bgp9_jhZ.js +1 -0
  773. package/dist/showcase/assets/tabs-DN23r2we.js +1 -0
  774. package/dist/showcase/assets/tabs-RbFeMoGk.js +19 -0
  775. package/dist/showcase/assets/tags-input-Cp-ikGn_.js +1 -0
  776. package/dist/showcase/assets/text-button-CPxfmks9.js +1 -0
  777. package/dist/showcase/assets/text-link-BBHsgNSW.js +1 -0
  778. package/dist/showcase/assets/textarea-BGe_VCrI.js +1 -0
  779. package/dist/showcase/assets/textarea-DAV6cQCw.js +1 -0
  780. package/dist/showcase/assets/throttle-alert-B85zpgs4.js +1 -0
  781. package/dist/showcase/assets/timelines-BptCi-0C.js +200 -0
  782. package/dist/showcase/assets/toggle-group-B4tIG940.js +1 -0
  783. package/dist/showcase/assets/toggles-BSkNLAjb.js +71 -0
  784. package/dist/showcase/assets/toggles-group-CQIwVA__.js +32 -0
  785. package/dist/showcase/assets/tooltip-DN6bKPgk.js +31 -0
  786. package/dist/showcase/assets/trash-2-DZ5FSAFb.js +1 -0
  787. package/dist/showcase/assets/trending-up-DtSjt9AO.js +1 -0
  788. package/dist/showcase/assets/truck-B0QFWMMH.js +1 -0
  789. package/dist/showcase/assets/typography-8sXlmgaD.js +223 -0
  790. package/dist/showcase/assets/ui-badge-C4odkkUK.js +28 -0
  791. package/dist/showcase/assets/ui-card-CU1Ga8J6.js +30 -0
  792. package/dist/showcase/assets/ui-table-Bp-MkWh5.js +42 -0
  793. package/dist/showcase/assets/upload-tray-DT0HesKW.js +138 -0
  794. package/dist/showcase/assets/use-layout-link-BsJvjSZp.js +1 -0
  795. package/dist/showcase/assets/useAriaLabelledBy-Bl2oGr7T.js +1 -0
  796. package/dist/showcase/assets/useCollapsiblePanel-C8-r9Srt.js +1 -0
  797. package/dist/showcase/assets/useCompositeItem-DVZX40q_.js +1 -0
  798. package/dist/showcase/assets/useCompositeListItem-DWggcwRs.js +1 -0
  799. package/dist/showcase/assets/useLabelableId-Dx_-xVBr.js +1 -0
  800. package/dist/showcase/assets/useOpenInteractionType-CKNY2kPx.js +1 -0
  801. package/dist/showcase/assets/useRender-Bk8pPQUW.js +1 -0
  802. package/dist/showcase/assets/useTriggerFocusGuards-D74GGv1k.js +1 -0
  803. package/dist/showcase/assets/useValueChanged-BjYsvuOC.js +1 -0
  804. package/dist/showcase/assets/user-DlFWtE-h.js +1 -0
  805. package/dist/showcase/assets/user-plus-NGAALkPS.js +1 -0
  806. package/dist/showcase/assets/users-DYPDZwd6.js +1 -0
  807. package/dist/showcase/assets/variant-details-DtdWm8Bt.js +50 -0
  808. package/dist/showcase/assets/variant-management-Dk_P-wBF.js +209 -0
  809. package/dist/showcase/assets/vendor-profile-Bf1kKKdO.js +37 -0
  810. package/dist/showcase/assets/video-BObmzTOM.js +1 -0
  811. package/dist/showcase/assets/visually-hidden-rJ25V2wc.js +1 -0
  812. package/dist/showcase/assets/weight-input-DpQ3yEQ3.js +1 -0
  813. package/dist/showcase/assets/wrench-Df-eIMsM.js +1 -0
  814. package/dist/showcase/assets/x-DVQ0XpIT.js +1 -0
  815. package/dist/showcase/assets/zap-_0WPgXWT.js +1 -0
  816. package/dist/showcase/index.html +2 -2
  817. package/dist/style.css +1 -1
  818. package/package.json +1 -1
  819. package/src/css/tokens/components.css +17 -2
  820. package/src/css/tokens/foundation.css +4 -2
  821. package/dist/_shared/accordion-8B4OFqiT.cjs +0 -2
  822. package/dist/_shared/accordion-8B4OFqiT.cjs.map +0 -1
  823. package/dist/_shared/accordion-DlpTSZ3p.js +0 -135
  824. package/dist/_shared/accordion-DlpTSZ3p.js.map +0 -1
  825. package/dist/_shared/action-menu-BYrYdpkR.cjs +0 -2
  826. package/dist/_shared/action-menu-BYrYdpkR.cjs.map +0 -1
  827. package/dist/_shared/action-menu-CYwMZX-b.js +0 -96
  828. package/dist/_shared/action-menu-CYwMZX-b.js.map +0 -1
  829. package/dist/_shared/ai-artifact-Cv8VBibf.cjs +0 -3
  830. package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +0 -1
  831. package/dist/_shared/ai-artifact-DwfXQuh4.js +0 -1099
  832. package/dist/_shared/ai-artifact-DwfXQuh4.js.map +0 -1
  833. package/dist/_shared/auth-Cz5ci18c.cjs +0 -2
  834. package/dist/_shared/auth-Cz5ci18c.cjs.map +0 -1
  835. package/dist/_shared/auth-DDWsgFUL.js +0 -643
  836. package/dist/_shared/auth-DDWsgFUL.js.map +0 -1
  837. package/dist/_shared/badge-C65rt1M9.cjs +0 -2
  838. package/dist/_shared/badge-C65rt1M9.cjs.map +0 -1
  839. package/dist/_shared/badge-r8ae66Vd.js +0 -110
  840. package/dist/_shared/badge-r8ae66Vd.js.map +0 -1
  841. package/dist/_shared/breadcrumbs-CuT0YIfo.js +0 -105
  842. package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +0 -1
  843. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +0 -2
  844. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +0 -1
  845. package/dist/_shared/button-Be2ayMxF.js +0 -192
  846. package/dist/_shared/button-Be2ayMxF.js.map +0 -1
  847. package/dist/_shared/button-CfQtOuBK.cjs +0 -2
  848. package/dist/_shared/button-CfQtOuBK.cjs.map +0 -1
  849. package/dist/_shared/buttons-DABiSx6N.cjs +0 -2
  850. package/dist/_shared/buttons-DABiSx6N.cjs.map +0 -1
  851. package/dist/_shared/buttons-DYQqQPpk.js +0 -137
  852. package/dist/_shared/buttons-DYQqQPpk.js.map +0 -1
  853. package/dist/_shared/card-radio-group-DKhZhBFV.cjs +0 -2
  854. package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +0 -1
  855. package/dist/_shared/card-radio-group-DRjmLN5s.js +0 -150
  856. package/dist/_shared/card-radio-group-DRjmLN5s.js.map +0 -1
  857. package/dist/_shared/cards-BJctT9KD.js +0 -428
  858. package/dist/_shared/cards-BJctT9KD.js.map +0 -1
  859. package/dist/_shared/cards-m03XN10f.cjs +0 -2
  860. package/dist/_shared/cards-m03XN10f.cjs.map +0 -1
  861. package/dist/_shared/combobox-BdBpeD3C.cjs +0 -2
  862. package/dist/_shared/combobox-BdBpeD3C.cjs.map +0 -1
  863. package/dist/_shared/combobox-D9tU_83-.js +0 -954
  864. package/dist/_shared/combobox-D9tU_83-.js.map +0 -1
  865. package/dist/_shared/command-BbJB0pjP.cjs +0 -2
  866. package/dist/_shared/command-BbJB0pjP.cjs.map +0 -1
  867. package/dist/_shared/command-IP2wy_HN.js +0 -39
  868. package/dist/_shared/command-IP2wy_HN.js.map +0 -1
  869. package/dist/_shared/comments-DAzpeuQq.cjs +0 -2
  870. package/dist/_shared/comments-DAzpeuQq.cjs.map +0 -1
  871. package/dist/_shared/comments-DzZaKP9x.js +0 -952
  872. package/dist/_shared/comments-DzZaKP9x.js.map +0 -1
  873. package/dist/_shared/containers-CB7zaAvN.cjs +0 -2
  874. package/dist/_shared/containers-CB7zaAvN.cjs.map +0 -1
  875. package/dist/_shared/containers-CLBmhGfs.js +0 -48
  876. package/dist/_shared/containers-CLBmhGfs.js.map +0 -1
  877. package/dist/_shared/copyable-BJYx2SlN.js +0 -38
  878. package/dist/_shared/copyable-BJYx2SlN.js.map +0 -1
  879. package/dist/_shared/copyable-DiDEjp8Z.cjs +0 -2
  880. package/dist/_shared/copyable-DiDEjp8Z.cjs.map +0 -1
  881. package/dist/_shared/data-display-DQUUEzCx.cjs +0 -2
  882. package/dist/_shared/data-display-DQUUEzCx.cjs.map +0 -1
  883. package/dist/_shared/data-display-LlvMEFTK.js +0 -1878
  884. package/dist/_shared/data-display-LlvMEFTK.js.map +0 -1
  885. package/dist/_shared/date-picker-CrC-lHyF.cjs +0 -2
  886. package/dist/_shared/date-picker-CrC-lHyF.cjs.map +0 -1
  887. package/dist/_shared/date-picker-DbYBek-b.js +0 -1361
  888. package/dist/_shared/date-picker-DbYBek-b.js.map +0 -1
  889. package/dist/_shared/date-pickers-9AU8YQK2.js +0 -329
  890. package/dist/_shared/date-pickers-9AU8YQK2.js.map +0 -1
  891. package/dist/_shared/date-pickers-DUEwCWig.cjs +0 -2
  892. package/dist/_shared/date-pickers-DUEwCWig.cjs.map +0 -1
  893. package/dist/_shared/display-BqoPOdof.cjs +0 -2
  894. package/dist/_shared/display-BqoPOdof.cjs.map +0 -1
  895. package/dist/_shared/display-CQoSwU74.js +0 -986
  896. package/dist/_shared/display-CQoSwU74.js.map +0 -1
  897. package/dist/_shared/dropdown-menu-CHQzQWUK.cjs +0 -2
  898. package/dist/_shared/dropdown-menu-CHQzQWUK.cjs.map +0 -1
  899. package/dist/_shared/dropdown-menu-CoWmrjYX.js +0 -147
  900. package/dist/_shared/dropdown-menu-CoWmrjYX.js.map +0 -1
  901. package/dist/_shared/form-sizing-DJus3nK3.cjs +0 -2
  902. package/dist/_shared/form-sizing-DJus3nK3.cjs.map +0 -1
  903. package/dist/_shared/form-sizing-DWjJsQSR.js +0 -42
  904. package/dist/_shared/form-sizing-DWjJsQSR.js.map +0 -1
  905. package/dist/_shared/forms-CNh-S9FK.cjs +0 -2
  906. package/dist/_shared/forms-CNh-S9FK.cjs.map +0 -1
  907. package/dist/_shared/forms-DIz3SCA9.js +0 -3534
  908. package/dist/_shared/forms-DIz3SCA9.js.map +0 -1
  909. package/dist/_shared/header-Bs61tQla.js +0 -447
  910. package/dist/_shared/header-Bs61tQla.js.map +0 -1
  911. package/dist/_shared/header-D01oOxna.cjs +0 -2
  912. package/dist/_shared/header-D01oOxna.cjs.map +0 -1
  913. package/dist/_shared/hooks-ACnpaIli.js +0 -95
  914. package/dist/_shared/hooks-ACnpaIli.js.map +0 -1
  915. package/dist/_shared/hooks-B7khuHkk.cjs +0 -2
  916. package/dist/_shared/hooks-B7khuHkk.cjs.map +0 -1
  917. package/dist/_shared/input-CzJzVyQ0.js +0 -182
  918. package/dist/_shared/input-CzJzVyQ0.js.map +0 -1
  919. package/dist/_shared/input-Dvvmn96E.cjs +0 -2
  920. package/dist/_shared/input-Dvvmn96E.cjs.map +0 -1
  921. package/dist/_shared/item-CVjjpHQd.js +0 -226
  922. package/dist/_shared/item-CVjjpHQd.js.map +0 -1
  923. package/dist/_shared/item-ChHblHhR.cjs +0 -2
  924. package/dist/_shared/item-ChHblHhR.cjs.map +0 -1
  925. package/dist/_shared/layout-CGi5w1mo.js +0 -268
  926. package/dist/_shared/layout-CGi5w1mo.js.map +0 -1
  927. package/dist/_shared/layout-ccVwjUG8.cjs +0 -2
  928. package/dist/_shared/layout-ccVwjUG8.cjs.map +0 -1
  929. package/dist/_shared/mentions-Cg_4vFxd.cjs +0 -2
  930. package/dist/_shared/mentions-Cg_4vFxd.cjs.map +0 -1
  931. package/dist/_shared/mentions-Ci9RFTfw.js +0 -506
  932. package/dist/_shared/mentions-Ci9RFTfw.js.map +0 -1
  933. package/dist/_shared/money-display-BFk9Gu21.cjs +0 -2
  934. package/dist/_shared/money-display-BFk9Gu21.cjs.map +0 -1
  935. package/dist/_shared/money-display-DpuLnsK2.js +0 -198
  936. package/dist/_shared/money-display-DpuLnsK2.js.map +0 -1
  937. package/dist/_shared/navigation-C1QN2-Vq.cjs +0 -2
  938. package/dist/_shared/navigation-C1QN2-Vq.cjs.map +0 -1
  939. package/dist/_shared/navigation-CMrLO8v5.js +0 -436
  940. package/dist/_shared/navigation-CMrLO8v5.js.map +0 -1
  941. package/dist/_shared/overlays-BJLczwpz.js +0 -735
  942. package/dist/_shared/overlays-BJLczwpz.js.map +0 -1
  943. package/dist/_shared/overlays-DbaPLT67.cjs +0 -2
  944. package/dist/_shared/overlays-DbaPLT67.cjs.map +0 -1
  945. package/dist/_shared/popover-menu-D_t6rCvN.cjs +0 -2
  946. package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +0 -1
  947. package/dist/_shared/popover-menu-f2O6R_27.js +0 -93
  948. package/dist/_shared/popover-menu-f2O6R_27.js.map +0 -1
  949. package/dist/_shared/rich-text-editor-DmZHbsms.js +0 -620
  950. package/dist/_shared/rich-text-editor-DmZHbsms.js.map +0 -1
  951. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +0 -2
  952. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +0 -1
  953. package/dist/_shared/settings-CgtcSI8L.js +0 -143
  954. package/dist/_shared/settings-CgtcSI8L.js.map +0 -1
  955. package/dist/_shared/settings-csNmeT7b.cjs +0 -2
  956. package/dist/_shared/settings-csNmeT7b.cjs.map +0 -1
  957. package/dist/_shared/sidebar-DyGIcJd9.cjs +0 -2
  958. package/dist/_shared/sidebar-DyGIcJd9.cjs.map +0 -1
  959. package/dist/_shared/sidebar-OT-xIguQ.js +0 -548
  960. package/dist/_shared/sidebar-OT-xIguQ.js.map +0 -1
  961. package/dist/_shared/skeleton-DwF5VdMh.cjs +0 -2
  962. package/dist/_shared/skeleton-DwF5VdMh.cjs.map +0 -1
  963. package/dist/_shared/skeleton-yUXqeWzB.js +0 -256
  964. package/dist/_shared/skeleton-yUXqeWzB.js.map +0 -1
  965. package/dist/_shared/spinner-BDrUzfTo.cjs +0 -2
  966. package/dist/_shared/spinner-BDrUzfTo.cjs.map +0 -1
  967. package/dist/_shared/spinner-CuVZhJhN.js +0 -67
  968. package/dist/_shared/spinner-CuVZhJhN.js.map +0 -1
  969. package/dist/_shared/table-BVWemr79.cjs +0 -2
  970. package/dist/_shared/table-BVWemr79.cjs.map +0 -1
  971. package/dist/_shared/table-WYSjfQRr.js +0 -1377
  972. package/dist/_shared/table-WYSjfQRr.js.map +0 -1
  973. package/dist/_shared/textarea-C0iZwWdD.js +0 -118
  974. package/dist/_shared/textarea-C0iZwWdD.js.map +0 -1
  975. package/dist/_shared/textarea-bHFAtwYd.cjs +0 -2
  976. package/dist/_shared/textarea-bHFAtwYd.cjs.map +0 -1
  977. package/dist/_shared/typography-5bLhAYaK.js +0 -201
  978. package/dist/_shared/typography-5bLhAYaK.js.map +0 -1
  979. package/dist/_shared/typography-CWEobAJV.cjs +0 -2
  980. package/dist/_shared/typography-CWEobAJV.cjs.map +0 -1
  981. package/dist/_shared/workspace-BkwsqTrc.cjs +0 -2
  982. package/dist/_shared/workspace-BkwsqTrc.cjs.map +0 -1
  983. package/dist/_shared/workspace-DpU1YG1t.js +0 -357
  984. package/dist/_shared/workspace-DpU1YG1t.js.map +0 -1
  985. package/dist/showcase/assets/AreaChart-DxDBymDt.js +0 -6
  986. package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +0 -1
  987. package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +0 -1
  988. package/dist/showcase/assets/DialogTrigger-OUBMI353.js +0 -1
  989. package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +0 -1
  990. package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +0 -1
  991. package/dist/showcase/assets/RadioGroup-BzveyiIV.js +0 -1
  992. package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +0 -1
  993. package/dist/showcase/assets/Separator-CSYYEo-X.js +0 -1
  994. package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +0 -1
  995. package/dist/showcase/assets/accordion-B9VkLXiy.js +0 -171
  996. package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +0 -1
  997. package/dist/showcase/assets/action-menu-CWIvuiLO.js +0 -1
  998. package/dist/showcase/assets/actions-BuwzXYEF.js +0 -310
  999. package/dist/showcase/assets/activities-BTBlr1G4.js +0 -500
  1000. package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +0 -1
  1001. package/dist/showcase/assets/admin-kbK6nUjx.js +0 -140
  1002. package/dist/showcase/assets/ai-CKu9EGmA.js +0 -207
  1003. package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +0 -2
  1004. package/dist/showcase/assets/ai-chat-DEntRhJD.js +0 -568
  1005. package/dist/showcase/assets/ai-elements-DyKRCWiS.js +0 -387
  1006. package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +0 -1
  1007. package/dist/showcase/assets/alert-C0wSpBYn.js +0 -93
  1008. package/dist/showcase/assets/alert-CZ4rgwPr.js +0 -62
  1009. package/dist/showcase/assets/alert-WTKIdE4s.js +0 -1
  1010. package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +0 -1
  1011. package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +0 -73
  1012. package/dist/showcase/assets/app-sidebar-B3veRbac.js +0 -1
  1013. package/dist/showcase/assets/arrow-down-CEXJx115.js +0 -1
  1014. package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +0 -1
  1015. package/dist/showcase/assets/arrow-right-a3STqWgx.js +0 -1
  1016. package/dist/showcase/assets/arrow-up-CCU1MaGq.js +0 -1
  1017. package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +0 -1
  1018. package/dist/showcase/assets/avatar-Bwgai0SK.js +0 -67
  1019. package/dist/showcase/assets/avatar-DSmL52Us.js +0 -57
  1020. package/dist/showcase/assets/avatar-kK9n1a25.js +0 -1
  1021. package/dist/showcase/assets/avatar-nb7MgV_x.js +0 -1
  1022. package/dist/showcase/assets/badge-CTGPRSXm.js +0 -31
  1023. package/dist/showcase/assets/badge-check-zqoYYrVj.js +0 -1
  1024. package/dist/showcase/assets/bell-D7HWGStL.js +0 -1
  1025. package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +0 -1
  1026. package/dist/showcase/assets/bot-Owx4SMiU.js +0 -1
  1027. package/dist/showcase/assets/box-BeeoLlMd.js +0 -1
  1028. package/dist/showcase/assets/braces-fzrExVIx.js +0 -1
  1029. package/dist/showcase/assets/brain-Da2fsBjd.js +0 -1
  1030. package/dist/showcase/assets/brand-Bo6uwdGf.js +0 -36
  1031. package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +0 -1
  1032. package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +0 -52
  1033. package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +0 -1
  1034. package/dist/showcase/assets/briefcase-DQjbh28E.js +0 -1
  1035. package/dist/showcase/assets/building-2-DaQW5yJa.js +0 -1
  1036. package/dist/showcase/assets/button-D3skvyQS.js +0 -44
  1037. package/dist/showcase/assets/button-group-BYtbrhme.js +0 -1
  1038. package/dist/showcase/assets/buttons-B3IkMmNQ.js +0 -272
  1039. package/dist/showcase/assets/calendar-C4fCDK3O.js +0 -1
  1040. package/dist/showcase/assets/calendar-CcwkVxCK.js +0 -16
  1041. package/dist/showcase/assets/calendar-DBkwxV9H.js +0 -1
  1042. package/dist/showcase/assets/calendar-days-BWed1W3Z.js +0 -1
  1043. package/dist/showcase/assets/camera-BUoAyoZT.js +0 -1
  1044. package/dist/showcase/assets/card-7DBPqWuv.js +0 -1
  1045. package/dist/showcase/assets/card-ClwyNDHJ.js +0 -188
  1046. package/dist/showcase/assets/card-primitives-BE1YpEQW.js +0 -1
  1047. package/dist/showcase/assets/card-radio-group-1NMbocuG.js +0 -1
  1048. package/dist/showcase/assets/cards-Bu8uaGSU.js +0 -354
  1049. package/dist/showcase/assets/carousel-dTTRRSQg.js +0 -449
  1050. package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +0 -1
  1051. package/dist/showcase/assets/chart-BSboeIO6.js +0 -358
  1052. package/dist/showcase/assets/chart-column-CCzA6B9l.js +0 -1
  1053. package/dist/showcase/assets/checkbox-CSdEPNT5.js +0 -1
  1054. package/dist/showcase/assets/checkbox-CqNLi9Q3.js +0 -1
  1055. package/dist/showcase/assets/chevron-down-C91gNQdT.js +0 -1
  1056. package/dist/showcase/assets/chevron-left-SiAoYFSo.js +0 -1
  1057. package/dist/showcase/assets/chevron-up-Beb1_ET_.js +0 -1
  1058. package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +0 -1
  1059. package/dist/showcase/assets/circle-D9KiRp8C.js +0 -1
  1060. package/dist/showcase/assets/circle-alert-BQkAwFkl.js +0 -1
  1061. package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +0 -1
  1062. package/dist/showcase/assets/circle-check-dqmKTiDe.js +0 -1
  1063. package/dist/showcase/assets/circle-dot-B7LPN_0V.js +0 -1
  1064. package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +0 -1
  1065. package/dist/showcase/assets/circle-x-CW2dFcX-.js +0 -1
  1066. package/dist/showcase/assets/clock-3-CXJ_JotW.js +0 -1
  1067. package/dist/showcase/assets/clock-DUqvfazQ.js +0 -1
  1068. package/dist/showcase/assets/code-xml-BmdQDeID.js +0 -1
  1069. package/dist/showcase/assets/collapsible-C-WYhJxn.js +0 -1
  1070. package/dist/showcase/assets/collapsible-CL37AlCX.js +0 -27
  1071. package/dist/showcase/assets/collapsible-uGO5Rj8q.js +0 -1
  1072. package/dist/showcase/assets/combobox-CFh5kUzj.js +0 -685
  1073. package/dist/showcase/assets/command-CtpLaHjh.js +0 -1
  1074. package/dist/showcase/assets/command-DSlK-QAE.js +0 -1
  1075. package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +0 -1
  1076. package/dist/showcase/assets/comment-item-Dme2o2KI.js +0 -1
  1077. package/dist/showcase/assets/comments-CW2nz465.js +0 -357
  1078. package/dist/showcase/assets/commerce-bwcq6oPn.js +0 -267
  1079. package/dist/showcase/assets/composite-DMIR0vmP.js +0 -1
  1080. package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +0 -1
  1081. package/dist/showcase/assets/contact-card-BCXS9tWq.js +0 -65
  1082. package/dist/showcase/assets/content-container-b1dC2caJ.js +0 -1
  1083. package/dist/showcase/assets/copyable-BIABx-Vv.js +0 -96
  1084. package/dist/showcase/assets/copyable-Ic9wzVaj.js +0 -1
  1085. package/dist/showcase/assets/course-card-Bo5P3TYv.js +0 -77
  1086. package/dist/showcase/assets/cpu-_VqU6yRO.js +0 -1
  1087. package/dist/showcase/assets/credit-card-BbxO8xLo.js +0 -1
  1088. package/dist/showcase/assets/css-variables-zqpBgnS1.js +0 -1205
  1089. package/dist/showcase/assets/currency-Cjvt4F0b.js +0 -149
  1090. package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +0 -90
  1091. package/dist/showcase/assets/data-view-AtyUp7b-.js +0 -124
  1092. package/dist/showcase/assets/data-view-cnEmgP1C.js +0 -4
  1093. package/dist/showcase/assets/database-TbVXEw7v.js +0 -1
  1094. package/dist/showcase/assets/date-block-CDHemKnP.js +0 -1
  1095. package/dist/showcase/assets/date-block-COb89Y_-.js +0 -1
  1096. package/dist/showcase/assets/date-picker-CK8llBIN.js +0 -1
  1097. package/dist/showcase/assets/date-pickers-DFfDnW9w.js +0 -73
  1098. package/dist/showcase/assets/dense-info-CaFVDE90.js +0 -106
  1099. package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +0 -264
  1100. package/dist/showcase/assets/dialog-CRQNEK2K.js +0 -1
  1101. package/dist/showcase/assets/dialog-CsCLDb0G.js +0 -1
  1102. package/dist/showcase/assets/dialog-Qh3EHEKq.js +0 -1
  1103. package/dist/showcase/assets/display-utilities-rP3hb4FK.js +0 -4
  1104. package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +0 -309
  1105. package/dist/showcase/assets/dist-CbqRct9s.js +0 -1
  1106. package/dist/showcase/assets/dist-iivamCjp.js +0 -45
  1107. package/dist/showcase/assets/dollar-sign-COaRmdJE.js +0 -1
  1108. package/dist/showcase/assets/download-yCcb4rfH.js +0 -1
  1109. package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +0 -1
  1110. package/dist/showcase/assets/dropzone-DLguWnmu.js +0 -1
  1111. package/dist/showcase/assets/earth-TDRqTA4S.js +0 -1
  1112. package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +0 -1
  1113. package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +0 -1
  1114. package/dist/showcase/assets/empty-DvmDTSAj.js +0 -1
  1115. package/dist/showcase/assets/empty-item-C3HP5nuw.js +0 -49
  1116. package/dist/showcase/assets/empty-state-Dcin4cOt.js +0 -190
  1117. package/dist/showcase/assets/empty-state-IV_GTNEI.js +0 -1
  1118. package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +0 -357
  1119. package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +0 -1
  1120. package/dist/showcase/assets/esm-Cf6QQstQ.js +0 -2
  1121. package/dist/showcase/assets/event-calendar-zrfI_3AM.js +0 -138
  1122. package/dist/showcase/assets/event-log-D-_CViAw.js +0 -330
  1123. package/dist/showcase/assets/example-6bZGEb3-.js +0 -1
  1124. package/dist/showcase/assets/external-link-7ldgjHZM.js +0 -1
  1125. package/dist/showcase/assets/eye-pXVkim6z.js +0 -1
  1126. package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +0 -34
  1127. package/dist/showcase/assets/file-Bn9sAGaT.js +0 -1
  1128. package/dist/showcase/assets/file-text-Cvxg6pjh.js +0 -1
  1129. package/dist/showcase/assets/filter-layout-DqNRRzDU.js +0 -1
  1130. package/dist/showcase/assets/filters-CQMI_T63.js +0 -139
  1131. package/dist/showcase/assets/flag-vI_WJ-BU.js +0 -1
  1132. package/dist/showcase/assets/folder-open-0AyKSRQS.js +0 -1
  1133. package/dist/showcase/assets/form-field-BaBeXn7a.js +0 -1
  1134. package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +0 -1
  1135. package/dist/showcase/assets/format-DLLMyN-3.js +0 -1
  1136. package/dist/showcase/assets/forms-gPD-Caru.js +0 -915
  1137. package/dist/showcase/assets/funnel-Ca9nWMHm.js +0 -1
  1138. package/dist/showcase/assets/generic-AAssz0h7.js +0 -1
  1139. package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +0 -1
  1140. package/dist/showcase/assets/gift-BC42Oxfz.js +0 -1
  1141. package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +0 -85
  1142. package/dist/showcase/assets/git-branch-B-nF8w-J.js +0 -1
  1143. package/dist/showcase/assets/global-search-D6Gxw0G3.js +0 -1
  1144. package/dist/showcase/assets/global-search-jsb_4idg.js +0 -215
  1145. package/dist/showcase/assets/globe-C92uBSrO.js +0 -1
  1146. package/dist/showcase/assets/gradient-card-D4ly60sD.js +0 -58
  1147. package/dist/showcase/assets/hash-BShTbxlR.js +0 -1
  1148. package/dist/showcase/assets/header-CSiNqg9Q.js +0 -1
  1149. package/dist/showcase/assets/header-notifications-CpHeFPQF.js +0 -1
  1150. package/dist/showcase/assets/heart-B3hXs7fr.js +0 -1
  1151. package/dist/showcase/assets/hooks-CamAqFFh.js +0 -220
  1152. package/dist/showcase/assets/house-4_CouE-Y.js +0 -1
  1153. package/dist/showcase/assets/icon-badge-CePIZqWR.js +0 -1
  1154. package/dist/showcase/assets/icon-badge-DSbvvnxh.js +0 -37
  1155. package/dist/showcase/assets/image-BxbFIbVJ.js +0 -1
  1156. package/dist/showcase/assets/inbox-BXab1SM6.js +0 -1
  1157. package/dist/showcase/assets/index-BPUtPJjB.css +0 -2
  1158. package/dist/showcase/assets/index-BjjNfnhP.js +0 -10
  1159. package/dist/showcase/assets/inertValue-CZOzgsmF.js +0 -1
  1160. package/dist/showcase/assets/info-DzqwCq93.js +0 -1
  1161. package/dist/showcase/assets/inline-stat-D5ybpUh-.js +0 -15
  1162. package/dist/showcase/assets/inline-stat-Dq34wv-6.js +0 -1
  1163. package/dist/showcase/assets/input-C8OfUHCK.js +0 -1
  1164. package/dist/showcase/assets/input-D34Ge3rh.js +0 -1
  1165. package/dist/showcase/assets/input-group-BCPZ6Pwq.js +0 -1
  1166. package/dist/showcase/assets/input-group-CySTANka.js +0 -47
  1167. package/dist/showcase/assets/inputs-CnmHo_lj.js +0 -155
  1168. package/dist/showcase/assets/installation-BPvseS46.js +0 -134
  1169. package/dist/showcase/assets/invoice-header-C9JjJWQX.js +0 -36
  1170. package/dist/showcase/assets/invoice-items-DB8tbCv9.js +0 -36
  1171. package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +0 -14
  1172. package/dist/showcase/assets/invoice-table-CLDvpLib.js +0 -30
  1173. package/dist/showcase/assets/isSameDay-D8bDebyL.js +0 -1
  1174. package/dist/showcase/assets/isToday-XVjRuMtp.js +0 -1
  1175. package/dist/showcase/assets/italic-Cm13b8qb.js +0 -1
  1176. package/dist/showcase/assets/item-C07859JQ.js +0 -1
  1177. package/dist/showcase/assets/item-LinnMxvu.js +0 -1
  1178. package/dist/showcase/assets/item-i7ZUMs5t.js +0 -140
  1179. package/dist/showcase/assets/kanban-CIMTpuN5.js +0 -188
  1180. package/dist/showcase/assets/key-round-Bh7EzOyR.js +0 -1
  1181. package/dist/showcase/assets/label-C3A4CjeG.js +0 -1
  1182. package/dist/showcase/assets/languages-C37jhetw.js +0 -1
  1183. package/dist/showcase/assets/layers-Lyr6p-Nt.js +0 -1
  1184. package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +0 -608
  1185. package/dist/showcase/assets/layout-auth-y1alnhc8.js +0 -790
  1186. package/dist/showcase/assets/layout-containers-B6c-uvil.js +0 -101
  1187. package/dist/showcase/assets/layout-header-DNhJHWNw.js +0 -203
  1188. package/dist/showcase/assets/layout-page-CXU7CnQK.js +0 -315
  1189. package/dist/showcase/assets/layout-primitives-StuFwfwh.js +0 -34
  1190. package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +0 -224
  1191. package/dist/showcase/assets/layout-users-D7KMzs3-.js +0 -117
  1192. package/dist/showcase/assets/layout-workspace-Butr7CL5.js +0 -191
  1193. package/dist/showcase/assets/lib-D5nOMXIt.js +0 -1
  1194. package/dist/showcase/assets/list-checks-Cg9HZf4W.js +0 -1
  1195. package/dist/showcase/assets/lock-Da21HhQx.js +0 -1
  1196. package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +0 -1
  1197. package/dist/showcase/assets/mail-Bamky-ti.js +0 -1
  1198. package/dist/showcase/assets/mail-check-BfVYPC42.js +0 -1
  1199. package/dist/showcase/assets/map-BTlWnRAQ.js +0 -124
  1200. package/dist/showcase/assets/map-pin-BU2RBuvC.js +0 -1
  1201. package/dist/showcase/assets/media-library-DJxgoGAF.js +0 -699
  1202. package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +0 -1
  1203. package/dist/showcase/assets/mentions-kMT-Z3qU.js +0 -138
  1204. package/dist/showcase/assets/menus-bhp_n9PT.js +0 -171
  1205. package/dist/showcase/assets/message-square-DC5Bb9Zs.js +0 -1
  1206. package/dist/showcase/assets/metadata-list-DGr729EW.js +0 -286
  1207. package/dist/showcase/assets/metadata-list-DyjhZi6d.js +0 -1
  1208. package/dist/showcase/assets/metric-DRDok6Ci.js +0 -1
  1209. package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +0 -1
  1210. package/dist/showcase/assets/metric-grid-BlFXTrid.js +0 -1
  1211. package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +0 -1
  1212. package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +0 -44
  1213. package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +0 -50
  1214. package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +0 -76
  1215. package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +0 -27
  1216. package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +0 -17
  1217. package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +0 -31
  1218. package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +0 -42
  1219. package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +0 -192
  1220. package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +0 -54
  1221. package/dist/showcase/assets/minus-Dr1iTc_q.js +0 -1
  1222. package/dist/showcase/assets/money-display-B5_VqQC0.js +0 -1
  1223. package/dist/showcase/assets/money-display-bU2_cVGX.js +0 -1
  1224. package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +0 -1
  1225. package/dist/showcase/assets/navigation-DBKvJoe-.js +0 -231
  1226. package/dist/showcase/assets/navigation-DOhfmtgy.js +0 -90
  1227. package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +0 -43
  1228. package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +0 -1
  1229. package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +0 -119
  1230. package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +0 -1
  1231. package/dist/showcase/assets/overlays-4E_sUgkz.js +0 -408
  1232. package/dist/showcase/assets/overlays-ulNl-Vhr.js +0 -159
  1233. package/dist/showcase/assets/overview-CgymfIBq.js +0 -184
  1234. package/dist/showcase/assets/package-CADuUP1u.js +0 -1
  1235. package/dist/showcase/assets/package-check-O7MD6XE_.js +0 -1
  1236. package/dist/showcase/assets/page-GB6OIgID.js +0 -1
  1237. package/dist/showcase/assets/page-action-button-Dpprot7y.js +0 -1
  1238. package/dist/showcase/assets/page-header-2VEUPx67.js +0 -1
  1239. package/dist/showcase/assets/pagination-BBuRtAX9.js +0 -1
  1240. package/dist/showcase/assets/pagination-C4mt4Q4l.js +0 -42
  1241. package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +0 -1
  1242. package/dist/showcase/assets/password-input-CgZj1niQ.js +0 -1
  1243. package/dist/showcase/assets/pencil-CtdXjogr.js +0 -1
  1244. package/dist/showcase/assets/phone-CAFMH1vV.js +0 -1
  1245. package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +0 -1
  1246. package/dist/showcase/assets/plus-CN2dzUxL.js +0 -1
  1247. package/dist/showcase/assets/popover-DILNXLWy.js +0 -1
  1248. package/dist/showcase/assets/popover-menu-Bp08xxOf.js +0 -1
  1249. package/dist/showcase/assets/popover-o1EO2yVS.js +0 -1
  1250. package/dist/showcase/assets/products-CCLAbHBN.js +0 -423
  1251. package/dist/showcase/assets/progress-BGna-ZmU.js +0 -18
  1252. package/dist/showcase/assets/progress-BSYlNLIJ.js +0 -1
  1253. package/dist/showcase/assets/progress-CZVy3LGB.js +0 -1
  1254. package/dist/showcase/assets/props-table-X9St7Q4m.js +0 -1
  1255. package/dist/showcase/assets/props.generated-f_jHBhPb.json +0 -41753
  1256. package/dist/showcase/assets/qr-code-CEmKf9xU.js +0 -1
  1257. package/dist/showcase/assets/quote-IH6r-rlY.js +0 -1
  1258. package/dist/showcase/assets/receipt-m9rOe5lY.js +0 -1
  1259. package/dist/showcase/assets/receipt-text-C0TobatH.js +0 -1
  1260. package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +0 -189
  1261. package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +0 -1
  1262. package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +0 -1
  1263. package/dist/showcase/assets/resource-BcJ8O6uj.js +0 -1
  1264. package/dist/showcase/assets/resource-_zDXez77.js +0 -139
  1265. package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +0 -43
  1266. package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +0 -143
  1267. package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +0 -124
  1268. package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +0 -1
  1269. package/dist/showcase/assets/route-C7EZ2Njy.js +0 -1
  1270. package/dist/showcase/assets/save-fKrt-yFG.js +0 -1
  1271. package/dist/showcase/assets/schema-form-k7TXeirD.js +0 -327
  1272. package/dist/showcase/assets/scroll-area-CqNwdlI6.js +0 -32
  1273. package/dist/showcase/assets/scroll-area-UVtlGOgx.js +0 -1
  1274. package/dist/showcase/assets/section-DuBNJP4P.js +0 -1
  1275. package/dist/showcase/assets/select-CINVEIWn.js +0 -1
  1276. package/dist/showcase/assets/select-ZLaamXrm.js +0 -1
  1277. package/dist/showcase/assets/send-DBvt_4jT.js +0 -1
  1278. package/dist/showcase/assets/separator-BdBXRpc3.js +0 -28
  1279. package/dist/showcase/assets/separator-CkJjJQWW.js +0 -1
  1280. package/dist/showcase/assets/separator-CxOeStjL.js +0 -1
  1281. package/dist/showcase/assets/separator-O-VQMSf_.js +0 -1
  1282. package/dist/showcase/assets/settings-2-BWjMVlyS.js +0 -1
  1283. package/dist/showcase/assets/settings-D9Z79UcG.js +0 -1
  1284. package/dist/showcase/assets/sheet-CK9C6r7_.js +0 -1
  1285. package/dist/showcase/assets/shield-BboB3Zlo.js +0 -1
  1286. package/dist/showcase/assets/shield-alert-CAAobStl.js +0 -1
  1287. package/dist/showcase/assets/shield-check-Rfyzz9bK.js +0 -1
  1288. package/dist/showcase/assets/shopping-bag-5hLD82YW.js +0 -1
  1289. package/dist/showcase/assets/showcase-DhOQXB5E.js +0 -132
  1290. package/dist/showcase/assets/sidebar-ZTUACc0t.js +0 -1
  1291. package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +0 -1
  1292. package/dist/showcase/assets/skeleton-BZUSoHbk.js +0 -1
  1293. package/dist/showcase/assets/skeleton-BZkYzAdq.js +0 -1
  1294. package/dist/showcase/assets/skeleton-CrOp8tx3.js +0 -29
  1295. package/dist/showcase/assets/skeleton-P5GXAj4U.js +0 -1
  1296. package/dist/showcase/assets/slider-zlE7nLrp.js +0 -1
  1297. package/dist/showcase/assets/smart-card-OExZHSsj.js +0 -1
  1298. package/dist/showcase/assets/sonner-eMphKM9E.js +0 -22
  1299. package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +0 -5
  1300. package/dist/showcase/assets/sparkles-CIB5irID.js +0 -1
  1301. package/dist/showcase/assets/spinner-11-kP-Ob.js +0 -1
  1302. package/dist/showcase/assets/spinner-D4G5TFSm.js +0 -49
  1303. package/dist/showcase/assets/spinner-DKGukuFV.js +0 -30
  1304. package/dist/showcase/assets/square-pen-zflKy9oX.js +0 -1
  1305. package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +0 -1
  1306. package/dist/showcase/assets/star-DleXDkCp.js +0 -1
  1307. package/dist/showcase/assets/startOfDay-TDP2erzM.js +0 -1
  1308. package/dist/showcase/assets/styles-BKlX_Ipc.js +0 -1
  1309. package/dist/showcase/assets/suggestions-Dt2hm1NY.js +0 -126
  1310. package/dist/showcase/assets/switch-DAPAgJbv.js +0 -1
  1311. package/dist/showcase/assets/switch-fQpP2tJl.js +0 -1
  1312. package/dist/showcase/assets/sync-BRcK160D.js +0 -124
  1313. package/dist/showcase/assets/table-Dhmbe1yN.js +0 -686
  1314. package/dist/showcase/assets/table-actions-GGrPOQcv.js +0 -1
  1315. package/dist/showcase/assets/table-v0Eu5yZn.js +0 -1
  1316. package/dist/showcase/assets/tabs-DmaXB1aF.js +0 -19
  1317. package/dist/showcase/assets/tabs-vbNIJ-eo.js +0 -1
  1318. package/dist/showcase/assets/tags-input-Bms_Q5CE.js +0 -1
  1319. package/dist/showcase/assets/text-button-gvJCzaXS.js +0 -1
  1320. package/dist/showcase/assets/text-link-DkByVX4d.js +0 -1
  1321. package/dist/showcase/assets/textarea-B6Ho29y3.js +0 -1
  1322. package/dist/showcase/assets/textarea-JCb0yhZ1.js +0 -1
  1323. package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +0 -1
  1324. package/dist/showcase/assets/timelines-Bw7mvAdx.js +0 -200
  1325. package/dist/showcase/assets/toggle-group-jlIGX1zh.js +0 -1
  1326. package/dist/showcase/assets/toggles-DV6V9vj-.js +0 -71
  1327. package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +0 -32
  1328. package/dist/showcase/assets/tooltip-CDtPyNOv.js +0 -31
  1329. package/dist/showcase/assets/trash-2-CXRm3lMl.js +0 -1
  1330. package/dist/showcase/assets/trending-up-Bcyp9cw8.js +0 -1
  1331. package/dist/showcase/assets/truck-DVgzuKLP.js +0 -1
  1332. package/dist/showcase/assets/typography-BKPf4j85.js +0 -223
  1333. package/dist/showcase/assets/ui-badge-D-Ud2MES.js +0 -28
  1334. package/dist/showcase/assets/ui-card-gGqI2cfr.js +0 -30
  1335. package/dist/showcase/assets/ui-table-Bqcab_kq.js +0 -42
  1336. package/dist/showcase/assets/upload-tray-BFh6twLE.js +0 -138
  1337. package/dist/showcase/assets/use-layout-link-e9jr981L.js +0 -1
  1338. package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +0 -1
  1339. package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +0 -1
  1340. package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +0 -1
  1341. package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +0 -1
  1342. package/dist/showcase/assets/useLabelableId-COfjI9qt.js +0 -1
  1343. package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +0 -1
  1344. package/dist/showcase/assets/useRender-Bgu76j1u.js +0 -1
  1345. package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +0 -1
  1346. package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +0 -1
  1347. package/dist/showcase/assets/user-CmkLnMh9.js +0 -1
  1348. package/dist/showcase/assets/user-plus-3CGFNUf0.js +0 -1
  1349. package/dist/showcase/assets/users-CuO8W7wn.js +0 -1
  1350. package/dist/showcase/assets/vendor-profile-HLMsE22G.js +0 -37
  1351. package/dist/showcase/assets/video-CoHnn0fp.js +0 -1
  1352. package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +0 -1
  1353. package/dist/showcase/assets/wrench-C93IxaGt.js +0 -1
  1354. package/dist/showcase/assets/x-BJDvVLAz.js +0 -1
  1355. package/dist/showcase/assets/zap-DYD_Ljkv.js +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-D01oOxna.cjs","names":[],"sources":["../../src/components/layout/header/partials/header-breadcrumbs.tsx","../../src/components/layout/header/header.tsx","../../src/components/layout/header/header.types.ts","../../src/components/layout/header/partials/header-search.tsx","../../src/components/layout/header/partials/header-global-search-trigger.tsx","../../src/components/layout/header/partials/header-tool-button.tsx","../../src/components/layout/header/partials/header-tool-popover.tsx","../../src/components/layout/header/partials/header-user-menu.tsx","../../src/components/layout/header/partials/header-notifications.tsx"],"sourcesContent":["/** HeaderBreadcrumbs — breadcrumbs trail with optional sidebar trigger. */\nimport * as React from 'react';\n\nimport { Separator } from '@/components/base/display/separator';\nimport { Breadcrumbs } from '@/components/base/navigation/breadcrumbs';\nimport { SidebarTrigger } from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { BreadcrumbItem } from '../../layout.types';\nimport type { HeaderBreadcrumbsProps } from '../header.types';\n\nexport function HeaderBreadcrumbs({\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\ttriggerSlot,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: HeaderBreadcrumbsProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst items = React.useMemo<BreadcrumbItem[]>(() => {\n\t\tconst out: BreadcrumbItem[] = [];\n\t\tif (homeBreadcrumb) out.push(homeBreadcrumb);\n\t\tout.push(...breadcrumbs);\n\t\treturn out;\n\t}, [homeBreadcrumb, breadcrumbs]);\n\n\tconst showCrumbs = items.length > 0;\n\n\treturn (\n\t\t<div className={cn('relative flex min-h-9 min-w-0 items-stretch gap-3 overflow-hidden', className)}>\n\t\t\t{!!showSidebarTrigger && (\n\t\t\t\t<div className=\"relative flex min-h-9 items-center justify-center gap-2\">\n\t\t\t\t\t{triggerSlot ?? <SidebarTrigger className=\"size-7 [&_svg]:size-4\" />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!showCrumbs && (\n\t\t\t\t<>\n\t\t\t\t\t{!!showSidebarTrigger && <Separator orientation=\"vertical\" className=\"h-auto self-stretch\" />}\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center overflow-hidden\">\n\t\t\t\t\t\t<Breadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={items}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'min-w-0 overflow-hidden',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-list]]:flex-nowrap [&_[data-slot=breadcrumb-list]]:overflow-hidden [&_[data-slot=breadcrumb-list]]:break-normal',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-item]]:min-w-0 [&_[data-slot=breadcrumb-item]]:shrink',\n\t\t\t\t\t\t\t\t'[&_[data-slot=breadcrumb-link]]:truncate [&_[data-slot=breadcrumb-page]]:truncate',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","/** Header — sticky top bar with breadcrumbs and slot-driven content regions. */\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { HeaderBreadcrumbs } from './partials/header-breadcrumbs';\nimport type { HeaderProps } from './header.types';\n\nexport function Header({\n\tshowBreadcrumbs = true,\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\tbrand,\n\tleftContent,\n\tcenterContent,\n\trightContent,\n\tslots,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n\tcontentClassName,\n\tleftClassName,\n\tcenterClassName,\n\trightClassName,\n\tbreadcrumbsClassName,\n}: HeaderProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t'sticky top-0 z-40 flex min-h-shell-header items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5',\n\t\t\t\t'dark:bg-topbar',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('flex min-h-9 min-w-0 flex-1 items-stretch gap-4', contentClassName)}>\n\t\t\t\t{!!(slots?.brand ?? brand) && (\n\t\t\t\t\t<div className=\"hidden min-w-0 shrink-0 items-center md:flex\">\n\t\t\t\t\t\t{slots?.brand ?? brand}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!showBreadcrumbs && (slots?.breadcrumbs ?? (\n\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t<HeaderBreadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={breadcrumbs}\n\t\t\t\t\t\t\thomeBreadcrumb={homeBreadcrumb}\n\t\t\t\t\t\t\tshowSidebarTrigger={showSidebarTrigger}\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={breadcrumbsClassName}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t\t{!!(slots?.left ?? leftContent) && (\n\t\t\t\t\t<div className={cn('flex min-w-0 items-center', leftClassName)}>\n\t\t\t\t\t\t{slots?.left ?? leftContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.center ?? centerContent) && (\n\t\t\t\t\t<div className={cn('hidden min-w-0 shrink-0 items-center justify-center lg:flex', centerClassName)}>\n\t\t\t\t\t\t{slots?.center ?? centerContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.right ?? rightContent) && (\n\t\t\t\t\t<div className={cn('ml-auto flex shrink-0 items-center gap-2', rightClassName)}>\n\t\t\t\t\t\t{slots?.right ?? rightContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</header>\n\t);\n}\n","/**\n * Header layout and partial types.\n *\n * This layer is intentionally framework-neutral: links and route state enter\n * through `renderLink`, and app-specific content enters through slots.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type { StringsProp } from '@/lib/strings';\n\nimport type {\n\tBreadcrumbItem,\n\tLayoutNavigationAdapter,\n\tLayoutUser,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface HeaderBreadcrumbsProps extends LayoutNavigationAdapter {\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\ttriggerSlot?: ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type NotificationTone = 'info' | 'success' | 'warning' | 'error';\n\nexport interface HeaderNotification {\n\tid: string | number;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttime?: ReactNode;\n\tread?: boolean;\n\ttone?: NotificationTone;\n\thref?: string;\n}\n\nexport interface HeaderNotificationsStrings {\n\ttriggerLabel: string;\n\theading: string;\n\tmarkAllRead: string;\n\tempty: string;\n\tviewAll: string;\n}\n\nexport const defaultHeaderNotificationsStrings: HeaderNotificationsStrings = {\n\ttriggerLabel: 'Notifications',\n\theading: 'Notifications',\n\tmarkAllRead: 'Mark all as read',\n\tempty: 'No new notifications',\n\tviewAll: 'View all notifications',\n};\n\nexport interface HeaderNotificationsProps extends LayoutNavigationAdapter {\n\tnotifications?: HeaderNotification[];\n\tunreadCount?: number;\n\tonNotificationClick?: (notification: HeaderNotification) => void;\n\tonMarkAllRead?: () => void;\n\tonViewAll?: () => void;\n\tviewAllHref?: string;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: StringsProp<HeaderNotificationsStrings>;\n\tclassName?: string;\n\tcontentClassName?: string;\n\trenderNotification?: (notification: HeaderNotification) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface HeaderSearchStrings {\n\tplaceholder: string;\n\tshortcutMac: string;\n\tshortcutPc: string;\n}\n\nexport const defaultHeaderSearchStrings: HeaderSearchStrings = {\n\tplaceholder: 'Search...',\n\tshortcutMac: '⌘K',\n\tshortcutPc: 'Ctrl+K',\n};\n\nexport interface HeaderSearchProps {\n\tonOpen?: () => void;\n\tisMac?: boolean;\n\tenableShortcut?: boolean;\n\tstrings?: StringsProp<HeaderSearchStrings>;\n\tclassName?: string;\n\ticonClassName?: string;\n\tshortcutSlot?: ReactNode;\n}\n\nexport interface HeaderGlobalSearchTriggerProps extends HeaderSearchProps {\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\nexport interface HeaderToolButtonProps {\n\tlabel: string;\n\ticon: ComponentType<{ className?: string }>;\n\tactive?: boolean;\n\tdisabled?: boolean;\n\tbadge?: ReactNode;\n\tonClick?: () => void;\n\tclassName?: string;\n\ticonClassName?: string;\n}\n\nexport interface HeaderToolPopoverProps {\n\tlabel: string;\n\ticon: ComponentType<{ className?: string }>;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tactive?: boolean;\n\tdisabled?: boolean;\n\tbadge?: ReactNode;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tsideOffset?: number;\n\tclassName?: string;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\tchildren?: ReactNode;\n}\n\nexport interface HeaderUserMenuProps {\n\tuser: LayoutUser;\n\tshowEmail?: boolean;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: StringsProp<HeaderUserMenuStrings>;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nexport interface HeaderUserMenuStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultHeaderUserMenuStrings: HeaderUserMenuStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface HeaderSlots {\n\t/** Leading brand/logo region before breadcrumbs. */\n\tbrand?: ReactNode;\n\t/** Replaces the breadcrumb/sidebar-trigger region. */\n\tbreadcrumbs?: ReactNode;\n\t/** Leading content after breadcrumbs. Prefer this over `leftContent` for new code. */\n\tleft?: ReactNode;\n\t/** Center content, usually search or a scope switcher. */\n\tcenter?: ReactNode;\n\t/** Trailing content, usually notifications/user menu/actions. */\n\tright?: ReactNode;\n}\n\nexport interface HeaderProps extends LayoutNavigationAdapter {\n\tshowBreadcrumbs?: boolean;\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\tbrand?: ReactNode;\n\t/** @deprecated Prefer `slots.left`. */\n\tleftContent?: ReactNode;\n\t/** @deprecated Prefer `slots.center`. */\n\tcenterContent?: ReactNode;\n\t/** @deprecated Prefer `slots.right`. */\n\trightContent?: ReactNode;\n\tslots?: HeaderSlots;\n\tclassName?: string;\n\tcontentClassName?: string;\n\tleftClassName?: string;\n\tcenterClassName?: string;\n\trightClassName?: string;\n\tbreadcrumbsClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** HeaderSearch — framework-neutral search trigger with optional Cmd/Ctrl+K. */\nimport { useMemo } from 'react';\nimport { Command, Search } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useCommandShortcut } from '../../hooks';\nimport {\n\tdefaultHeaderSearchStrings,\n\ttype HeaderSearchProps,\n} from '../header.types';\n\nfunction detectMac(): boolean {\n\tif (typeof navigator === 'undefined') return false;\n\tconst ua = (navigator as Navigator & { userAgentData?: { platform?: string } }).userAgentData;\n\tif (ua?.platform) return ua.platform === 'macOS';\n\treturn /Mac|iPhone|iPad/.test(navigator.platform);\n}\n\nexport function HeaderSearch({\n\tonOpen,\n\tisMac,\n\tenableShortcut = true,\n\tstrings: stringsProp,\n\tclassName,\n\ticonClassName,\n\tshortcutSlot,\n}: HeaderSearchProps) {\n\tconst strings = useStrings(defaultHeaderSearchStrings, stringsProp);\n\tconst isMacResolved = useMemo(() => isMac ?? detectMac(), [isMac]);\n\tuseCommandShortcut({ key: 'k', enabled: enableShortcut, onTrigger: onOpen });\n\n\tconst shortcutTitle = isMacResolved ? strings.shortcutMac : strings.shortcutPc;\n\tconst shortcut = shortcutSlot ?? (\n\t\t<kbd className=\"header-search--shortcut hidden h-5 shrink-0 items-center gap-space-sm rounded-md border border-border/70 bg-background/60 px-space-sm font-mono text-xs text-muted-foreground lg:inline-flex\">\n\t\t\t{isMacResolved ? (\n\t\t\t\t<>\n\t\t\t\t\t<Command className=\"size-icon-sm text-muted-foreground\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">K</Text>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">Ctrl+K</Text>\n\t\t\t)}\n\t\t</kbd>\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\tdata-component=\"header-search\"\n\t\t\tdata-slot=\"header-search-trigger\"\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"outline\"\n\t\t\tonClick={onOpen}\n\t\t\tclassName={cn(\n\t\t\t\t'header-search--component header-search--trigger h-control-sm w-full min-w-52 justify-start gap-space-md rounded-lg border-border/80 bg-muted/40 px-control-sm text-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border hover:bg-muted/60 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background dark:border-border/80 dark:bg-muted dark:hover:bg-muted/60 dark:hover:text-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttitle={shortcutTitle}\n\t\t>\n\t\t\t<Search data-slot=\"header-search-icon\" className={cn('header-search--icon size-icon shrink-0 text-muted-foreground', iconClassName)} aria-hidden=\"true\" />\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" data-slot=\"header-search-placeholder\" className=\"header-search--placeholder flex-1 text-left\">\n\t\t\t\t{strings.placeholder}\n\t\t\t</Text>\n\t\t\t{shortcut}\n\t\t\t<span className=\"sr-only\">{strings.placeholder}</span>\n\t\t</Button>\n\t);\n}\n","/** HeaderGlobalSearchTrigger — header search trigger with controlled open callback. */\nimport { HeaderSearch } from './header-search';\nimport type { HeaderGlobalSearchTriggerProps } from '../header.types';\n\nexport function HeaderGlobalSearchTrigger({\n\tonOpen,\n\tonOpenChange,\n\t...props\n}: HeaderGlobalSearchTriggerProps) {\n\treturn (\n\t\t<HeaderSearch\n\t\t\t{...props}\n\t\t\tonOpen={() => {\n\t\t\t\tonOpen?.();\n\t\t\t\tonOpenChange?.(true);\n\t\t\t}}\n\t\t/>\n\t);\n}\n","/** HeaderToolButton — icon control for dense app headers. */\nimport * as React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\n\nimport type { HeaderToolButtonProps } from '../header.types';\n\nexport const HeaderToolButton = React.forwardRef<\n\tHTMLButtonElement,\n\tHeaderToolButtonProps\n>((\n\t{\n\t\tlabel,\n\t\ticon: Icon,\n\t\tactive = false,\n\t\tdisabled = false,\n\t\tbadge,\n\t\tonClick,\n\t\tclassName,\n\t\ticonClassName,\n\t},\n\tref,\n) => (\n\t<Button\n\t\tref={ref}\n\t\tdata-component=\"header-tool-button\"\n\t\tdata-slot=\"header-tool-button\"\n\t\ttype=\"button\"\n\t\tvariant=\"secondary\"\n\t\tbuttonStyle=\"ghost\"\n\t\tsize=\"icon-small\"\n\t\taria-label={label}\n\t\taria-pressed={active || undefined}\n\t\ttitle={label}\n\t\tdisabled={disabled}\n\t\tonClick={onClick}\n\t\tclassName={cn(\n\t\t\t'header-tool-button--component header-tool-button--trigger relative size-control rounded-lg text-foreground transition-[background-color,color,box-shadow] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background',\n\t\t\tactive && 'bg-accent text-accent-foreground',\n\t\t\tclassName,\n\t\t)}\n\t>\n\t\t<Icon\n\t\t\tdata-slot=\"header-tool-icon\"\n\t\t\tclassName={cn('header-tool-button--icon size-icon', iconClassName)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t\t{!!badge && (\n\t\t\t<span data-slot=\"header-tool-badge\" className=\"header-tool-button--badge absolute right-space-xs top-space-xs flex min-h-space-lg min-w-space-lg items-center justify-center rounded-full bg-destructive px-space-2xs text-xs font-medium leading-none text-destructive-foreground\">\n\t\t\t\t{badge}\n\t\t\t</span>\n\t\t)}\n\t\t<span className=\"sr-only\">{label}</span>\n\t</Button>\n));\n\nHeaderToolButton.displayName = 'HeaderToolButton';\n","/** HeaderToolPopover — controlled header icon trigger plus popover content. */\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger,\n} from '@/components/base/popover';\nimport { cn } from '@/lib/utils';\n\nimport type { HeaderToolPopoverProps } from '../header.types';\nimport { HeaderToolButton } from './header-tool-button';\n\nexport function HeaderToolPopover({\n\tlabel,\n\ticon,\n\topen,\n\tdefaultOpen,\n\tonOpenChange,\n\tactive,\n\tdisabled,\n\tbadge,\n\talign = 'end',\n\tside = 'bottom',\n\tsideOffset = 8,\n\tclassName,\n\ttriggerClassName,\n\tcontentClassName,\n\tchildren,\n}: HeaderToolPopoverProps) {\n\treturn (\n\t\t<Popover\n\t\t\topen={open}\n\t\t\tdefaultOpen={defaultOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t>\n\t\t\t<PopoverTrigger asChild>\n\t\t\t\t<HeaderToolButton\n\t\t\t\t\tlabel={label}\n\t\t\t\t\ticon={icon}\n\t\t\t\t\tactive={active ?? open}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tbadge={badge}\n\t\t\t\t\tclassName={triggerClassName}\n\t\t\t\t/>\n\t\t\t</PopoverTrigger>\n\t\t\t<PopoverContent\n\t\t\t\tdata-component=\"header-tool-popover\"\n\t\t\t\tdata-slot=\"header-tool-popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'header-tool-popover--component w-80 max-w-[calc(100vw-2rem)] p-0',\n\t\t\t\t\tclassName,\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t);\n}\n","/** HeaderUserMenu — avatar/name trigger with consumer-wired menu callbacks. */\nimport type { ReactElement } from 'react';\n\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultHeaderUserMenuStrings,\n\ttype HeaderUserMenuProps,\n} from '../header.types';\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function HeaderUserMenu({\n\tuser,\n\tshowEmail = true,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\ttriggerClassName,\n\tcontentClassName,\n\trenderTrigger,\n}: HeaderUserMenuProps) {\n\tconst strings = useStrings(defaultHeaderUserMenuStrings, stringsProp);\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-space-md size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst trigger = renderTrigger?.(user) ?? (\n\t\t<Button\n\t\t\tdata-component=\"header-user-menu\"\n\t\t\tdata-slot=\"header-user-menu-trigger\"\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tclassName={cn(\n\t\t\t\t'header-user-menu--component header-user-menu--trigger group h-control-lg max-w-56 justify-start gap-space-md rounded-lg px-space-sm pr-space-md text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5',\n\t\t\t\tshowEmail ? 'py-space-sm' : 'py-space-xs',\n\t\t\t\t'dark:text-background dark:hover:bg-topbar-accent/50',\n\t\t\t\ttriggerClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Avatar data-slot=\"header-user-avatar\" className=\"header-user-menu--avatar size-avatar-sm overflow-hidden rounded-full ring-1 ring-border/60\">\n\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t<AvatarFallback className=\"rounded-md bg-success text-xs font-semibold text-background\">\n\t\t\t\t\t{initials}\n\t\t\t\t</AvatarFallback>\n\t\t\t</Avatar>\n\t\t\t<div data-slot=\"header-user-identity\" className=\"header-user-menu--identity grid min-w-0 flex-1 text-left leading-none\">\n\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"truncate\">{user.name}</Text>\n\t\t\t\t{!!showEmail && !!user.email && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">{user.email}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ChevronsUpDown className=\"header-user-menu--chevron size-icon-sm shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n\t\t</Button>\n\t);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger render={trigger as ReactElement} />\n\t\t\t<DropdownMenuContent\n\t\t\t\tdata-component=\"header-user-menu-content\"\n\t\t\t\tdata-slot=\"header-user-menu-content\"\n\t\t\t\tclassName={cn('header-user-menu--content w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-surface-sm', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t{customContent ?? defaultContent}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/** HeaderNotifications — bell dropdown for consumer-supplied notifications. */\nimport type { ReactElement } from 'react';\n\nimport { Bell } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuLinkItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultHeaderNotificationsStrings,\n\ttype HeaderNotification,\n\ttype HeaderNotificationsProps,\n} from '../header.types';\n\nexport function HeaderNotifications({\n\tnotifications = [],\n\tunreadCount = 0,\n\tonNotificationClick,\n\tonMarkAllRead,\n\tonViewAll,\n\tviewAllHref,\n\trenderLink,\n\tLinkComponent,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\tclassName,\n\tcontentClassName,\n\trenderNotification,\n}: HeaderNotificationsProps) {\n\tconst strings = useStrings(defaultHeaderNotificationsStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst badgeText = unreadCount > 99 ? '99+' : String(unreadCount);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-component=\"header-notifications\"\n\t\t\t\t\t\tdata-slot=\"header-notifications-trigger\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\taria-label={strings.triggerLabel}\n\t\t\t\t\t\tclassName={cn('header-notifications--component header-notifications--trigger relative', className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Bell className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tclassName=\"absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 leading-none\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badgeText}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<DropdownMenuContent\n\t\t\t\tdata-component=\"header-notifications-content\"\n\t\t\t\tdata-slot=\"header-notifications-content\"\n\t\t\t\tclassName={cn('header-notifications--content w-80 max-w-[calc(100vw-2rem)]', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuLabel className=\"header-notifications--label flex items-center justify-between gap-3\">\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{strings.heading}</Text>\n\t\t\t\t\t\t{unreadCount > 0 && !!onMarkAllRead && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={onMarkAllRead}\n\t\t\t\t\t\t\t\tclassName=\"h-auto px-1 py-0 text-xs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.markAllRead}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t<DropdownMenuSeparator />\n\n\t\t\t\t\t{notifications.length === 0 ? (\n\t\t\t\t\t\t<div className=\"header-notifications--empty p-4 text-center\">\n\t\t\t\t\t\t\t<Text type=\"secondary\">{strings.empty}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"space-y-1 p-1\">\n\t\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t\t<NotificationRow\n\t\t\t\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\t\t\t\tnotification={notification}\n\t\t\t\t\t\t\t\t\tonClick={onNotificationClick}\n\t\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\t\trenderNotification={renderNotification}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</DropdownMenuGroup>\n\n\t\t\t\t{!!(onViewAll || viewAllHref) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t{viewAllHref ? (\n\t\t\t\t\t\t\t<DropdownMenuLinkItem\n\t\t\t\t\t\t\t\thref={viewAllHref}\n\t\t\t\t\t\t\t\trender={(props) =>\n\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t\thref: viewAllHref,\n\t\t\t\t\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t\t\t\t\t}) as ReactElement\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.viewAll}\n\t\t\t\t\t\t\t</DropdownMenuLinkItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={onViewAll}>{strings.viewAll}</DropdownMenuItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction NotificationRow({\n\tnotification,\n\tonClick,\n\trenderLink,\n\trenderNotification,\n}: {\n\tnotification: HeaderNotification;\n\tonClick?: (n: HeaderNotification) => void;\n\trenderLink: NonNullable<HeaderNotificationsProps['renderLink']>;\n\trenderNotification?: HeaderNotificationsProps['renderNotification'];\n}) {\n\tif (renderNotification) return renderNotification(notification);\n\n\tconst content = (\n\t\t<div className=\"header-notifications--item-content min-w-0 space-y-1\">\n\t\t\t<Text weight=\"medium\">{notification.title}</Text>\n\t\t\t{!!notification.description && <Text size=\"xs\" type=\"secondary\">{notification.description}</Text>}\n\t\t\t{!!notification.time && <Text size=\"xs\" type=\"secondary\">{notification.time}</Text>}\n\t\t</div>\n\t);\n\n\tconst className = cn(\n\t\t'header-notifications--item items-start rounded-md px-3 py-2',\n\t\t!notification.read && 'bg-muted/40',\n\t);\n\n\tif (notification.href) {\n\t\treturn (\n\t\t\t<DropdownMenuLinkItem\n\t\t\t\thref={notification.href}\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={() => onClick?.(notification)}\n\t\t\t\trender={(props) =>\n\t\t\t\t\trenderLink({\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\thref: notification.href,\n\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t}) as ReactElement\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</DropdownMenuLinkItem>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DropdownMenuItem onClick={() => onClick?.(notification)} className={className}>\n\t\t\t{content}\n\t\t</DropdownMenuItem>\n\t);\n}\n\n/** @deprecated Re-exported for backwards compat — use `HeaderNotification`. */\nexport type Notification = HeaderNotification;\n"],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- import { cn as e } from "../lib/utils.js";
2
- import { t } from "./badge-r8ae66Vd.js";
3
- import { r as n } from "./layout.types-ip8BYRa7.js";
4
- import * as r from "react";
5
- import { useCallback as i, useEffect as a, useMemo as o } from "react";
6
- import { jsx as s } from "react/jsx-runtime";
7
- //#region src/components/layout/hooks/use-layout-link.tsx
8
- function c({ renderLink: e, LinkComponent: t } = {}) {
9
- return o(() => n({
10
- renderLink: e,
11
- LinkComponent: t
12
- }), [e, t]);
13
- }
14
- //#endregion
15
- //#region src/components/layout/sidebar/sidebar.utils.tsx
16
- function l(e) {
17
- if (e.startsWith("#/")) return e.slice(1).split("?")[0]?.split("#")[0] || "/";
18
- try {
19
- return new URL(e, "http://local.invalid").pathname;
20
- } catch {
21
- return e;
22
- }
23
- }
24
- function u(e, t) {
25
- let n = l(e);
26
- return n === t || n.startsWith(t + "/") || n.startsWith(t + "?");
27
- }
28
- function d(e) {
29
- return e.label ?? e.title ?? "";
30
- }
31
- function f(e, t) {
32
- let n = d(e);
33
- return e.handle ?? e.href ?? (typeof n == "string" || typeof n == "number" ? n : `nav-${t ?? 0}`);
34
- }
35
- function p({ value: n, size: r = "default" }) {
36
- return /* @__PURE__ */ s(t, {
37
- variant: "secondary",
38
- className: e("ml-auto rounded-full tabular-nums text-sidebar-foreground", r === "small" ? "h-4 min-w-4 px-1.5" : "h-5 min-w-5 px-1.5"),
39
- children: n
40
- });
41
- }
42
- function m(e, t, n) {
43
- return e && n && n[e] != null ? n[e] : t;
44
- }
45
- function h({ icon: t, iconMap: n = {}, size: i = 20, className: a = "size-4", ...o }) {
46
- if (!t) return null;
47
- if (typeof t == "string") {
48
- let e = n[t];
49
- return e ? /* @__PURE__ */ s(e, { className: a }) : null;
50
- }
51
- return r.isValidElement(t) ? r.cloneElement(t, {
52
- className: e(a, t.props.className),
53
- ...o
54
- }) : typeof t == "function" || typeof t == "object" && t && "$$typeof" in t ? /* @__PURE__ */ s(t, {
55
- className: a,
56
- width: i,
57
- height: i,
58
- ...o
59
- }) : null;
60
- }
61
- function g(e, t, n, r, i) {
62
- return e({
63
- href: t.href,
64
- children: n,
65
- className: r,
66
- active: i,
67
- disabled: t.disabled || !t.href,
68
- external: t.external
69
- });
70
- }
71
- //#endregion
72
- //#region src/components/layout/hooks/use-active-path.ts
73
- function _(e = "/") {
74
- return i((t) => !!t && u(e, l(t)), [e]);
75
- }
76
- //#endregion
77
- //#region src/components/layout/hooks/use-command-shortcut.ts
78
- function v({ key: e, enabled: t = !0, onTrigger: n, preventDefault: r = !0 }) {
79
- a(() => {
80
- if (!t || !n || typeof document > "u") return;
81
- let i = (t) => {
82
- (t.metaKey || t.ctrlKey) && t.key.toLowerCase() === e.toLowerCase() && (r && t.preventDefault(), n());
83
- };
84
- return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
85
- }, [
86
- t,
87
- e,
88
- n,
89
- r
90
- ]);
91
- }
92
- //#endregion
93
- export { f as a, g as c, c as d, p as i, m as l, _ as n, d as o, h as r, u as s, v as t, l as u };
94
-
95
- //# sourceMappingURL=hooks-ACnpaIli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks-ACnpaIli.js","names":[],"sources":["../../src/components/layout/hooks/use-layout-link.tsx","../../src/components/layout/sidebar/sidebar.utils.tsx","../../src/components/layout/hooks/use-active-path.ts","../../src/components/layout/hooks/use-command-shortcut.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport function useLayoutLinkRenderer({\n\trenderLink,\n\tLinkComponent,\n}: LayoutNavigationAdapter = {}): LayoutLinkRenderer {\n\treturn useMemo(\n\t\t() => resolveLayoutLinkRenderer({ renderLink, LinkComponent }),\n\t\t[renderLink, LinkComponent],\n\t);\n}\n"," \n/** Sidebar utilities — pure path helpers, labels, icon rendering, badge pill. */\nimport * as React from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { cn } from '@/lib/utils';\n\nimport type { LayoutIconSource, LayoutLinkRenderer } from '../layout.types';\nimport type { SidebarNavItem } from './sidebar.types';\n\nexport function toPath(href: string): string {\n\tif (href.startsWith('#/')) {\n\t\treturn href.slice(1).split('?')[0]?.split('#')[0] || '/';\n\t}\n\n\ttry {\n\t\treturn new URL(href, 'http://local.invalid').pathname;\n\t} catch {\n\t\treturn href;\n\t}\n}\n\nexport function isPathMatch(currentUrl: string, path: string): boolean {\n\tconst currentPath = toPath(currentUrl);\n\treturn currentPath === path || currentPath.startsWith(path + '/') || currentPath.startsWith(path + '?');\n}\n\nexport function getNavLabel(item: Pick<SidebarNavItem, 'label' | 'title'>): React.ReactNode {\n\treturn item.label ?? item.title ?? '';\n}\n\nexport function getNavKey(item: SidebarNavItem, fallbackIndex?: number): React.Key {\n\tconst label = getNavLabel(item);\n\treturn item.handle ?? item.href ?? (typeof label === 'string' || typeof label === 'number' ? label : `nav-${fallbackIndex ?? 0}`);\n}\n\nexport function NavBadge({\n\tvalue,\n\tsize = 'default',\n}: {\n\tvalue: string | number;\n\tsize?: 'default' | 'small';\n}) {\n\treturn (\n\t\t<Badge\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\t'ml-auto rounded-full tabular-nums text-sidebar-foreground',\n\t\t\t\tsize === 'small' ? 'h-4 min-w-4 px-1.5' : 'h-5 min-w-5 px-1.5',\n\t\t\t)}\n\t\t>\n\t\t\t{value}\n\t\t</Badge>\n\t);\n}\n\nexport function resolveNavBadge(\n\thandle: string | undefined,\n\titemBadge: string | number | undefined,\n\tliveBadges: Record<string, string | number> | undefined,\n): string | number | undefined {\n\tif (handle && liveBadges && liveBadges[handle] != null) {\n\t\treturn liveBadges[handle];\n\t}\n\treturn itemBadge;\n}\n\nexport interface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n\ticon: LayoutIconSource;\n\ticonMap?: Record<string, React.ComponentType<{ className?: string }>>;\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport function DynamicIcon({\n\ticon,\n\ticonMap = {},\n\tsize = 20,\n\tclassName = 'size-4',\n\t...props\n}: DynamicIconProps) {\n\tif (!icon) return null;\n\n\tif (typeof icon === 'string') {\n\t\tconst IconComponent = iconMap[icon];\n\t\treturn IconComponent ? <IconComponent className={className} /> : null;\n\t}\n\n\tif (React.isValidElement(icon)) {\n\t\treturn React.cloneElement(icon as React.ReactElement<React.SVGProps<SVGSVGElement>>, {\n\t\t\tclassName: cn(className, (icon.props as { className?: string }).className),\n\t\t\t...props,\n\t\t});\n\t}\n\n\tif (\n\t\ttypeof icon === 'function'\n\t\t|| (typeof icon === 'object' && icon !== null && '$$typeof' in icon)\n\t) {\n\t\tconst IconComponent = icon as React.ElementType<React.SVGProps<SVGSVGElement>>;\n\t\treturn <IconComponent className={className} width={size} height={size} {...props} />;\n\t}\n\n\treturn null;\n}\n\nexport function renderSidebarLink(\n\trenderLink: LayoutLinkRenderer,\n\titem: SidebarNavItem,\n\tchildren: React.ReactNode,\n\tclassName?: string,\n\tactive?: boolean,\n) {\n\treturn renderLink({\n\t\thref: item.href,\n\t\tchildren,\n\t\tclassName,\n\t\tactive,\n\t\tdisabled: item.disabled || !item.href,\n\t\texternal: item.external,\n\t});\n}\n","import { useCallback } from 'react';\n\nimport { isPathMatch, toPath } from '../sidebar/sidebar.utils';\n\nexport function useActivePath(currentUrl = '/') {\n\treturn useCallback(\n\t\t(href?: string) => !!href && isPathMatch(currentUrl, toPath(href)),\n\t\t[currentUrl],\n\t);\n}\n","import { useEffect } from 'react';\n\nexport interface UseCommandShortcutOptions {\n\tkey: string;\n\tenabled?: boolean;\n\tonTrigger?: () => void;\n\tpreventDefault?: boolean;\n}\n\nexport function useCommandShortcut({\n\tkey,\n\tenabled = true,\n\tonTrigger,\n\tpreventDefault = true,\n}: UseCommandShortcutOptions) {\n\tuseEffect(() => {\n\t\tif (!enabled || !onTrigger || typeof document === 'undefined') return;\n\n\t\tconst handler = (event: KeyboardEvent) => {\n\t\t\tif (!(event.metaKey || event.ctrlKey)) return;\n\t\t\tif (event.key.toLowerCase() !== key.toLowerCase()) return;\n\t\t\tif (preventDefault) event.preventDefault();\n\t\t\tonTrigger();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handler);\n\t\treturn () => document.removeEventListener('keydown', handler);\n\t}, [enabled, key, onTrigger, preventDefault]);\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,EAAsB,EACrC,eACA,qBAC4B,CAAC,GAAuB;CACpD,OAAO,QACA,EAA0B;EAAE;EAAY;CAAc,CAAC,GAC7D,CAAC,GAAY,CAAa,CAC3B;AACD;;;ACNA,SAAgB,EAAO,GAAsB;CAC5C,IAAI,EAAK,WAAW,IAAI,GACvB,OAAO,EAAK,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,MAAM;CAGtD,IAAI;EACH,OAAO,IAAI,IAAI,GAAM,sBAAsB,EAAE;CAC9C,QAAQ;EACP,OAAO;CACR;AACD;AAEA,SAAgB,EAAY,GAAoB,GAAuB;CACtE,IAAM,IAAc,EAAO,CAAU;CACrC,OAAO,MAAgB,KAAQ,EAAY,WAAW,IAAO,GAAG,KAAK,EAAY,WAAW,IAAO,GAAG;AACvG;AAEA,SAAgB,EAAY,GAAgE;CAC3F,OAAO,EAAK,SAAS,EAAK,SAAS;AACpC;AAEA,SAAgB,EAAU,GAAsB,GAAmC;CAClF,IAAM,IAAQ,EAAY,CAAI;CAC9B,OAAO,EAAK,UAAU,EAAK,SAAS,OAAO,KAAU,YAAY,OAAO,KAAU,WAAW,IAAQ,OAAO,KAAiB;AAC9H;AAEA,SAAgB,EAAS,EACxB,UACA,UAAO,aAIL;CACF,OACC,kBAAC,GAAD;EACC,SAAQ;EACR,WAAW,EACV,6DACA,MAAS,UAAU,uBAAuB,oBAC3C;YAEC;CACK,CAAA;AAET;AAEA,SAAgB,EACf,GACA,GACA,GAC8B;CAI9B,OAHI,KAAU,KAAc,EAAW,MAAW,OAC1C,EAAW,KAEZ;AACR;AASA,SAAgB,EAAY,EAC3B,SACA,aAAU,CAAC,GACX,UAAO,IACP,eAAY,UACZ,GAAG,KACiB;CACpB,IAAI,CAAC,GAAM,OAAO;CAElB,IAAI,OAAO,KAAS,UAAU;EAC7B,IAAM,IAAgB,EAAQ;EAC9B,OAAO,IAAgB,kBAAC,GAAD,EAA0B,aAAY,CAAA,IAAI;CAClE;CAiBA,OAfI,EAAM,eAAe,CAAI,IACrB,EAAM,aAAa,GAA2D;EACpF,WAAW,EAAG,GAAY,EAAK,MAAiC,SAAS;EACzE,GAAG;CACJ,CAAC,IAID,OAAO,KAAS,cACZ,OAAO,KAAS,YAAY,KAAiB,cAAc,IAGxD,kBAAC,GAAD;EAA0B;EAAW,OAAO;EAAM,QAAQ;EAAM,GAAI;CAAQ,CAAA,IAG7E;AACR;AAEA,SAAgB,EACf,GACA,GACA,GACA,GACA,GACC;CACD,OAAO,EAAW;EACjB,MAAM,EAAK;EACX;EACA;EACA;EACA,UAAU,EAAK,YAAY,CAAC,EAAK;EACjC,UAAU,EAAK;CAChB,CAAC;AACF;;;ACrHA,SAAgB,EAAc,IAAa,KAAK;CAC/C,OAAO,GACL,MAAkB,CAAC,CAAC,KAAQ,EAAY,GAAY,EAAO,CAAI,CAAC,GACjE,CAAC,CAAU,CACZ;AACD;;;ACAA,SAAgB,EAAmB,EAClC,QACA,aAAU,IACV,cACA,oBAAiB,MACY;CAC7B,QAAgB;EACf,IAAI,CAAC,KAAW,CAAC,KAAa,OAAO,WAAa,KAAa;EAE/D,IAAM,KAAW,MAAyB;GACnC,GAAM,WAAW,EAAM,YACzB,EAAM,IAAI,YAAY,MAAM,EAAI,YAAY,MAC5C,KAAgB,EAAM,eAAe,GACzC,EAAU;EACX;EAGA,OADA,SAAS,iBAAiB,WAAW,CAAO,SAC/B,SAAS,oBAAoB,WAAW,CAAO;CAC7D,GAAG;EAAC;EAAS;EAAK;EAAW;CAAc,CAAC;AAC7C"}
@@ -1,2 +0,0 @@
1
- const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/utils.cjs"),n=require("./badge-C65rt1M9.cjs"),r=require("./layout.types-CXFAjJCj.cjs");let i=require("react");i=e.t(i,1);let a=require("react/jsx-runtime");function o({renderLink:e,LinkComponent:t}={}){return(0,i.useMemo)(()=>r.r({renderLink:e,LinkComponent:t}),[e,t])}function s(e){if(e.startsWith(`#/`))return e.slice(1).split(`?`)[0]?.split(`#`)[0]||`/`;try{return new URL(e,`http://local.invalid`).pathname}catch{return e}}function c(e,t){let n=s(e);return n===t||n.startsWith(t+`/`)||n.startsWith(t+`?`)}function l(e){return e.label??e.title??``}function u(e,t){let n=l(e);return e.handle??e.href??(typeof n==`string`||typeof n==`number`?n:`nav-${t??0}`)}function d({value:e,size:r=`default`}){return(0,a.jsx)(n.t,{variant:`secondary`,className:t.cn(`ml-auto rounded-full tabular-nums text-sidebar-foreground`,r===`small`?`h-4 min-w-4 px-1.5`:`h-5 min-w-5 px-1.5`),children:e})}function f(e,t,n){return e&&n&&n[e]!=null?n[e]:t}function p({icon:e,iconMap:n={},size:r=20,className:o=`size-4`,...s}){if(!e)return null;if(typeof e==`string`){let t=n[e];return t?(0,a.jsx)(t,{className:o}):null}return i.isValidElement(e)?i.cloneElement(e,{className:t.cn(o,e.props.className),...s}):typeof e==`function`||typeof e==`object`&&e&&`$$typeof`in e?(0,a.jsx)(e,{className:o,width:r,height:r,...s}):null}function m(e,t,n,r,i){return e({href:t.href,children:n,className:r,active:i,disabled:t.disabled||!t.href,external:t.external})}function h(e=`/`){return(0,i.useCallback)(t=>!!t&&c(e,s(t)),[e])}function g({key:e,enabled:t=!0,onTrigger:n,preventDefault:r=!0}){(0,i.useEffect)(()=>{if(!t||!n||typeof document>`u`)return;let i=t=>{(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===e.toLowerCase()&&(r&&t.preventDefault(),n())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[t,e,n,r])}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return s}});
2
- //# sourceMappingURL=hooks-B7khuHkk.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks-B7khuHkk.cjs","names":[],"sources":["../../src/components/layout/hooks/use-layout-link.tsx","../../src/components/layout/sidebar/sidebar.utils.tsx","../../src/components/layout/hooks/use-active-path.ts","../../src/components/layout/hooks/use-command-shortcut.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport function useLayoutLinkRenderer({\n\trenderLink,\n\tLinkComponent,\n}: LayoutNavigationAdapter = {}): LayoutLinkRenderer {\n\treturn useMemo(\n\t\t() => resolveLayoutLinkRenderer({ renderLink, LinkComponent }),\n\t\t[renderLink, LinkComponent],\n\t);\n}\n"," \n/** Sidebar utilities — pure path helpers, labels, icon rendering, badge pill. */\nimport * as React from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { cn } from '@/lib/utils';\n\nimport type { LayoutIconSource, LayoutLinkRenderer } from '../layout.types';\nimport type { SidebarNavItem } from './sidebar.types';\n\nexport function toPath(href: string): string {\n\tif (href.startsWith('#/')) {\n\t\treturn href.slice(1).split('?')[0]?.split('#')[0] || '/';\n\t}\n\n\ttry {\n\t\treturn new URL(href, 'http://local.invalid').pathname;\n\t} catch {\n\t\treturn href;\n\t}\n}\n\nexport function isPathMatch(currentUrl: string, path: string): boolean {\n\tconst currentPath = toPath(currentUrl);\n\treturn currentPath === path || currentPath.startsWith(path + '/') || currentPath.startsWith(path + '?');\n}\n\nexport function getNavLabel(item: Pick<SidebarNavItem, 'label' | 'title'>): React.ReactNode {\n\treturn item.label ?? item.title ?? '';\n}\n\nexport function getNavKey(item: SidebarNavItem, fallbackIndex?: number): React.Key {\n\tconst label = getNavLabel(item);\n\treturn item.handle ?? item.href ?? (typeof label === 'string' || typeof label === 'number' ? label : `nav-${fallbackIndex ?? 0}`);\n}\n\nexport function NavBadge({\n\tvalue,\n\tsize = 'default',\n}: {\n\tvalue: string | number;\n\tsize?: 'default' | 'small';\n}) {\n\treturn (\n\t\t<Badge\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\t'ml-auto rounded-full tabular-nums text-sidebar-foreground',\n\t\t\t\tsize === 'small' ? 'h-4 min-w-4 px-1.5' : 'h-5 min-w-5 px-1.5',\n\t\t\t)}\n\t\t>\n\t\t\t{value}\n\t\t</Badge>\n\t);\n}\n\nexport function resolveNavBadge(\n\thandle: string | undefined,\n\titemBadge: string | number | undefined,\n\tliveBadges: Record<string, string | number> | undefined,\n): string | number | undefined {\n\tif (handle && liveBadges && liveBadges[handle] != null) {\n\t\treturn liveBadges[handle];\n\t}\n\treturn itemBadge;\n}\n\nexport interface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n\ticon: LayoutIconSource;\n\ticonMap?: Record<string, React.ComponentType<{ className?: string }>>;\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport function DynamicIcon({\n\ticon,\n\ticonMap = {},\n\tsize = 20,\n\tclassName = 'size-4',\n\t...props\n}: DynamicIconProps) {\n\tif (!icon) return null;\n\n\tif (typeof icon === 'string') {\n\t\tconst IconComponent = iconMap[icon];\n\t\treturn IconComponent ? <IconComponent className={className} /> : null;\n\t}\n\n\tif (React.isValidElement(icon)) {\n\t\treturn React.cloneElement(icon as React.ReactElement<React.SVGProps<SVGSVGElement>>, {\n\t\t\tclassName: cn(className, (icon.props as { className?: string }).className),\n\t\t\t...props,\n\t\t});\n\t}\n\n\tif (\n\t\ttypeof icon === 'function'\n\t\t|| (typeof icon === 'object' && icon !== null && '$$typeof' in icon)\n\t) {\n\t\tconst IconComponent = icon as React.ElementType<React.SVGProps<SVGSVGElement>>;\n\t\treturn <IconComponent className={className} width={size} height={size} {...props} />;\n\t}\n\n\treturn null;\n}\n\nexport function renderSidebarLink(\n\trenderLink: LayoutLinkRenderer,\n\titem: SidebarNavItem,\n\tchildren: React.ReactNode,\n\tclassName?: string,\n\tactive?: boolean,\n) {\n\treturn renderLink({\n\t\thref: item.href,\n\t\tchildren,\n\t\tclassName,\n\t\tactive,\n\t\tdisabled: item.disabled || !item.href,\n\t\texternal: item.external,\n\t});\n}\n","import { useCallback } from 'react';\n\nimport { isPathMatch, toPath } from '../sidebar/sidebar.utils';\n\nexport function useActivePath(currentUrl = '/') {\n\treturn useCallback(\n\t\t(href?: string) => !!href && isPathMatch(currentUrl, toPath(href)),\n\t\t[currentUrl],\n\t);\n}\n","import { useEffect } from 'react';\n\nexport interface UseCommandShortcutOptions {\n\tkey: string;\n\tenabled?: boolean;\n\tonTrigger?: () => void;\n\tpreventDefault?: boolean;\n}\n\nexport function useCommandShortcut({\n\tkey,\n\tenabled = true,\n\tonTrigger,\n\tpreventDefault = true,\n}: UseCommandShortcutOptions) {\n\tuseEffect(() => {\n\t\tif (!enabled || !onTrigger || typeof document === 'undefined') return;\n\n\t\tconst handler = (event: KeyboardEvent) => {\n\t\t\tif (!(event.metaKey || event.ctrlKey)) return;\n\t\t\tif (event.key.toLowerCase() !== key.toLowerCase()) return;\n\t\t\tif (preventDefault) event.preventDefault();\n\t\t\tonTrigger();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handler);\n\t\treturn () => document.removeEventListener('keydown', handler);\n\t}, [enabled, key, onTrigger, preventDefault]);\n}\n"],"mappings":"sNAQA,SAAgB,EAAsB,CACrC,aACA,iBAC4B,CAAC,EAAuB,CACpD,OAAA,EAAA,EAAA,aACO,EAAA,EAA0B,CAAE,aAAY,eAAc,CAAC,EAC7D,CAAC,EAAY,CAAa,CAC3B,CACD,CCNA,SAAgB,EAAO,EAAsB,CAC5C,GAAI,EAAK,WAAW,IAAI,EACvB,OAAO,EAAK,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,IAAM,IAGtD,GAAI,CACH,OAAO,IAAI,IAAI,EAAM,sBAAsB,EAAE,QAC9C,MAAQ,CACP,OAAO,CACR,CACD,CAEA,SAAgB,EAAY,EAAoB,EAAuB,CACtE,IAAM,EAAc,EAAO,CAAU,EACrC,OAAO,IAAgB,GAAQ,EAAY,WAAW,EAAO,GAAG,GAAK,EAAY,WAAW,EAAO,GAAG,CACvG,CAEA,SAAgB,EAAY,EAAgE,CAC3F,OAAO,EAAK,OAAS,EAAK,OAAS,EACpC,CAEA,SAAgB,EAAU,EAAsB,EAAmC,CAClF,IAAM,EAAQ,EAAY,CAAI,EAC9B,OAAO,EAAK,QAAU,EAAK,OAAS,OAAO,GAAU,UAAY,OAAO,GAAU,SAAW,EAAQ,OAAO,GAAiB,IAC9H,CAEA,SAAgB,EAAS,CACxB,QACA,OAAO,WAIL,CACF,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAQ,YACR,UAAW,EAAA,GACV,4DACA,IAAS,QAAU,qBAAuB,oBAC3C,WAEC,CACK,CAAA,CAET,CAEA,SAAgB,EACf,EACA,EACA,EAC8B,CAI9B,OAHI,GAAU,GAAc,EAAW,IAAW,KAC1C,EAAW,GAEZ,CACR,CASA,SAAgB,EAAY,CAC3B,OACA,UAAU,CAAC,EACX,OAAO,GACP,YAAY,SACZ,GAAG,GACiB,CACpB,GAAI,CAAC,EAAM,OAAO,KAElB,GAAI,OAAO,GAAS,SAAU,CAC7B,IAAM,EAAgB,EAAQ,GAC9B,OAAO,GAAgB,EAAA,EAAA,KAAC,EAAD,CAA0B,WAAY,CAAA,EAAI,IAClE,CAiBA,OAfI,EAAM,eAAe,CAAI,EACrB,EAAM,aAAa,EAA2D,CACpF,UAAW,EAAA,GAAG,EAAY,EAAK,MAAiC,SAAS,EACzE,GAAG,CACJ,CAAC,EAID,OAAO,GAAS,YACZ,OAAO,GAAS,UAAY,GAAiB,aAAc,GAGxD,EAAA,EAAA,KAAC,EAAD,CAA0B,YAAW,MAAO,EAAM,OAAQ,EAAM,GAAI,CAAQ,CAAA,EAG7E,IACR,CAEA,SAAgB,EACf,EACA,EACA,EACA,EACA,EACC,CACD,OAAO,EAAW,CACjB,KAAM,EAAK,KACX,WACA,YACA,SACA,SAAU,EAAK,UAAY,CAAC,EAAK,KACjC,SAAU,EAAK,QAChB,CAAC,CACF,CCrHA,SAAgB,EAAc,EAAa,IAAK,CAC/C,OAAA,EAAA,EAAA,aACE,GAAkB,CAAC,CAAC,GAAQ,EAAY,EAAY,EAAO,CAAI,CAAC,EACjE,CAAC,CAAU,CACZ,CACD,CCAA,SAAgB,EAAmB,CAClC,MACA,UAAU,GACV,YACA,iBAAiB,IACY,EAC7B,EAAA,EAAA,eAAgB,CACf,GAAI,CAAC,GAAW,CAAC,GAAa,OAAO,SAAa,IAAa,OAE/D,IAAM,EAAW,GAAyB,EACnC,EAAM,SAAW,EAAM,UACzB,EAAM,IAAI,YAAY,IAAM,EAAI,YAAY,IAC5C,GAAgB,EAAM,eAAe,EACzC,EAAU,EACX,EAGA,OADA,SAAS,iBAAiB,UAAW,CAAO,MAC/B,SAAS,oBAAoB,UAAW,CAAO,CAC7D,EAAG,CAAC,EAAS,EAAK,EAAW,CAAc,CAAC,CAC7C"}
@@ -1,182 +0,0 @@
1
- import { useStrings as e } from "../lib/strings.js";
2
- import { o as t } from "./ui-provider-Dz2qXgZQ.js";
3
- import { cn as n } from "../lib/utils.js";
4
- import { s as r } from "./typography-5bLhAYaK.js";
5
- import { a as i, f as a, i as o, l as s, n as c, o as l, r as u, t as d, u as f } from "./form-sizing-DWjJsQSR.js";
6
- import * as p from "react";
7
- import { memo as m, useCallback as h, useId as g, useMemo as _, useRef as v, useState as y } from "react";
8
- import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
- import { CircleXIcon as S, Loader2Icon as C } from "lucide-react";
10
- //#region src/components/base/forms/fields/hooks/use-form-field-state.ts
11
- function w({ controlledValue: e, defaultValue: t, maxLength: n, showCharacterCount: r, providedId: i, idPrefix: a = "field", hasOnChange: o }) {
12
- let s = g(), c = i || `${a}${s}`, [l, u] = y(t || ""), d = e !== void 0, f = (d ? e : l) ?? "", p = !!(o && !d && !t), m = f.length, v = n !== void 0, b = r === !1 ? !1 : !!(r || v), x = f !== "", S = h((e) => v && e.length > n, [v, n]), C = h((e) => S(e) ? !1 : (d || u(e), !0), [d, S]), w = h(() => {
13
- d || u("");
14
- }, [d]);
15
- return _(() => ({
16
- id: c,
17
- value: f,
18
- isControlled: d,
19
- isReactHookForm: p,
20
- characterCount: m,
21
- hasCharacterLimit: v,
22
- showCount: b,
23
- hasValue: x,
24
- updateValue: C,
25
- clearValue: w,
26
- wouldExceedLimit: S
27
- }), [
28
- c,
29
- f,
30
- d,
31
- p,
32
- m,
33
- v,
34
- b,
35
- x,
36
- C,
37
- w,
38
- S
39
- ]);
40
- }
41
- //#endregion
42
- //#region src/components/base/forms/fields/input.tsx
43
- var ee = { clear: "Clear input" }, T = (e, t, n) => {
44
- let r = e || "";
45
- return t && r && (r = t + r), n && r && (r += n), r;
46
- };
47
- function E({ className: p, type: m = "text", startIcon: g, endIcon: y, startAddon: E, endAddon: D, maxLength: O, showCharacterCount: te, clearable: ne, onClear: k, isLoading: A, returnValueWithAddons: j, invalid: re, size: M, onChange: N, value: ie, defaultValue: ae, id: oe, strings: se, ...P }, F) {
48
- let I = v(null), ce = e(ee, se), { defaultControlSize: le } = t(), L = a(M, le), R = h((e) => {
49
- typeof F == "function" ? F(e) : F && (F.current = e), I.current = e;
50
- }, [F]), { id: z, value: B, isReactHookForm: V, characterCount: H, hasCharacterLimit: U, showCount: W, hasValue: G, updateValue: K, clearValue: q, wouldExceedLimit: J } = w({
51
- controlledValue: ie,
52
- defaultValue: ae,
53
- maxLength: O,
54
- showCharacterCount: te,
55
- providedId: oe,
56
- idPrefix: "input",
57
- hasOnChange: N !== void 0
58
- }), Y = !!ne, X = !!A, ue = !!y, de = !!D, Z = m === "file", Q = !!re, fe = _(() => {
59
- let e = L === "small" ? "ps-control-sm" : "ps-control", t = L === "small" ? "pe-control-sm" : "pe-control";
60
- return g && (e = l[L]), E && (e = d[L]), y && (t = o[L]), D && (t = u[L]), (Y && G || X) && (t = o[L]), W && (t = c[L]), `${e} ${t}`;
61
- }, [
62
- g,
63
- E,
64
- y,
65
- D,
66
- Y,
67
- G,
68
- X,
69
- W,
70
- L
71
- ]), pe = h((e) => {
72
- let t = e.target.value;
73
- if (!J(t) && (K(t), N)) if (j) {
74
- let n = T(t, E, D);
75
- N({
76
- ...e,
77
- target: {
78
- ...e.target,
79
- value: n
80
- },
81
- currentTarget: {
82
- ...e.currentTarget,
83
- value: n
84
- }
85
- });
86
- } else N(e);
87
- }, [
88
- N,
89
- j,
90
- E,
91
- D,
92
- K,
93
- J
94
- ]), me = h(() => {
95
- let e = j ? T("", E, D) : "", t = {
96
- target: { value: e },
97
- currentTarget: { value: e }
98
- };
99
- q(), N?.(t), k?.(), I.current?.focus();
100
- }, [
101
- j,
102
- E,
103
- D,
104
- q,
105
- N,
106
- k
107
- ]), he = Y && G && !W && !X, ge = X && !W, $ = ue && !Y && !W && !X, _e = de && !Y && !W && !X;
108
- return /* @__PURE__ */ x("div", {
109
- className: n("input--component", "relative"),
110
- children: [
111
- /* @__PURE__ */ b("input", {
112
- ref: R,
113
- id: z,
114
- type: m,
115
- ...!V && { value: B },
116
- onChange: pe,
117
- maxLength: O,
118
- "aria-invalid": Q || void 0,
119
- disabled: P.disabled || A,
120
- className: n("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground", "border-input flex w-full min-w-0 rounded-radius border", "transition-[color,box-shadow] outline-none", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", f[L], s[L], "file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium", "file:text-sm", Z ? "cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground" : "bg-transparent", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive", "aria-invalid:placeholder:text-destructive/40", Z ? "read-only:bg-background" : "read-only:bg-muted", fe, p),
121
- ...P
122
- }),
123
- !!g && /* @__PURE__ */ b("div", {
124
- className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground/80"),
125
- children: /* @__PURE__ */ b(g, {
126
- className: i[L],
127
- "aria-hidden": "true"
128
- })
129
- }),
130
- !!E && /* @__PURE__ */ b("span", {
131
- className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center", L === "small" ? "ps-control-sm text-sm" : "ps-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
132
- children: E
133
- }),
134
- !!$ && !!y && /* @__PURE__ */ b("div", {
135
- className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground/80"),
136
- children: /* @__PURE__ */ b(y, {
137
- className: i[L],
138
- "aria-hidden": "true"
139
- })
140
- }),
141
- !!_e && /* @__PURE__ */ b("span", {
142
- className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center", L === "small" ? "pe-control-sm text-sm" : "pe-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
143
- children: D
144
- }),
145
- !!W && /* @__PURE__ */ b("div", {
146
- className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums", L === "small" ? "pe-control-sm text-sm" : "pe-control text-sm", P.disabled && "opacity-50", Q ? "text-destructive" : "text-muted-foreground"),
147
- "aria-live": "polite",
148
- role: "status",
149
- children: /* @__PURE__ */ x(r, {
150
- tag: "span",
151
- size: L === "small" ? "xxs" : "xs",
152
- type: Q ? "error" : "secondary",
153
- children: [H, U ? `/${O}` : ""]
154
- })
155
- }),
156
- !!ge && /* @__PURE__ */ b("div", {
157
- className: n("pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control", Q ? "text-destructive" : "text-muted-foreground/80"),
158
- children: /* @__PURE__ */ b(C, {
159
- className: n(i[L], "animate-spin"),
160
- "aria-hidden": "true"
161
- })
162
- }),
163
- !!he && /* @__PURE__ */ b("button", {
164
- type: "button",
165
- className: "text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
166
- "aria-label": ce.clear,
167
- onClick: me,
168
- disabled: A,
169
- children: /* @__PURE__ */ b(S, {
170
- className: i[L],
171
- "aria-hidden": "true"
172
- })
173
- })
174
- ]
175
- });
176
- }
177
- var D = m(p.forwardRef(E));
178
- D.displayName = "Input";
179
- //#endregion
180
- export { w as n, D as t };
181
-
182
- //# sourceMappingURL=input-CzJzVyQ0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-CzJzVyQ0.js","names":[],"sources":["../../src/components/base/forms/fields/hooks/use-form-field-state.ts","../../src/components/base/forms/fields/input.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useId } from 'react';\n\nexport interface UseFormFieldStateOptions {\n /** Controlled value from parent */\n controlledValue?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Maximum character length */\n maxLength?: number;\n /** Whether to show character count */\n showCharacterCount?: boolean;\n /** Provided ID or auto-generate */\n providedId?: string;\n /** Prefix for auto-generated ID */\n idPrefix?: string;\n /** Whether onChange is provided (for react-hook-form detection) */\n hasOnChange?: boolean;\n}\n\nexport interface UseFormFieldStateReturn {\n /** Generated or provided ID */\n id: string;\n /** Current value (controlled or internal) */\n value: string;\n /** Whether component is in controlled mode */\n isControlled: boolean;\n /** Whether using react-hook-form (has onChange but no controlled value) */\n isReactHookForm: boolean;\n /** Current character count */\n characterCount: number;\n /** Whether a character limit is set */\n hasCharacterLimit: boolean;\n /** Whether to show character count UI */\n showCount: boolean;\n /** Whether the field has a value */\n hasValue: boolean;\n /** Update value - returns false if blocked by character limit */\n updateValue: (newValue: string) => boolean;\n /** Clear the value */\n clearValue: () => void;\n /** Check if a new value would exceed the character limit */\n wouldExceedLimit: (newValue: string) => boolean;\n}\n\n/**\n * Shared hook for managing form field state including:\n * - Controlled vs uncontrolled value handling\n * - Character counting and limits\n * - React Hook Form compatibility detection\n * - ID generation\n */\nexport function useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix = 'field',\n hasOnChange,\n}: UseFormFieldStateOptions): UseFormFieldStateReturn {\n // Generate stable ID using React 18's useId (SSR-safe)\n const reactId = useId();\n const id = providedId || `${idPrefix}${reactId}`;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n // Determine control mode\n const isControlled = controlledValue !== undefined;\n\n // Normalize value (handle null from backend)\n const rawValue = isControlled ? controlledValue : internalValue;\n const value = rawValue ?? '';\n\n // React Hook Form detection: has onChange but no controlled value or defaultValue\n const isReactHookForm = Boolean(hasOnChange && !isControlled && !defaultValue);\n\n // Character counting\n const characterCount = value.length;\n const hasCharacterLimit = maxLength !== undefined;\n const showCount = showCharacterCount === false ? false : Boolean(showCharacterCount || hasCharacterLimit);\n const hasValue = value !== '';\n\n // Check if value would exceed limit\n const wouldExceedLimit = useCallback(\n (newValue: string) => {\n return hasCharacterLimit && newValue.length > maxLength;\n },\n [hasCharacterLimit, maxLength]\n );\n\n // Update value (respects character limit, updates internal state if uncontrolled)\n const updateValue = useCallback(\n (newValue: string): boolean => {\n if (wouldExceedLimit(newValue)) {\n return false;\n }\n if (!isControlled) {\n setInternalValue(newValue);\n }\n return true;\n },\n [isControlled, wouldExceedLimit]\n );\n\n // Clear value\n const clearValue = useCallback(() => {\n if (!isControlled) {\n setInternalValue('');\n }\n }, [isControlled]);\n\n return useMemo(\n () => ({\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n }),\n [\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n ]\n );\n}\n","import { CircleXIcon, Loader2Icon, type LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useMemo, memo } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n formControlAddonOffsetClasses,\n formControlCountOffsetClasses,\n formControlEndAddonOffsetClasses,\n formControlEndIconOffsetClasses,\n formControlIconClasses,\n formControlIconOffsetClasses,\n formControlPaddingClasses,\n formControlSizeClasses,\n resolveFormControlSize,\n} from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface InputStrings {\n clear: string;\n}\n\nexport const defaultInputStrings: InputStrings = {\n clear: 'Clear input',\n};\n\n/**\n * Helper function to get value with prefix/suffix\n */\nconst getValueWithAddons = (value: string, startAddon?: string, endAddon?: string): string => {\n let result = value || '';\n if (startAddon && result) result = startAddon + result;\n if (endAddon && result) result = result + endAddon;\n return result;\n};\n\nexport interface InputProps extends Omit<React.ComponentProps<'input'>, 'onChange' | 'size'> {\n // Icon props\n startIcon?: LucideIcon;\n endIcon?: LucideIcon;\n\n // Add-on props (visual prefix/suffix inside input)\n startAddon?: string;\n endAddon?: string;\n\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Return value with addons in onChange\n returnValueWithAddons?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value?: string;\n defaultValue?: string;\n\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<InputStrings>;\n}\n\nfunction InputImpl(\n\t{\n\t\tclassName,\n\t\ttype = 'text',\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tstartAddon,\n\t\tendAddon,\n\t\tmaxLength,\n\t\tshowCharacterCount,\n\t\tclearable,\n\t\tonClear,\n\t\tisLoading,\n\t\treturnValueWithAddons,\n\t\tinvalid,\n\t\tsize: sizeProp,\n\t\tonChange,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tid: providedId,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: InputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const strings = useStrings(defaultInputStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize ref callback to avoid recreation on every render\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n inputRef.current = node;\n },\n [forwardedRef]\n );\n\n // Use shared form field state hook\n const {\n id,\n value: inputValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'input',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states (simple booleans, no need for useMemo)\n const isClearable = !!clearable;\n const isShowingLoading = !!isLoading;\n const hasEndIcon = !!EndIcon;\n const hasEndAddon = !!endAddon;\n const isFileInput = type === 'file';\n const hasError = !!invalid;\n\n // Memoize padding classes based on add-ons and icons\n // Addon padding sized so the value sits adjacent to the addon — `ps-3`\n // baseline + a measured space for addon text. Wider addons can override\n // via `className` (`ps-16` etc.) at the call site.\n const inputPaddingClasses = useMemo(() => {\n let paddingStart = size === 'small' ? 'ps-control-sm' : 'ps-control';\n let paddingEnd = size === 'small' ? 'pe-control-sm' : 'pe-control';\n\n if (StartIcon) paddingStart = formControlIconOffsetClasses[size];\n if (startAddon) paddingStart = formControlAddonOffsetClasses[size];\n\n if (EndIcon) paddingEnd = formControlEndIconOffsetClasses[size];\n if (endAddon) paddingEnd = formControlEndAddonOffsetClasses[size];\n if ((isClearable && hasValue) || isShowingLoading) paddingEnd = formControlEndIconOffsetClasses[size];\n if (showCount) paddingEnd = formControlCountOffsetClasses[size];\n\n return `${paddingStart} ${paddingEnd}`;\n }, [StartIcon, startAddon, EndIcon, endAddon, isClearable, hasValue, isShowingLoading, showCount, size]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange with modified event if addons are requested\n if (onChange) {\n if (returnValueWithAddons) {\n const valueWithAddons = getValueWithAddons(newValue, startAddon, endAddon);\n const modifiedEvent = {\n ...e,\n target: { ...e.target, value: valueWithAddons },\n currentTarget: { ...e.currentTarget, value: valueWithAddons },\n };\n onChange(modifiedEvent as React.ChangeEvent<HTMLInputElement>);\n } else {\n onChange(e);\n }\n }\n },\n [onChange, returnValueWithAddons, startAddon, endAddon, updateValue, wouldExceedLimit]\n );\n\n const handleClear = useCallback(() => {\n const clearValueWithAddons = returnValueWithAddons\n ? getValueWithAddons('', startAddon, endAddon)\n : '';\n const syntheticEvent = {\n target: { value: clearValueWithAddons },\n currentTarget: { value: clearValueWithAddons },\n } as React.ChangeEvent<HTMLInputElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the input after clearing\n inputRef.current?.focus();\n }, [returnValueWithAddons, startAddon, endAddon, clearValue, onChange, onClear]);\n\n // Determine what to show in the end position (priority order)\n const showClearButton = isClearable && hasValue && !showCount && !isShowingLoading;\n const showLoadingSpinner = isShowingLoading && !showCount;\n const showEndIcon = hasEndIcon && !isClearable && !showCount && !isShowingLoading;\n const showEndAddon = hasEndAddon && !isClearable && !showCount && !isShowingLoading;\n\n return (\n <div className={cn('input--component', 'relative')}>\n <input\n ref={setRefs}\n id={id}\n type={type}\n {...(!isReactHookForm && { value: inputValue })}\n onChange={handleInputChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n className={cn(\n // Base styles\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full min-w-0 rounded-radius border',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formControlSizeClasses[size],\n formControlPaddingClasses[size],\n // File input styles\n 'file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium',\n 'file:text-sm',\n isFileInput\n ? 'cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground'\n : 'bg-transparent',\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles — destructive border, ring, value text\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive',\n 'aria-invalid:placeholder:text-destructive/40',\n // Read-only styles\n isFileInput\n ? 'read-only:bg-background'\n : 'read-only:bg-muted',\n // Dynamic padding\n inputPaddingClasses,\n className\n )}\n {...props}\n />\n\n {/* Start Icon */}\n {!!StartIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <StartIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Start Add-on */}\n {!!startAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n size === 'small' ? 'ps-control-sm text-sm' : 'ps-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {startAddon}\n </span>\n )}\n\n {/* End Icon */}\n {!!showEndIcon && !!EndIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <EndIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* End Add-on */}\n {!!showEndAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {endAddon}\n </span>\n )}\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size={size === 'small' ? 'xxs' : 'xs'} type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!showLoadingSpinner && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className={cn(formControlIconClasses[size], 'animate-spin')} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n}\n\n// forwardRef + memo (needed for callers that require refs, e.g. segmented inputs)\nconst Input = memo(React.forwardRef<HTMLInputElement, InputProps>(InputImpl));\nInput.displayName = 'Input';\n\nexport { Input };\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-CrsJ_dGn.cjs"),r=require("../lib/utils.cjs"),i=require("./typography-CWEobAJV.cjs"),a=require("./form-sizing-DJus3nK3.cjs");let o=require("react");o=e.t(o,1);let s=require("react/jsx-runtime"),c=require("lucide-react");function l({controlledValue:e,defaultValue:t,maxLength:n,showCharacterCount:r,providedId:i,idPrefix:a=`field`,hasOnChange:s}){let c=(0,o.useId)(),l=i||`${a}${c}`,[u,d]=(0,o.useState)(t||``),f=e!==void 0,p=(f?e:u)??``,m=!!(s&&!f&&!t),h=p.length,g=n!==void 0,_=r===!1?!1:!!(r||g),v=p!==``,y=(0,o.useCallback)(e=>g&&e.length>n,[g,n]),b=(0,o.useCallback)(e=>y(e)?!1:(f||d(e),!0),[f,y]),x=(0,o.useCallback)(()=>{f||d(``)},[f]);return(0,o.useMemo)(()=>({id:l,value:p,isControlled:f,isReactHookForm:m,characterCount:h,hasCharacterLimit:g,showCount:_,hasValue:v,updateValue:b,clearValue:x,wouldExceedLimit:y}),[l,p,f,m,h,g,_,v,b,x,y])}var u={clear:`Clear input`},d=(e,t,n)=>{let r=e||``;return t&&r&&(r=t+r),n&&r&&(r+=n),r};function f({className:e,type:f=`text`,startIcon:p,endIcon:m,startAddon:h,endAddon:g,maxLength:_,showCharacterCount:v,clearable:y,onClear:b,isLoading:x,returnValueWithAddons:S,invalid:C,size:w,onChange:T,value:E,defaultValue:D,id:O,strings:k,...A},j){let M=(0,o.useRef)(null),N=t.useStrings(u,k),{defaultControlSize:P}=n.o(),F=a.f(w,P),I=(0,o.useCallback)(e=>{typeof j==`function`?j(e):j&&(j.current=e),M.current=e},[j]),{id:L,value:R,isReactHookForm:z,characterCount:B,hasCharacterLimit:V,showCount:H,hasValue:U,updateValue:W,clearValue:G,wouldExceedLimit:K}=l({controlledValue:E,defaultValue:D,maxLength:_,showCharacterCount:v,providedId:O,idPrefix:`input`,hasOnChange:T!==void 0}),q=!!y,J=!!x,Y=!!m,X=!!g,Z=f===`file`,Q=!!C,$=(0,o.useMemo)(()=>{let e=F===`small`?`ps-control-sm`:`ps-control`,t=F===`small`?`pe-control-sm`:`pe-control`;return p&&(e=a.o[F]),h&&(e=a.t[F]),m&&(t=a.i[F]),g&&(t=a.r[F]),(q&&U||J)&&(t=a.i[F]),H&&(t=a.n[F]),`${e} ${t}`},[p,h,m,g,q,U,J,H,F]),ee=(0,o.useCallback)(e=>{let t=e.target.value;if(!K(t)&&(W(t),T))if(S){let n=d(t,h,g);T({...e,target:{...e.target,value:n},currentTarget:{...e.currentTarget,value:n}})}else T(e)},[T,S,h,g,W,K]),te=(0,o.useCallback)(()=>{let e=S?d(``,h,g):``,t={target:{value:e},currentTarget:{value:e}};G(),T?.(t),b?.(),M.current?.focus()},[S,h,g,G,T,b]),ne=q&&U&&!H&&!J,re=J&&!H,ie=Y&&!q&&!H&&!J,ae=X&&!q&&!H&&!J;return(0,s.jsxs)(`div`,{className:r.cn(`input--component`,`relative`),children:[(0,s.jsx)(`input`,{ref:I,id:L,type:f,...!z&&{value:R},onChange:ee,maxLength:_,"aria-invalid":Q||void 0,disabled:A.disabled||x,className:r.cn(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground`,`border-input flex w-full min-w-0 rounded-radius border`,`transition-[color,box-shadow] outline-none`,`disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,a.u[F],a.l[F],`file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium`,`file:text-sm`,Z?`cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground`:`bg-transparent`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive`,`aria-invalid:placeholder:text-destructive/40`,Z?`read-only:bg-background`:`read-only:bg-muted`,$,e),...A}),!!p&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(p,{className:a.a[F],"aria-hidden":`true`})}),!!h&&(0,s.jsx)(`span`,{className:r.cn(`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center`,F===`small`?`ps-control-sm text-sm`:`ps-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),children:h}),!!ie&&!!m&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(m,{className:a.a[F],"aria-hidden":`true`})}),!!ae&&(0,s.jsx)(`span`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center`,F===`small`?`pe-control-sm text-sm`:`pe-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),children:g}),!!H&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums`,F===`small`?`pe-control-sm text-sm`:`pe-control text-sm`,A.disabled&&`opacity-50`,Q?`text-destructive`:`text-muted-foreground`),"aria-live":`polite`,role:`status`,children:(0,s.jsxs)(i.s,{tag:`span`,size:F===`small`?`xxs`:`xs`,type:Q?`error`:`secondary`,children:[B,V?`/${_}`:``]})}),!!re&&(0,s.jsx)(`div`,{className:r.cn(`pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control`,Q?`text-destructive`:`text-muted-foreground/80`),children:(0,s.jsx)(c.Loader2Icon,{className:r.cn(a.a[F],`animate-spin`),"aria-hidden":`true`})}),!!ne&&(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":N.clear,onClick:te,disabled:x,children:(0,s.jsx)(c.CircleXIcon,{className:a.a[F],"aria-hidden":`true`})})]})}var p=(0,o.memo)(o.forwardRef(f));p.displayName=`Input`,Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
2
- //# sourceMappingURL=input-Dvvmn96E.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-Dvvmn96E.cjs","names":[],"sources":["../../src/components/base/forms/fields/hooks/use-form-field-state.ts","../../src/components/base/forms/fields/input.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useId } from 'react';\n\nexport interface UseFormFieldStateOptions {\n /** Controlled value from parent */\n controlledValue?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Maximum character length */\n maxLength?: number;\n /** Whether to show character count */\n showCharacterCount?: boolean;\n /** Provided ID or auto-generate */\n providedId?: string;\n /** Prefix for auto-generated ID */\n idPrefix?: string;\n /** Whether onChange is provided (for react-hook-form detection) */\n hasOnChange?: boolean;\n}\n\nexport interface UseFormFieldStateReturn {\n /** Generated or provided ID */\n id: string;\n /** Current value (controlled or internal) */\n value: string;\n /** Whether component is in controlled mode */\n isControlled: boolean;\n /** Whether using react-hook-form (has onChange but no controlled value) */\n isReactHookForm: boolean;\n /** Current character count */\n characterCount: number;\n /** Whether a character limit is set */\n hasCharacterLimit: boolean;\n /** Whether to show character count UI */\n showCount: boolean;\n /** Whether the field has a value */\n hasValue: boolean;\n /** Update value - returns false if blocked by character limit */\n updateValue: (newValue: string) => boolean;\n /** Clear the value */\n clearValue: () => void;\n /** Check if a new value would exceed the character limit */\n wouldExceedLimit: (newValue: string) => boolean;\n}\n\n/**\n * Shared hook for managing form field state including:\n * - Controlled vs uncontrolled value handling\n * - Character counting and limits\n * - React Hook Form compatibility detection\n * - ID generation\n */\nexport function useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix = 'field',\n hasOnChange,\n}: UseFormFieldStateOptions): UseFormFieldStateReturn {\n // Generate stable ID using React 18's useId (SSR-safe)\n const reactId = useId();\n const id = providedId || `${idPrefix}${reactId}`;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n // Determine control mode\n const isControlled = controlledValue !== undefined;\n\n // Normalize value (handle null from backend)\n const rawValue = isControlled ? controlledValue : internalValue;\n const value = rawValue ?? '';\n\n // React Hook Form detection: has onChange but no controlled value or defaultValue\n const isReactHookForm = Boolean(hasOnChange && !isControlled && !defaultValue);\n\n // Character counting\n const characterCount = value.length;\n const hasCharacterLimit = maxLength !== undefined;\n const showCount = showCharacterCount === false ? false : Boolean(showCharacterCount || hasCharacterLimit);\n const hasValue = value !== '';\n\n // Check if value would exceed limit\n const wouldExceedLimit = useCallback(\n (newValue: string) => {\n return hasCharacterLimit && newValue.length > maxLength;\n },\n [hasCharacterLimit, maxLength]\n );\n\n // Update value (respects character limit, updates internal state if uncontrolled)\n const updateValue = useCallback(\n (newValue: string): boolean => {\n if (wouldExceedLimit(newValue)) {\n return false;\n }\n if (!isControlled) {\n setInternalValue(newValue);\n }\n return true;\n },\n [isControlled, wouldExceedLimit]\n );\n\n // Clear value\n const clearValue = useCallback(() => {\n if (!isControlled) {\n setInternalValue('');\n }\n }, [isControlled]);\n\n return useMemo(\n () => ({\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n }),\n [\n id,\n value,\n isControlled,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n ]\n );\n}\n","import { CircleXIcon, Loader2Icon, type LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useMemo, memo } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n formControlAddonOffsetClasses,\n formControlCountOffsetClasses,\n formControlEndAddonOffsetClasses,\n formControlEndIconOffsetClasses,\n formControlIconClasses,\n formControlIconOffsetClasses,\n formControlPaddingClasses,\n formControlSizeClasses,\n resolveFormControlSize,\n} from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface InputStrings {\n clear: string;\n}\n\nexport const defaultInputStrings: InputStrings = {\n clear: 'Clear input',\n};\n\n/**\n * Helper function to get value with prefix/suffix\n */\nconst getValueWithAddons = (value: string, startAddon?: string, endAddon?: string): string => {\n let result = value || '';\n if (startAddon && result) result = startAddon + result;\n if (endAddon && result) result = result + endAddon;\n return result;\n};\n\nexport interface InputProps extends Omit<React.ComponentProps<'input'>, 'onChange' | 'size'> {\n // Icon props\n startIcon?: LucideIcon;\n endIcon?: LucideIcon;\n\n // Add-on props (visual prefix/suffix inside input)\n startAddon?: string;\n endAddon?: string;\n\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Return value with addons in onChange\n returnValueWithAddons?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value?: string;\n defaultValue?: string;\n\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<InputStrings>;\n}\n\nfunction InputImpl(\n\t{\n\t\tclassName,\n\t\ttype = 'text',\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tstartAddon,\n\t\tendAddon,\n\t\tmaxLength,\n\t\tshowCharacterCount,\n\t\tclearable,\n\t\tonClear,\n\t\tisLoading,\n\t\treturnValueWithAddons,\n\t\tinvalid,\n\t\tsize: sizeProp,\n\t\tonChange,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tid: providedId,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: InputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const strings = useStrings(defaultInputStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize ref callback to avoid recreation on every render\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n inputRef.current = node;\n },\n [forwardedRef]\n );\n\n // Use shared form field state hook\n const {\n id,\n value: inputValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'input',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states (simple booleans, no need for useMemo)\n const isClearable = !!clearable;\n const isShowingLoading = !!isLoading;\n const hasEndIcon = !!EndIcon;\n const hasEndAddon = !!endAddon;\n const isFileInput = type === 'file';\n const hasError = !!invalid;\n\n // Memoize padding classes based on add-ons and icons\n // Addon padding sized so the value sits adjacent to the addon — `ps-3`\n // baseline + a measured space for addon text. Wider addons can override\n // via `className` (`ps-16` etc.) at the call site.\n const inputPaddingClasses = useMemo(() => {\n let paddingStart = size === 'small' ? 'ps-control-sm' : 'ps-control';\n let paddingEnd = size === 'small' ? 'pe-control-sm' : 'pe-control';\n\n if (StartIcon) paddingStart = formControlIconOffsetClasses[size];\n if (startAddon) paddingStart = formControlAddonOffsetClasses[size];\n\n if (EndIcon) paddingEnd = formControlEndIconOffsetClasses[size];\n if (endAddon) paddingEnd = formControlEndAddonOffsetClasses[size];\n if ((isClearable && hasValue) || isShowingLoading) paddingEnd = formControlEndIconOffsetClasses[size];\n if (showCount) paddingEnd = formControlCountOffsetClasses[size];\n\n return `${paddingStart} ${paddingEnd}`;\n }, [StartIcon, startAddon, EndIcon, endAddon, isClearable, hasValue, isShowingLoading, showCount, size]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange with modified event if addons are requested\n if (onChange) {\n if (returnValueWithAddons) {\n const valueWithAddons = getValueWithAddons(newValue, startAddon, endAddon);\n const modifiedEvent = {\n ...e,\n target: { ...e.target, value: valueWithAddons },\n currentTarget: { ...e.currentTarget, value: valueWithAddons },\n };\n onChange(modifiedEvent as React.ChangeEvent<HTMLInputElement>);\n } else {\n onChange(e);\n }\n }\n },\n [onChange, returnValueWithAddons, startAddon, endAddon, updateValue, wouldExceedLimit]\n );\n\n const handleClear = useCallback(() => {\n const clearValueWithAddons = returnValueWithAddons\n ? getValueWithAddons('', startAddon, endAddon)\n : '';\n const syntheticEvent = {\n target: { value: clearValueWithAddons },\n currentTarget: { value: clearValueWithAddons },\n } as React.ChangeEvent<HTMLInputElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the input after clearing\n inputRef.current?.focus();\n }, [returnValueWithAddons, startAddon, endAddon, clearValue, onChange, onClear]);\n\n // Determine what to show in the end position (priority order)\n const showClearButton = isClearable && hasValue && !showCount && !isShowingLoading;\n const showLoadingSpinner = isShowingLoading && !showCount;\n const showEndIcon = hasEndIcon && !isClearable && !showCount && !isShowingLoading;\n const showEndAddon = hasEndAddon && !isClearable && !showCount && !isShowingLoading;\n\n return (\n <div className={cn('input--component', 'relative')}>\n <input\n ref={setRefs}\n id={id}\n type={type}\n {...(!isReactHookForm && { value: inputValue })}\n onChange={handleInputChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n className={cn(\n // Base styles\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full min-w-0 rounded-radius border',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formControlSizeClasses[size],\n formControlPaddingClasses[size],\n // File input styles\n 'file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:font-medium',\n 'file:text-sm',\n isFileInput\n ? 'cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-md file:border-input file:bg-background file:text-foreground'\n : 'bg-transparent',\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles — destructive border, ring, value text\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:text-destructive',\n 'aria-invalid:placeholder:text-destructive/40',\n // Read-only styles\n isFileInput\n ? 'read-only:bg-background'\n : 'read-only:bg-muted',\n // Dynamic padding\n inputPaddingClasses,\n className\n )}\n {...props}\n />\n\n {/* Start Icon */}\n {!!StartIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <StartIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Start Add-on */}\n {!!startAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n size === 'small' ? 'ps-control-sm text-sm' : 'ps-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {startAddon}\n </span>\n )}\n\n {/* End Icon */}\n {!!showEndIcon && !!EndIcon && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <EndIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* End Add-on */}\n {!!showEndAddon && (\n <span\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n >\n {endAddon}\n </span>\n )}\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center tabular-nums',\n size === 'small' ? 'pe-control-sm text-sm' : 'pe-control text-sm',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size={size === 'small' ? 'xxs' : 'xs'} type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!showLoadingSpinner && (\n <div\n className={cn(\n 'pointer-events-none absolute inset-y-0 end-0 flex items-center justify-center pe-control',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon className={cn(formControlIconClasses[size], 'animate-spin')} aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-control-clear items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n}\n\n// forwardRef + memo (needed for callers that require refs, e.g. segmented inputs)\nconst Input = memo(React.forwardRef<HTMLInputElement, InputProps>(InputImpl));\nInput.displayName = 'Input';\n\nexport { Input };\n"],"mappings":"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"}