admin-ui-starter-kit 0.1.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 (2352) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +980 -0
  2. package/.agents/skills/component-library-rules/references/api-patterns.md +332 -0
  3. package/.agents/skills/component-library-rules/references/audit-followups.md +395 -0
  4. package/.agents/skills/component-library-rules/references/base-wrapper.md +132 -0
  5. package/.agents/skills/component-library-rules/references/components/INDEX.json +94 -0
  6. package/.agents/skills/component-library-rules/references/components/INDEX.md +116 -0
  7. package/.agents/skills/component-library-rules/references/components/README.md +9 -0
  8. package/.agents/skills/component-library-rules/references/components/base__accordion.md +229 -0
  9. package/.agents/skills/component-library-rules/references/components/base__badge.md +68 -0
  10. package/.agents/skills/component-library-rules/references/components/base__buttons.md +330 -0
  11. package/.agents/skills/component-library-rules/references/components/base__cards.md +390 -0
  12. package/.agents/skills/component-library-rules/references/components/base__combobox.md +697 -0
  13. package/.agents/skills/component-library-rules/references/components/base__copyable.md +143 -0
  14. package/.agents/skills/component-library-rules/references/components/base__currency.md +201 -0
  15. package/.agents/skills/component-library-rules/references/components/base__date-pickers.md +161 -0
  16. package/.agents/skills/component-library-rules/references/components/base__display.md +480 -0
  17. package/.agents/skills/component-library-rules/references/components/base__empty-state.md +244 -0
  18. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +186 -0
  19. package/.agents/skills/component-library-rules/references/components/base__forms.md +892 -0
  20. package/.agents/skills/component-library-rules/references/components/base__item.md +155 -0
  21. package/.agents/skills/component-library-rules/references/components/base__map.md +111 -0
  22. package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +338 -0
  23. package/.agents/skills/component-library-rules/references/components/base__navigation.md +293 -0
  24. package/.agents/skills/component-library-rules/references/components/base__spinner.md +89 -0
  25. package/.agents/skills/component-library-rules/references/components/base__table.md +449 -0
  26. package/.agents/skills/component-library-rules/references/components/base__typography.md +277 -0
  27. package/.agents/skills/component-library-rules/references/components/base__upload-tray.md +180 -0
  28. package/.agents/skills/component-library-rules/references/components/common__brand.md +81 -0
  29. package/.agents/skills/component-library-rules/references/components/composed__admin.md +128 -0
  30. package/.agents/skills/component-library-rules/references/components/composed__ai-elements.md +428 -0
  31. package/.agents/skills/component-library-rules/references/components/composed__ai-new.md +214 -0
  32. package/.agents/skills/component-library-rules/references/components/composed__ai.md +78 -0
  33. package/.agents/skills/component-library-rules/references/components/composed__api-key-list.md +114 -0
  34. package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +230 -0
  35. package/.agents/skills/component-library-rules/references/components/composed__commerce.md +120 -0
  36. package/.agents/skills/component-library-rules/references/components/composed__contact-card.md +107 -0
  37. package/.agents/skills/component-library-rules/references/components/composed__course-card.md +157 -0
  38. package/.agents/skills/component-library-rules/references/components/composed__dark-surfaces.md +134 -0
  39. package/.agents/skills/component-library-rules/references/components/composed__dense-info.md +151 -0
  40. package/.agents/skills/component-library-rules/references/components/composed__feature-announcement.md +70 -0
  41. package/.agents/skills/component-library-rules/references/components/composed__giftcard-cards.md +129 -0
  42. package/.agents/skills/component-library-rules/references/components/composed__gradient-card.md +98 -0
  43. package/.agents/skills/component-library-rules/references/components/composed__invoice-header.md +75 -0
  44. package/.agents/skills/component-library-rules/references/components/composed__invoice-items.md +77 -0
  45. package/.agents/skills/component-library-rules/references/components/composed__invoice-mini.md +51 -0
  46. package/.agents/skills/component-library-rules/references/components/composed__invoice-table.md +69 -0
  47. package/.agents/skills/component-library-rules/references/components/composed__navigation-extras.md +80 -0
  48. package/.agents/skills/component-library-rules/references/components/composed__navigation.md +130 -0
  49. package/.agents/skills/component-library-rules/references/components/composed__onboarding-checklist.md +163 -0
  50. package/.agents/skills/component-library-rules/references/components/composed__timelines.md +233 -0
  51. package/.agents/skills/component-library-rules/references/components/composed__vendor-profile.md +75 -0
  52. package/.agents/skills/component-library-rules/references/components/features__activities.md +549 -0
  53. package/.agents/skills/component-library-rules/references/components/features__ai-chat.md +502 -0
  54. package/.agents/skills/component-library-rules/references/components/features__comments.md +394 -0
  55. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +394 -0
  56. package/.agents/skills/component-library-rules/references/components/features__event-log.md +369 -0
  57. package/.agents/skills/component-library-rules/references/components/features__filters.md +109 -0
  58. package/.agents/skills/component-library-rules/references/components/features__global-search.md +125 -0
  59. package/.agents/skills/component-library-rules/references/components/features__kanban.md +214 -0
  60. package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-bar.md +84 -0
  61. package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-cards.md +86 -0
  62. package/.agents/skills/component-library-rules/references/components/features__metrics-comparison.md +118 -0
  63. package/.agents/skills/component-library-rules/references/components/features__metrics-heatmap.md +63 -0
  64. package/.agents/skills/component-library-rules/references/components/features__metrics-inline-badge.md +53 -0
  65. package/.agents/skills/component-library-rules/references/components/features__metrics-kpi-row.md +69 -0
  66. package/.agents/skills/component-library-rules/references/components/features__metrics-micro-grid.md +80 -0
  67. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +249 -0
  68. package/.agents/skills/component-library-rules/references/components/features__metrics-stat-cards.md +92 -0
  69. package/.agents/skills/component-library-rules/references/components/features__overlays.md +437 -0
  70. package/.agents/skills/component-library-rules/references/components/features__rich-text-editor.md +159 -0
  71. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +142 -0
  72. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +217 -0
  73. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +165 -0
  74. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +271 -0
  75. package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +152 -0
  76. package/.agents/skills/component-library-rules/references/components/ui__alert.md +99 -0
  77. package/.agents/skills/component-library-rules/references/components/ui__avatar.md +100 -0
  78. package/.agents/skills/component-library-rules/references/components/ui__breadcrumb.md +90 -0
  79. package/.agents/skills/component-library-rules/references/components/ui__button.md +85 -0
  80. package/.agents/skills/component-library-rules/references/components/ui__calendar.md +52 -0
  81. package/.agents/skills/component-library-rules/references/components/ui__collapsible.md +64 -0
  82. package/.agents/skills/component-library-rules/references/components/ui__empty-item.md +89 -0
  83. package/.agents/skills/component-library-rules/references/components/ui__input-group.md +87 -0
  84. package/.agents/skills/component-library-rules/references/components/ui__inputs.md +90 -0
  85. package/.agents/skills/component-library-rules/references/components/ui__menus.md +131 -0
  86. package/.agents/skills/component-library-rules/references/components/ui__overlays.md +136 -0
  87. package/.agents/skills/component-library-rules/references/components/ui__pagination.md +77 -0
  88. package/.agents/skills/component-library-rules/references/components/ui__progress.md +55 -0
  89. package/.agents/skills/component-library-rules/references/components/ui__scroll-area.md +70 -0
  90. package/.agents/skills/component-library-rules/references/components/ui__separator.md +65 -0
  91. package/.agents/skills/component-library-rules/references/components/ui__skeleton.md +67 -0
  92. package/.agents/skills/component-library-rules/references/components/ui__sonner.md +58 -0
  93. package/.agents/skills/component-library-rules/references/components/ui__spinner.md +68 -0
  94. package/.agents/skills/component-library-rules/references/components/ui__tabs.md +55 -0
  95. package/.agents/skills/component-library-rules/references/components/ui__toggles-group.md +70 -0
  96. package/.agents/skills/component-library-rules/references/components/ui__toggles.md +115 -0
  97. package/.agents/skills/component-library-rules/references/components/ui__ui-badge.md +67 -0
  98. package/.agents/skills/component-library-rules/references/components/ui__ui-card.md +68 -0
  99. package/.agents/skills/component-library-rules/references/components/ui__ui-table.md +78 -0
  100. package/.agents/skills/component-library-rules/references/composed-domains.md +96 -0
  101. package/.agents/skills/component-library-rules/references/consumer-wiring.md +173 -0
  102. package/.agents/skills/component-library-rules/references/features-anatomy.md +287 -0
  103. package/.agents/skills/component-library-rules/references/form-field-pattern.md +161 -0
  104. package/.agents/skills/component-library-rules/references/history.md +502 -0
  105. package/.agents/skills/component-library-rules/references/import-paths.md +140 -0
  106. package/.agents/skills/component-library-rules/references/item-pattern.md +184 -0
  107. package/.agents/skills/component-library-rules/references/layout.md +120 -0
  108. package/.agents/skills/component-library-rules/references/new-feature.md +109 -0
  109. package/.agents/skills/component-library-rules/references/preview-pages.md +153 -0
  110. package/.agents/skills/component-library-rules/references/strings-pattern.md +123 -0
  111. package/.agents/skills/component-library-rules/references/testing.md +116 -0
  112. package/.agents/skills/component-library-rules/references/ui-provider.md +120 -0
  113. package/.agents/skills/component-library-rules/references/visual-eval.md +143 -0
  114. package/AGENTS.md +434 -0
  115. package/CHANGELOG.md +77 -0
  116. package/CLAUDE.md +41 -0
  117. package/CONTRIBUTING.md +91 -0
  118. package/INTEGRATION.md +115 -0
  119. package/LICENSE +21 -0
  120. package/PUBLISHING.md +129 -0
  121. package/README.md +379 -0
  122. package/dist/_shared/accordion-7rwpgJ1k.cjs +2 -0
  123. package/dist/_shared/accordion-7rwpgJ1k.cjs.map +1 -0
  124. package/dist/_shared/accordion-DcduCEIo.js +130 -0
  125. package/dist/_shared/accordion-DcduCEIo.js.map +1 -0
  126. package/dist/_shared/action-menu-D0u-q0q-.cjs +2 -0
  127. package/dist/_shared/action-menu-D0u-q0q-.cjs.map +1 -0
  128. package/dist/_shared/action-menu-DUBXdReV.js +96 -0
  129. package/dist/_shared/action-menu-DUBXdReV.js.map +1 -0
  130. package/dist/_shared/ai-artifact-C3R0god0.cjs +3 -0
  131. package/dist/_shared/ai-artifact-C3R0god0.cjs.map +1 -0
  132. package/dist/_shared/ai-artifact-DMjQv_Si.js +1068 -0
  133. package/dist/_shared/ai-artifact-DMjQv_Si.js.map +1 -0
  134. package/dist/_shared/alert-B2cuJGAA.cjs +2 -0
  135. package/dist/_shared/alert-B2cuJGAA.cjs.map +1 -0
  136. package/dist/_shared/alert-BKUmOI2e.js +48 -0
  137. package/dist/_shared/alert-BKUmOI2e.js.map +1 -0
  138. package/dist/_shared/avatar-BcYcRORH.cjs +2 -0
  139. package/dist/_shared/avatar-BcYcRORH.cjs.map +1 -0
  140. package/dist/_shared/avatar-CNzG6jSZ.js +52 -0
  141. package/dist/_shared/avatar-CNzG6jSZ.js.map +1 -0
  142. package/dist/_shared/badge-BbUN6W7E.js +108 -0
  143. package/dist/_shared/badge-BbUN6W7E.js.map +1 -0
  144. package/dist/_shared/badge-BjtDcU1M.cjs +2 -0
  145. package/dist/_shared/badge-BjtDcU1M.cjs.map +1 -0
  146. package/dist/_shared/breadcrumbs-DctwTld5.js +111 -0
  147. package/dist/_shared/breadcrumbs-DctwTld5.js.map +1 -0
  148. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +2 -0
  149. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +1 -0
  150. package/dist/_shared/button-BCABTFLE.js +46 -0
  151. package/dist/_shared/button-BCABTFLE.js.map +1 -0
  152. package/dist/_shared/button-Ck2qS42n.js +176 -0
  153. package/dist/_shared/button-Ck2qS42n.js.map +1 -0
  154. package/dist/_shared/button-DjJ-mDI1.cjs +2 -0
  155. package/dist/_shared/button-DjJ-mDI1.cjs.map +1 -0
  156. package/dist/_shared/button-DjacsNTg.cjs +2 -0
  157. package/dist/_shared/button-DjacsNTg.cjs.map +1 -0
  158. package/dist/_shared/buttons-BVnjQ-uE.js +143 -0
  159. package/dist/_shared/buttons-BVnjQ-uE.js.map +1 -0
  160. package/dist/_shared/buttons-BdY6igTr.cjs +2 -0
  161. package/dist/_shared/buttons-BdY6igTr.cjs.map +1 -0
  162. package/dist/_shared/card-radio-group--GP1xrz_.js +158 -0
  163. package/dist/_shared/card-radio-group--GP1xrz_.js.map +1 -0
  164. package/dist/_shared/card-radio-group-DnQsWozr.cjs +2 -0
  165. package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +1 -0
  166. package/dist/_shared/chunk-D3uCBrYO.cjs +1 -0
  167. package/dist/_shared/combobox-DBrRE1Dr.cjs +2 -0
  168. package/dist/_shared/combobox-DBrRE1Dr.cjs.map +1 -0
  169. package/dist/_shared/combobox-DYztEJaw.js +746 -0
  170. package/dist/_shared/combobox-DYztEJaw.js.map +1 -0
  171. package/dist/_shared/command-COvgXQ8r.cjs +2 -0
  172. package/dist/_shared/command-COvgXQ8r.cjs.map +1 -0
  173. package/dist/_shared/command-CvZ6Emb8.js +39 -0
  174. package/dist/_shared/command-CvZ6Emb8.js.map +1 -0
  175. package/dist/_shared/command-DTFQIUVG.cjs +2 -0
  176. package/dist/_shared/command-DTFQIUVG.cjs.map +1 -0
  177. package/dist/_shared/command-Sq8XbHbA.js +123 -0
  178. package/dist/_shared/command-Sq8XbHbA.js.map +1 -0
  179. package/dist/_shared/comments-BOFU1GYY.js +945 -0
  180. package/dist/_shared/comments-BOFU1GYY.js.map +1 -0
  181. package/dist/_shared/comments-BbTYFzx6.cjs +2 -0
  182. package/dist/_shared/comments-BbTYFzx6.cjs.map +1 -0
  183. package/dist/_shared/containers-BthqdOhA.cjs +2 -0
  184. package/dist/_shared/containers-BthqdOhA.cjs.map +1 -0
  185. package/dist/_shared/containers-CD2xs1nk.js +19 -0
  186. package/dist/_shared/containers-CD2xs1nk.js.map +1 -0
  187. package/dist/_shared/content-container-CFfYbWoa.js +33 -0
  188. package/dist/_shared/content-container-CFfYbWoa.js.map +1 -0
  189. package/dist/_shared/content-container-CReiVugL.cjs +2 -0
  190. package/dist/_shared/content-container-CReiVugL.cjs.map +1 -0
  191. package/dist/_shared/copyable-CweQ72QI.cjs +2 -0
  192. package/dist/_shared/copyable-CweQ72QI.cjs.map +1 -0
  193. package/dist/_shared/copyable-JgsTp6ev.js +38 -0
  194. package/dist/_shared/copyable-JgsTp6ev.js.map +1 -0
  195. package/dist/_shared/date-picker-DI4b-SeE.cjs +2 -0
  196. package/dist/_shared/date-picker-DI4b-SeE.cjs.map +1 -0
  197. package/dist/_shared/date-picker-DTazvODY.js +1352 -0
  198. package/dist/_shared/date-picker-DTazvODY.js.map +1 -0
  199. package/dist/_shared/date-pickers-CLzuzmuc.cjs +2 -0
  200. package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +1 -0
  201. package/dist/_shared/date-pickers-CWPxP3zy.js +330 -0
  202. package/dist/_shared/date-pickers-CWPxP3zy.js.map +1 -0
  203. package/dist/_shared/dialog-2MJmaj_d.js +101 -0
  204. package/dist/_shared/dialog-2MJmaj_d.js.map +1 -0
  205. package/dist/_shared/dialog-KKD0i1T8.cjs +2 -0
  206. package/dist/_shared/dialog-KKD0i1T8.cjs.map +1 -0
  207. package/dist/_shared/display-BCy1Ti7T.cjs +8 -0
  208. package/dist/_shared/display-BCy1Ti7T.cjs.map +1 -0
  209. package/dist/_shared/display-DUpkE2aS.js +1462 -0
  210. package/dist/_shared/display-DUpkE2aS.js.map +1 -0
  211. package/dist/_shared/dropdown-menu-BebBffUH.cjs +2 -0
  212. package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +1 -0
  213. package/dist/_shared/dropdown-menu-xdGEynC8.js +147 -0
  214. package/dist/_shared/dropdown-menu-xdGEynC8.js.map +1 -0
  215. package/dist/_shared/form-field-rOj3cm6C.js +319 -0
  216. package/dist/_shared/form-field-rOj3cm6C.js.map +1 -0
  217. package/dist/_shared/form-field-rcyIIHjR.cjs +2 -0
  218. package/dist/_shared/form-field-rcyIIHjR.cjs.map +1 -0
  219. package/dist/_shared/form-sizing--bs_xPe2.cjs +2 -0
  220. package/dist/_shared/form-sizing--bs_xPe2.cjs.map +1 -0
  221. package/dist/_shared/form-sizing-CkKcs5fi.js +21 -0
  222. package/dist/_shared/form-sizing-CkKcs5fi.js.map +1 -0
  223. package/dist/_shared/format-BlVEsPyT.js +48 -0
  224. package/dist/_shared/format-BlVEsPyT.js.map +1 -0
  225. package/dist/_shared/format-DYVtSA2I.cjs +2 -0
  226. package/dist/_shared/format-DYVtSA2I.cjs.map +1 -0
  227. package/dist/_shared/forms-BAVsxxRk.js +3374 -0
  228. package/dist/_shared/forms-BAVsxxRk.js.map +1 -0
  229. package/dist/_shared/forms-DaZ3LsYc.cjs +2 -0
  230. package/dist/_shared/forms-DaZ3LsYc.cjs.map +1 -0
  231. package/dist/_shared/header-BtTMsQ5P.cjs +2 -0
  232. package/dist/_shared/header-BtTMsQ5P.cjs.map +1 -0
  233. package/dist/_shared/header-DpW4UWV6.js +369 -0
  234. package/dist/_shared/header-DpW4UWV6.js.map +1 -0
  235. package/dist/_shared/hooks-Bsm917yh.cjs +2 -0
  236. package/dist/_shared/hooks-Bsm917yh.cjs.map +1 -0
  237. package/dist/_shared/hooks-CX-SICd4.js +118 -0
  238. package/dist/_shared/hooks-CX-SICd4.js.map +1 -0
  239. package/dist/_shared/icon-badge-DGKpbo9_.cjs +2 -0
  240. package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +1 -0
  241. package/dist/_shared/icon-badge-DoClA_9q.js +52 -0
  242. package/dist/_shared/icon-badge-DoClA_9q.js.map +1 -0
  243. package/dist/_shared/input-BXt-YtVs.cjs +2 -0
  244. package/dist/_shared/input-BXt-YtVs.cjs.map +1 -0
  245. package/dist/_shared/input-Bx4LeLhn.js +17 -0
  246. package/dist/_shared/input-Bx4LeLhn.js.map +1 -0
  247. package/dist/_shared/input-ChZGIhtS.cjs +2 -0
  248. package/dist/_shared/input-ChZGIhtS.cjs.map +1 -0
  249. package/dist/_shared/input-Cwv1-5jt.js +182 -0
  250. package/dist/_shared/input-Cwv1-5jt.js.map +1 -0
  251. package/dist/_shared/item-BmTYKzEb.js +224 -0
  252. package/dist/_shared/item-BmTYKzEb.js.map +1 -0
  253. package/dist/_shared/item-BtR-bz96.cjs +2 -0
  254. package/dist/_shared/item-BtR-bz96.cjs.map +1 -0
  255. package/dist/_shared/mentions-DVCjaO_z.cjs +2 -0
  256. package/dist/_shared/mentions-DVCjaO_z.cjs.map +1 -0
  257. package/dist/_shared/mentions-DzG8mX5H.js +493 -0
  258. package/dist/_shared/mentions-DzG8mX5H.js.map +1 -0
  259. package/dist/_shared/money-display-B5oxCs_0.cjs +2 -0
  260. package/dist/_shared/money-display-B5oxCs_0.cjs.map +1 -0
  261. package/dist/_shared/money-display-C0wI02ou.js +198 -0
  262. package/dist/_shared/money-display-C0wI02ou.js.map +1 -0
  263. package/dist/_shared/navigation-BA2nsTgU.cjs +2 -0
  264. package/dist/_shared/navigation-BA2nsTgU.cjs.map +1 -0
  265. package/dist/_shared/navigation-DHyaf-RZ.js +420 -0
  266. package/dist/_shared/navigation-DHyaf-RZ.js.map +1 -0
  267. package/dist/_shared/overlays-Kl6Gp6WR.js +633 -0
  268. package/dist/_shared/overlays-Kl6Gp6WR.js.map +1 -0
  269. package/dist/_shared/overlays-W6j-Pe1L.cjs +2 -0
  270. package/dist/_shared/overlays-W6j-Pe1L.cjs.map +1 -0
  271. package/dist/_shared/page-DROZhtWT.js +263 -0
  272. package/dist/_shared/page-DROZhtWT.js.map +1 -0
  273. package/dist/_shared/page-lh9Rcx_d.cjs +2 -0
  274. package/dist/_shared/page-lh9Rcx_d.cjs.map +1 -0
  275. package/dist/_shared/popover-BTEwjJZS.cjs +2 -0
  276. package/dist/_shared/popover-BTEwjJZS.cjs.map +1 -0
  277. package/dist/_shared/popover-CF9VWt-l.js +83 -0
  278. package/dist/_shared/popover-CF9VWt-l.js.map +1 -0
  279. package/dist/_shared/popover-menu-BYesl29w.js +95 -0
  280. package/dist/_shared/popover-menu-BYesl29w.js.map +1 -0
  281. package/dist/_shared/popover-menu-DF9sWz61.cjs +2 -0
  282. package/dist/_shared/popover-menu-DF9sWz61.cjs.map +1 -0
  283. package/dist/_shared/rich-text-editor-UZghkgsh.cjs +2 -0
  284. package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +1 -0
  285. package/dist/_shared/rich-text-editor-fUeuK-rY.js +608 -0
  286. package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +1 -0
  287. package/dist/_shared/scroll-area-XJLcCczs.js +41 -0
  288. package/dist/_shared/scroll-area-XJLcCczs.js.map +1 -0
  289. package/dist/_shared/scroll-area-y8ZJoS97.cjs +2 -0
  290. package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +1 -0
  291. package/dist/_shared/select-D8MYF4f7.js +85 -0
  292. package/dist/_shared/select-D8MYF4f7.js.map +1 -0
  293. package/dist/_shared/select-DxAiUfpM.cjs +2 -0
  294. package/dist/_shared/select-DxAiUfpM.cjs.map +1 -0
  295. package/dist/_shared/separator-BazqiQ9s.js +16 -0
  296. package/dist/_shared/separator-BazqiQ9s.js.map +1 -0
  297. package/dist/_shared/separator-DSkXMOXq.cjs +2 -0
  298. package/dist/_shared/separator-DSkXMOXq.cjs.map +1 -0
  299. package/dist/_shared/sheet-7iHOs-IU.js +100 -0
  300. package/dist/_shared/sheet-7iHOs-IU.js.map +1 -0
  301. package/dist/_shared/sheet-qKtoyxgi.cjs +2 -0
  302. package/dist/_shared/sheet-qKtoyxgi.cjs.map +1 -0
  303. package/dist/_shared/sidebar-CaTUJ3t-.js +537 -0
  304. package/dist/_shared/sidebar-CaTUJ3t-.js.map +1 -0
  305. package/dist/_shared/sidebar-DVjfsm-f.cjs +2 -0
  306. package/dist/_shared/sidebar-DVjfsm-f.cjs.map +1 -0
  307. package/dist/_shared/sidebar-aV5DVAVg.js +371 -0
  308. package/dist/_shared/sidebar-aV5DVAVg.js.map +1 -0
  309. package/dist/_shared/sidebar-mL0jSJ8u.cjs +2 -0
  310. package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +1 -0
  311. package/dist/_shared/skeleton-Bwv_j9jJ.cjs +2 -0
  312. package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +1 -0
  313. package/dist/_shared/skeleton-DyKa-Ed-.js +14 -0
  314. package/dist/_shared/skeleton-DyKa-Ed-.js.map +1 -0
  315. package/dist/_shared/slot-ClIPTht1.cjs +2 -0
  316. package/dist/_shared/slot-ClIPTht1.cjs.map +1 -0
  317. package/dist/_shared/slot-CrS_VEVl.js +18 -0
  318. package/dist/_shared/slot-CrS_VEVl.js.map +1 -0
  319. package/dist/_shared/smart-card-Ddsjvf7r.cjs +2 -0
  320. package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +1 -0
  321. package/dist/_shared/smart-card-hJ01usWt.js +360 -0
  322. package/dist/_shared/smart-card-hJ01usWt.js.map +1 -0
  323. package/dist/_shared/spinner-D-pcMBt1.js +67 -0
  324. package/dist/_shared/spinner-D-pcMBt1.js.map +1 -0
  325. package/dist/_shared/spinner-zbmhn0vE.cjs +2 -0
  326. package/dist/_shared/spinner-zbmhn0vE.cjs.map +1 -0
  327. package/dist/_shared/switch-C5J37LMI.cjs +2 -0
  328. package/dist/_shared/switch-C5J37LMI.cjs.map +1 -0
  329. package/dist/_shared/switch-ClGgHcEb.js +51 -0
  330. package/dist/_shared/switch-ClGgHcEb.js.map +1 -0
  331. package/dist/_shared/text-DBnY6fcL.cjs +2 -0
  332. package/dist/_shared/text-DBnY6fcL.cjs.map +1 -0
  333. package/dist/_shared/text-DIxMTECE.js +74 -0
  334. package/dist/_shared/text-DIxMTECE.js.map +1 -0
  335. package/dist/_shared/textarea-DeISZfHw.js +119 -0
  336. package/dist/_shared/textarea-DeISZfHw.js.map +1 -0
  337. package/dist/_shared/textarea-iR9txrty.cjs +2 -0
  338. package/dist/_shared/textarea-iR9txrty.cjs.map +1 -0
  339. package/dist/_shared/tooltip-CEqxHWxQ.js +49 -0
  340. package/dist/_shared/tooltip-CEqxHWxQ.js.map +1 -0
  341. package/dist/_shared/tooltip-DPv0LGr9.cjs +2 -0
  342. package/dist/_shared/tooltip-DPv0LGr9.cjs.map +1 -0
  343. package/dist/_shared/typography-BtPQBvSm.js +135 -0
  344. package/dist/_shared/typography-BtPQBvSm.js.map +1 -0
  345. package/dist/_shared/typography-DClleVWi.cjs +2 -0
  346. package/dist/_shared/typography-DClleVWi.cjs.map +1 -0
  347. package/dist/_shared/ui-provider-4qKSKMPd.js +85 -0
  348. package/dist/_shared/ui-provider-4qKSKMPd.js.map +1 -0
  349. package/dist/_shared/ui-provider-uiQgATj1.cjs +2 -0
  350. package/dist/_shared/ui-provider-uiQgATj1.cjs.map +1 -0
  351. package/dist/components/base/accordion/accordion-variants.d.ts +34 -0
  352. package/dist/components/base/accordion/accordion-variants.d.ts.map +1 -0
  353. package/dist/components/base/accordion/accordion.d.ts +20 -0
  354. package/dist/components/base/accordion/accordion.d.ts.map +1 -0
  355. package/dist/components/base/accordion/accordion.strings.d.ts +16 -0
  356. package/dist/components/base/accordion/accordion.strings.d.ts.map +1 -0
  357. package/dist/components/base/accordion/accordion.types.d.ts +68 -0
  358. package/dist/components/base/accordion/accordion.types.d.ts.map +1 -0
  359. package/dist/components/base/accordion/index.cjs +1 -0
  360. package/dist/components/base/accordion/index.d.ts +5 -0
  361. package/dist/components/base/accordion/index.d.ts.map +1 -0
  362. package/dist/components/base/accordion/index.js +2 -0
  363. package/dist/components/base/accordion/smart-accordion.d.ts +3 -0
  364. package/dist/components/base/accordion/smart-accordion.d.ts.map +1 -0
  365. package/dist/components/base/badge/badge.d.ts +24 -0
  366. package/dist/components/base/badge/badge.d.ts.map +1 -0
  367. package/dist/components/base/badge/index.cjs +1 -0
  368. package/dist/components/base/badge/index.d.ts +3 -0
  369. package/dist/components/base/badge/index.d.ts.map +1 -0
  370. package/dist/components/base/badge/index.js +2 -0
  371. package/dist/components/base/buttons/base-button.d.ts +21 -0
  372. package/dist/components/base/buttons/base-button.d.ts.map +1 -0
  373. package/dist/components/base/buttons/button.d.ts +19 -0
  374. package/dist/components/base/buttons/button.d.ts.map +1 -0
  375. package/dist/components/base/buttons/google-button.d.ts +7 -0
  376. package/dist/components/base/buttons/google-button.d.ts.map +1 -0
  377. package/dist/components/base/buttons/index.cjs +1 -0
  378. package/dist/components/base/buttons/index.d.ts +9 -0
  379. package/dist/components/base/buttons/index.d.ts.map +1 -0
  380. package/dist/components/base/buttons/index.js +3 -0
  381. package/dist/components/base/buttons/loader-button.d.ts +23 -0
  382. package/dist/components/base/buttons/loader-button.d.ts.map +1 -0
  383. package/dist/components/base/buttons/page-action-button.d.ts +14 -0
  384. package/dist/components/base/buttons/page-action-button.d.ts.map +1 -0
  385. package/dist/components/base/buttons/shopify-button.d.ts +20 -0
  386. package/dist/components/base/buttons/shopify-button.d.ts.map +1 -0
  387. package/dist/components/base/buttons/text-button.d.ts +21 -0
  388. package/dist/components/base/buttons/text-button.d.ts.map +1 -0
  389. package/dist/components/base/buttons/tooltip-button.d.ts +8 -0
  390. package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -0
  391. package/dist/components/base/cards/index.cjs +1 -0
  392. package/dist/components/base/cards/index.d.ts +2 -0
  393. package/dist/components/base/cards/index.d.ts.map +1 -0
  394. package/dist/components/base/cards/index.js +2 -0
  395. package/dist/components/base/cards/partials/card-primitives.d.ts +8 -0
  396. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -0
  397. package/dist/components/base/cards/partials/has-renderable-content.d.ts +9 -0
  398. package/dist/components/base/cards/partials/has-renderable-content.d.ts.map +1 -0
  399. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +8 -0
  400. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts.map +1 -0
  401. package/dist/components/base/cards/partials/smart-card-alert.d.ts +11 -0
  402. package/dist/components/base/cards/partials/smart-card-alert.d.ts.map +1 -0
  403. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +20 -0
  404. package/dist/components/base/cards/partials/smart-card-header-row.d.ts.map +1 -0
  405. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +11 -0
  406. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts.map +1 -0
  407. package/dist/components/base/cards/smart-card.d.ts +7 -0
  408. package/dist/components/base/cards/smart-card.d.ts.map +1 -0
  409. package/dist/components/base/cards/smart-card.strings.d.ts +12 -0
  410. package/dist/components/base/cards/smart-card.strings.d.ts.map +1 -0
  411. package/dist/components/base/cards/smart-card.tokens.d.ts +39 -0
  412. package/dist/components/base/cards/smart-card.tokens.d.ts.map +1 -0
  413. package/dist/components/base/cards/smart-card.types.d.ts +85 -0
  414. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -0
  415. package/dist/components/base/combobox/combobox.strings.d.ts +4 -0
  416. package/dist/components/base/combobox/combobox.strings.d.ts.map +1 -0
  417. package/dist/components/base/combobox/components/combobox-dropdown.d.ts +40 -0
  418. package/dist/components/base/combobox/components/combobox-dropdown.d.ts.map +1 -0
  419. package/dist/components/base/combobox/components/error-message.d.ts +15 -0
  420. package/dist/components/base/combobox/components/error-message.d.ts.map +1 -0
  421. package/dist/components/base/combobox/components/highlighted-text.d.ts +14 -0
  422. package/dist/components/base/combobox/components/highlighted-text.d.ts.map +1 -0
  423. package/dist/components/base/combobox/components/index.d.ts +14 -0
  424. package/dist/components/base/combobox/components/index.d.ts.map +1 -0
  425. package/dist/components/base/combobox/components/loading-more.d.ts +14 -0
  426. package/dist/components/base/combobox/components/loading-more.d.ts.map +1 -0
  427. package/dist/components/base/combobox/components/status-content.d.ts +17 -0
  428. package/dist/components/base/combobox/components/status-content.d.ts.map +1 -0
  429. package/dist/components/base/combobox/constants.d.ts +22 -0
  430. package/dist/components/base/combobox/constants.d.ts.map +1 -0
  431. package/dist/components/base/combobox/enhanced-combobox.d.ts +25 -0
  432. package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -0
  433. package/dist/components/base/combobox/hooks/index.d.ts +12 -0
  434. package/dist/components/base/combobox/hooks/index.d.ts.map +1 -0
  435. package/dist/components/base/combobox/hooks/use-debounced-search.d.ts +11 -0
  436. package/dist/components/base/combobox/hooks/use-debounced-search.d.ts.map +1 -0
  437. package/dist/components/base/combobox/hooks/use-enhanced-combobox-core.d.ts +31 -0
  438. package/dist/components/base/combobox/hooks/use-enhanced-combobox-core.d.ts.map +1 -0
  439. package/dist/components/base/combobox/hooks/use-grouped-items.d.ts +10 -0
  440. package/dist/components/base/combobox/hooks/use-grouped-items.d.ts.map +1 -0
  441. package/dist/components/base/combobox/hooks/use-load-more.d.ts +13 -0
  442. package/dist/components/base/combobox/hooks/use-load-more.d.ts.map +1 -0
  443. package/dist/components/base/combobox/index.cjs +1 -0
  444. package/dist/components/base/combobox/index.d.ts +15 -0
  445. package/dist/components/base/combobox/index.d.ts.map +1 -0
  446. package/dist/components/base/combobox/index.js +2 -0
  447. package/dist/components/base/combobox/types.d.ts +77 -0
  448. package/dist/components/base/combobox/types.d.ts.map +1 -0
  449. package/dist/components/base/command/command.d.ts +29 -0
  450. package/dist/components/base/command/command.d.ts.map +1 -0
  451. package/dist/components/base/command/index.cjs +1 -0
  452. package/dist/components/base/command/index.d.ts +2 -0
  453. package/dist/components/base/command/index.d.ts.map +1 -0
  454. package/dist/components/base/command/index.js +3 -0
  455. package/dist/components/base/copyable/copyable.d.ts +23 -0
  456. package/dist/components/base/copyable/copyable.d.ts.map +1 -0
  457. package/dist/components/base/copyable/index.cjs +1 -0
  458. package/dist/components/base/copyable/index.d.ts +2 -0
  459. package/dist/components/base/copyable/index.d.ts.map +1 -0
  460. package/dist/components/base/copyable/index.js +2 -0
  461. package/dist/components/base/currency/currency-pair-preview.d.ts +30 -0
  462. package/dist/components/base/currency/currency-pair-preview.d.ts.map +1 -0
  463. package/dist/components/base/currency/hooks/index.d.ts +3 -0
  464. package/dist/components/base/currency/hooks/index.d.ts.map +1 -0
  465. package/dist/components/base/currency/hooks/use-currency.d.ts +39 -0
  466. package/dist/components/base/currency/hooks/use-currency.d.ts.map +1 -0
  467. package/dist/components/base/currency/index.cjs +1 -0
  468. package/dist/components/base/currency/index.d.ts +3 -0
  469. package/dist/components/base/currency/index.d.ts.map +1 -0
  470. package/dist/components/base/currency/index.js +2 -0
  471. package/dist/components/base/date-pickers/date-picker-footer.d.ts +14 -0
  472. package/dist/components/base/date-pickers/date-picker-footer.d.ts.map +1 -0
  473. package/dist/components/base/date-pickers/date-picker-header.d.ts +11 -0
  474. package/dist/components/base/date-pickers/date-picker-header.d.ts.map +1 -0
  475. package/dist/components/base/date-pickers/date-picker-helpers.d.ts +84 -0
  476. package/dist/components/base/date-pickers/date-picker-helpers.d.ts.map +1 -0
  477. package/dist/components/base/date-pickers/date-picker.d.ts +25 -0
  478. package/dist/components/base/date-pickers/date-picker.d.ts.map +1 -0
  479. package/dist/components/base/date-pickers/date-pickers.strings.d.ts +4 -0
  480. package/dist/components/base/date-pickers/date-pickers.strings.d.ts.map +1 -0
  481. package/dist/components/base/date-pickers/date-range-picker.d.ts +8 -0
  482. package/dist/components/base/date-pickers/date-range-picker.d.ts.map +1 -0
  483. package/dist/components/base/date-pickers/datepicker.types.d.ts +186 -0
  484. package/dist/components/base/date-pickers/datepicker.types.d.ts.map +1 -0
  485. package/dist/components/base/date-pickers/index.cjs +1 -0
  486. package/dist/components/base/date-pickers/index.d.ts +10 -0
  487. package/dist/components/base/date-pickers/index.d.ts.map +1 -0
  488. package/dist/components/base/date-pickers/index.js +3 -0
  489. package/dist/components/base/date-pickers/month-year-picker.d.ts +7 -0
  490. package/dist/components/base/date-pickers/month-year-picker.d.ts.map +1 -0
  491. package/dist/components/base/date-pickers/segmented-time-input.d.ts +26 -0
  492. package/dist/components/base/date-pickers/segmented-time-input.d.ts.map +1 -0
  493. package/dist/components/base/display/alert.d.ts +2 -0
  494. package/dist/components/base/display/alert.d.ts.map +1 -0
  495. package/dist/components/base/display/avatar.d.ts +2 -0
  496. package/dist/components/base/display/avatar.d.ts.map +1 -0
  497. package/dist/components/base/display/boolean-indicator.d.ts +27 -0
  498. package/dist/components/base/display/boolean-indicator.d.ts.map +1 -0
  499. package/dist/components/base/display/chart.d.ts +2 -0
  500. package/dist/components/base/display/chart.d.ts.map +1 -0
  501. package/dist/components/base/display/collapsible.d.ts +2 -0
  502. package/dist/components/base/display/collapsible.d.ts.map +1 -0
  503. package/dist/components/base/display/date-block.d.ts +40 -0
  504. package/dist/components/base/display/date-block.d.ts.map +1 -0
  505. package/dist/components/base/display/dialog.d.ts +2 -0
  506. package/dist/components/base/display/dialog.d.ts.map +1 -0
  507. package/dist/components/base/display/empty-state/empty-state.d.ts +3 -0
  508. package/dist/components/base/display/empty-state/empty-state.d.ts.map +1 -0
  509. package/dist/components/base/display/empty-state/empty-state.strings.d.ts +18 -0
  510. package/dist/components/base/display/empty-state/empty-state.strings.d.ts.map +1 -0
  511. package/dist/components/base/display/empty-state/empty-state.types.d.ts +85 -0
  512. package/dist/components/base/display/empty-state/empty-state.types.d.ts.map +1 -0
  513. package/dist/components/base/display/empty-state/index.d.ts +5 -0
  514. package/dist/components/base/display/empty-state/index.d.ts.map +1 -0
  515. package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts +11 -0
  516. package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts.map +1 -0
  517. package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts +11 -0
  518. package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts.map +1 -0
  519. package/dist/components/base/display/empty-state/partials/illustrations/index.d.ts +25 -0
  520. package/dist/components/base/display/empty-state/partials/illustrations/index.d.ts.map +1 -0
  521. package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts +11 -0
  522. package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts.map +1 -0
  523. package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts +13 -0
  524. package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts.map +1 -0
  525. package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts +11 -0
  526. package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts.map +1 -0
  527. package/dist/components/base/display/fields/email-display.d.ts +22 -0
  528. package/dist/components/base/display/fields/email-display.d.ts.map +1 -0
  529. package/dist/components/base/display/fields/index.d.ts +4 -0
  530. package/dist/components/base/display/fields/index.d.ts.map +1 -0
  531. package/dist/components/base/display/fields/phone-display.d.ts +22 -0
  532. package/dist/components/base/display/fields/phone-display.d.ts.map +1 -0
  533. package/dist/components/base/display/fields/url-display.d.ts +28 -0
  534. package/dist/components/base/display/fields/url-display.d.ts.map +1 -0
  535. package/dist/components/base/display/icon-badge/icon-badge.d.ts +25 -0
  536. package/dist/components/base/display/icon-badge/icon-badge.d.ts.map +1 -0
  537. package/dist/components/base/display/icon-badge/index.d.ts +2 -0
  538. package/dist/components/base/display/icon-badge/index.d.ts.map +1 -0
  539. package/dist/components/base/display/index.cjs +1 -0
  540. package/dist/components/base/display/index.d.ts +31 -0
  541. package/dist/components/base/display/index.d.ts.map +1 -0
  542. package/dist/components/base/display/index.js +11 -0
  543. package/dist/components/base/display/inline-stat/index.d.ts +2 -0
  544. package/dist/components/base/display/inline-stat/index.d.ts.map +1 -0
  545. package/dist/components/base/display/inline-stat/inline-stat.d.ts +16 -0
  546. package/dist/components/base/display/inline-stat/inline-stat.d.ts.map +1 -0
  547. package/dist/components/base/display/metadata/index.d.ts +3 -0
  548. package/dist/components/base/display/metadata/index.d.ts.map +1 -0
  549. package/dist/components/base/display/metadata/metadata-list.d.ts +42 -0
  550. package/dist/components/base/display/metadata/metadata-list.d.ts.map +1 -0
  551. package/dist/components/base/display/metadata/metadata-list.strings.d.ts +19 -0
  552. package/dist/components/base/display/metadata/metadata-list.strings.d.ts.map +1 -0
  553. package/dist/components/base/display/money-display.d.ts +62 -0
  554. package/dist/components/base/display/money-display.d.ts.map +1 -0
  555. package/dist/components/base/display/money-input.d.ts +51 -0
  556. package/dist/components/base/display/money-input.d.ts.map +1 -0
  557. package/dist/components/base/display/notification-banner.d.ts +19 -0
  558. package/dist/components/base/display/notification-banner.d.ts.map +1 -0
  559. package/dist/components/base/display/numeric-value/index.d.ts +2 -0
  560. package/dist/components/base/display/numeric-value/index.d.ts.map +1 -0
  561. package/dist/components/base/display/numeric-value/numeric-value.d.ts +26 -0
  562. package/dist/components/base/display/numeric-value/numeric-value.d.ts.map +1 -0
  563. package/dist/components/base/display/placeholder-pattern.d.ts +8 -0
  564. package/dist/components/base/display/placeholder-pattern.d.ts.map +1 -0
  565. package/dist/components/base/display/progress.d.ts +2 -0
  566. package/dist/components/base/display/progress.d.ts.map +1 -0
  567. package/dist/components/base/display/qr-code.d.ts +13 -0
  568. package/dist/components/base/display/qr-code.d.ts.map +1 -0
  569. package/dist/components/base/display/scroll-area.d.ts +2 -0
  570. package/dist/components/base/display/scroll-area.d.ts.map +1 -0
  571. package/dist/components/base/display/section-header/index.d.ts +2 -0
  572. package/dist/components/base/display/section-header/index.d.ts.map +1 -0
  573. package/dist/components/base/display/section-header/section-header.d.ts +14 -0
  574. package/dist/components/base/display/section-header/section-header.d.ts.map +1 -0
  575. package/dist/components/base/display/separator.d.ts +2 -0
  576. package/dist/components/base/display/separator.d.ts.map +1 -0
  577. package/dist/components/base/display/show-if.d.ts +12 -0
  578. package/dist/components/base/display/show-if.d.ts.map +1 -0
  579. package/dist/components/base/display/skeleton.d.ts +2 -0
  580. package/dist/components/base/display/skeleton.d.ts.map +1 -0
  581. package/dist/components/base/display/stacked-avatars.d.ts +34 -0
  582. package/dist/components/base/display/stacked-avatars.d.ts.map +1 -0
  583. package/dist/components/base/display/throttle-alert.d.ts +17 -0
  584. package/dist/components/base/display/throttle-alert.d.ts.map +1 -0
  585. package/dist/components/base/display/tooltip.d.ts +2 -0
  586. package/dist/components/base/display/tooltip.d.ts.map +1 -0
  587. package/dist/components/base/display/user-cell/index.d.ts +2 -0
  588. package/dist/components/base/display/user-cell/index.d.ts.map +1 -0
  589. package/dist/components/base/display/user-cell/user-cell.d.ts +19 -0
  590. package/dist/components/base/display/user-cell/user-cell.d.ts.map +1 -0
  591. package/dist/components/base/display/visually-hidden.d.ts +15 -0
  592. package/dist/components/base/display/visually-hidden.d.ts.map +1 -0
  593. package/dist/components/base/event-calendar/colors.d.ts +19 -0
  594. package/dist/components/base/event-calendar/colors.d.ts.map +1 -0
  595. package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts +6 -0
  596. package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts.map +1 -0
  597. package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts +6 -0
  598. package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts.map +1 -0
  599. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts +15 -0
  600. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -0
  601. package/dist/components/base/event-calendar/event-calendar-header.d.ts +9 -0
  602. package/dist/components/base/event-calendar/event-calendar-header.d.ts.map +1 -0
  603. package/dist/components/base/event-calendar/event-calendar-legend.d.ts +6 -0
  604. package/dist/components/base/event-calendar/event-calendar-legend.d.ts.map +1 -0
  605. package/dist/components/base/event-calendar/event-calendar.d.ts +6 -0
  606. package/dist/components/base/event-calendar/event-calendar.d.ts.map +1 -0
  607. package/dist/components/base/event-calendar/event-calendar.types.d.ts +283 -0
  608. package/dist/components/base/event-calendar/event-calendar.types.d.ts.map +1 -0
  609. package/dist/components/base/event-calendar/index.cjs +2 -0
  610. package/dist/components/base/event-calendar/index.cjs.map +1 -0
  611. package/dist/components/base/event-calendar/index.d.ts +12 -0
  612. package/dist/components/base/event-calendar/index.d.ts.map +1 -0
  613. package/dist/components/base/event-calendar/index.js +700 -0
  614. package/dist/components/base/event-calendar/index.js.map +1 -0
  615. package/dist/components/base/event-calendar/use-event-calendar-data.d.ts +16 -0
  616. package/dist/components/base/event-calendar/use-event-calendar-data.d.ts.map +1 -0
  617. package/dist/components/base/event-calendar/use-event-calendar.d.ts +14 -0
  618. package/dist/components/base/event-calendar/use-event-calendar.d.ts.map +1 -0
  619. package/dist/components/base/forms/fields/avatar-upload.d.ts +25 -0
  620. package/dist/components/base/forms/fields/avatar-upload.d.ts.map +1 -0
  621. package/dist/components/base/forms/fields/card-checkbox-group.d.ts +20 -0
  622. package/dist/components/base/forms/fields/card-checkbox-group.d.ts.map +1 -0
  623. package/dist/components/base/forms/fields/card-radio-group.d.ts +19 -0
  624. package/dist/components/base/forms/fields/card-radio-group.d.ts.map +1 -0
  625. package/dist/components/base/forms/fields/checkbox.d.ts +2 -0
  626. package/dist/components/base/forms/fields/checkbox.d.ts.map +1 -0
  627. package/dist/components/base/forms/fields/choice-types.d.ts +42 -0
  628. package/dist/components/base/forms/fields/choice-types.d.ts.map +1 -0
  629. package/dist/components/base/forms/fields/coordinates-input.d.ts +60 -0
  630. package/dist/components/base/forms/fields/coordinates-input.d.ts.map +1 -0
  631. package/dist/components/base/forms/fields/currency-input.d.ts +37 -0
  632. package/dist/components/base/forms/fields/currency-input.d.ts.map +1 -0
  633. package/dist/components/base/forms/fields/date-time-input.d.ts +23 -0
  634. package/dist/components/base/forms/fields/date-time-input.d.ts.map +1 -0
  635. package/dist/components/base/forms/fields/decimal-input.d.ts +47 -0
  636. package/dist/components/base/forms/fields/decimal-input.d.ts.map +1 -0
  637. package/dist/components/base/forms/fields/dimensions-input.d.ts +81 -0
  638. package/dist/components/base/forms/fields/dimensions-input.d.ts.map +1 -0
  639. package/dist/components/base/forms/fields/dropzone.d.ts +25 -0
  640. package/dist/components/base/forms/fields/dropzone.d.ts.map +1 -0
  641. package/dist/components/base/forms/fields/file-upload.d.ts +30 -0
  642. package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -0
  643. package/dist/components/base/forms/fields/hooks/index.d.ts +2 -0
  644. package/dist/components/base/forms/fields/hooks/index.d.ts.map +1 -0
  645. package/dist/components/base/forms/fields/hooks/use-form-field-state.d.ts +49 -0
  646. package/dist/components/base/forms/fields/hooks/use-form-field-state.d.ts.map +1 -0
  647. package/dist/components/base/forms/fields/image-upload.d.ts +45 -0
  648. package/dist/components/base/forms/fields/image-upload.d.ts.map +1 -0
  649. package/dist/components/base/forms/fields/index.d.ts +55 -0
  650. package/dist/components/base/forms/fields/index.d.ts.map +1 -0
  651. package/dist/components/base/forms/fields/input.d.ts +29 -0
  652. package/dist/components/base/forms/fields/input.d.ts.map +1 -0
  653. package/dist/components/base/forms/fields/key-value-editor.d.ts +38 -0
  654. package/dist/components/base/forms/fields/key-value-editor.d.ts.map +1 -0
  655. package/dist/components/base/forms/fields/list-radio-group.d.ts +14 -0
  656. package/dist/components/base/forms/fields/list-radio-group.d.ts.map +1 -0
  657. package/dist/components/base/forms/fields/list.d.ts +29 -0
  658. package/dist/components/base/forms/fields/list.d.ts.map +1 -0
  659. package/dist/components/base/forms/fields/localized-object-field.d.ts +36 -0
  660. package/dist/components/base/forms/fields/localized-object-field.d.ts.map +1 -0
  661. package/dist/components/base/forms/fields/localized-string-field.d.ts +26 -0
  662. package/dist/components/base/forms/fields/localized-string-field.d.ts.map +1 -0
  663. package/dist/components/base/forms/fields/localized-string-repeater.d.ts +35 -0
  664. package/dist/components/base/forms/fields/localized-string-repeater.d.ts.map +1 -0
  665. package/dist/components/base/forms/fields/media-gallery.d.ts +25 -0
  666. package/dist/components/base/forms/fields/media-gallery.d.ts.map +1 -0
  667. package/dist/components/base/forms/fields/money-input.d.ts +16 -0
  668. package/dist/components/base/forms/fields/money-input.d.ts.map +1 -0
  669. package/dist/components/base/forms/fields/object-repeater.d.ts +38 -0
  670. package/dist/components/base/forms/fields/object-repeater.d.ts.map +1 -0
  671. package/dist/components/base/forms/fields/percentage-input.d.ts +9 -0
  672. package/dist/components/base/forms/fields/percentage-input.d.ts.map +1 -0
  673. package/dist/components/base/forms/fields/phone-input.d.ts +47 -0
  674. package/dist/components/base/forms/fields/phone-input.d.ts.map +1 -0
  675. package/dist/components/base/forms/fields/pill-radio-group.d.ts +18 -0
  676. package/dist/components/base/forms/fields/pill-radio-group.d.ts.map +1 -0
  677. package/dist/components/base/forms/fields/repeater.d.ts +73 -0
  678. package/dist/components/base/forms/fields/repeater.d.ts.map +1 -0
  679. package/dist/components/base/forms/fields/repeaters.strings.d.ts +17 -0
  680. package/dist/components/base/forms/fields/repeaters.strings.d.ts.map +1 -0
  681. package/dist/components/base/forms/fields/rich-select.d.ts +53 -0
  682. package/dist/components/base/forms/fields/rich-select.d.ts.map +1 -0
  683. package/dist/components/base/forms/fields/rounding-mode-select.d.ts +16 -0
  684. package/dist/components/base/forms/fields/rounding-mode-select.d.ts.map +1 -0
  685. package/dist/components/base/forms/fields/select.d.ts +54 -0
  686. package/dist/components/base/forms/fields/select.d.ts.map +1 -0
  687. package/dist/components/base/forms/fields/slider.d.ts +46 -0
  688. package/dist/components/base/forms/fields/slider.d.ts.map +1 -0
  689. package/dist/components/base/forms/fields/string-repeater.d.ts +26 -0
  690. package/dist/components/base/forms/fields/string-repeater.d.ts.map +1 -0
  691. package/dist/components/base/forms/fields/switch-card.d.ts +19 -0
  692. package/dist/components/base/forms/fields/switch-card.d.ts.map +1 -0
  693. package/dist/components/base/forms/fields/switch.d.ts +23 -0
  694. package/dist/components/base/forms/fields/switch.d.ts.map +1 -0
  695. package/dist/components/base/forms/fields/tags-input.d.ts +65 -0
  696. package/dist/components/base/forms/fields/tags-input.d.ts.map +1 -0
  697. package/dist/components/base/forms/fields/textarea.d.ts +26 -0
  698. package/dist/components/base/forms/fields/textarea.d.ts.map +1 -0
  699. package/dist/components/base/forms/fields/time-picker.d.ts +58 -0
  700. package/dist/components/base/forms/fields/time-picker.d.ts.map +1 -0
  701. package/dist/components/base/forms/fields/toggle-field.d.ts +21 -0
  702. package/dist/components/base/forms/fields/toggle-field.d.ts.map +1 -0
  703. package/dist/components/base/forms/fields/upload-progress-list.d.ts +42 -0
  704. package/dist/components/base/forms/fields/upload-progress-list.d.ts.map +1 -0
  705. package/dist/components/base/forms/fields/upload-tray.d.ts +42 -0
  706. package/dist/components/base/forms/fields/upload-tray.d.ts.map +1 -0
  707. package/dist/components/base/forms/fields/weight-input.d.ts +59 -0
  708. package/dist/components/base/forms/fields/weight-input.d.ts.map +1 -0
  709. package/dist/components/base/forms/form-field.d.ts +33 -0
  710. package/dist/components/base/forms/form-field.d.ts.map +1 -0
  711. package/dist/components/base/forms/form-sizing.d.ts +26 -0
  712. package/dist/components/base/forms/form-sizing.d.ts.map +1 -0
  713. package/dist/components/base/forms/index.cjs +1 -0
  714. package/dist/components/base/forms/index.d.ts +4 -0
  715. package/dist/components/base/forms/index.d.ts.map +1 -0
  716. package/dist/components/base/forms/index.js +7 -0
  717. package/dist/components/base/forms/operation-password-form.d.ts +15 -0
  718. package/dist/components/base/forms/operation-password-form.d.ts.map +1 -0
  719. package/dist/components/base/index.d.ts.map +1 -0
  720. package/dist/components/base/item/index.cjs +1 -0
  721. package/dist/components/base/item/index.d.ts +3 -0
  722. package/dist/components/base/item/index.d.ts.map +1 -0
  723. package/dist/components/base/item/index.js +2 -0
  724. package/dist/components/base/item/item.d.ts +13 -0
  725. package/dist/components/base/item/item.d.ts.map +1 -0
  726. package/dist/components/base/item/item.types.d.ts +36 -0
  727. package/dist/components/base/item/item.types.d.ts.map +1 -0
  728. package/dist/components/base/map/index.cjs +2 -0
  729. package/dist/components/base/map/index.cjs.map +1 -0
  730. package/dist/components/base/map/index.d.ts +12 -0
  731. package/dist/components/base/map/index.d.ts.map +1 -0
  732. package/dist/components/base/map/index.js +861 -0
  733. package/dist/components/base/map/index.js.map +1 -0
  734. package/dist/components/base/map/map.d.ts +117 -0
  735. package/dist/components/base/map/map.d.ts.map +1 -0
  736. package/dist/components/base/map/place-autocomplete.d.ts +83 -0
  737. package/dist/components/base/map/place-autocomplete.d.ts.map +1 -0
  738. package/dist/components/base/navigation/action-menu.d.ts +36 -0
  739. package/dist/components/base/navigation/action-menu.d.ts.map +1 -0
  740. package/dist/components/base/navigation/aside-navigation-menu.d.ts +13 -0
  741. package/dist/components/base/navigation/aside-navigation-menu.d.ts.map +1 -0
  742. package/dist/components/base/navigation/breadcrumbs.d.ts +25 -0
  743. package/dist/components/base/navigation/breadcrumbs.d.ts.map +1 -0
  744. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -0
  745. package/dist/components/base/navigation/dropdown-menu.d.ts.map +1 -0
  746. package/dist/components/base/navigation/index.cjs +1 -0
  747. package/dist/components/base/navigation/index.d.ts +12 -0
  748. package/dist/components/base/navigation/index.d.ts.map +1 -0
  749. package/dist/components/base/navigation/index.js +5 -0
  750. package/dist/components/base/navigation/language-switcher.d.ts +13 -0
  751. package/dist/components/base/navigation/language-switcher.d.ts.map +1 -0
  752. package/dist/components/base/navigation/navigation-tabs.d.ts +25 -0
  753. package/dist/components/base/navigation/navigation-tabs.d.ts.map +1 -0
  754. package/dist/components/base/navigation/overflow-tab-bar.d.ts +26 -0
  755. package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -0
  756. package/dist/components/base/navigation/page-header/index.d.ts +2 -0
  757. package/dist/components/base/navigation/page-header/index.d.ts.map +1 -0
  758. package/dist/components/base/navigation/page-header/page-header.d.ts +21 -0
  759. package/dist/components/base/navigation/page-header/page-header.d.ts.map +1 -0
  760. package/dist/components/base/navigation/section-nav/index.d.ts +2 -0
  761. package/dist/components/base/navigation/section-nav/index.d.ts.map +1 -0
  762. package/dist/components/base/navigation/section-nav/section-nav.d.ts +17 -0
  763. package/dist/components/base/navigation/section-nav/section-nav.d.ts.map +1 -0
  764. package/dist/components/base/navigation/side-nav.d.ts +30 -0
  765. package/dist/components/base/navigation/side-nav.d.ts.map +1 -0
  766. package/dist/components/base/navigation/tab-navigation-menu.d.ts +13 -0
  767. package/dist/components/base/navigation/tab-navigation-menu.d.ts.map +1 -0
  768. package/dist/components/base/navigation/tabs.d.ts +2 -0
  769. package/dist/components/base/navigation/tabs.d.ts.map +1 -0
  770. package/dist/components/base/popover/index.cjs +1 -0
  771. package/dist/components/base/popover/index.d.ts +2 -0
  772. package/dist/components/base/popover/index.d.ts.map +1 -0
  773. package/dist/components/base/popover/index.js +2 -0
  774. package/dist/components/base/popover/popover.d.ts +23 -0
  775. package/dist/components/base/popover/popover.d.ts.map +1 -0
  776. package/dist/components/base/popover-menu/index.cjs +1 -0
  777. package/dist/components/base/popover-menu/index.d.ts +4 -0
  778. package/dist/components/base/popover-menu/index.d.ts.map +1 -0
  779. package/dist/components/base/popover-menu/index.js +2 -0
  780. package/dist/components/base/popover-menu/popover-menu.d.ts +49 -0
  781. package/dist/components/base/popover-menu/popover-menu.d.ts.map +1 -0
  782. package/dist/components/base/popover-menu/popover-menu.types.d.ts +29 -0
  783. package/dist/components/base/popover-menu/popover-menu.types.d.ts.map +1 -0
  784. package/dist/components/base/sheet/index.cjs +1 -0
  785. package/dist/components/base/sheet/index.d.ts +2 -0
  786. package/dist/components/base/sheet/index.d.ts.map +1 -0
  787. package/dist/components/base/sheet/index.js +2 -0
  788. package/dist/components/base/sheet/sheet.d.ts +14 -0
  789. package/dist/components/base/sheet/sheet.d.ts.map +1 -0
  790. package/dist/components/base/sidebar/index.cjs +1 -0
  791. package/dist/components/base/sidebar/index.d.ts +2 -0
  792. package/dist/components/base/sidebar/index.d.ts.map +1 -0
  793. package/dist/components/base/sidebar/index.js +2 -0
  794. package/dist/components/base/sidebar/sidebar.d.ts +14 -0
  795. package/dist/components/base/sidebar/sidebar.d.ts.map +1 -0
  796. package/dist/components/base/spinner/index.cjs +1 -0
  797. package/dist/components/base/spinner/index.d.ts +2 -0
  798. package/dist/components/base/spinner/index.d.ts.map +1 -0
  799. package/dist/components/base/spinner/index.js +2 -0
  800. package/dist/components/base/spinner/spinner.d.ts +10 -0
  801. package/dist/components/base/spinner/spinner.d.ts.map +1 -0
  802. package/dist/components/base/table/column-visibility-toggle.d.ts +6 -0
  803. package/dist/components/base/table/column-visibility-toggle.d.ts.map +1 -0
  804. package/dist/components/base/table/data-table.d.ts +7 -0
  805. package/dist/components/base/table/data-table.d.ts.map +1 -0
  806. package/dist/components/base/table/filter-bar.d.ts +6 -0
  807. package/dist/components/base/table/filter-bar.d.ts.map +1 -0
  808. package/dist/components/base/table/hooks.d.ts +32 -0
  809. package/dist/components/base/table/hooks.d.ts.map +1 -0
  810. package/dist/components/base/table/index.cjs +2 -0
  811. package/dist/components/base/table/index.cjs.map +1 -0
  812. package/dist/components/base/table/index.d.ts +18 -0
  813. package/dist/components/base/table/index.d.ts.map +1 -0
  814. package/dist/components/base/table/index.js +1189 -0
  815. package/dist/components/base/table/index.js.map +1 -0
  816. package/dist/components/base/table/pagination.d.ts +6 -0
  817. package/dist/components/base/table/pagination.d.ts.map +1 -0
  818. package/dist/components/base/table/partials/cell-renderers.d.ts +62 -0
  819. package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -0
  820. package/dist/components/base/table/partials/cell-value.d.ts +41 -0
  821. package/dist/components/base/table/partials/cell-value.d.ts.map +1 -0
  822. package/dist/components/base/table/partials/density-toggle.d.ts +12 -0
  823. package/dist/components/base/table/partials/density-toggle.d.ts.map +1 -0
  824. package/dist/components/base/table/partials/table-link.d.ts +5 -0
  825. package/dist/components/base/table/partials/table-link.d.ts.map +1 -0
  826. package/dist/components/base/table/table-actions.d.ts +6 -0
  827. package/dist/components/base/table/table-actions.d.ts.map +1 -0
  828. package/dist/components/base/table/table-body.d.ts +6 -0
  829. package/dist/components/base/table/table-body.d.ts.map +1 -0
  830. package/dist/components/base/table/table-header.d.ts +6 -0
  831. package/dist/components/base/table/table-header.d.ts.map +1 -0
  832. package/dist/components/base/table/table-helpers.d.ts +40 -0
  833. package/dist/components/base/table/table-helpers.d.ts.map +1 -0
  834. package/dist/components/base/table/table-pagination.d.ts +6 -0
  835. package/dist/components/base/table/table-pagination.d.ts.map +1 -0
  836. package/dist/components/base/table/table-toolbar.d.ts +6 -0
  837. package/dist/components/base/table/table-toolbar.d.ts.map +1 -0
  838. package/dist/components/base/table/table.strings.d.ts +4 -0
  839. package/dist/components/base/table/table.strings.d.ts.map +1 -0
  840. package/dist/components/base/table/table.types.d.ts +298 -0
  841. package/dist/components/base/table/table.types.d.ts.map +1 -0
  842. package/dist/components/base/toaster/index.cjs +2 -0
  843. package/dist/components/base/toaster/index.cjs.map +1 -0
  844. package/dist/components/base/toaster/index.d.ts +2 -0
  845. package/dist/components/base/toaster/index.d.ts.map +1 -0
  846. package/dist/components/base/toaster/index.js +40 -0
  847. package/dist/components/base/toaster/index.js.map +1 -0
  848. package/dist/components/base/toaster/toaster.d.ts +7 -0
  849. package/dist/components/base/toaster/toaster.d.ts.map +1 -0
  850. package/dist/components/composed/admin/admin.strings.d.ts +32 -0
  851. package/dist/components/composed/admin/admin.strings.d.ts.map +1 -0
  852. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts +3 -0
  853. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -0
  854. package/dist/components/composed/admin/api-key-list/api-key-list.strings.d.ts +16 -0
  855. package/dist/components/composed/admin/api-key-list/api-key-list.strings.d.ts.map +1 -0
  856. package/dist/components/composed/admin/api-key-list/api-key-list.types.d.ts +55 -0
  857. package/dist/components/composed/admin/api-key-list/api-key-list.types.d.ts.map +1 -0
  858. package/dist/components/composed/admin/api-key-list/index.d.ts +4 -0
  859. package/dist/components/composed/admin/api-key-list/index.d.ts.map +1 -0
  860. package/dist/components/composed/admin/conversation-row/conversation-row.d.ts +6 -0
  861. package/dist/components/composed/admin/conversation-row/conversation-row.d.ts.map +1 -0
  862. package/dist/components/composed/admin/conversation-row/index.d.ts +3 -0
  863. package/dist/components/composed/admin/conversation-row/index.d.ts.map +1 -0
  864. package/dist/components/composed/admin/conversation-row/types.d.ts +12 -0
  865. package/dist/components/composed/admin/conversation-row/types.d.ts.map +1 -0
  866. package/dist/components/composed/admin/index.cjs +2 -0
  867. package/dist/components/composed/admin/index.cjs.map +1 -0
  868. package/dist/components/composed/admin/index.d.ts +12 -0
  869. package/dist/components/composed/admin/index.d.ts.map +1 -0
  870. package/dist/components/composed/admin/index.js +393 -0
  871. package/dist/components/composed/admin/index.js.map +1 -0
  872. package/dist/components/composed/admin/inventory-level/index.d.ts +3 -0
  873. package/dist/components/composed/admin/inventory-level/index.d.ts.map +1 -0
  874. package/dist/components/composed/admin/inventory-level/inventory-level.d.ts +6 -0
  875. package/dist/components/composed/admin/inventory-level/inventory-level.d.ts.map +1 -0
  876. package/dist/components/composed/admin/inventory-level/types.d.ts +13 -0
  877. package/dist/components/composed/admin/inventory-level/types.d.ts.map +1 -0
  878. package/dist/components/composed/admin/role-permission/index.d.ts +3 -0
  879. package/dist/components/composed/admin/role-permission/index.d.ts.map +1 -0
  880. package/dist/components/composed/admin/role-permission/role-permission.d.ts +6 -0
  881. package/dist/components/composed/admin/role-permission/role-permission.d.ts.map +1 -0
  882. package/dist/components/composed/admin/role-permission/types.d.ts +20 -0
  883. package/dist/components/composed/admin/role-permission/types.d.ts.map +1 -0
  884. package/dist/components/composed/admin/settings-toggle/index.d.ts +3 -0
  885. package/dist/components/composed/admin/settings-toggle/index.d.ts.map +1 -0
  886. package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts +6 -0
  887. package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts.map +1 -0
  888. package/dist/components/composed/admin/settings-toggle/types.d.ts +15 -0
  889. package/dist/components/composed/admin/settings-toggle/types.d.ts.map +1 -0
  890. package/dist/components/composed/admin/team-member/index.d.ts +3 -0
  891. package/dist/components/composed/admin/team-member/index.d.ts.map +1 -0
  892. package/dist/components/composed/admin/team-member/team-member.d.ts +6 -0
  893. package/dist/components/composed/admin/team-member/team-member.d.ts.map +1 -0
  894. package/dist/components/composed/admin/team-member/types.d.ts +12 -0
  895. package/dist/components/composed/admin/team-member/types.d.ts.map +1 -0
  896. package/dist/components/composed/ai/ai-agent/ai-agent.d.ts +6 -0
  897. package/dist/components/composed/ai/ai-agent/ai-agent.d.ts.map +1 -0
  898. package/dist/components/composed/ai/ai-agent/index.d.ts +3 -0
  899. package/dist/components/composed/ai/ai-agent/index.d.ts.map +1 -0
  900. package/dist/components/composed/ai/ai-agent/types.d.ts +28 -0
  901. package/dist/components/composed/ai/ai-agent/types.d.ts.map +1 -0
  902. package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts +6 -0
  903. package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts.map +1 -0
  904. package/dist/components/composed/ai/ai-artifact/index.d.ts +3 -0
  905. package/dist/components/composed/ai/ai-artifact/index.d.ts.map +1 -0
  906. package/dist/components/composed/ai/ai-artifact/types.d.ts +40 -0
  907. package/dist/components/composed/ai/ai-artifact/types.d.ts.map +1 -0
  908. package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts +6 -0
  909. package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts.map +1 -0
  910. package/dist/components/composed/ai/ai-attachment/index.d.ts +3 -0
  911. package/dist/components/composed/ai/ai-attachment/index.d.ts.map +1 -0
  912. package/dist/components/composed/ai/ai-attachment/types.d.ts +31 -0
  913. package/dist/components/composed/ai/ai-attachment/types.d.ts.map +1 -0
  914. package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +6 -0
  915. package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts.map +1 -0
  916. package/dist/components/composed/ai/ai-chain-of-thought/index.d.ts +3 -0
  917. package/dist/components/composed/ai/ai-chain-of-thought/index.d.ts.map +1 -0
  918. package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts +31 -0
  919. package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts.map +1 -0
  920. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts +6 -0
  921. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -0
  922. package/dist/components/composed/ai/ai-citation/index.d.ts +3 -0
  923. package/dist/components/composed/ai/ai-citation/index.d.ts.map +1 -0
  924. package/dist/components/composed/ai/ai-citation/types.d.ts +27 -0
  925. package/dist/components/composed/ai/ai-citation/types.d.ts.map +1 -0
  926. package/dist/components/composed/ai/ai-classification/ai-classification.d.ts +3 -0
  927. package/dist/components/composed/ai/ai-classification/ai-classification.d.ts.map +1 -0
  928. package/dist/components/composed/ai/ai-classification/index.d.ts +3 -0
  929. package/dist/components/composed/ai/ai-classification/index.d.ts.map +1 -0
  930. package/dist/components/composed/ai/ai-classification/types.d.ts +21 -0
  931. package/dist/components/composed/ai/ai-classification/types.d.ts.map +1 -0
  932. package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts +6 -0
  933. package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts.map +1 -0
  934. package/dist/components/composed/ai/ai-code-block/index.d.ts +3 -0
  935. package/dist/components/composed/ai/ai-code-block/index.d.ts.map +1 -0
  936. package/dist/components/composed/ai/ai-code-block/types.d.ts +32 -0
  937. package/dist/components/composed/ai/ai-code-block/types.d.ts.map +1 -0
  938. package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts +6 -0
  939. package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts.map +1 -0
  940. package/dist/components/composed/ai/ai-confidence/index.d.ts +3 -0
  941. package/dist/components/composed/ai/ai-confidence/index.d.ts.map +1 -0
  942. package/dist/components/composed/ai/ai-confidence/types.d.ts +18 -0
  943. package/dist/components/composed/ai/ai-confidence/types.d.ts.map +1 -0
  944. package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts +6 -0
  945. package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts.map +1 -0
  946. package/dist/components/composed/ai/ai-confirmation/index.d.ts +3 -0
  947. package/dist/components/composed/ai/ai-confirmation/index.d.ts.map +1 -0
  948. package/dist/components/composed/ai/ai-confirmation/types.d.ts +37 -0
  949. package/dist/components/composed/ai/ai-confirmation/types.d.ts.map +1 -0
  950. package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts +6 -0
  951. package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts.map +1 -0
  952. package/dist/components/composed/ai/ai-feedback/index.d.ts +3 -0
  953. package/dist/components/composed/ai/ai-feedback/index.d.ts.map +1 -0
  954. package/dist/components/composed/ai/ai-feedback/types.d.ts +20 -0
  955. package/dist/components/composed/ai/ai-feedback/types.d.ts.map +1 -0
  956. package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts +6 -0
  957. package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts.map +1 -0
  958. package/dist/components/composed/ai/ai-file-tree/index.d.ts +3 -0
  959. package/dist/components/composed/ai/ai-file-tree/index.d.ts.map +1 -0
  960. package/dist/components/composed/ai/ai-file-tree/types.d.ts +40 -0
  961. package/dist/components/composed/ai/ai-file-tree/types.d.ts.map +1 -0
  962. package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts +6 -0
  963. package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts.map +1 -0
  964. package/dist/components/composed/ai/ai-inline-citation/index.d.ts +3 -0
  965. package/dist/components/composed/ai/ai-inline-citation/index.d.ts.map +1 -0
  966. package/dist/components/composed/ai/ai-inline-citation/types.d.ts +20 -0
  967. package/dist/components/composed/ai/ai-inline-citation/types.d.ts.map +1 -0
  968. package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts +6 -0
  969. package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts.map +1 -0
  970. package/dist/components/composed/ai/ai-message-bubble/index.d.ts +3 -0
  971. package/dist/components/composed/ai/ai-message-bubble/index.d.ts.map +1 -0
  972. package/dist/components/composed/ai/ai-message-bubble/types.d.ts +24 -0
  973. package/dist/components/composed/ai/ai-message-bubble/types.d.ts.map +1 -0
  974. package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts +6 -0
  975. package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts.map +1 -0
  976. package/dist/components/composed/ai/ai-package-info/index.d.ts +3 -0
  977. package/dist/components/composed/ai/ai-package-info/index.d.ts.map +1 -0
  978. package/dist/components/composed/ai/ai-package-info/types.d.ts +35 -0
  979. package/dist/components/composed/ai/ai-package-info/types.d.ts.map +1 -0
  980. package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +6 -0
  981. package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts.map +1 -0
  982. package/dist/components/composed/ai/ai-prompt-suggestions/index.d.ts +3 -0
  983. package/dist/components/composed/ai/ai-prompt-suggestions/index.d.ts.map +1 -0
  984. package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts +19 -0
  985. package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts.map +1 -0
  986. package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts +6 -0
  987. package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts.map +1 -0
  988. package/dist/components/composed/ai/ai-reasoning/index.d.ts +3 -0
  989. package/dist/components/composed/ai/ai-reasoning/index.d.ts.map +1 -0
  990. package/dist/components/composed/ai/ai-reasoning/types.d.ts +30 -0
  991. package/dist/components/composed/ai/ai-reasoning/types.d.ts.map +1 -0
  992. package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts +6 -0
  993. package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts.map +1 -0
  994. package/dist/components/composed/ai/ai-shimmer/index.d.ts +3 -0
  995. package/dist/components/composed/ai/ai-shimmer/index.d.ts.map +1 -0
  996. package/dist/components/composed/ai/ai-shimmer/types.d.ts +11 -0
  997. package/dist/components/composed/ai/ai-shimmer/types.d.ts.map +1 -0
  998. package/dist/components/composed/ai/ai-sources/ai-sources.d.ts +6 -0
  999. package/dist/components/composed/ai/ai-sources/ai-sources.d.ts.map +1 -0
  1000. package/dist/components/composed/ai/ai-sources/index.d.ts +3 -0
  1001. package/dist/components/composed/ai/ai-sources/index.d.ts.map +1 -0
  1002. package/dist/components/composed/ai/ai-sources/types.d.ts +36 -0
  1003. package/dist/components/composed/ai/ai-sources/types.d.ts.map +1 -0
  1004. package/dist/components/composed/ai/ai-summary/ai-summary.d.ts +3 -0
  1005. package/dist/components/composed/ai/ai-summary/ai-summary.d.ts.map +1 -0
  1006. package/dist/components/composed/ai/ai-summary/index.d.ts +3 -0
  1007. package/dist/components/composed/ai/ai-summary/index.d.ts.map +1 -0
  1008. package/dist/components/composed/ai/ai-summary/types.d.ts +16 -0
  1009. package/dist/components/composed/ai/ai-summary/types.d.ts.map +1 -0
  1010. package/dist/components/composed/ai/ai-task/ai-task.d.ts +6 -0
  1011. package/dist/components/composed/ai/ai-task/ai-task.d.ts.map +1 -0
  1012. package/dist/components/composed/ai/ai-task/index.d.ts +3 -0
  1013. package/dist/components/composed/ai/ai-task/index.d.ts.map +1 -0
  1014. package/dist/components/composed/ai/ai-task/types.d.ts +32 -0
  1015. package/dist/components/composed/ai/ai-task/types.d.ts.map +1 -0
  1016. package/dist/components/composed/ai/ai-token-usage/ai-token-usage.d.ts +6 -0
  1017. package/dist/components/composed/ai/ai-token-usage/ai-token-usage.d.ts.map +1 -0
  1018. package/dist/components/composed/ai/ai-token-usage/index.d.ts +3 -0
  1019. package/dist/components/composed/ai/ai-token-usage/index.d.ts.map +1 -0
  1020. package/dist/components/composed/ai/ai-token-usage/types.d.ts +18 -0
  1021. package/dist/components/composed/ai/ai-token-usage/types.d.ts.map +1 -0
  1022. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts +6 -0
  1023. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -0
  1024. package/dist/components/composed/ai/ai-tool-call/index.d.ts +3 -0
  1025. package/dist/components/composed/ai/ai-tool-call/index.d.ts.map +1 -0
  1026. package/dist/components/composed/ai/ai-tool-call/types.d.ts +29 -0
  1027. package/dist/components/composed/ai/ai-tool-call/types.d.ts.map +1 -0
  1028. package/dist/components/composed/ai/ai.strings.d.ts +41 -0
  1029. package/dist/components/composed/ai/ai.strings.d.ts.map +1 -0
  1030. package/dist/components/composed/ai/index.cjs +2 -0
  1031. package/dist/components/composed/ai/index.cjs.map +1 -0
  1032. package/dist/components/composed/ai/index.d.ts +25 -0
  1033. package/dist/components/composed/ai/index.d.ts.map +1 -0
  1034. package/dist/components/composed/ai/index.js +959 -0
  1035. package/dist/components/composed/ai/index.js.map +1 -0
  1036. package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts +6 -0
  1037. package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts.map +1 -0
  1038. package/dist/components/composed/analytics/activity-heatmap/index.d.ts +3 -0
  1039. package/dist/components/composed/analytics/activity-heatmap/index.d.ts.map +1 -0
  1040. package/dist/components/composed/analytics/activity-heatmap/types.d.ts +16 -0
  1041. package/dist/components/composed/analytics/activity-heatmap/types.d.ts.map +1 -0
  1042. package/dist/components/composed/analytics/analytics.strings.d.ts +36 -0
  1043. package/dist/components/composed/analytics/analytics.strings.d.ts.map +1 -0
  1044. package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts +12 -0
  1045. package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts.map +1 -0
  1046. package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts +15 -0
  1047. package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts.map +1 -0
  1048. package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts +14 -0
  1049. package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts.map +1 -0
  1050. package/dist/components/composed/analytics/format-metric-value.d.ts +9 -0
  1051. package/dist/components/composed/analytics/format-metric-value.d.ts.map +1 -0
  1052. package/dist/components/composed/analytics/index.cjs +2 -0
  1053. package/dist/components/composed/analytics/index.cjs.map +1 -0
  1054. package/dist/components/composed/analytics/index.d.ts +32 -0
  1055. package/dist/components/composed/analytics/index.d.ts.map +1 -0
  1056. package/dist/components/composed/analytics/index.js +1381 -0
  1057. package/dist/components/composed/analytics/index.js.map +1 -0
  1058. package/dist/components/composed/analytics/metric/index.d.ts +2 -0
  1059. package/dist/components/composed/analytics/metric/index.d.ts.map +1 -0
  1060. package/dist/components/composed/analytics/metric/metric.d.ts +22 -0
  1061. package/dist/components/composed/analytics/metric/metric.d.ts.map +1 -0
  1062. package/dist/components/composed/analytics/metric-bar/index.d.ts +2 -0
  1063. package/dist/components/composed/analytics/metric-bar/index.d.ts.map +1 -0
  1064. package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts +18 -0
  1065. package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts.map +1 -0
  1066. package/dist/components/composed/analytics/metric-comparison/index.d.ts +2 -0
  1067. package/dist/components/composed/analytics/metric-comparison/index.d.ts.map +1 -0
  1068. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts +22 -0
  1069. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts.map +1 -0
  1070. package/dist/components/composed/analytics/metric-gradient/index.d.ts +2 -0
  1071. package/dist/components/composed/analytics/metric-gradient/index.d.ts.map +1 -0
  1072. package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts +16 -0
  1073. package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts.map +1 -0
  1074. package/dist/components/composed/analytics/metric-grid/index.d.ts +2 -0
  1075. package/dist/components/composed/analytics/metric-grid/index.d.ts.map +1 -0
  1076. package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts +21 -0
  1077. package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts.map +1 -0
  1078. package/dist/components/composed/analytics/metric-micro-grid/index.d.ts +2 -0
  1079. package/dist/components/composed/analytics/metric-micro-grid/index.d.ts.map +1 -0
  1080. package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts +18 -0
  1081. package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts.map +1 -0
  1082. package/dist/components/composed/analytics/types.d.ts +70 -0
  1083. package/dist/components/composed/analytics/types.d.ts.map +1 -0
  1084. package/dist/components/composed/cards/contact-card/contact-card.d.ts +14 -0
  1085. package/dist/components/composed/cards/contact-card/contact-card.d.ts.map +1 -0
  1086. package/dist/components/composed/cards/contact-card/index.d.ts +3 -0
  1087. package/dist/components/composed/cards/contact-card/index.d.ts.map +1 -0
  1088. package/dist/components/composed/cards/contact-card/types.d.ts +23 -0
  1089. package/dist/components/composed/cards/contact-card/types.d.ts.map +1 -0
  1090. package/dist/components/composed/cards/course-card/course-card.d.ts +6 -0
  1091. package/dist/components/composed/cards/course-card/course-card.d.ts.map +1 -0
  1092. package/dist/components/composed/cards/course-card/index.d.ts +3 -0
  1093. package/dist/components/composed/cards/course-card/index.d.ts.map +1 -0
  1094. package/dist/components/composed/cards/course-card/types.d.ts +36 -0
  1095. package/dist/components/composed/cards/course-card/types.d.ts.map +1 -0
  1096. package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts +6 -0
  1097. package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts.map +1 -0
  1098. package/dist/components/composed/cards/feature-announcement/index.d.ts +3 -0
  1099. package/dist/components/composed/cards/feature-announcement/index.d.ts.map +1 -0
  1100. package/dist/components/composed/cards/feature-announcement/types.d.ts +11 -0
  1101. package/dist/components/composed/cards/feature-announcement/types.d.ts.map +1 -0
  1102. package/dist/components/composed/cards/giftcard-card/index.d.ts +7 -0
  1103. package/dist/components/composed/cards/giftcard-card/index.d.ts.map +1 -0
  1104. package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts +9 -0
  1105. package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts.map +1 -0
  1106. package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts +8 -0
  1107. package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts.map +1 -0
  1108. package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts +10 -0
  1109. package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts.map +1 -0
  1110. package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts +9 -0
  1111. package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts.map +1 -0
  1112. package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts +9 -0
  1113. package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts.map +1 -0
  1114. package/dist/components/composed/cards/giftcard-card/types.d.ts +78 -0
  1115. package/dist/components/composed/cards/giftcard-card/types.d.ts.map +1 -0
  1116. package/dist/components/composed/cards/gradient-card/gradient-card.d.ts +10 -0
  1117. package/dist/components/composed/cards/gradient-card/gradient-card.d.ts.map +1 -0
  1118. package/dist/components/composed/cards/gradient-card/index.d.ts +3 -0
  1119. package/dist/components/composed/cards/gradient-card/index.d.ts.map +1 -0
  1120. package/dist/components/composed/cards/gradient-card/types.d.ts +32 -0
  1121. package/dist/components/composed/cards/gradient-card/types.d.ts.map +1 -0
  1122. package/dist/components/composed/cards/index.cjs +2 -0
  1123. package/dist/components/composed/cards/index.cjs.map +1 -0
  1124. package/dist/components/composed/cards/index.d.ts +13 -0
  1125. package/dist/components/composed/cards/index.d.ts.map +1 -0
  1126. package/dist/components/composed/cards/index.js +1209 -0
  1127. package/dist/components/composed/cards/index.js.map +1 -0
  1128. package/dist/components/composed/cards/vendor-profile/index.d.ts +3 -0
  1129. package/dist/components/composed/cards/vendor-profile/index.d.ts.map +1 -0
  1130. package/dist/components/composed/cards/vendor-profile/types.d.ts +37 -0
  1131. package/dist/components/composed/cards/vendor-profile/types.d.ts.map +1 -0
  1132. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts +6 -0
  1133. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -0
  1134. package/dist/components/composed/commerce/address-card/address-card.d.ts +6 -0
  1135. package/dist/components/composed/commerce/address-card/address-card.d.ts.map +1 -0
  1136. package/dist/components/composed/commerce/address-card/index.d.ts +3 -0
  1137. package/dist/components/composed/commerce/address-card/index.d.ts.map +1 -0
  1138. package/dist/components/composed/commerce/address-card/types.d.ts +29 -0
  1139. package/dist/components/composed/commerce/address-card/types.d.ts.map +1 -0
  1140. package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts +6 -0
  1141. package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts.map +1 -0
  1142. package/dist/components/composed/commerce/cart-summary/index.d.ts +3 -0
  1143. package/dist/components/composed/commerce/cart-summary/index.d.ts.map +1 -0
  1144. package/dist/components/composed/commerce/cart-summary/types.d.ts +29 -0
  1145. package/dist/components/composed/commerce/cart-summary/types.d.ts.map +1 -0
  1146. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts +6 -0
  1147. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -0
  1148. package/dist/components/composed/commerce/coupon-input/index.d.ts +3 -0
  1149. package/dist/components/composed/commerce/coupon-input/index.d.ts.map +1 -0
  1150. package/dist/components/composed/commerce/coupon-input/types.d.ts +20 -0
  1151. package/dist/components/composed/commerce/coupon-input/types.d.ts.map +1 -0
  1152. package/dist/components/composed/commerce/discount-stack/discount-stack.d.ts +6 -0
  1153. package/dist/components/composed/commerce/discount-stack/discount-stack.d.ts.map +1 -0
  1154. package/dist/components/composed/commerce/discount-stack/index.d.ts +3 -0
  1155. package/dist/components/composed/commerce/discount-stack/index.d.ts.map +1 -0
  1156. package/dist/components/composed/commerce/discount-stack/types.d.ts +19 -0
  1157. package/dist/components/composed/commerce/discount-stack/types.d.ts.map +1 -0
  1158. package/dist/components/composed/commerce/index.cjs +2 -0
  1159. package/dist/components/composed/commerce/index.cjs.map +1 -0
  1160. package/dist/components/composed/commerce/index.d.ts +18 -0
  1161. package/dist/components/composed/commerce/index.d.ts.map +1 -0
  1162. package/dist/components/composed/commerce/index.js +1040 -0
  1163. package/dist/components/composed/commerce/index.js.map +1 -0
  1164. package/dist/components/composed/commerce/loyalty-points/index.d.ts +3 -0
  1165. package/dist/components/composed/commerce/loyalty-points/index.d.ts.map +1 -0
  1166. package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts +6 -0
  1167. package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts.map +1 -0
  1168. package/dist/components/composed/commerce/loyalty-points/types.d.ts +24 -0
  1169. package/dist/components/composed/commerce/loyalty-points/types.d.ts.map +1 -0
  1170. package/dist/components/composed/commerce/order-status/index.d.ts +3 -0
  1171. package/dist/components/composed/commerce/order-status/index.d.ts.map +1 -0
  1172. package/dist/components/composed/commerce/order-status/order-status.d.ts +6 -0
  1173. package/dist/components/composed/commerce/order-status/order-status.d.ts.map +1 -0
  1174. package/dist/components/composed/commerce/order-status/types.d.ts +23 -0
  1175. package/dist/components/composed/commerce/order-status/types.d.ts.map +1 -0
  1176. package/dist/components/composed/commerce/payment-method/index.d.ts +3 -0
  1177. package/dist/components/composed/commerce/payment-method/index.d.ts.map +1 -0
  1178. package/dist/components/composed/commerce/payment-method/payment-method.d.ts +6 -0
  1179. package/dist/components/composed/commerce/payment-method/payment-method.d.ts.map +1 -0
  1180. package/dist/components/composed/commerce/payment-method/types.d.ts +20 -0
  1181. package/dist/components/composed/commerce/payment-method/types.d.ts.map +1 -0
  1182. package/dist/components/composed/commerce/refund-status/index.d.ts +3 -0
  1183. package/dist/components/composed/commerce/refund-status/index.d.ts.map +1 -0
  1184. package/dist/components/composed/commerce/refund-status/refund-status.d.ts +6 -0
  1185. package/dist/components/composed/commerce/refund-status/refund-status.d.ts.map +1 -0
  1186. package/dist/components/composed/commerce/refund-status/types.d.ts +24 -0
  1187. package/dist/components/composed/commerce/refund-status/types.d.ts.map +1 -0
  1188. package/dist/components/composed/commerce/shipment-tracking/index.d.ts +3 -0
  1189. package/dist/components/composed/commerce/shipment-tracking/index.d.ts.map +1 -0
  1190. package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts +6 -0
  1191. package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts.map +1 -0
  1192. package/dist/components/composed/commerce/shipment-tracking/types.d.ts +17 -0
  1193. package/dist/components/composed/commerce/shipment-tracking/types.d.ts.map +1 -0
  1194. package/dist/components/composed/commerce/subscription-summary/index.d.ts +3 -0
  1195. package/dist/components/composed/commerce/subscription-summary/index.d.ts.map +1 -0
  1196. package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts +6 -0
  1197. package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts.map +1 -0
  1198. package/dist/components/composed/commerce/subscription-summary/types.d.ts +27 -0
  1199. package/dist/components/composed/commerce/subscription-summary/types.d.ts.map +1 -0
  1200. package/dist/components/composed/commerce/tax-breakdown/index.d.ts +3 -0
  1201. package/dist/components/composed/commerce/tax-breakdown/index.d.ts.map +1 -0
  1202. package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts +6 -0
  1203. package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts.map +1 -0
  1204. package/dist/components/composed/commerce/tax-breakdown/types.d.ts +22 -0
  1205. package/dist/components/composed/commerce/tax-breakdown/types.d.ts.map +1 -0
  1206. package/dist/components/composed/commerce/upcoming-booking/index.d.ts +3 -0
  1207. package/dist/components/composed/commerce/upcoming-booking/index.d.ts.map +1 -0
  1208. package/dist/components/composed/commerce/upcoming-booking/types.d.ts +33 -0
  1209. package/dist/components/composed/commerce/upcoming-booking/types.d.ts.map +1 -0
  1210. package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.d.ts +6 -0
  1211. package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.d.ts.map +1 -0
  1212. package/dist/components/composed/commerce/voucher-entry/index.d.ts +3 -0
  1213. package/dist/components/composed/commerce/voucher-entry/index.d.ts.map +1 -0
  1214. package/dist/components/composed/commerce/voucher-entry/types.d.ts +20 -0
  1215. package/dist/components/composed/commerce/voucher-entry/types.d.ts.map +1 -0
  1216. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts +6 -0
  1217. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -0
  1218. package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts +6 -0
  1219. package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts.map +1 -0
  1220. package/dist/components/composed/dark-surfaces/booking-receipt/index.d.ts +3 -0
  1221. package/dist/components/composed/dark-surfaces/booking-receipt/index.d.ts.map +1 -0
  1222. package/dist/components/composed/dark-surfaces/booking-receipt/types.d.ts +16 -0
  1223. package/dist/components/composed/dark-surfaces/booking-receipt/types.d.ts.map +1 -0
  1224. package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts +6 -0
  1225. package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts.map +1 -0
  1226. package/dist/components/composed/dark-surfaces/dark-info-panel/index.d.ts +3 -0
  1227. package/dist/components/composed/dark-surfaces/dark-info-panel/index.d.ts.map +1 -0
  1228. package/dist/components/composed/dark-surfaces/dark-info-panel/types.d.ts +18 -0
  1229. package/dist/components/composed/dark-surfaces/dark-info-panel/types.d.ts.map +1 -0
  1230. package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts +6 -0
  1231. package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts.map +1 -0
  1232. package/dist/components/composed/dark-surfaces/dark-payment/index.d.ts +3 -0
  1233. package/dist/components/composed/dark-surfaces/dark-payment/index.d.ts.map +1 -0
  1234. package/dist/components/composed/dark-surfaces/dark-payment/types.d.ts +15 -0
  1235. package/dist/components/composed/dark-surfaces/dark-payment/types.d.ts.map +1 -0
  1236. package/dist/components/composed/dark-surfaces/dark-surfaces.strings.d.ts +37 -0
  1237. package/dist/components/composed/dark-surfaces/dark-surfaces.strings.d.ts.map +1 -0
  1238. package/dist/components/composed/dark-surfaces/index.cjs +2 -0
  1239. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -0
  1240. package/dist/components/composed/dark-surfaces/index.d.ts +11 -0
  1241. package/dist/components/composed/dark-surfaces/index.d.ts.map +1 -0
  1242. package/dist/components/composed/dark-surfaces/index.js +330 -0
  1243. package/dist/components/composed/dark-surfaces/index.js.map +1 -0
  1244. package/dist/components/composed/dark-surfaces/order-items/index.d.ts +3 -0
  1245. package/dist/components/composed/dark-surfaces/order-items/index.d.ts.map +1 -0
  1246. package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts +6 -0
  1247. package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts.map +1 -0
  1248. package/dist/components/composed/dark-surfaces/order-items/types.d.ts +22 -0
  1249. package/dist/components/composed/dark-surfaces/order-items/types.d.ts.map +1 -0
  1250. package/dist/components/composed/dark-surfaces/outstanding-balance/index.d.ts +3 -0
  1251. package/dist/components/composed/dark-surfaces/outstanding-balance/index.d.ts.map +1 -0
  1252. package/dist/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.d.ts +6 -0
  1253. package/dist/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.d.ts.map +1 -0
  1254. package/dist/components/composed/dark-surfaces/outstanding-balance/types.d.ts +13 -0
  1255. package/dist/components/composed/dark-surfaces/outstanding-balance/types.d.ts.map +1 -0
  1256. package/dist/components/composed/data-display/dense-info-card/helpers.d.ts +13 -0
  1257. package/dist/components/composed/data-display/dense-info-card/helpers.d.ts.map +1 -0
  1258. package/dist/components/composed/data-display/dense-info-card/index.d.ts +7 -0
  1259. package/dist/components/composed/data-display/dense-info-card/index.d.ts.map +1 -0
  1260. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts +6 -0
  1261. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts.map +1 -0
  1262. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +6 -0
  1263. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -0
  1264. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts +6 -0
  1265. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -0
  1266. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts +6 -0
  1267. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts.map +1 -0
  1268. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts +6 -0
  1269. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -0
  1270. package/dist/components/composed/data-display/dense-info-card/types.d.ts +112 -0
  1271. package/dist/components/composed/data-display/dense-info-card/types.d.ts.map +1 -0
  1272. package/dist/components/composed/data-display/index.cjs +2 -0
  1273. package/dist/components/composed/data-display/index.cjs.map +1 -0
  1274. package/dist/components/composed/data-display/index.d.ts +15 -0
  1275. package/dist/components/composed/data-display/index.d.ts.map +1 -0
  1276. package/dist/components/composed/data-display/index.js +1069 -0
  1277. package/dist/components/composed/data-display/index.js.map +1 -0
  1278. package/dist/components/composed/data-display/inline-metric/index.d.ts +3 -0
  1279. package/dist/components/composed/data-display/inline-metric/index.d.ts.map +1 -0
  1280. package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts +6 -0
  1281. package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts.map +1 -0
  1282. package/dist/components/composed/data-display/inline-metric/types.d.ts +12 -0
  1283. package/dist/components/composed/data-display/inline-metric/types.d.ts.map +1 -0
  1284. package/dist/components/composed/data-display/invoice-header/index.d.ts +3 -0
  1285. package/dist/components/composed/data-display/invoice-header/index.d.ts.map +1 -0
  1286. package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts +6 -0
  1287. package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts.map +1 -0
  1288. package/dist/components/composed/data-display/invoice-header/types.d.ts +27 -0
  1289. package/dist/components/composed/data-display/invoice-header/types.d.ts.map +1 -0
  1290. package/dist/components/composed/data-display/invoice-items/index.d.ts +3 -0
  1291. package/dist/components/composed/data-display/invoice-items/index.d.ts.map +1 -0
  1292. package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts +14 -0
  1293. package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts.map +1 -0
  1294. package/dist/components/composed/data-display/invoice-items/types.d.ts +23 -0
  1295. package/dist/components/composed/data-display/invoice-items/types.d.ts.map +1 -0
  1296. package/dist/components/composed/data-display/invoice-mini/index.d.ts +4 -0
  1297. package/dist/components/composed/data-display/invoice-mini/index.d.ts.map +1 -0
  1298. package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts +6 -0
  1299. package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts.map +1 -0
  1300. package/dist/components/composed/data-display/invoice-mini/types.d.ts +30 -0
  1301. package/dist/components/composed/data-display/invoice-mini/types.d.ts.map +1 -0
  1302. package/dist/components/composed/data-display/invoice-table/index.d.ts +3 -0
  1303. package/dist/components/composed/data-display/invoice-table/index.d.ts.map +1 -0
  1304. package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts +6 -0
  1305. package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts.map +1 -0
  1306. package/dist/components/composed/data-display/invoice-table/types.d.ts +54 -0
  1307. package/dist/components/composed/data-display/invoice-table/types.d.ts.map +1 -0
  1308. package/dist/components/composed/data-display/mini-kpi/index.d.ts +3 -0
  1309. package/dist/components/composed/data-display/mini-kpi/index.d.ts.map +1 -0
  1310. package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts +6 -0
  1311. package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts.map +1 -0
  1312. package/dist/components/composed/data-display/mini-kpi/types.d.ts +9 -0
  1313. package/dist/components/composed/data-display/mini-kpi/types.d.ts.map +1 -0
  1314. package/dist/components/composed/index.d.ts.map +1 -0
  1315. package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +6 -0
  1316. package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts.map +1 -0
  1317. package/dist/components/composed/navigation/breadcrumb-progress/index.d.ts +3 -0
  1318. package/dist/components/composed/navigation/breadcrumb-progress/index.d.ts.map +1 -0
  1319. package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts +18 -0
  1320. package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts.map +1 -0
  1321. package/dist/components/composed/navigation/category-nav/category-nav.d.ts +6 -0
  1322. package/dist/components/composed/navigation/category-nav/category-nav.d.ts.map +1 -0
  1323. package/dist/components/composed/navigation/category-nav/index.d.ts +3 -0
  1324. package/dist/components/composed/navigation/category-nav/index.d.ts.map +1 -0
  1325. package/dist/components/composed/navigation/category-nav/types.d.ts +16 -0
  1326. package/dist/components/composed/navigation/category-nav/types.d.ts.map +1 -0
  1327. package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts +6 -0
  1328. package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts.map +1 -0
  1329. package/dist/components/composed/navigation/experience-activity/index.d.ts +3 -0
  1330. package/dist/components/composed/navigation/experience-activity/index.d.ts.map +1 -0
  1331. package/dist/components/composed/navigation/experience-activity/types.d.ts +19 -0
  1332. package/dist/components/composed/navigation/experience-activity/types.d.ts.map +1 -0
  1333. package/dist/components/composed/navigation/index.cjs +2 -0
  1334. package/dist/components/composed/navigation/index.cjs.map +1 -0
  1335. package/dist/components/composed/navigation/index.d.ts +13 -0
  1336. package/dist/components/composed/navigation/index.d.ts.map +1 -0
  1337. package/dist/components/composed/navigation/index.js +447 -0
  1338. package/dist/components/composed/navigation/index.js.map +1 -0
  1339. package/dist/components/composed/navigation/kanban-board/index.d.ts +3 -0
  1340. package/dist/components/composed/navigation/kanban-board/index.d.ts.map +1 -0
  1341. package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts +6 -0
  1342. package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts.map +1 -0
  1343. package/dist/components/composed/navigation/kanban-board/types.d.ts +13 -0
  1344. package/dist/components/composed/navigation/kanban-board/types.d.ts.map +1 -0
  1345. package/dist/components/composed/navigation/tab-switcher/index.d.ts +3 -0
  1346. package/dist/components/composed/navigation/tab-switcher/index.d.ts.map +1 -0
  1347. package/dist/components/composed/navigation/tab-switcher/tab-switcher.d.ts +6 -0
  1348. package/dist/components/composed/navigation/tab-switcher/tab-switcher.d.ts.map +1 -0
  1349. package/dist/components/composed/navigation/tab-switcher/types.d.ts +13 -0
  1350. package/dist/components/composed/navigation/tab-switcher/types.d.ts.map +1 -0
  1351. package/dist/components/composed/navigation/time-ruler/index.d.ts +3 -0
  1352. package/dist/components/composed/navigation/time-ruler/index.d.ts.map +1 -0
  1353. package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts +6 -0
  1354. package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts.map +1 -0
  1355. package/dist/components/composed/navigation/time-ruler/types.d.ts +20 -0
  1356. package/dist/components/composed/navigation/time-ruler/types.d.ts.map +1 -0
  1357. package/dist/components/composed/navigation/vendor-performance/index.d.ts +3 -0
  1358. package/dist/components/composed/navigation/vendor-performance/index.d.ts.map +1 -0
  1359. package/dist/components/composed/navigation/vendor-performance/types.d.ts +17 -0
  1360. package/dist/components/composed/navigation/vendor-performance/types.d.ts.map +1 -0
  1361. package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts +6 -0
  1362. package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts.map +1 -0
  1363. package/dist/components/composed/onboarding/checklist/checklist.d.ts +3 -0
  1364. package/dist/components/composed/onboarding/checklist/checklist.d.ts.map +1 -0
  1365. package/dist/components/composed/onboarding/checklist/checklist.strings.d.ts +16 -0
  1366. package/dist/components/composed/onboarding/checklist/checklist.strings.d.ts.map +1 -0
  1367. package/dist/components/composed/onboarding/checklist/checklist.types.d.ts +61 -0
  1368. package/dist/components/composed/onboarding/checklist/checklist.types.d.ts.map +1 -0
  1369. package/dist/components/composed/onboarding/checklist/index.d.ts +5 -0
  1370. package/dist/components/composed/onboarding/checklist/index.d.ts.map +1 -0
  1371. package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.d.ts +12 -0
  1372. package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.d.ts.map +1 -0
  1373. package/dist/components/composed/onboarding/index.cjs +2 -0
  1374. package/dist/components/composed/onboarding/index.cjs.map +1 -0
  1375. package/dist/components/composed/onboarding/index.d.ts +8 -0
  1376. package/dist/components/composed/onboarding/index.d.ts.map +1 -0
  1377. package/dist/components/composed/onboarding/index.js +123 -0
  1378. package/dist/components/composed/onboarding/index.js.map +1 -0
  1379. package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts +6 -0
  1380. package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts.map +1 -0
  1381. package/dist/components/composed/timelines/activity-stream/index.d.ts +3 -0
  1382. package/dist/components/composed/timelines/activity-stream/index.d.ts.map +1 -0
  1383. package/dist/components/composed/timelines/activity-stream/types.d.ts +26 -0
  1384. package/dist/components/composed/timelines/activity-stream/types.d.ts.map +1 -0
  1385. package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts +6 -0
  1386. package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts.map +1 -0
  1387. package/dist/components/composed/timelines/changelog/index.d.ts +3 -0
  1388. package/dist/components/composed/timelines/changelog/index.d.ts.map +1 -0
  1389. package/dist/components/composed/timelines/changelog/types.d.ts +25 -0
  1390. package/dist/components/composed/timelines/changelog/types.d.ts.map +1 -0
  1391. package/dist/components/composed/timelines/index.cjs +2 -0
  1392. package/dist/components/composed/timelines/index.cjs.map +1 -0
  1393. package/dist/components/composed/timelines/index.d.ts +11 -0
  1394. package/dist/components/composed/timelines/index.d.ts.map +1 -0
  1395. package/dist/components/composed/timelines/index.js +594 -0
  1396. package/dist/components/composed/timelines/index.js.map +1 -0
  1397. package/dist/components/composed/timelines/milestones/index.d.ts +3 -0
  1398. package/dist/components/composed/timelines/milestones/index.d.ts.map +1 -0
  1399. package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts +6 -0
  1400. package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts.map +1 -0
  1401. package/dist/components/composed/timelines/milestones/types.d.ts +26 -0
  1402. package/dist/components/composed/timelines/milestones/types.d.ts.map +1 -0
  1403. package/dist/components/composed/timelines/order-timeline/index.d.ts +3 -0
  1404. package/dist/components/composed/timelines/order-timeline/index.d.ts.map +1 -0
  1405. package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts +3 -0
  1406. package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts.map +1 -0
  1407. package/dist/components/composed/timelines/order-timeline/types.d.ts +16 -0
  1408. package/dist/components/composed/timelines/order-timeline/types.d.ts.map +1 -0
  1409. package/dist/components/composed/timelines/payment-timeline/index.d.ts +3 -0
  1410. package/dist/components/composed/timelines/payment-timeline/index.d.ts.map +1 -0
  1411. package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts +3 -0
  1412. package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts.map +1 -0
  1413. package/dist/components/composed/timelines/payment-timeline/types.d.ts +13 -0
  1414. package/dist/components/composed/timelines/payment-timeline/types.d.ts.map +1 -0
  1415. package/dist/components/composed/timelines/shared/index.d.ts +2 -0
  1416. package/dist/components/composed/timelines/shared/index.d.ts.map +1 -0
  1417. package/dist/components/composed/timelines/shared/timeline.d.ts +23 -0
  1418. package/dist/components/composed/timelines/shared/timeline.d.ts.map +1 -0
  1419. package/dist/components/composed/timelines/steps-card/index.d.ts +3 -0
  1420. package/dist/components/composed/timelines/steps-card/index.d.ts.map +1 -0
  1421. package/dist/components/composed/timelines/steps-card/steps-card.d.ts +10 -0
  1422. package/dist/components/composed/timelines/steps-card/steps-card.d.ts.map +1 -0
  1423. package/dist/components/composed/timelines/steps-card/types.d.ts +28 -0
  1424. package/dist/components/composed/timelines/steps-card/types.d.ts.map +1 -0
  1425. package/dist/components/features/activities/activities-feed.d.ts +6 -0
  1426. package/dist/components/features/activities/activities-feed.d.ts.map +1 -0
  1427. package/dist/components/features/activities/activities.config.d.ts +7 -0
  1428. package/dist/components/features/activities/activities.config.d.ts.map +1 -0
  1429. package/dist/components/features/activities/activities.strings.d.ts +39 -0
  1430. package/dist/components/features/activities/activities.strings.d.ts.map +1 -0
  1431. package/dist/components/features/activities/activities.types.d.ts +235 -0
  1432. package/dist/components/features/activities/activities.types.d.ts.map +1 -0
  1433. package/dist/components/features/activities/hooks/index.d.ts +3 -0
  1434. package/dist/components/features/activities/hooks/index.d.ts.map +1 -0
  1435. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +29 -0
  1436. package/dist/components/features/activities/hooks/use-activity-feed.d.ts.map +1 -0
  1437. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +23 -0
  1438. package/dist/components/features/activities/hooks/use-activity-resources.d.ts.map +1 -0
  1439. package/dist/components/features/activities/index.cjs +2 -0
  1440. package/dist/components/features/activities/index.cjs.map +1 -0
  1441. package/dist/components/features/activities/index.d.ts +8 -0
  1442. package/dist/components/features/activities/index.d.ts.map +1 -0
  1443. package/dist/components/features/activities/index.js +961 -0
  1444. package/dist/components/features/activities/index.js.map +1 -0
  1445. package/dist/components/features/activities/partials/activities-feed-card.d.ts +6 -0
  1446. package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -0
  1447. package/dist/components/features/activities/partials/activity-actions-menu.d.ts +9 -0
  1448. package/dist/components/features/activities/partials/activity-actions-menu.d.ts.map +1 -0
  1449. package/dist/components/features/activities/partials/activity-changes.d.ts +7 -0
  1450. package/dist/components/features/activities/partials/activity-changes.d.ts.map +1 -0
  1451. package/dist/components/features/activities/partials/activity-date-label.d.ts +7 -0
  1452. package/dist/components/features/activities/partials/activity-date-label.d.ts.map +1 -0
  1453. package/dist/components/features/activities/partials/activity-empty-state.d.ts +7 -0
  1454. package/dist/components/features/activities/partials/activity-empty-state.d.ts.map +1 -0
  1455. package/dist/components/features/activities/partials/activity-headline.d.ts +12 -0
  1456. package/dist/components/features/activities/partials/activity-headline.d.ts.map +1 -0
  1457. package/dist/components/features/activities/partials/activity-marker.d.ts +10 -0
  1458. package/dist/components/features/activities/partials/activity-marker.d.ts.map +1 -0
  1459. package/dist/components/features/activities/partials/activity-resource-tag.d.ts +10 -0
  1460. package/dist/components/features/activities/partials/activity-resource-tag.d.ts.map +1 -0
  1461. package/dist/components/features/activities/partials/activity-row.d.ts +31 -0
  1462. package/dist/components/features/activities/partials/activity-row.d.ts.map +1 -0
  1463. package/dist/components/features/activities/partials/index.d.ts +10 -0
  1464. package/dist/components/features/activities/partials/index.d.ts.map +1 -0
  1465. package/dist/components/features/activities/partials/tone-tokens.d.ts +20 -0
  1466. package/dist/components/features/activities/partials/tone-tokens.d.ts.map +1 -0
  1467. package/dist/components/features/ai-chat/ai-chat.d.ts +57 -0
  1468. package/dist/components/features/ai-chat/ai-chat.d.ts.map +1 -0
  1469. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +54 -0
  1470. package/dist/components/features/ai-chat/ai-chat.strings.d.ts.map +1 -0
  1471. package/dist/components/features/ai-chat/ai-chat.types.d.ts +160 -0
  1472. package/dist/components/features/ai-chat/ai-chat.types.d.ts.map +1 -0
  1473. package/dist/components/features/ai-chat/hooks/index.d.ts +2 -0
  1474. package/dist/components/features/ai-chat/hooks/index.d.ts.map +1 -0
  1475. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +16 -0
  1476. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts.map +1 -0
  1477. package/dist/components/features/ai-chat/index.cjs +3 -0
  1478. package/dist/components/features/ai-chat/index.cjs.map +1 -0
  1479. package/dist/components/features/ai-chat/index.d.ts +6 -0
  1480. package/dist/components/features/ai-chat/index.d.ts.map +1 -0
  1481. package/dist/components/features/ai-chat/index.js +559 -0
  1482. package/dist/components/features/ai-chat/index.js.map +1 -0
  1483. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +14 -0
  1484. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts.map +1 -0
  1485. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +22 -0
  1486. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts.map +1 -0
  1487. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +13 -0
  1488. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts.map +1 -0
  1489. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +18 -0
  1490. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts.map +1 -0
  1491. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +44 -0
  1492. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts.map +1 -0
  1493. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +14 -0
  1494. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts.map +1 -0
  1495. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +14 -0
  1496. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts.map +1 -0
  1497. package/dist/components/features/ai-chat/partials/index.d.ts +8 -0
  1498. package/dist/components/features/ai-chat/partials/index.d.ts.map +1 -0
  1499. package/dist/components/features/card/booking-calendar-event-card.d.ts +20 -0
  1500. package/dist/components/features/card/booking-calendar-event-card.d.ts.map +1 -0
  1501. package/dist/components/features/card/card.strings.d.ts +15 -0
  1502. package/dist/components/features/card/card.strings.d.ts.map +1 -0
  1503. package/dist/components/features/card/card.types.d.ts +91 -0
  1504. package/dist/components/features/card/card.types.d.ts.map +1 -0
  1505. package/dist/components/features/card/hooks/index.d.ts +2 -0
  1506. package/dist/components/features/card/hooks/index.d.ts.map +1 -0
  1507. package/dist/components/features/card/hooks/use-shared-resource-card.d.ts +26 -0
  1508. package/dist/components/features/card/hooks/use-shared-resource-card.d.ts.map +1 -0
  1509. package/dist/components/features/card/index.cjs +2 -0
  1510. package/dist/components/features/card/index.cjs.map +1 -0
  1511. package/dist/components/features/card/index.d.ts +8 -0
  1512. package/dist/components/features/card/index.d.ts.map +1 -0
  1513. package/dist/components/features/card/index.js +305 -0
  1514. package/dist/components/features/card/index.js.map +1 -0
  1515. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts +27 -0
  1516. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts.map +1 -0
  1517. package/dist/components/features/card/partials/index.d.ts +2 -0
  1518. package/dist/components/features/card/partials/index.d.ts.map +1 -0
  1519. package/dist/components/features/card/shared-resource-card.d.ts +7 -0
  1520. package/dist/components/features/card/shared-resource-card.d.ts.map +1 -0
  1521. package/dist/components/features/comments/comments-provider.d.ts +15 -0
  1522. package/dist/components/features/comments/comments-provider.d.ts.map +1 -0
  1523. package/dist/components/features/comments/comments.d.ts +5 -0
  1524. package/dist/components/features/comments/comments.d.ts.map +1 -0
  1525. package/dist/components/features/comments/comments.strings.d.ts +71 -0
  1526. package/dist/components/features/comments/comments.strings.d.ts.map +1 -0
  1527. package/dist/components/features/comments/comments.types.d.ts +271 -0
  1528. package/dist/components/features/comments/comments.types.d.ts.map +1 -0
  1529. package/dist/components/features/comments/hooks/index.d.ts +6 -0
  1530. package/dist/components/features/comments/hooks/index.d.ts.map +1 -0
  1531. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +29 -0
  1532. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts.map +1 -0
  1533. package/dist/components/features/comments/hooks/use-comments.d.ts +33 -0
  1534. package/dist/components/features/comments/hooks/use-comments.d.ts.map +1 -0
  1535. package/dist/components/features/comments/index.cjs +1 -0
  1536. package/dist/components/features/comments/index.d.ts +9 -0
  1537. package/dist/components/features/comments/index.d.ts.map +1 -0
  1538. package/dist/components/features/comments/index.js +3 -0
  1539. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +17 -0
  1540. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts.map +1 -0
  1541. package/dist/components/features/comments/partials/comment-composer.d.ts +11 -0
  1542. package/dist/components/features/comments/partials/comment-composer.d.ts.map +1 -0
  1543. package/dist/components/features/comments/partials/comment-content.d.ts +19 -0
  1544. package/dist/components/features/comments/partials/comment-content.d.ts.map +1 -0
  1545. package/dist/components/features/comments/partials/comment-empty.d.ts +9 -0
  1546. package/dist/components/features/comments/partials/comment-empty.d.ts.map +1 -0
  1547. package/dist/components/features/comments/partials/comment-item.d.ts +4 -0
  1548. package/dist/components/features/comments/partials/comment-item.d.ts.map +1 -0
  1549. package/dist/components/features/comments/partials/comment-timeline.d.ts +4 -0
  1550. package/dist/components/features/comments/partials/comment-timeline.d.ts.map +1 -0
  1551. package/dist/components/features/comments/partials/index.d.ts +10 -0
  1552. package/dist/components/features/comments/partials/index.d.ts.map +1 -0
  1553. package/dist/components/features/event-log/event-log.d.ts +9 -0
  1554. package/dist/components/features/event-log/event-log.d.ts.map +1 -0
  1555. package/dist/components/features/event-log/event-log.strings.d.ts +18 -0
  1556. package/dist/components/features/event-log/event-log.strings.d.ts.map +1 -0
  1557. package/dist/components/features/event-log/event-log.types.d.ts +110 -0
  1558. package/dist/components/features/event-log/event-log.types.d.ts.map +1 -0
  1559. package/dist/components/features/event-log/index.cjs +2 -0
  1560. package/dist/components/features/event-log/index.cjs.map +1 -0
  1561. package/dist/components/features/event-log/index.d.ts +5 -0
  1562. package/dist/components/features/event-log/index.d.ts.map +1 -0
  1563. package/dist/components/features/event-log/index.js +201 -0
  1564. package/dist/components/features/event-log/index.js.map +1 -0
  1565. package/dist/components/features/event-log/partials/event-log-event-row.d.ts +11 -0
  1566. package/dist/components/features/event-log/partials/event-log-event-row.d.ts.map +1 -0
  1567. package/dist/components/features/filters/facets/async-select-facet.d.ts +26 -0
  1568. package/dist/components/features/filters/facets/async-select-facet.d.ts.map +1 -0
  1569. package/dist/components/features/filters/facets/date-facet.d.ts +16 -0
  1570. package/dist/components/features/filters/facets/date-facet.d.ts.map +1 -0
  1571. package/dist/components/features/filters/facets/range-facet.d.ts +28 -0
  1572. package/dist/components/features/filters/facets/range-facet.d.ts.map +1 -0
  1573. package/dist/components/features/filters/facets/search-facet.d.ts +24 -0
  1574. package/dist/components/features/filters/facets/search-facet.d.ts.map +1 -0
  1575. package/dist/components/features/filters/facets/select-facet.d.ts +17 -0
  1576. package/dist/components/features/filters/facets/select-facet.d.ts.map +1 -0
  1577. package/dist/components/features/filters/facets/tags-facet.d.ts +24 -0
  1578. package/dist/components/features/filters/facets/tags-facet.d.ts.map +1 -0
  1579. package/dist/components/features/filters/filter-context.d.ts +52 -0
  1580. package/dist/components/features/filters/filter-context.d.ts.map +1 -0
  1581. package/dist/components/features/filters/filter-layout.d.ts +14 -0
  1582. package/dist/components/features/filters/filter-layout.d.ts.map +1 -0
  1583. package/dist/components/features/filters/filters.strings.d.ts +102 -0
  1584. package/dist/components/features/filters/filters.strings.d.ts.map +1 -0
  1585. package/dist/components/features/filters/filters.types.d.ts +188 -0
  1586. package/dist/components/features/filters/filters.types.d.ts.map +1 -0
  1587. package/dist/components/features/filters/hooks/index.d.ts +4 -0
  1588. package/dist/components/features/filters/hooks/index.d.ts.map +1 -0
  1589. package/dist/components/features/filters/hooks/use-async-options.d.ts +12 -0
  1590. package/dist/components/features/filters/hooks/use-async-options.d.ts.map +1 -0
  1591. package/dist/components/features/filters/hooks/use-filter-groups.d.ts +17 -0
  1592. package/dist/components/features/filters/hooks/use-filter-groups.d.ts.map +1 -0
  1593. package/dist/components/features/filters/index.cjs +2 -0
  1594. package/dist/components/features/filters/index.cjs.map +1 -0
  1595. package/dist/components/features/filters/index.d.ts +26 -0
  1596. package/dist/components/features/filters/index.d.ts.map +1 -0
  1597. package/dist/components/features/filters/index.js +2023 -0
  1598. package/dist/components/features/filters/index.js.map +1 -0
  1599. package/dist/components/features/filters/operator-options.d.ts +10 -0
  1600. package/dist/components/features/filters/operator-options.d.ts.map +1 -0
  1601. package/dist/components/features/filters/partials/active-filter-item.d.ts +27 -0
  1602. package/dist/components/features/filters/partials/active-filter-item.d.ts.map +1 -0
  1603. package/dist/components/features/filters/partials/async-filter-content.d.ts +18 -0
  1604. package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -0
  1605. package/dist/components/features/filters/partials/date-filter-content.d.ts +11 -0
  1606. package/dist/components/features/filters/partials/date-filter-content.d.ts.map +1 -0
  1607. package/dist/components/features/filters/partials/filter-error-boundary.d.ts +9 -0
  1608. package/dist/components/features/filters/partials/filter-error-boundary.d.ts.map +1 -0
  1609. package/dist/components/features/filters/partials/filter-list-content.d.ts +22 -0
  1610. package/dist/components/features/filters/partials/filter-list-content.d.ts.map +1 -0
  1611. package/dist/components/features/filters/partials/filter-list-item.d.ts +18 -0
  1612. package/dist/components/features/filters/partials/filter-list-item.d.ts.map +1 -0
  1613. package/dist/components/features/filters/partials/filter-operator-select.d.ts +21 -0
  1614. package/dist/components/features/filters/partials/filter-operator-select.d.ts.map +1 -0
  1615. package/dist/components/features/filters/partials/filter-pill.d.ts +22 -0
  1616. package/dist/components/features/filters/partials/filter-pill.d.ts.map +1 -0
  1617. package/dist/components/features/filters/partials/filter-popover-content.d.ts +28 -0
  1618. package/dist/components/features/filters/partials/filter-popover-content.d.ts.map +1 -0
  1619. package/dist/components/features/filters/partials/filter-tabs.d.ts +14 -0
  1620. package/dist/components/features/filters/partials/filter-tabs.d.ts.map +1 -0
  1621. package/dist/components/features/filters/partials/filter-value-display.d.ts +21 -0
  1622. package/dist/components/features/filters/partials/filter-value-display.d.ts.map +1 -0
  1623. package/dist/components/features/filters/partials/filters-button.d.ts +26 -0
  1624. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -0
  1625. package/dist/components/features/filters/partials/index.d.ts +15 -0
  1626. package/dist/components/features/filters/partials/index.d.ts.map +1 -0
  1627. package/dist/components/features/filters/partials/regular-filter-content.d.ts +25 -0
  1628. package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -0
  1629. package/dist/components/features/filters/partials/search-filters-list.d.ts +23 -0
  1630. package/dist/components/features/filters/partials/search-filters-list.d.ts.map +1 -0
  1631. package/dist/components/features/filters/partials/tags-filter-content.d.ts +25 -0
  1632. package/dist/components/features/filters/partials/tags-filter-content.d.ts.map +1 -0
  1633. package/dist/components/features/filters/utils/filter-utils.d.ts +38 -0
  1634. package/dist/components/features/filters/utils/filter-utils.d.ts.map +1 -0
  1635. package/dist/components/features/filters/validators.d.ts +51 -0
  1636. package/dist/components/features/filters/validators.d.ts.map +1 -0
  1637. package/dist/components/features/global-search/global-search.d.ts +32 -0
  1638. package/dist/components/features/global-search/global-search.d.ts.map +1 -0
  1639. package/dist/components/features/global-search/global-search.strings.d.ts +37 -0
  1640. package/dist/components/features/global-search/global-search.strings.d.ts.map +1 -0
  1641. package/dist/components/features/global-search/global-search.types.d.ts +99 -0
  1642. package/dist/components/features/global-search/global-search.types.d.ts.map +1 -0
  1643. package/dist/components/features/global-search/hooks/index.d.ts +3 -0
  1644. package/dist/components/features/global-search/hooks/index.d.ts.map +1 -0
  1645. package/dist/components/features/global-search/hooks/use-global-search.d.ts +34 -0
  1646. package/dist/components/features/global-search/hooks/use-global-search.d.ts.map +1 -0
  1647. package/dist/components/features/global-search/index.cjs +2 -0
  1648. package/dist/components/features/global-search/index.cjs.map +1 -0
  1649. package/dist/components/features/global-search/index.d.ts +8 -0
  1650. package/dist/components/features/global-search/index.d.ts.map +1 -0
  1651. package/dist/components/features/global-search/index.js +565 -0
  1652. package/dist/components/features/global-search/index.js.map +1 -0
  1653. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +6 -0
  1654. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts.map +1 -0
  1655. package/dist/components/features/global-search/partials/global-search-footer.d.ts +10 -0
  1656. package/dist/components/features/global-search/partials/global-search-footer.d.ts.map +1 -0
  1657. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +12 -0
  1658. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts.map +1 -0
  1659. package/dist/components/features/global-search/partials/global-search-input.d.ts +12 -0
  1660. package/dist/components/features/global-search/partials/global-search-input.d.ts.map +1 -0
  1661. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +15 -0
  1662. package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -0
  1663. package/dist/components/features/global-search/partials/global-search-tabs.d.ts +12 -0
  1664. package/dist/components/features/global-search/partials/global-search-tabs.d.ts.map +1 -0
  1665. package/dist/components/features/global-search/partials/index.d.ts +10 -0
  1666. package/dist/components/features/global-search/partials/index.d.ts.map +1 -0
  1667. package/dist/components/features/global-search/partials/tone-palettes.d.ts +4 -0
  1668. package/dist/components/features/global-search/partials/tone-palettes.d.ts.map +1 -0
  1669. package/dist/components/features/index.d.ts.map +1 -0
  1670. package/dist/components/features/kanban/hooks/index.d.ts +2 -0
  1671. package/dist/components/features/kanban/hooks/index.d.ts.map +1 -0
  1672. package/dist/components/features/kanban/hooks/use-kanban.d.ts +33 -0
  1673. package/dist/components/features/kanban/hooks/use-kanban.d.ts.map +1 -0
  1674. package/dist/components/features/kanban/index.cjs +2 -0
  1675. package/dist/components/features/kanban/index.cjs.map +1 -0
  1676. package/dist/components/features/kanban/index.d.ts +5 -0
  1677. package/dist/components/features/kanban/index.d.ts.map +1 -0
  1678. package/dist/components/features/kanban/index.js +322 -0
  1679. package/dist/components/features/kanban/index.js.map +1 -0
  1680. package/dist/components/features/kanban/kanban-context.d.ts +26 -0
  1681. package/dist/components/features/kanban/kanban-context.d.ts.map +1 -0
  1682. package/dist/components/features/kanban/kanban.d.ts +39 -0
  1683. package/dist/components/features/kanban/kanban.d.ts.map +1 -0
  1684. package/dist/components/features/kanban/kanban.strings.d.ts +25 -0
  1685. package/dist/components/features/kanban/kanban.strings.d.ts.map +1 -0
  1686. package/dist/components/features/kanban/kanban.types.d.ts +157 -0
  1687. package/dist/components/features/kanban/kanban.types.d.ts.map +1 -0
  1688. package/dist/components/features/mentions/hooks/index.d.ts +3 -0
  1689. package/dist/components/features/mentions/hooks/index.d.ts.map +1 -0
  1690. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +35 -0
  1691. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts.map +1 -0
  1692. package/dist/components/features/mentions/hooks/use-mentions.d.ts +36 -0
  1693. package/dist/components/features/mentions/hooks/use-mentions.d.ts.map +1 -0
  1694. package/dist/components/features/mentions/index.cjs +1 -0
  1695. package/dist/components/features/mentions/index.d.ts +6 -0
  1696. package/dist/components/features/mentions/index.d.ts.map +1 -0
  1697. package/dist/components/features/mentions/index.js +2 -0
  1698. package/dist/components/features/mentions/mentions.strings.d.ts +23 -0
  1699. package/dist/components/features/mentions/mentions.strings.d.ts.map +1 -0
  1700. package/dist/components/features/mentions/mentions.types.d.ts +72 -0
  1701. package/dist/components/features/mentions/mentions.types.d.ts.map +1 -0
  1702. package/dist/components/features/mentions/partials/index.d.ts +5 -0
  1703. package/dist/components/features/mentions/partials/index.d.ts.map +1 -0
  1704. package/dist/components/features/mentions/partials/mention-chip.d.ts +14 -0
  1705. package/dist/components/features/mentions/partials/mention-chip.d.ts.map +1 -0
  1706. package/dist/components/features/mentions/partials/mention-content.d.ts +25 -0
  1707. package/dist/components/features/mentions/partials/mention-content.d.ts.map +1 -0
  1708. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +27 -0
  1709. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts.map +1 -0
  1710. package/dist/components/features/mentions/partials/mention-picker.d.ts +20 -0
  1711. package/dist/components/features/mentions/partials/mention-picker.d.ts.map +1 -0
  1712. package/dist/components/features/mentions/utils/build-mention-html.d.ts +25 -0
  1713. package/dist/components/features/mentions/utils/build-mention-html.d.ts.map +1 -0
  1714. package/dist/components/features/mentions/utils/index.d.ts +4 -0
  1715. package/dist/components/features/mentions/utils/index.d.ts.map +1 -0
  1716. package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts +3 -0
  1717. package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts.map +1 -0
  1718. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +17 -0
  1719. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts.map +1 -0
  1720. package/dist/components/features/overlays/alert-dialog.d.ts +6 -0
  1721. package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -0
  1722. package/dist/components/features/overlays/dialog.d.ts +6 -0
  1723. package/dist/components/features/overlays/dialog.d.ts.map +1 -0
  1724. package/dist/components/features/overlays/drawer.d.ts +6 -0
  1725. package/dist/components/features/overlays/drawer.d.ts.map +1 -0
  1726. package/dist/components/features/overlays/hooks/index.d.ts +3 -0
  1727. package/dist/components/features/overlays/hooks/index.d.ts.map +1 -0
  1728. package/dist/components/features/overlays/hooks/use-native-dialog.d.ts +25 -0
  1729. package/dist/components/features/overlays/hooks/use-native-dialog.d.ts.map +1 -0
  1730. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +24 -0
  1731. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts.map +1 -0
  1732. package/dist/components/features/overlays/index.cjs +1 -0
  1733. package/dist/components/features/overlays/index.d.ts +7 -0
  1734. package/dist/components/features/overlays/index.d.ts.map +1 -0
  1735. package/dist/components/features/overlays/index.js +2 -0
  1736. package/dist/components/features/overlays/overlays.strings.d.ts +17 -0
  1737. package/dist/components/features/overlays/overlays.strings.d.ts.map +1 -0
  1738. package/dist/components/features/overlays/overlays.types.d.ts +57 -0
  1739. package/dist/components/features/overlays/overlays.types.d.ts.map +1 -0
  1740. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +6 -0
  1741. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts.map +1 -0
  1742. package/dist/components/features/rich-text-editor/index.cjs +2 -0
  1743. package/dist/components/features/rich-text-editor/index.cjs.map +1 -0
  1744. package/dist/components/features/rich-text-editor/index.d.ts +6 -0
  1745. package/dist/components/features/rich-text-editor/index.d.ts.map +1 -0
  1746. package/dist/components/features/rich-text-editor/index.js +20 -0
  1747. package/dist/components/features/rich-text-editor/index.js.map +1 -0
  1748. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +23 -0
  1749. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts.map +1 -0
  1750. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +24 -0
  1751. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts.map +1 -0
  1752. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +8 -0
  1753. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts.map +1 -0
  1754. package/dist/components/features/rich-text-editor/partials/index.d.ts +7 -0
  1755. package/dist/components/features/rich-text-editor/partials/index.d.ts.map +1 -0
  1756. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +9 -0
  1757. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts.map +1 -0
  1758. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +4 -0
  1759. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts.map +1 -0
  1760. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +24 -0
  1761. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts.map +1 -0
  1762. package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +4 -0
  1763. package/dist/components/features/rich-text-editor/rich-text-editor.d.ts.map +1 -0
  1764. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +29 -0
  1765. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts.map +1 -0
  1766. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +97 -0
  1767. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts.map +1 -0
  1768. package/dist/components/features/suggestions/hooks/index.d.ts +2 -0
  1769. package/dist/components/features/suggestions/hooks/index.d.ts.map +1 -0
  1770. package/dist/components/features/suggestions/hooks/use-suggestions.d.ts +10 -0
  1771. package/dist/components/features/suggestions/hooks/use-suggestions.d.ts.map +1 -0
  1772. package/dist/components/features/suggestions/index.cjs +2 -0
  1773. package/dist/components/features/suggestions/index.cjs.map +1 -0
  1774. package/dist/components/features/suggestions/index.d.ts +5 -0
  1775. package/dist/components/features/suggestions/index.d.ts.map +1 -0
  1776. package/dist/components/features/suggestions/index.js +100 -0
  1777. package/dist/components/features/suggestions/index.js.map +1 -0
  1778. package/dist/components/features/suggestions/suggestions.d.ts +6 -0
  1779. package/dist/components/features/suggestions/suggestions.d.ts.map +1 -0
  1780. package/dist/components/features/suggestions/suggestions.strings.d.ts +15 -0
  1781. package/dist/components/features/suggestions/suggestions.strings.d.ts.map +1 -0
  1782. package/dist/components/features/suggestions/suggestions.types.d.ts +35 -0
  1783. package/dist/components/features/suggestions/suggestions.types.d.ts.map +1 -0
  1784. package/dist/components/features/sync/index.cjs +2 -0
  1785. package/dist/components/features/sync/index.cjs.map +1 -0
  1786. package/dist/components/features/sync/index.d.ts +4 -0
  1787. package/dist/components/features/sync/index.d.ts.map +1 -0
  1788. package/dist/components/features/sync/index.js +65 -0
  1789. package/dist/components/features/sync/index.js.map +1 -0
  1790. package/dist/components/features/sync/sync-range-dialog-form.d.ts +6 -0
  1791. package/dist/components/features/sync/sync-range-dialog-form.d.ts.map +1 -0
  1792. package/dist/components/features/sync/sync.strings.d.ts +13 -0
  1793. package/dist/components/features/sync/sync.strings.d.ts.map +1 -0
  1794. package/dist/components/features/sync/sync.types.d.ts +22 -0
  1795. package/dist/components/features/sync/sync.types.d.ts.map +1 -0
  1796. package/dist/components/layout/containers/containers.types.d.ts +28 -0
  1797. package/dist/components/layout/containers/containers.types.d.ts.map +1 -0
  1798. package/dist/components/layout/containers/content-container.d.ts +3 -0
  1799. package/dist/components/layout/containers/content-container.d.ts.map +1 -0
  1800. package/dist/components/layout/containers/index.cjs +1 -0
  1801. package/dist/components/layout/containers/index.d.ts +4 -0
  1802. package/dist/components/layout/containers/index.d.ts.map +1 -0
  1803. package/dist/components/layout/containers/index.js +3 -0
  1804. package/dist/components/layout/containers/section.d.ts +3 -0
  1805. package/dist/components/layout/containers/section.d.ts.map +1 -0
  1806. package/dist/components/layout/header/header.d.ts +3 -0
  1807. package/dist/components/layout/header/header.d.ts.map +1 -0
  1808. package/dist/components/layout/header/header.types.d.ts +115 -0
  1809. package/dist/components/layout/header/header.types.d.ts.map +1 -0
  1810. package/dist/components/layout/header/index.cjs +1 -0
  1811. package/dist/components/layout/header/index.d.ts +8 -0
  1812. package/dist/components/layout/header/index.d.ts.map +1 -0
  1813. package/dist/components/layout/header/index.js +2 -0
  1814. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +3 -0
  1815. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts.map +1 -0
  1816. package/dist/components/layout/header/partials/header-notifications.d.ts +5 -0
  1817. package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -0
  1818. package/dist/components/layout/header/partials/header-search.d.ts +3 -0
  1819. package/dist/components/layout/header/partials/header-search.d.ts.map +1 -0
  1820. package/dist/components/layout/header/partials/header-user-menu.d.ts +3 -0
  1821. package/dist/components/layout/header/partials/header-user-menu.d.ts.map +1 -0
  1822. package/dist/components/layout/hooks/index.cjs +1 -0
  1823. package/dist/components/layout/hooks/index.d.ts +4 -0
  1824. package/dist/components/layout/hooks/index.d.ts.map +1 -0
  1825. package/dist/components/layout/hooks/index.js +2 -0
  1826. package/dist/components/layout/hooks/use-active-path.d.ts +2 -0
  1827. package/dist/components/layout/hooks/use-active-path.d.ts.map +1 -0
  1828. package/dist/components/layout/hooks/use-command-shortcut.d.ts +8 -0
  1829. package/dist/components/layout/hooks/use-command-shortcut.d.ts.map +1 -0
  1830. package/dist/components/layout/hooks/use-layout-link.d.ts +3 -0
  1831. package/dist/components/layout/hooks/use-layout-link.d.ts.map +1 -0
  1832. package/dist/components/layout/index.cjs +1 -0
  1833. package/dist/components/layout/index.d.ts +20 -0
  1834. package/dist/components/layout/index.d.ts.map +1 -0
  1835. package/dist/components/layout/index.js +7 -0
  1836. package/dist/components/layout/layout.types.d.ts +86 -0
  1837. package/dist/components/layout/layout.types.d.ts.map +1 -0
  1838. package/dist/components/layout/page/index.cjs +1 -0
  1839. package/dist/components/layout/page/index.d.ts +6 -0
  1840. package/dist/components/layout/page/index.d.ts.map +1 -0
  1841. package/dist/components/layout/page/index.js +2 -0
  1842. package/dist/components/layout/page/page-content.d.ts +12 -0
  1843. package/dist/components/layout/page/page-content.d.ts.map +1 -0
  1844. package/dist/components/layout/page/page.d.ts +3 -0
  1845. package/dist/components/layout/page/page.d.ts.map +1 -0
  1846. package/dist/components/layout/page/page.types.d.ts +94 -0
  1847. package/dist/components/layout/page/page.types.d.ts.map +1 -0
  1848. package/dist/components/layout/page/partials/page-actions.d.ts +3 -0
  1849. package/dist/components/layout/page/partials/page-actions.d.ts.map +1 -0
  1850. package/dist/components/layout/page/partials/page-header.d.ts +3 -0
  1851. package/dist/components/layout/page/partials/page-header.d.ts.map +1 -0
  1852. package/dist/components/layout/sidebar/app-sidebar.d.ts +3 -0
  1853. package/dist/components/layout/sidebar/app-sidebar.d.ts.map +1 -0
  1854. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +5 -0
  1855. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -0
  1856. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +8 -0
  1857. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts.map +1 -0
  1858. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +3 -0
  1859. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts.map +1 -0
  1860. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +21 -0
  1861. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts.map +1 -0
  1862. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +7 -0
  1863. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts.map +1 -0
  1864. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +3 -0
  1865. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts.map +1 -0
  1866. package/dist/components/layout/sidebar/index.cjs +1 -0
  1867. package/dist/components/layout/sidebar/index.d.ts +12 -0
  1868. package/dist/components/layout/sidebar/index.d.ts.map +1 -0
  1869. package/dist/components/layout/sidebar/index.js +3 -0
  1870. package/dist/components/layout/sidebar/sidebar.context.d.ts +12 -0
  1871. package/dist/components/layout/sidebar/sidebar.context.d.ts.map +1 -0
  1872. package/dist/components/layout/sidebar/sidebar.d.ts +16 -0
  1873. package/dist/components/layout/sidebar/sidebar.d.ts.map +1 -0
  1874. package/dist/components/layout/sidebar/sidebar.settings.d.ts +11 -0
  1875. package/dist/components/layout/sidebar/sidebar.settings.d.ts.map +1 -0
  1876. package/dist/components/layout/sidebar/sidebar.types.d.ts +122 -0
  1877. package/dist/components/layout/sidebar/sidebar.types.d.ts.map +1 -0
  1878. package/dist/components/layout/sidebar/sidebar.utils.d.ts +24 -0
  1879. package/dist/components/layout/sidebar/sidebar.utils.d.ts.map +1 -0
  1880. package/dist/components/typography/heading.d.ts +17 -0
  1881. package/dist/components/typography/heading.d.ts.map +1 -0
  1882. package/dist/components/typography/index.cjs +1 -0
  1883. package/dist/components/typography/index.d.ts +10 -0
  1884. package/dist/components/typography/index.d.ts.map +1 -0
  1885. package/dist/components/typography/index.js +3 -0
  1886. package/dist/components/typography/label.d.ts +13 -0
  1887. package/dist/components/typography/label.d.ts.map +1 -0
  1888. package/dist/components/typography/text-link.d.ts +52 -0
  1889. package/dist/components/typography/text-link.d.ts.map +1 -0
  1890. package/dist/components/typography/text.d.ts +48 -0
  1891. package/dist/components/typography/text.d.ts.map +1 -0
  1892. package/dist/components/typography/typography.d.ts +10 -0
  1893. package/dist/components/typography/typography.d.ts.map +1 -0
  1894. package/dist/components/ui/accordion.d.ts +7 -0
  1895. package/dist/components/ui/accordion.d.ts.map +1 -0
  1896. package/dist/components/ui/alert.d.ts +11 -0
  1897. package/dist/components/ui/alert.d.ts.map +1 -0
  1898. package/dist/components/ui/avatar.d.ts +12 -0
  1899. package/dist/components/ui/avatar.d.ts.map +1 -0
  1900. package/dist/components/ui/badge.d.ts +10 -0
  1901. package/dist/components/ui/badge.d.ts.map +1 -0
  1902. package/dist/components/ui/breadcrumb.d.ts +12 -0
  1903. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  1904. package/dist/components/ui/button-group.d.ts +11 -0
  1905. package/dist/components/ui/button-group.d.ts.map +1 -0
  1906. package/dist/components/ui/button.d.ts +9 -0
  1907. package/dist/components/ui/button.d.ts.map +1 -0
  1908. package/dist/components/ui/calendar.d.ts +11 -0
  1909. package/dist/components/ui/calendar.d.ts.map +1 -0
  1910. package/dist/components/ui/card.d.ts +12 -0
  1911. package/dist/components/ui/card.d.ts.map +1 -0
  1912. package/dist/components/ui/chart.d.ts +59 -0
  1913. package/dist/components/ui/chart.d.ts.map +1 -0
  1914. package/dist/components/ui/checkbox.d.ts +7 -0
  1915. package/dist/components/ui/checkbox.d.ts.map +1 -0
  1916. package/dist/components/ui/collapsible.d.ts +9 -0
  1917. package/dist/components/ui/collapsible.d.ts.map +1 -0
  1918. package/dist/components/ui/combobox.d.ts +41 -0
  1919. package/dist/components/ui/combobox.d.ts.map +1 -0
  1920. package/dist/components/ui/command.d.ts +20 -0
  1921. package/dist/components/ui/command.d.ts.map +1 -0
  1922. package/dist/components/ui/context-menu.d.ts +26 -0
  1923. package/dist/components/ui/context-menu.d.ts.map +1 -0
  1924. package/dist/components/ui/dialog.d.ts +24 -0
  1925. package/dist/components/ui/dialog.d.ts.map +1 -0
  1926. package/dist/components/ui/dropdown-menu.d.ts +34 -0
  1927. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  1928. package/dist/components/ui/empty.d.ts +12 -0
  1929. package/dist/components/ui/empty.d.ts.map +1 -0
  1930. package/dist/components/ui/hover-card.d.ts +6 -0
  1931. package/dist/components/ui/hover-card.d.ts.map +1 -0
  1932. package/dist/components/ui/input-group.d.ts +19 -0
  1933. package/dist/components/ui/input-group.d.ts.map +1 -0
  1934. package/dist/components/ui/input.d.ts +4 -0
  1935. package/dist/components/ui/input.d.ts.map +1 -0
  1936. package/dist/components/ui/item.d.ts +23 -0
  1937. package/dist/components/ui/item.d.ts.map +1 -0
  1938. package/dist/components/ui/pagination.d.ts +18 -0
  1939. package/dist/components/ui/pagination.d.ts.map +1 -0
  1940. package/dist/components/ui/popover.d.ts +20 -0
  1941. package/dist/components/ui/popover.d.ts.map +1 -0
  1942. package/dist/components/ui/progress.d.ts +8 -0
  1943. package/dist/components/ui/progress.d.ts.map +1 -0
  1944. package/dist/components/ui/radio-group.d.ts +6 -0
  1945. package/dist/components/ui/radio-group.d.ts.map +1 -0
  1946. package/dist/components/ui/scroll-area.d.ts +5 -0
  1947. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  1948. package/dist/components/ui/select.d.ts +16 -0
  1949. package/dist/components/ui/select.d.ts.map +1 -0
  1950. package/dist/components/ui/separator.d.ts +4 -0
  1951. package/dist/components/ui/separator.d.ts.map +1 -0
  1952. package/dist/components/ui/sheet.d.ts +23 -0
  1953. package/dist/components/ui/sheet.d.ts.map +1 -0
  1954. package/dist/components/ui/sidebar.d.ts +64 -0
  1955. package/dist/components/ui/sidebar.d.ts.map +1 -0
  1956. package/dist/components/ui/skeleton.d.ts +3 -0
  1957. package/dist/components/ui/skeleton.d.ts.map +1 -0
  1958. package/dist/components/ui/slider.d.ts +4 -0
  1959. package/dist/components/ui/slider.d.ts.map +1 -0
  1960. package/dist/components/ui/slot.d.ts +13 -0
  1961. package/dist/components/ui/slot.d.ts.map +1 -0
  1962. package/dist/components/ui/sonner.d.ts +4 -0
  1963. package/dist/components/ui/sonner.d.ts.map +1 -0
  1964. package/dist/components/ui/spinner.d.ts +3 -0
  1965. package/dist/components/ui/spinner.d.ts.map +1 -0
  1966. package/dist/components/ui/switch.d.ts +6 -0
  1967. package/dist/components/ui/switch.d.ts.map +1 -0
  1968. package/dist/components/ui/table.d.ts +14 -0
  1969. package/dist/components/ui/table.d.ts.map +1 -0
  1970. package/dist/components/ui/tabs.d.ts +11 -0
  1971. package/dist/components/ui/tabs.d.ts.map +1 -0
  1972. package/dist/components/ui/textarea.d.ts +4 -0
  1973. package/dist/components/ui/textarea.d.ts.map +1 -0
  1974. package/dist/components/ui/toggle-group.d.ts +12 -0
  1975. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  1976. package/dist/components/ui/toggle.d.ts +9 -0
  1977. package/dist/components/ui/toggle.d.ts.map +1 -0
  1978. package/dist/components/ui/tooltip.d.ts +11 -0
  1979. package/dist/components/ui/tooltip.d.ts.map +1 -0
  1980. package/dist/favicon.svg +1 -0
  1981. package/dist/files/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  1982. package/dist/files/inter-cyrillic-wght-normal.woff2 +0 -0
  1983. package/dist/files/inter-greek-ext-wght-normal.woff2 +0 -0
  1984. package/dist/files/inter-greek-wght-normal.woff2 +0 -0
  1985. package/dist/files/inter-latin-ext-wght-normal.woff2 +0 -0
  1986. package/dist/files/inter-latin-wght-normal.woff2 +0 -0
  1987. package/dist/files/inter-vietnamese-wght-normal.woff2 +0 -0
  1988. package/dist/hooks/use-debounce.d.ts +2 -0
  1989. package/dist/hooks/use-debounce.d.ts.map +1 -0
  1990. package/dist/hooks/use-files.d.ts +29 -0
  1991. package/dist/hooks/use-files.d.ts.map +1 -0
  1992. package/dist/hooks/use-mobile.d.ts +2 -0
  1993. package/dist/hooks/use-mobile.d.ts.map +1 -0
  1994. package/dist/hooks/useFormErrors.d.ts +8 -0
  1995. package/dist/hooks/useFormErrors.d.ts.map +1 -0
  1996. package/dist/icons.svg +24 -0
  1997. package/dist/images/layers-2x.png +0 -0
  1998. package/dist/images/layers.png +0 -0
  1999. package/dist/images/marker-icon-2x.png +0 -0
  2000. package/dist/images/marker-icon.png +0 -0
  2001. package/dist/images/marker-shadow.png +0 -0
  2002. package/dist/images/spritesheet-2x.png +0 -0
  2003. package/dist/images/spritesheet.png +0 -0
  2004. package/dist/images/spritesheet.svg +156 -0
  2005. package/dist/index.cjs +1 -0
  2006. package/dist/index.d.ts +12 -0
  2007. package/dist/index.d.ts.map +1 -0
  2008. package/dist/index.js +4 -0
  2009. package/dist/lib/format.d.ts +41 -0
  2010. package/dist/lib/format.d.ts.map +1 -0
  2011. package/dist/lib/sanitize-html.d.ts +3 -0
  2012. package/dist/lib/sanitize-html.d.ts.map +1 -0
  2013. package/dist/lib/strings.cjs +2 -0
  2014. package/dist/lib/strings.cjs.map +1 -0
  2015. package/dist/lib/strings.d.ts +11 -0
  2016. package/dist/lib/strings.d.ts.map +1 -0
  2017. package/dist/lib/strings.js +25 -0
  2018. package/dist/lib/strings.js.map +1 -0
  2019. package/dist/lib/ui-provider/defaults.d.ts +3 -0
  2020. package/dist/lib/ui-provider/defaults.d.ts.map +1 -0
  2021. package/dist/lib/ui-provider/hooks.d.ts +16 -0
  2022. package/dist/lib/ui-provider/hooks.d.ts.map +1 -0
  2023. package/dist/lib/ui-provider/index.cjs +1 -0
  2024. package/dist/lib/ui-provider/index.d.ts +29 -0
  2025. package/dist/lib/ui-provider/index.d.ts.map +1 -0
  2026. package/dist/lib/ui-provider/index.js +2 -0
  2027. package/dist/lib/ui-provider/provider.d.ts +25 -0
  2028. package/dist/lib/ui-provider/provider.d.ts.map +1 -0
  2029. package/dist/lib/ui-provider/store.d.ts +26 -0
  2030. package/dist/lib/ui-provider/store.d.ts.map +1 -0
  2031. package/dist/lib/ui-provider/types.d.ts +202 -0
  2032. package/dist/lib/ui-provider/types.d.ts.map +1 -0
  2033. package/dist/lib/utils.cjs +2 -0
  2034. package/dist/lib/utils.cjs.map +1 -0
  2035. package/dist/lib/utils.d.ts +3 -0
  2036. package/dist/lib/utils.d.ts.map +1 -0
  2037. package/dist/lib/utils.js +26 -0
  2038. package/dist/lib/utils.js.map +1 -0
  2039. package/dist/showcase/assets/AreaChart-D-RqNtqG.js +6 -0
  2040. package/dist/showcase/assets/CSPContext-t69BXyB7.js +1 -0
  2041. package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +1 -0
  2042. package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +1 -0
  2043. package/dist/showcase/assets/Control.FullScreen-B9vseC57.js +1 -0
  2044. package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +1 -0
  2045. package/dist/showcase/assets/FormContext-CXdwDz7F.js +1 -0
  2046. package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +1 -0
  2047. package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +1 -0
  2048. package/dist/showcase/assets/Separator-C9vXwWmZ.js +1 -0
  2049. package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +1 -0
  2050. package/dist/showcase/assets/accordion-DzkNgNcB.js +172 -0
  2051. package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +1 -0
  2052. package/dist/showcase/assets/action-menu-CyA2e9TF.js +1 -0
  2053. package/dist/showcase/assets/activities-Dt-dO5ew.js +501 -0
  2054. package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +1 -0
  2055. package/dist/showcase/assets/admin-C2SeJmE7.js +80 -0
  2056. package/dist/showcase/assets/ai-Cwo0h_Xn.js +41 -0
  2057. package/dist/showcase/assets/ai-artifact-3UJofyU5.js +2 -0
  2058. package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +568 -0
  2059. package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +379 -0
  2060. package/dist/showcase/assets/ai-new-DuznZydd.js +167 -0
  2061. package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +1 -0
  2062. package/dist/showcase/assets/alert-CUGGckOX.js +1 -0
  2063. package/dist/showcase/assets/alert-tWped3Sw.js +59 -0
  2064. package/dist/showcase/assets/analytics.strings-BcotPUad.js +1 -0
  2065. package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +73 -0
  2066. package/dist/showcase/assets/arrow-down-CfwCPcHL.js +1 -0
  2067. package/dist/showcase/assets/arrow-left-BKx9qNX6.js +1 -0
  2068. package/dist/showcase/assets/arrow-right-DlEpbqEk.js +1 -0
  2069. package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +1 -0
  2070. package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +1 -0
  2071. package/dist/showcase/assets/avatar-BuZ3zTbH.js +57 -0
  2072. package/dist/showcase/assets/avatar-DR2mqPpY.js +1 -0
  2073. package/dist/showcase/assets/badge-D1HLfP93.js +28 -0
  2074. package/dist/showcase/assets/badge-check-oP2z_95u.js +1 -0
  2075. package/dist/showcase/assets/bell-BTX2D-ES.js +1 -0
  2076. package/dist/showcase/assets/bot-CKh5XgUG.js +1 -0
  2077. package/dist/showcase/assets/box-F1uaZ6iw.js +1 -0
  2078. package/dist/showcase/assets/brain-dD_ppLUa.js +1 -0
  2079. package/dist/showcase/assets/brand-zisZOFKf.js +40 -0
  2080. package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +52 -0
  2081. package/dist/showcase/assets/breadcrumb-fay5sLba.js +1 -0
  2082. package/dist/showcase/assets/breadcrumbs-DklRXepp.js +1 -0
  2083. package/dist/showcase/assets/briefcase-D9M4aNmi.js +1 -0
  2084. package/dist/showcase/assets/button-DbhXfR1N.js +44 -0
  2085. package/dist/showcase/assets/button-group-BpdhyMif.js +1 -0
  2086. package/dist/showcase/assets/buttons-XexbmUtN.js +259 -0
  2087. package/dist/showcase/assets/calendar-BADJgjpI.js +16 -0
  2088. package/dist/showcase/assets/calendar-Djh3xLVx.js +1 -0
  2089. package/dist/showcase/assets/calendar-dWZ2-0gU.js +1 -0
  2090. package/dist/showcase/assets/card-BUSAPPkx.js +1 -0
  2091. package/dist/showcase/assets/cards-DHBPe01w.js +328 -0
  2092. package/dist/showcase/assets/chart-column-6l5wIZ0h.js +1 -0
  2093. package/dist/showcase/assets/chevron-down-at2vrt1V.js +1 -0
  2094. package/dist/showcase/assets/chevron-left-DIs3WYNO.js +1 -0
  2095. package/dist/showcase/assets/chevron-right-BNy0Or0x.js +1 -0
  2096. package/dist/showcase/assets/chevron-up-CX7619BJ.js +1 -0
  2097. package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +1 -0
  2098. package/dist/showcase/assets/chunk-CilyBKbf.js +1 -0
  2099. package/dist/showcase/assets/circle-C0Yd1DDS.js +1 -0
  2100. package/dist/showcase/assets/circle-alert-DfQp_X3_.js +1 -0
  2101. package/dist/showcase/assets/circle-check-BkqQe1tv.js +1 -0
  2102. package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +1 -0
  2103. package/dist/showcase/assets/circle-dot-HeRgxZxN.js +1 -0
  2104. package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +1 -0
  2105. package/dist/showcase/assets/circle-x-CMzwDsaf.js +1 -0
  2106. package/dist/showcase/assets/clock-ynCzs_rR.js +1 -0
  2107. package/dist/showcase/assets/code-xml-B8aVstrJ.js +1 -0
  2108. package/dist/showcase/assets/collapsible-C8CKdiRn.js +27 -0
  2109. package/dist/showcase/assets/collapsible-u43HxDHB.js +1 -0
  2110. package/dist/showcase/assets/combobox-D-6ff0VG.js +622 -0
  2111. package/dist/showcase/assets/command-BsHudlBe.js +1 -0
  2112. package/dist/showcase/assets/command-DZqmBolX.js +45 -0
  2113. package/dist/showcase/assets/comment-composer-OnxlkC5y.js +1 -0
  2114. package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +1 -0
  2115. package/dist/showcase/assets/comments-BjIVksjE.js +349 -0
  2116. package/dist/showcase/assets/commerce-3T1GxvrA.js +78 -0
  2117. package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +179 -0
  2118. package/dist/showcase/assets/composite-mol0-2zZ.js +1 -0
  2119. package/dist/showcase/assets/contact-card-CWAANJqn.js +65 -0
  2120. package/dist/showcase/assets/content-container-D3Phw6h8.js +1 -0
  2121. package/dist/showcase/assets/copyable-BdzUH3U3.js +96 -0
  2122. package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +113 -0
  2123. package/dist/showcase/assets/cpu-CRrekbGQ.js +1 -0
  2124. package/dist/showcase/assets/credit-card--5vg7bQy.js +1 -0
  2125. package/dist/showcase/assets/currency-VuqnKj_Y.js +149 -0
  2126. package/dist/showcase/assets/customers-BETQwFRp.js +1 -0
  2127. package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +90 -0
  2128. package/dist/showcase/assets/database-Bnvw0wVV.js +1 -0
  2129. package/dist/showcase/assets/date-block-IhoCVl_d.js +1 -0
  2130. package/dist/showcase/assets/date-picker-DnJpsnaF.js +1 -0
  2131. package/dist/showcase/assets/date-pickers-CEbieq-R.js +110 -0
  2132. package/dist/showcase/assets/dense-info-B04QmrOd.js +106 -0
  2133. package/dist/showcase/assets/dialog-DotEO3IO.js +1 -0
  2134. package/dist/showcase/assets/display-hK7Dtm-B.js +392 -0
  2135. package/dist/showcase/assets/dist-DQgGKvzA.js +1 -0
  2136. package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +1 -0
  2137. package/dist/showcase/assets/download-CMrNgeil.js +1 -0
  2138. package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +1 -0
  2139. package/dist/showcase/assets/dropzone-v69fWHZJ.js +1 -0
  2140. package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +1 -0
  2141. package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +1 -0
  2142. package/dist/showcase/assets/empty-DYHzk-Gb.js +1 -0
  2143. package/dist/showcase/assets/empty-item-CTwvC_3M.js +49 -0
  2144. package/dist/showcase/assets/empty-state-eUgJ4h41.js +188 -0
  2145. package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +359 -0
  2146. package/dist/showcase/assets/esm-B7xAMXnv.js +2 -0
  2147. package/dist/showcase/assets/event-calendar-D2rjpzq1.js +138 -0
  2148. package/dist/showcase/assets/event-log-BxER62Ds.js +326 -0
  2149. package/dist/showcase/assets/example-DPfw-R7_.js +1 -0
  2150. package/dist/showcase/assets/external-link-DJNGkjZ0.js +1 -0
  2151. package/dist/showcase/assets/eye-BQU3UqWi.js +1 -0
  2152. package/dist/showcase/assets/feature-announcement-CjGQEODB.js +34 -0
  2153. package/dist/showcase/assets/fetchers-SLCIqgnM.js +1 -0
  2154. package/dist/showcase/assets/file-DBpbC8g-.js +1 -0
  2155. package/dist/showcase/assets/file-text-DokBif5V.js +1 -0
  2156. package/dist/showcase/assets/filters-DM2olMKy.js +78 -0
  2157. package/dist/showcase/assets/flag-hAuZbHU1.js +1 -0
  2158. package/dist/showcase/assets/folder-open-DqubQ0ts.js +1 -0
  2159. package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +1 -0
  2160. package/dist/showcase/assets/format-DoQ4Wqkq.js +1 -0
  2161. package/dist/showcase/assets/format-gCABLair.js +1 -0
  2162. package/dist/showcase/assets/format-metric-value-cyOYS377.js +1 -0
  2163. package/dist/showcase/assets/forms-FsAT0C-I.js +790 -0
  2164. package/dist/showcase/assets/generic-BUuo7j09.js +1 -0
  2165. package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +1 -0
  2166. package/dist/showcase/assets/gift-CS7Tg3kD.js +1 -0
  2167. package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +85 -0
  2168. package/dist/showcase/assets/git-branch-D4-6vv6t.js +1 -0
  2169. package/dist/showcase/assets/global-search-BUyhhsQv.js +90 -0
  2170. package/dist/showcase/assets/globe-CqLYhUfl.js +1 -0
  2171. package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +58 -0
  2172. package/dist/showcase/assets/header-notifications-BWla1yhM.js +1 -0
  2173. package/dist/showcase/assets/heart-DfZtXfIP.js +1 -0
  2174. package/dist/showcase/assets/house-DhIReDt8.js +1 -0
  2175. package/dist/showcase/assets/icon-badge-BgRFYZEc.js +1 -0
  2176. package/dist/showcase/assets/image-D_eNEZWQ.js +1 -0
  2177. package/dist/showcase/assets/inbox-5sFkO7gC.js +1 -0
  2178. package/dist/showcase/assets/index-B-Z7p0So.js +10 -0
  2179. package/dist/showcase/assets/index-Cu3Ssz5r.css +2 -0
  2180. package/dist/showcase/assets/inertValue-NU_Amr-x.js +1 -0
  2181. package/dist/showcase/assets/info-DyB6KH3Z.js +1 -0
  2182. package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +1 -0
  2183. package/dist/showcase/assets/input-BS64kyoq.js +1 -0
  2184. package/dist/showcase/assets/input-DWLyniGt.js +1 -0
  2185. package/dist/showcase/assets/input-group-BS8j5Eek.js +47 -0
  2186. package/dist/showcase/assets/input-group-B_E_3EGS.js +1 -0
  2187. package/dist/showcase/assets/inputs-DOQ2foig.js +49 -0
  2188. package/dist/showcase/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  2189. package/dist/showcase/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  2190. package/dist/showcase/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  2191. package/dist/showcase/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  2192. package/dist/showcase/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  2193. package/dist/showcase/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  2194. package/dist/showcase/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  2195. package/dist/showcase/assets/invoice-header-C2-uQE_s.js +36 -0
  2196. package/dist/showcase/assets/invoice-items-BUunRJqA.js +36 -0
  2197. package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +14 -0
  2198. package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +30 -0
  2199. package/dist/showcase/assets/isElementDisabled-BLmk_uhf.js +1 -0
  2200. package/dist/showcase/assets/isSameDay-rwvIyLOL.js +1 -0
  2201. package/dist/showcase/assets/isToday-CIAzBrb5.js +1 -0
  2202. package/dist/showcase/assets/italic-B02a4PdD.js +1 -0
  2203. package/dist/showcase/assets/item-C-0RObvI.js +117 -0
  2204. package/dist/showcase/assets/item-CCu0Ufaq.js +1 -0
  2205. package/dist/showcase/assets/item-DF4m_56j.js +1 -0
  2206. package/dist/showcase/assets/kanban-BgW23a7P.js +175 -0
  2207. package/dist/showcase/assets/label-MdV7pglj.js +1 -0
  2208. package/dist/showcase/assets/layout-containers-nKVReEJB.js +96 -0
  2209. package/dist/showcase/assets/layout-header-CKyxHHPC.js +170 -0
  2210. package/dist/showcase/assets/layout-page-ClD2yMnK.js +122 -0
  2211. package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +224 -0
  2212. package/dist/showcase/assets/layout-users-Cv849xnU.js +104 -0
  2213. package/dist/showcase/assets/leaflet-src-9EZQ14iG.js +1 -0
  2214. package/dist/showcase/assets/leaflet.draw-CwFqqsDc.js +1 -0
  2215. package/dist/showcase/assets/lib-BHW4JERQ.js +1 -0
  2216. package/dist/showcase/assets/lock-B8bfl9sZ.js +1 -0
  2217. package/dist/showcase/assets/mail-DmOBTX4I.js +1 -0
  2218. package/dist/showcase/assets/map-ButgRl8f.js +124 -0
  2219. package/dist/showcase/assets/map-pin-o3egisLq.js +1 -0
  2220. package/dist/showcase/assets/menus-DdXgYKVA.js +89 -0
  2221. package/dist/showcase/assets/message-square-Bl6P4TA0.js +1 -0
  2222. package/dist/showcase/assets/metadata-list-aXo96h_U.js +278 -0
  2223. package/dist/showcase/assets/metric-BLHKuZtE.js +1 -0
  2224. package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +1 -0
  2225. package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +1 -0
  2226. package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +44 -0
  2227. package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +77 -0
  2228. package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +76 -0
  2229. package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +27 -0
  2230. package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +17 -0
  2231. package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +31 -0
  2232. package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +42 -0
  2233. package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +192 -0
  2234. package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +54 -0
  2235. package/dist/showcase/assets/minus-D-jmUi0G.js +1 -0
  2236. package/dist/showcase/assets/money-display-C__61373.js +1 -0
  2237. package/dist/showcase/assets/month-year-picker-BfBQePUY.js +1 -0
  2238. package/dist/showcase/assets/navigation-DUAe-sQV.js +86 -0
  2239. package/dist/showcase/assets/navigation-extras-itSAf6QT.js +43 -0
  2240. package/dist/showcase/assets/navigation-fAOvwIlP.js +230 -0
  2241. package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +119 -0
  2242. package/dist/showcase/assets/orders-DNn7r9k_.js +1 -0
  2243. package/dist/showcase/assets/overlays-BMTBOIEI.js +88 -0
  2244. package/dist/showcase/assets/overlays-Lu16yJWM.js +393 -0
  2245. package/dist/showcase/assets/package-BIa1hPVQ.js +1 -0
  2246. package/dist/showcase/assets/page-action-button-C5NiQHnP.js +1 -0
  2247. package/dist/showcase/assets/page-header-Cwf9DuhD.js +1 -0
  2248. package/dist/showcase/assets/pagination-9iSNmdCx.js +1 -0
  2249. package/dist/showcase/assets/pagination-MjniF-7j.js +42 -0
  2250. package/dist/showcase/assets/paperclip-CaNLUOIA.js +1 -0
  2251. package/dist/showcase/assets/pencil-DTLGPoc_.js +1 -0
  2252. package/dist/showcase/assets/phone-XvU6LndA.js +1 -0
  2253. package/dist/showcase/assets/plus-BDSCn8ol.js +1 -0
  2254. package/dist/showcase/assets/popover-CvhuubS6.js +1 -0
  2255. package/dist/showcase/assets/popover-DUQqLZN2.js +1 -0
  2256. package/dist/showcase/assets/popover-menu-DVGBuFpL.js +1 -0
  2257. package/dist/showcase/assets/progress-BQopCRpV.js +1 -0
  2258. package/dist/showcase/assets/progress-CvSUR260.js +18 -0
  2259. package/dist/showcase/assets/props-table-BzUnIcv-.js +1 -0
  2260. package/dist/showcase/assets/props.generated-BqPfiNI-.json +32423 -0
  2261. package/dist/showcase/assets/quote-D55lkoXn.js +1 -0
  2262. package/dist/showcase/assets/receipt-D3ilhl9U.js +1 -0
  2263. package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +1 -0
  2264. package/dist/showcase/assets/resolveAriaLabelledBy-DmY5COAB.js +1 -0
  2265. package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +1 -0
  2266. package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +124 -0
  2267. package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +141 -0
  2268. package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +1 -0
  2269. package/dist/showcase/assets/scroll-area-BTVLd58j.js +1 -0
  2270. package/dist/showcase/assets/scroll-area-CgFEDepJ.js +32 -0
  2271. package/dist/showcase/assets/select-B7-tZDlG.js +1 -0
  2272. package/dist/showcase/assets/send-BhjEdZ06.js +1 -0
  2273. package/dist/showcase/assets/separator-CJayjKGP.js +28 -0
  2274. package/dist/showcase/assets/separator-CZ_sPWQj.js +1 -0
  2275. package/dist/showcase/assets/settings-Duj7gAZe.js +1 -0
  2276. package/dist/showcase/assets/sheet-BMabZ_Gj.js +1 -0
  2277. package/dist/showcase/assets/shield-C22sWOf4.js +1 -0
  2278. package/dist/showcase/assets/shield-alert-DgZ6UO46.js +1 -0
  2279. package/dist/showcase/assets/shield-check-jGSgmijm.js +1 -0
  2280. package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +1 -0
  2281. package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +1 -0
  2282. package/dist/showcase/assets/skeleton-Dmp4eC1A.js +1 -0
  2283. package/dist/showcase/assets/skeleton-FLNbc7QP.js +29 -0
  2284. package/dist/showcase/assets/smart-card-50WN9sCI.js +1 -0
  2285. package/dist/showcase/assets/sonner-DR_DYpqb.js +22 -0
  2286. package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +5 -0
  2287. package/dist/showcase/assets/sparkles-C-fyahzv.js +1 -0
  2288. package/dist/showcase/assets/spinner-B8jgVQNj.js +30 -0
  2289. package/dist/showcase/assets/spinner-C4zPRpI0.js +49 -0
  2290. package/dist/showcase/assets/spinner-DFjHsQlR.js +1 -0
  2291. package/dist/showcase/assets/spritesheet-DpIxuf5L.svg +156 -0
  2292. package/dist/showcase/assets/square-pen-Dp7lCfI3.js +1 -0
  2293. package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +1 -0
  2294. package/dist/showcase/assets/star-l00ivfkD.js +1 -0
  2295. package/dist/showcase/assets/startOfDay-Xmododib.js +1 -0
  2296. package/dist/showcase/assets/styles-zuwR0q1z.js +1 -0
  2297. package/dist/showcase/assets/switch-D3LrIrTQ.js +1 -0
  2298. package/dist/showcase/assets/switch-ylXVyh_N.js +1 -0
  2299. package/dist/showcase/assets/table-Cn3-19zb.js +1 -0
  2300. package/dist/showcase/assets/table-ao3IcAnF.js +390 -0
  2301. package/dist/showcase/assets/tabs-CTLQKtiu.js +19 -0
  2302. package/dist/showcase/assets/tabs-lc1fX94A.js +1 -0
  2303. package/dist/showcase/assets/text-button-Fu8UY1A8.js +1 -0
  2304. package/dist/showcase/assets/text-link--EyGasJN.js +1 -0
  2305. package/dist/showcase/assets/textarea-BdhnlNrF.js +1 -0
  2306. package/dist/showcase/assets/textarea-D1kG3a9B.js +1 -0
  2307. package/dist/showcase/assets/timelines-DF3tNgyG.js +186 -0
  2308. package/dist/showcase/assets/toggle-group-CfxuWsv9.js +1 -0
  2309. package/dist/showcase/assets/toggles-CacdBPlV.js +71 -0
  2310. package/dist/showcase/assets/toggles-group-CRhgTGmL.js +32 -0
  2311. package/dist/showcase/assets/trash-2-B0_GprQM.js +1 -0
  2312. package/dist/showcase/assets/trending-up-B202l1b6.js +1 -0
  2313. package/dist/showcase/assets/truck-Bl1pNrHi.js +1 -0
  2314. package/dist/showcase/assets/typography-DEtOxBlR.js +214 -0
  2315. package/dist/showcase/assets/ui-badge-n4RA0J5b.js +28 -0
  2316. package/dist/showcase/assets/ui-card-Ck-kzrTh.js +30 -0
  2317. package/dist/showcase/assets/ui-table-gzOp82pf.js +42 -0
  2318. package/dist/showcase/assets/upload-tray-VvKdTZSi.js +138 -0
  2319. package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +1 -0
  2320. package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +1 -0
  2321. package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +1 -0
  2322. package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +1 -0
  2323. package/dist/showcase/assets/useControlled-C6q3nmcf.js +1 -0
  2324. package/dist/showcase/assets/useLabelableId-CfPT16c1.js +1 -0
  2325. package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +1 -0
  2326. package/dist/showcase/assets/useRender-CoUlh0uZ.js +1 -0
  2327. package/dist/showcase/assets/useRole-DSPUSyVX.js +1 -0
  2328. package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +1 -0
  2329. package/dist/showcase/assets/useValueChanged-Dej794I1.js +1 -0
  2330. package/dist/showcase/assets/user-3L762Mec.js +1 -0
  2331. package/dist/showcase/assets/user-plus-9WRYjS04.js +1 -0
  2332. package/dist/showcase/assets/users-CxKZ7gt8.js +1 -0
  2333. package/dist/showcase/assets/valueToPercent-CDF3aNnc.js +1 -0
  2334. package/dist/showcase/assets/vendor-profile-BaCptdMF.js +37 -0
  2335. package/dist/showcase/assets/wrench-Duh91tnW.js +1 -0
  2336. package/dist/showcase/assets/x-t42iKYpL.js +1 -0
  2337. package/dist/showcase/assets/zap-D0z3Tv_L.js +1 -0
  2338. package/dist/showcase/favicon.svg +1 -0
  2339. package/dist/showcase/icons.svg +24 -0
  2340. package/dist/showcase/index.html +15 -0
  2341. package/dist/style.css +2 -0
  2342. package/dist/types/index.d.ts +12 -0
  2343. package/dist/types/index.d.ts.map +1 -0
  2344. package/dist/types/locale.types.d.ts +8 -0
  2345. package/dist/types/locale.types.d.ts.map +1 -0
  2346. package/dist/types/pagination.types.d.ts +19 -0
  2347. package/dist/types/pagination.types.d.ts.map +1 -0
  2348. package/package.json +301 -0
  2349. package/scripts/install-skill.mjs +184 -0
  2350. package/scripts/serve-showcase.mjs +111 -0
  2351. package/src/App.css +373 -0
  2352. package/style.css.d.ts +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/features/filters/filters.strings.ts","../../../../src/components/features/filters/filters.types.ts","../../../../src/components/features/filters/operator-options.ts","../../../../src/components/features/filters/utils/filter-utils.ts","../../../../src/components/features/filters/filter-context.tsx","../../../../src/components/features/filters/hooks/use-filter-groups.ts","../../../../src/components/features/filters/partials/filter-operator-select.tsx","../../../../src/components/features/filters/partials/filter-value-display.tsx","../../../../src/components/features/filters/partials/active-filter-item.tsx","../../../../src/hooks/use-debounce.ts","../../../../src/components/features/filters/hooks/use-async-options.ts","../../../../src/components/features/filters/partials/async-filter-content.tsx","../../../../src/components/features/filters/facets/date-facet.tsx","../../../../src/components/features/filters/partials/date-filter-content.tsx","../../../../src/components/features/filters/partials/filter-error-boundary.tsx","../../../../src/components/features/filters/partials/filter-list-item.tsx","../../../../src/components/features/filters/partials/filter-list-content.tsx","../../../../src/components/features/filters/partials/regular-filter-content.tsx","../../../../src/components/features/filters/facets/tags-facet.tsx","../../../../src/components/features/filters/partials/tags-filter-content.tsx","../../../../src/components/features/filters/partials/filter-popover-content.tsx","../../../../src/components/features/filters/partials/filter-pill.tsx","../../../../src/components/features/filters/partials/filters-button.tsx","../../../../src/components/features/filters/partials/filter-tabs.tsx","../../../../src/components/features/filters/facets/search-facet.tsx","../../../../src/components/features/filters/partials/search-filters-list.tsx","../../../../src/components/features/filters/filter-layout.tsx","../../../../src/components/features/filters/facets/select-facet.tsx","../../../../src/components/features/filters/facets/async-select-facet.tsx","../../../../src/components/features/filters/facets/range-facet.tsx","../../../../src/components/features/filters/validators.ts"],"sourcesContent":["/**\n * Filter strings — default copy and nested override contract.\n *\n * Consumers localize filters by passing `strings` to `<FilterProvider>`.\n * No routing, framework i18n hook, or backend shared-props contract belongs in\n * this default feature path.\n */\n\nexport interface FilterOperatorStrings {\n contains: string;\n equals: string;\n notContains: string;\n is: string;\n isNot: string;\n greaterThan: string;\n lessThan: string;\n before: string;\n after: string;\n between: string;\n has: string;\n hasAny: string;\n hasAll: string;\n}\n\nexport interface FilterStrings {\n // Filter loading states\n loading: string;\n loadingOptions: string; // \"Loading {filterLabel} options...\"\n\n // Action buttons\n clear: string;\n confirm: string;\n clearFilters: string;\n clearAll: string;\n\n // Date selection\n selectDate: string;\n selectDateRange: string;\n calendar: {\n dateSelected: string;\n notDateSelected: string;\n notDateRangeSelected: string;\n selectedEndDate: string;\n today: string;\n yesterday: string;\n lastSevenDays: string;\n lastThirtyDays: string;\n thisMonth: string;\n lastMonth: string;\n thisYear: string;\n lastYear: string;\n customRange: string;\n };\n\n // Value selection\n selectValues: string;\n searchPlaceholder: string; // \"Search {filterLabel}...\"\n noOptionsFound: string;\n selected: string; // \"{count} {filterLabel} selected\"\n nothingSelected: string; // pill value text when nothing has been picked yet\n\n // Tags\n enterTag: string;\n addTag: string;\n removeTag: string;\n tag: string;\n tags: string;\n enterTags: string;\n\n // Filter list\n searchFilters: string;\n noFiltersAvailable: string;\n availableFilters: string;\n activeFilters: string;\n clearSearch: string;\n backToFilters: string;\n select: string;\n options: string;\n\n // Operator selector (active-filter pill dropdown)\n operator: string;\n operators: FilterOperatorStrings;\n\n // Range filters\n min: string;\n max: string;\n\n // Async select filters\n fetchError: string;\n retryFetch: string;\n minQueryHint: string; // \"Type at least {min} characters...\"\n searching: string;\n\n // Error boundary\n error: {\n title: string;\n descriptionWithKey: string;\n generic: string;\n unknown: string;\n };\n\n // Value validation\n validation: {\n required: string;\n minValue: string;\n maxValue: string;\n invalidFormat: string;\n };\n}\n\n/**\n * Default English strings for the filter system.\n * These serve as fallbacks when no strings are provided.\n */\nexport const defaultFilterStrings: FilterStrings = {\n // Filter loading states\n loading: 'Loading',\n loadingOptions: 'Loading {filterLabel} options...',\n\n // Action buttons\n clear: 'Clear',\n confirm: 'Confirm',\n clearFilters: 'Clear filters',\n clearAll: 'Clear all',\n\n // Date selection\n selectDate: 'Select date',\n selectDateRange: 'Select date range',\n calendar: {\n dateSelected: 'Date selected',\n notDateSelected: 'No date selected',\n notDateRangeSelected: 'No date range selected',\n selectedEndDate: 'Select end date',\n today: 'Today',\n yesterday: 'Yesterday',\n lastSevenDays: 'Last 7 days',\n lastThirtyDays: 'Last 30 days',\n thisMonth: 'This month',\n lastMonth: 'Last month',\n thisYear: 'This year',\n lastYear: 'Last year',\n customRange: 'Custom range',\n },\n\n // Value selection\n selectValues: 'Select values',\n searchPlaceholder: 'Search {filterLabel}...',\n noOptionsFound: 'No options found',\n selected: '{count} {filterLabel} selected',\n nothingSelected: 'Nothing selected',\n\n // Tags\n enterTag: 'Enter tag',\n addTag: 'Add tag',\n removeTag: 'Remove',\n tag: 'tag',\n tags: 'tags',\n enterTags: 'Enter tags',\n\n // Filter list\n searchFilters: 'Search filters...',\n noFiltersAvailable: 'No filters available',\n availableFilters: 'Available Filters',\n activeFilters: 'Active Filters',\n clearSearch: 'Clear search',\n backToFilters: 'Back to filters',\n select: 'Select',\n options: 'options',\n\n // Operator selector (active-filter pill dropdown)\n operator: 'Operator',\n operators: {\n contains: 'contains',\n equals: 'is',\n notContains: 'does not contain',\n is: 'is',\n isNot: 'is not',\n greaterThan: 'greater than',\n lessThan: 'less than',\n before: 'before',\n after: 'after',\n between: 'between',\n has: 'has',\n hasAny: 'has any',\n hasAll: 'has all',\n },\n\n // Range filters\n min: 'Min',\n max: 'Max',\n\n // Async select filters\n fetchError: 'Failed to load options',\n retryFetch: 'Retry',\n minQueryHint: 'Type at least {min} characters...',\n searching: 'Searching...',\n\n // Error boundary\n error: {\n title: 'Filter error',\n descriptionWithKey: 'There was a problem with \"{filterKey}\" filter.',\n generic: 'There was a problem loading this filter.',\n unknown: 'Unknown error',\n },\n\n // Value validation\n validation: {\n required: 'This filter is required',\n minValue: 'Value must be at least {min}',\n maxValue: 'Value must be at most {max}',\n invalidFormat: 'Invalid format',\n },\n};\n\n/**\n * Helper function to interpolate values in strings.\n * Replaces {key} with the corresponding value from the params object.\n */\nexport function interpolateFilterString(\n template: string,\n params: Record<string, string | number>,\n): string {\n const withCurlyPlaceholders = template.replace(/{(\\w+)}/g, (match, key) => {\n return String(params[key] ?? match);\n });\n\n const withColonPlaceholdersReplaced = withCurlyPlaceholders.replace(\n /:(\\w+)/g,\n (match, key) => {\n return params[key] !== undefined ? String(params[key]) : match;\n },\n );\n\n return withColonPlaceholdersReplaced;\n}\n\n/**\n * Helper function to get a string from a strings object\n * with dot notation support.\n */\nexport function getFilterString(\n strings: FilterStrings,\n path: string,\n params?: Record<string, string | number>,\n): string {\n const keys = path.split('.');\n let result: unknown = strings;\n\n for (const key of keys) {\n if (result == null || typeof result !== 'object') {\n return path; // Return the path if the string is not found\n }\n result = (result as Record<string, unknown>)[key];\n }\n\n if (typeof result === 'string') {\n return params ? interpolateFilterString(result, params) : result;\n }\n\n return path; // Return the path if the string is not found\n}\n","import type { ReactNode } from 'react';\n\n/** Shared height class for all filter control elements. */\nexport const FILTER_ELEMENT_HEIGHT = 'h-8';\n\n/**\n * Core type definitions and interfaces for the filters feature.\n *\n * This file defines:\n * - Filter types (SELECT, MULTI_SELECT, SEARCH, RANGE, DATE)\n * - Filter operators (equals, contains, in, etc.)\n * - Configuration interfaces for filters\n * - Context value types for filter state management\n * - Validation and display configuration types\n *\n * These types are used throughout the filters feature to ensure type safety\n * and consistent data structures.\n */\n\nexport const FilterType = {\n SELECT: 'select',\n MULTI_SELECT: 'multi_select',\n ASYNC_SELECT: 'async_select',\n SEARCH: 'search',\n RANGE: 'range',\n DATE: 'date',\n TAGS: 'tags',\n} as const;\n\nexport type FilterType = (typeof FilterType)[keyof typeof FilterType];\n\n// Convert string union to enum for better type safety and autocompletion\n// Note: All enum values are used via the FilterOperator type below, even if not directly referenced\nexport const FilterOperatorEnum = {\n EQUALS: 'equals',\n CONTAINS: 'contains',\n IN: 'in',\n NOT_IN: 'not_in',\n NOT: 'not',\n BEFORE: 'before',\n AFTER: 'after',\n BETWEEN: 'between',\n GT: 'gt',\n LT: 'lt',\n GTE: 'gte',\n LTE: 'lte',\n HAS: 'has',\n HAS_ANY: 'has_any',\n HAS_ALL: 'has_all',\n} as const;\n\n// Strict type for better type safety - using enum values to match backend\nexport type FilterOperator = (typeof FilterOperatorEnum)[keyof typeof FilterOperatorEnum];\n\nexport interface OperatorOption {\n label: string;\n value: FilterOperator;\n}\n\n// Filter display types\n// Accept both 'drawer' and 'collapsed' as synonyms for the collapsed UI\nexport type FilterDisplay = 'always' | 'drawer' | 'collapsed' | 'hidden';\n\nexport const FilterCategory = {\n FILTER: 'filter',\n SORT: 'sort',\n GROUP: 'group',\n} as const;\n\nexport type FilterCategory = (typeof FilterCategory)[keyof typeof FilterCategory];\n\nexport interface FilterOption {\n label: string;\n value: string;\n icon: ReactNode;\n children?: FilterOption[];\n disabled?: boolean;\n description?: string;\n color?: string;\n}\n\nexport interface DisplayConfig {\n renderConfig?: {\n desktop: string;\n mobile?: string;\n tablet?: string;\n };\n display?: FilterDisplay;\n category?: FilterCategory;\n priority?: number;\n hidden?: boolean;\n className?: string; // Simplified config for basic styling needs\n}\n\nexport interface ValidationConfig {\n min?: number;\n max?: number;\n pattern?: RegExp;\n required?: boolean;\n custom?: (value: unknown) => boolean | string;\n}\n\nexport interface FilterDependency {\n key: string;\n operator: FilterOperator;\n value: string | string[];\n}\n\n/**\n * Configuration for ASYNC_SELECT filters that fetch options from the server.\n *\n * Supports two modes:\n * - Declarative: provide `fetchOptions` on FilterConfig (simpler, backward-compatible)\n * - TanStack Query: provide `asyncConfig` for full control over caching, abort, preload\n *\n * When both are provided, `asyncConfig` takes precedence.\n */\nexport interface AsyncSelectConfig<TItem = unknown> {\n /** TanStack Query key factory — receives { query, limit } and returns a stable key */\n queryKey: (args: { query: string; limit: number }) => readonly unknown[];\n /** Fetcher function — receives { query, limit, signal } and returns items */\n fetcher: (args: {\n query: string;\n limit: number;\n signal?: AbortSignal;\n }) => Promise<TItem[]>;\n /** Maps a fetched item to a FilterOption for display */\n mapToOption: (item: TItem) => FilterOption;\n /** Max items to fetch per request (default: 10) */\n limit?: number;\n /** Minimum characters before fetching (default: 0) */\n minQueryLength?: number;\n /** Whether to fetch with empty query on open (default: true) */\n preload?: boolean;\n /** Debounce delay in ms (default: 300) */\n debounceMs?: number;\n /** TanStack Query staleTime in ms (default: 60_000) */\n staleTime?: number;\n /** TanStack Query gcTime in ms (default: 300_000) */\n gcTime?: number;\n}\n\nexport interface FilterConfig {\n key: string;\n label: string;\n /** Plural form of the label, used in \"{count} {label} selected\" when count > 1 */\n pluralLabel?: string;\n type: FilterType;\n description?: string;\n operator?: FilterOperator;\n operators?: OperatorOption[]; // Available operators for this filter\n options?: FilterOption[];\n placeholder?: string;\n delay?: number;\n icon: ReactNode;\n displayConfig: DisplayConfig;\n defaultValue?: string | string[];\n validation?: ValidationConfig;\n dependencies?: FilterDependency[];\n fetchOptions?: (\n dependencyValues: Record<string, string[]>,\n ) => Promise<FilterOption[]>;\n multiple?: boolean;\n closeOnSelect?: boolean;\n maxSelected?: number;\n /** TanStack Query-powered async config for ASYNC_SELECT filters */\n asyncConfig?: AsyncSelectConfig;\n dateFormat?: {\n display?: string; // Format for display (e.g., 'MMM d, yyyy')\n param?: string; // Format for URL parameters (e.g., 'yyyy-MM-dd')\n };\n // Date picker specific options\n datePickerConfig?: {\n showConfirmButton?: boolean;\n showShortcuts?: boolean;\n fullWidth?: boolean;\n noDatePlaceholder?: string;\n noRangePlaceholder?: string;\n autoApply?: boolean; // Whether to automatically apply date selections\n };\n // Optional formatting functions\n format?: (value: unknown) => string;\n parse?: (value: string) => unknown;\n transform?: (value: unknown) => unknown;\n}\n\nexport interface ActiveFilter {\n id: string;\n key: string;\n operator: FilterOperator;\n value: string[];\n}\n\nexport interface FilterGroup {\n label: string;\n filters: FilterConfig[];\n}\n\nexport interface FilterState {\n [key: string]: string[];\n}\n\nexport interface FilterTabPreset {\n key: string;\n value: string[];\n operator?: FilterOperator;\n}\n\nexport interface FilterTab {\n id: string;\n label: string;\n presets: FilterTabPreset[];\n count?: number;\n}\n","import {\n FilterOperatorEnum,\n type FilterOperator,\n type OperatorOption,\n FilterType,\n} from './filters.types';\nimport type { FilterOperatorStrings } from './filters.strings';\n\nexport function getTextOperators(strings: FilterOperatorStrings): OperatorOption[] {\n return [\n { label: strings.contains, value: FilterOperatorEnum.CONTAINS },\n { label: strings.equals, value: FilterOperatorEnum.EQUALS },\n { label: strings.notContains, value: FilterOperatorEnum.NOT },\n ];\n}\n\nexport function getSelectOperators(strings: FilterOperatorStrings): OperatorOption[] {\n return [\n { label: strings.is, value: FilterOperatorEnum.EQUALS },\n { label: strings.isNot, value: FilterOperatorEnum.NOT },\n ];\n}\n\nexport function getNumberOperators(strings: FilterOperatorStrings): OperatorOption[] {\n return [\n { label: strings.equals, value: FilterOperatorEnum.EQUALS },\n { label: strings.greaterThan, value: FilterOperatorEnum.GT },\n { label: strings.lessThan, value: FilterOperatorEnum.LT },\n ];\n}\n\nexport function getDateOperators(strings: FilterOperatorStrings): OperatorOption[] {\n return [\n { label: strings.before, value: FilterOperatorEnum.BEFORE },\n { label: strings.after, value: FilterOperatorEnum.AFTER },\n { label: strings.between, value: FilterOperatorEnum.BETWEEN },\n ];\n}\n\nexport function getBooleanOperators(strings: FilterOperatorStrings): OperatorOption[] {\n return [{ label: strings.equals, value: FilterOperatorEnum.EQUALS }];\n}\n\nexport function getOperatorsForType(\n type: FilterType,\n strings: FilterOperatorStrings,\n): OperatorOption[] {\n switch (type) {\n case FilterType.SEARCH:\n return getTextOperators(strings);\n case FilterType.TAGS:\n return [\n { label: strings.has, value: FilterOperatorEnum.HAS },\n { label: strings.hasAny, value: FilterOperatorEnum.HAS_ANY },\n { label: strings.hasAll, value: FilterOperatorEnum.HAS_ALL },\n ];\n case FilterType.SELECT:\n case FilterType.ASYNC_SELECT:\n return getSelectOperators(strings);\n case FilterType.RANGE:\n return getNumberOperators(strings);\n case FilterType.DATE:\n return getDateOperators(strings);\n default:\n return getTextOperators(strings);\n }\n}\n\nexport function getDefaultOperatorForType(\n type: FilterType,\n): FilterOperator {\n switch (type) {\n case FilterType.SEARCH:\n return FilterOperatorEnum.CONTAINS;\n case FilterType.TAGS:\n // Tags default to array containment semantics\n return FilterOperatorEnum.HAS;\n case FilterType.SELECT:\n case FilterType.ASYNC_SELECT:\n return FilterOperatorEnum.EQUALS;\n case FilterType.RANGE:\n return FilterOperatorEnum.EQUALS;\n case FilterType.DATE:\n return FilterOperatorEnum.BEFORE;\n default:\n return FilterOperatorEnum.EQUALS;\n }\n}\n","import type { ReactNode } from 'react';\nimport type { FilterConfig, FilterDependency } from '../filters.types';\n\n/**\n * Gets the label for a filter option\n */\nexport function getFilterOptionLabel(\n\tfilter: FilterConfig,\n\tvalue: string,\n): string | undefined {\n\treturn filter.options?.find((opt) => opt.value === value)?.label;\n}\n\n/**\n * Gets the icon for a filter option\n */\nexport function getFilterOptionIcon(\n\tfilter: FilterConfig,\n\tvalue: string,\n): ReactNode | undefined {\n\treturn filter.options?.find((opt) => opt.value === value)?.icon;\n}\n\n/**\n * Validates a filter value against the filter configuration\n *\n * @param filter - The filter configuration to validate against\n * @param value - The value to validate\n * @param t\n * @returns true if valid, or an error message string if invalid\n */\nexport function validateFilterValue(\n\tfilter: FilterConfig,\n\tvalue: unknown,\n\tt: (key: string) => string,\n): boolean | string {\n\t// Special case for date filters - always allow date strings\n\tif (filter.type === 'date') {\n\t\t// If the value is a date string array, it's valid\n\t\tif (Array.isArray(value) && value.every((v) => typeof v === 'string')) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t// Require if marked as required\n\tif (\n\t\tfilter.validation?.required &&\n\t\t(!value || (Array.isArray(value) && value.length === 0))\n\t) {\n\t\treturn t('validation.required');\n\t}\n\n\t// Only check min/max for numeric values\n\tif (typeof value === 'number') {\n\t\tif (\n\t\t\tfilter.validation?.min !== undefined &&\n\t\t\tvalue < filter.validation.min\n\t\t) {\n\t\t\treturn t('validation.minValue').replace(\n\t\t\t\t'{min}',\n\t\t\t\tString(filter.validation.min),\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tfilter.validation?.max !== undefined &&\n\t\t\tvalue > filter.validation.max\n\t\t) {\n\t\t\treturn t('validation.maxValue').replace(\n\t\t\t\t'{max}',\n\t\t\t\tString(filter.validation.max),\n\t\t\t);\n\t\t}\n\t}\n\n\t// Pattern validation for strings only\n\tif (filter.validation?.pattern && typeof value === 'string') {\n\t\tconst regex = new RegExp(filter.validation.pattern);\n\t\tif (!regex.test(value)) {\n\t\t\treturn t('validation.invalidFormat');\n\t\t}\n\t}\n\n\t// Custom validation if provided\n\tif (filter.validation?.custom) {\n\t\tconst customValidation = filter.validation.custom(value);\n\t\tif (typeof customValidation === 'string' || !customValidation) {\n\t\t\treturn customValidation;\n\t\t}\n\t}\n\n\t// If we got here, the value is valid\n\treturn true;\n}\n\n/**\n * Formats a filter value for display using either the format function provided\n * in the filter config, or by looking up option labels\n *\n * @param filter - The filter configuration\n * @param value - The value to format\n * @returns Formatted string representation of the value\n */\nexport function formatFilterValue(\n\tfilter: FilterConfig,\n\tvalue: unknown,\n): string {\n\t// Use custom format function if provided in filter config\n\tif (filter.format && typeof filter.format === 'function') {\n\t\ttry {\n\t\t\treturn filter.format(value);\n\t\t} catch (error) {\n\t\t\tif (import.meta.env?.DEV) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`Error using custom format function for filter ${filter.key}:`,\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Fall back to default formatting\n\t\t}\n\t}\n\n\t// Default formatting behavior\n\tif (Array.isArray(value)) {\n\t\treturn value\n\t\t\t.map((v) => getFilterOptionLabel(filter, String(v)) ?? String(v))\n\t\t\t.join(', ');\n\t}\n\n\treturn getFilterOptionLabel(filter, String(value)) ?? String(value);\n}\n\n/**\n * Gets the values of dependent filters\n */\nexport function getDependentFilterValues(\n\tdependencies: FilterDependency[],\n\tfilterState: Record<string, string[]>,\n): Record<string, string[]> {\n\treturn dependencies.reduce(\n\t\t(acc, dep) => {\n\t\t\tconst values = filterState[dep.key] || [];\n\t\t\tif (values.length > 0) {\n\t\t\t\tacc[dep.key] = values;\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<string, string[]>,\n\t);\n}\n\n/**\n * Determines if a filter should be shown based on its dependencies\n */\nexport function shouldShowFilter(\n\tfilter: FilterConfig,\n\tfilterState: Record<string, string[]>,\n): boolean {\n\tif (!filter.dependencies || filter.dependencies.length === 0) {\n\t\treturn true;\n\t}\n\n\treturn filter.dependencies.every((dep) => {\n\t\tconst values = filterState[dep.key] || [];\n\t\tif (values.length === 0) return false;\n\n\t\tswitch (dep.operator) {\n\t\t\tcase 'equals':\n\t\t\t\treturn values.includes(dep.value as string);\n\t\t\tcase 'contains':\n\t\t\t\treturn values.some((v) => (dep.value as string).includes(v));\n\t\t\tcase 'in':\n\t\t\t\treturn Array.isArray(dep.value)\n\t\t\t\t\t? values.some((v) => (dep.value as string[]).includes(v))\n\t\t\t\t\t: values.includes(dep.value);\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t});\n}\n\nexport function extractFilterDefaults<T extends string = string>(\n\tfilters: FilterConfig[],\n): Record<T, string> {\n\treturn filters.reduce(\n\t\t(acc, filter) => {\n\t\t\t// Force the default value to be treated as a string\n\t\t\tacc[filter.key as T] = (filter.defaultValue as string) || '';\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<T, string>,\n\t);\n}\n","import {\n createContext,\n useContext,\n useMemo,\n useCallback,\n type ReactNode,\n useRef,\n useEffect,\n useState,\n} from 'react';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport {\n defaultFilterStrings,\n getFilterString,\n type FilterStrings,\n} from './filters.strings';\nimport {\n FilterType,\n type FilterConfig,\n type ActiveFilter,\n type FilterOperator,\n type FilterOption,\n} from './filters.types';\nimport { getDefaultOperatorForType } from './operator-options';\nimport { validateFilterValue } from './utils/filter-utils';\n\ninterface FilterProviderProps {\n children: ReactNode;\n filters: FilterConfig[];\n activeFilters: ActiveFilter[];\n onFilterChange: (filters: ActiveFilter[]) => void;\n isNavigating?: boolean;\n strings?: StringsProp<FilterStrings>;\n locale?: string;\n /** Called when an async fetch / validation / apply step throws.\n * Library DEV-logs the error; consumer wires telemetry here. */\n onError?: (error: unknown, context: { phase: 'fetch-options' | 'apply' | 'validate'; filterKey?: string }) => void;\n}\n\ninterface FilterContextValue {\n activeFilters: ActiveFilter[];\n filters: FilterConfig[];\n addFilter: (filter: ActiveFilter) => void;\n removeFilter: (id: string) => void;\n updateFilter: (id: string, updates: Partial<ActiveFilter>) => void;\n clearFilters: () => void;\n replaceFilters: (filters: ActiveFilter[]) => void;\n getFilterByKey: (key: string) => FilterConfig | undefined;\n getFilterValue: (key: string) => string[];\n setFilterValue: (key: string, value: string[]) => void;\n isFilterActive: (key: string) => boolean;\n getFilterOperator: (key: string) => FilterOperator | undefined;\n setFilterOperator: (key: string, operator: FilterOperator) => void;\n validateFilter: (key: string, value: unknown) => boolean | string;\n getDependentFilters: (key: string) => FilterConfig[];\n getFilterOptions: (key: string) => Promise<FilterOption[]>;\n isNavigating: boolean;\n locale: string;\n strings: FilterStrings;\n /** Cache resolved options for async filters (keyed by filter key → option value → FilterOption) */\n cacheAsyncOptions: (filterKey: string, options: FilterOption[]) => void;\n /** Resolve a cached label for an async filter value */\n getAsyncOptionLabel: (filterKey: string, optionValue: string) => string | undefined;\n}\n\nconst FilterContext = createContext<FilterContextValue | undefined>(undefined);\n\n/**\n * Module-level cache for async filter option labels.\n * Lives outside the component tree so it survives provider remounts.\n */\nconst globalAsyncOptionsCache = new Map<string, Map<string, FilterOption>>();\n\n/**\n * Framework-agnostic filter provider.\n * State, strings, and async option fetchers are passed by the consumer.\n */\nexport function FilterProvider({\n children,\n filters,\n activeFilters,\n onFilterChange,\n isNavigating: isNavigatingProp = false,\n strings: stringsProp,\n locale: localeProp,\n onError,\n}: FilterProviderProps) {\n const filtersRef = useRef(filters);\n const activeFiltersRef = useRef(activeFilters);\n const onFilterChangeRef = useRef(onFilterChange);\n const onErrorRef = useRef(onError);\n onErrorRef.current = onError;\n\n // Trigger re-render when async labels are resolved\n const [, setAsyncCacheVersion] = useState(0);\n\n const locale = localeProp || 'en';\n const strings = useStrings(defaultFilterStrings, stringsProp);\n\n // Update refs when prop change\n useEffect(() => {\n filtersRef.current = filters;\n }, [filters]);\n\n useEffect(() => {\n activeFiltersRef.current = activeFilters;\n }, [activeFilters]);\n\n useEffect(() => {\n onFilterChangeRef.current = onFilterChange;\n }, [onFilterChange]);\n\n const addFilter = useCallback(\n (filter: ActiveFilter) => {\n const newFilters = [...activeFilters, filter];\n onFilterChangeRef.current(newFilters);\n },\n [activeFilters],\n );\n\n const removeFilter = useCallback(\n (id: string) => {\n const newFilters = activeFilters.filter(\n (f: ActiveFilter) => f.id !== id && f.key !== id,\n );\n onFilterChangeRef.current(newFilters);\n },\n [activeFilters],\n );\n\n const updateFilter = useCallback(\n (id: string, updates: Partial<ActiveFilter>) => {\n const newFilters = activeFilters.map((f: ActiveFilter) =>\n f.id === id || f.key === id ? { ...f, ...updates } : f,\n );\n onFilterChangeRef.current(newFilters);\n },\n [activeFilters],\n );\n\n const clearFilters = useCallback(() => {\n onFilterChangeRef.current([]);\n }, []);\n\n const replaceFilters = useCallback((newFilters: ActiveFilter[]) => {\n onFilterChangeRef.current(newFilters);\n }, []);\n\n const getFilterByKey = useCallback(\n (key: string): FilterConfig | undefined => {\n return filtersRef.current.find((f: FilterConfig) => f.key === key);\n },\n [],\n );\n\n const getFilterValue = useCallback(\n (key: string): string[] => {\n const filter = activeFilters.find(\n (f: ActiveFilter) => f.key === key,\n );\n return filter?.value || [];\n },\n [activeFilters],\n );\n\n const setFilterValue = useCallback(\n (key: string, value: string[]) => {\n const existingFilter = activeFilters.find(\n (f: ActiveFilter) => f.key === key,\n );\n\n if (value.length === 0) {\n // Remove filter if the value is empty\n if (existingFilter) {\n removeFilter(key);\n }\n } else {\n // Update or add filter\n if (existingFilter) {\n updateFilter(key, { value });\n } else {\n // Get the filter config to check for default operator\n const filterConfig = filtersRef.current.find(\n (f: FilterConfig) => f.key === key,\n );\n const defaultOperator =\n filterConfig?.operator ??\n filterConfig?.operators?.[0]?.value ??\n (filterConfig\n ? getDefaultOperatorForType(filterConfig.type)\n : 'equals');\n\n addFilter({\n id: key,\n key,\n value,\n operator: defaultOperator,\n });\n }\n }\n },\n [activeFilters, addFilter, removeFilter, updateFilter],\n );\n\n const isFilterActive = useCallback(\n (key: string): boolean => {\n return activeFilters.some(\n (f: ActiveFilter) => f.key === key && f.value.length > 0,\n );\n },\n [activeFilters],\n );\n\n const getFilterOperator = useCallback(\n (key: string): FilterOperator | undefined => {\n const filter = activeFilters.find(\n (f: ActiveFilter) => f.key === key,\n );\n return filter?.operator || 'equals';\n },\n [activeFilters],\n );\n\n const setFilterOperator = useCallback(\n (key: string, operator: FilterOperator) => {\n const existingFilter = activeFilters.find(\n (f: ActiveFilter) => f.key === key,\n );\n if (existingFilter) {\n updateFilter(key, { operator });\n }\n },\n [activeFilters, updateFilter],\n );\n\n const validateFilter = useCallback(\n (key: string, value: unknown): boolean | string => {\n const filter = filtersRef.current.find(\n (f: FilterConfig) => f.key === key,\n );\n if (!filter) return false;\n return validateFilterValue(filter, value, (path) =>\n getFilterString(strings, path),\n );\n },\n [strings],\n );\n\n const getDependentFilters = useCallback((key: string): FilterConfig[] => {\n return filtersRef.current.filter((f: FilterConfig) =>\n f.dependencies?.some((dep: { key: string }) => dep.key === key),\n );\n }, []);\n\n const getFilterOptions = useCallback(\n async (key: string): Promise<FilterOption[]> => {\n const filter = filtersRef.current.find(\n (f: FilterConfig) => f.key === key,\n );\n if (!filter) return [];\n\n if (filter.fetchOptions) {\n const filtersState = activeFiltersRef.current.reduce(\n (acc, current) => {\n acc[current.key] = current.value;\n return acc;\n },\n {} as Record<string, string[]>,\n );\n\n const dependencyValues = (filter.dependencies ?? []).reduce(\n (acc, dep) => {\n const dependencyValue = filtersState[dep.key];\n if (dependencyValue && dependencyValue.length > 0) {\n acc[dep.key] = dependencyValue;\n }\n return acc;\n },\n {} as Record<string, string[]>,\n );\n\n try {\n const dynamicOptions =\n await filter.fetchOptions(dependencyValues);\n if (Array.isArray(dynamicOptions)) {\n return dynamicOptions;\n }\n } catch (error) {\n if (import.meta.env?.DEV) {\n\t console.error(\n\t `Failed fetching options for filter \"${key}\":`,\n\t error,\n\t );\n }\n onErrorRef.current?.(error, { phase: 'fetch-options', filterKey: key });\n }\n }\n\n // Fall back to the static definition if no dynamic options are available\n return filter.options || [];\n },\n [],\n );\n\n const cacheAsyncOptions = useCallback(\n (filterKey: string, options: FilterOption[]) => {\n let filterMap = globalAsyncOptionsCache.get(filterKey);\n if (!filterMap) {\n filterMap = new Map();\n globalAsyncOptionsCache.set(filterKey, filterMap);\n }\n let hasNew = false;\n for (const opt of options) {\n if (!filterMap.has(opt.value)) {\n hasNew = true;\n }\n filterMap.set(opt.value, opt);\n }\n // Trigger re-render if new labels were added so filter pills update\n if (hasNew) {\n setAsyncCacheVersion((v) => v + 1);\n }\n },\n [],\n );\n\n const getAsyncOptionLabel = useCallback(\n (filterKey: string, optionValue: string): string | undefined => {\n return globalAsyncOptionsCache.get(filterKey)?.get(optionValue)?.label;\n },\n [],\n );\n\n // On mount, preload options for any active ASYNC_SELECT filters so that\n // filter pills can display resolved labels instead of raw UUIDs.\n useEffect(() => {\n const controller = new AbortController();\n\n for (const filter of filters) {\n if (filter.type !== FilterType.ASYNC_SELECT) continue;\n\n const active = activeFilters.find((af) => af.key === filter.key);\n if (!active || active.value.length === 0) continue;\n\n // Check if all active values already have cached labels\n const allCached = active.value.every(\n (v) => globalAsyncOptionsCache.get(filter.key)?.has(v),\n );\n if (allCached) continue;\n\n // Preload: fetch with empty query to get default/popular options\n const { asyncConfig, fetchOptions } = filter;\n if (asyncConfig?.fetcher && asyncConfig.mapToOption) {\n void asyncConfig\n .fetcher({\n query: '',\n limit: asyncConfig.limit ?? 10,\n signal: controller.signal,\n })\n .then((items) => {\n if (controller.signal.aborted) return;\n const options = items.map(asyncConfig.mapToOption);\n cacheAsyncOptions(filter.key, options);\n })\n .catch(() => {\n // Silently ignore — labels will fallback to \"N selected\"\n });\n } else if (fetchOptions) {\n void fetchOptions({ q: [''] })\n .then((options) => {\n if (controller.signal.aborted) return;\n cacheAsyncOptions(filter.key, options);\n })\n .catch(() => {\n // Silently ignore\n });\n }\n }\n\n return () => controller.abort();\n // Only run on mount — filters/activeFilters identity may change on every render\n // but we only need to preload once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const value = useMemo(\n () => ({\n activeFilters,\n filters,\n addFilter,\n removeFilter,\n updateFilter,\n clearFilters,\n replaceFilters,\n getFilterByKey,\n getFilterValue,\n setFilterValue,\n isFilterActive,\n getFilterOperator,\n setFilterOperator,\n validateFilter,\n getDependentFilters,\n getFilterOptions,\n isNavigating: isNavigatingProp,\n locale,\n strings,\n cacheAsyncOptions,\n getAsyncOptionLabel,\n }),\n [\n activeFilters,\n filters,\n addFilter,\n removeFilter,\n updateFilter,\n clearFilters,\n replaceFilters,\n getFilterByKey,\n getFilterValue,\n setFilterValue,\n isFilterActive,\n getFilterOperator,\n setFilterOperator,\n validateFilter,\n getDependentFilters,\n getFilterOptions,\n isNavigatingProp,\n locale,\n strings,\n cacheAsyncOptions,\n getAsyncOptionLabel,\n ],\n );\n\n return (\n <FilterContext.Provider value={value}>\n {children}\n </FilterContext.Provider>\n );\n}\n\nexport function useFilters() {\n const context = useContext(FilterContext);\n if (!context) {\n throw new Error('useFilters must be used within a FilterProvider');\n }\n return context;\n}\n","/**\n * useFilterGroups — headless partitioning of the filter list into the four\n * groups `FilterLayout` (and any custom layout) renders distinctly:\n *\n * - `searchFilters` — `FilterType.SEARCH`, always inline\n * - `alwaysVisibleFilters` — `displayConfig.display === 'always'` and inactive\n * - `activeRegularFilters` — non-search filters that are currently active\n * - `popoverFilters` — non-search, inactive, non-always (live in \"+\" popover)\n *\n * Plus `activeFilterKeys` and `hasActive` helpers. Consumers building a\n * custom strip layout against `<FilterProvider>` can call this and place\n * each group wherever they want without re-implementing the partition\n * logic.\n *\n * `dynamicFilterOptions` (optional) lets consumers swap a filter's option\n * list at render time (e.g. async-loaded options from a parent component)\n * without mutating the provider state.\n */\nimport { useMemo } from 'react';\n\nimport { useFilters } from '../filter-context';\nimport { type FilterConfig, FilterType } from '../filters.types';\n\nexport interface UseFilterGroupsOptions {\n /** Override `filter.options` per-key at render time. */\n dynamicFilterOptions?: Record<string, FilterConfig['options']>;\n}\n\nexport interface UseFilterGroupsResult {\n /** Filters merged with `dynamicFilterOptions`. */\n processedFilters: FilterConfig[];\n searchFilters: FilterConfig[];\n alwaysVisibleFilters: FilterConfig[];\n activeRegularFilters: FilterConfig[];\n popoverFilters: FilterConfig[];\n activeFilterKeys: string[];\n hasActive: boolean;\n}\n\nexport function useFilterGroups(options: UseFilterGroupsOptions = {}): UseFilterGroupsResult {\n const { dynamicFilterOptions } = options;\n const { filters, isFilterActive } = useFilters();\n\n const processedFilters = useMemo(() => {\n if (!dynamicFilterOptions) return filters;\n return filters.map((filter) => {\n const dyn = dynamicFilterOptions[filter.key];\n if (Array.isArray(dyn)) return { ...filter, options: dyn };\n return filter;\n });\n }, [filters, dynamicFilterOptions]);\n\n return useMemo(() => {\n const searchFilters = processedFilters.filter((f) => f.type === FilterType.SEARCH);\n const activeRegularFilters = processedFilters.filter(\n (f) => f.type !== FilterType.SEARCH && isFilterActive(f.key),\n );\n const alwaysVisibleFilters = processedFilters.filter(\n (f) =>\n f.type !== FilterType.SEARCH\n && !isFilterActive(f.key)\n && f.displayConfig?.display === 'always',\n );\n const popoverFilters = processedFilters.filter(\n (f) =>\n f.type !== FilterType.SEARCH\n && !isFilterActive(f.key)\n && f.displayConfig?.display !== 'always',\n );\n const activeFilterKeys = activeRegularFilters.map((f) => f.key);\n\n return {\n processedFilters,\n searchFilters,\n alwaysVisibleFilters,\n activeRegularFilters,\n popoverFilters,\n activeFilterKeys,\n hasActive: activeFilterKeys.length > 0,\n };\n }, [processedFilters, isFilterActive]);\n}\n","import React, { useState } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { PopoverMenu } from '@/components/base/popover-menu';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useFilters } from '../filter-context';\nimport type { FilterOperator, OperatorOption } from '../filters.types';\n\ninterface FilterOperatorSelectProps {\n operator: FilterOperator;\n operators: OperatorOption[];\n onOperatorChange: (operator: FilterOperator) => void;\n /** Segment-reset classes forwarded by the parent pill so the trigger\n * drops its base border + focus ring (it lives inside a segmented\n * pill, not as a standalone button). */\n segmentResetClass?: string;\n}\n\n/**\n * FilterOperatorSelect — operator dropdown for an active filter pill.\n *\n * Now delegates the trigger + popover + command-list pattern entirely to\n * `PopoverMenu`. The trigger is rendered in the pill's inline strip, the\n * `header` slot supplies the small \"Operator\" eyebrow, and item rendering\n * stays compact (xs typography, density-tokenized padding from base/command).\n */\nexport function FilterOperatorSelect({\n operator,\n operators,\n onOperatorChange,\n segmentResetClass,\n}: FilterOperatorSelectProps) {\n const [open, setOpen] = useState(false);\n const { strings } = useFilters();\n\n const currentOperatorLabel =\n operators.find((op) => op.value === operator)?.label || operator;\n\n const handleTriggerClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n return (\n <PopoverMenu\n open={open}\n onOpenChange={setOpen}\n search={false}\n trigger={\n <Button\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className={cn(\n segmentResetClass,\n 'text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground h-full px-3 text-xs',\n )}\n onClick={handleTriggerClick}\n type=\"button\"\n >\n {currentOperatorLabel}\n </Button>\n }\n header={\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {strings.operator}\n </Text>\n }\n contentClassName=\"w-48\"\n items={operators.map((op) => ({\n value: op.value,\n label: op.label,\n selected: op.value === operator,\n }))}\n onSelect={(item) => {\n onOperatorChange(item.value as FilterOperator);\n setOpen(false);\n }}\n />\n );\n}\n","import { format } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { Text } from '@/components/typography';\nimport { useFilters } from '../filter-context';\nimport type { FilterStrings } from '../filters.strings';\nimport { interpolateFilterString } from '../filters.strings';\nimport { FilterType, type FilterConfig } from '../filters.types';\n\ninterface FilterValueDisplayProps {\n filter: FilterConfig;\n value: string[];\n}\n\n/**\n * Filter Value Display Component\n *\n * This component provides the UI for displaying filter values.\n * It handles:\n * - Displaying filter values with appropriate formatting\n * - Showing icons for filter options\n * - Handling date formatting\n * - Supporting internationalization\n *\n * The component is used to show users the current value of a filter\n * in a consistent and informative way.\n */\n\nexport function FilterValueDisplay({ filter, value }: FilterValueDisplayProps) {\n const { strings } = useFilters();\n\n // Empty state — render the localized \"Nothing selected\" instead of an\n // empty cell so the pill never collapses to no-value text.\n if (value.length === 0 && filter.type !== FilterType.DATE) {\n return (\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.nothingSelected}\n </Text>\n );\n }\n\n // For ASYNC_SELECT — always show \"N selected\"\n if (filter.type === FilterType.ASYNC_SELECT && !filter.options?.length) {\n return (\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {renderAsyncValueText(filter, value, strings)}\n </Text>\n );\n }\n\n if (filter.options && filter.type !== FilterType.DATE) {\n return (\n <div className=\"flex items-center gap-1\">\n {/* Option icons - shown for both single and multi-select cases */}\n <div className=\"relative flex\">\n {value.slice(0, 2).map((val, index) => {\n const option = filter.options?.find(\n (o) => o.value === val,\n );\n if (!option?.icon) return null;\n\n return (\n <div\n key={val}\n className={`${index > 0 ? '-ml-1.5' : ''} border-background bg-background relative rounded-full border`}\n style={{ zIndex: 10 - index }}\n >\n {option.icon}\n </div>\n );\n })}\n {value.length > 2 && (\n <div className=\"bg-muted border-background relative -ml-1.5 flex h-4 w-4 items-center justify-center rounded-full border text-xxs font-medium\">\n +{value.length - 2}\n </div>\n )}\n </div>\n\n {/* Value text */}\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {renderValueText(filter, value, strings)}\n </Text>\n </div>\n );\n }\n\n // For date filters\n if (filter.type === FilterType.DATE) {\n return (\n <div className=\"flex items-center gap-1\">\n <CalendarIcon className=\"text-muted-foreground h-3.5 w-3.5\" />\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {renderDateValue(filter, value, strings)}\n </Text>\n </div>\n );\n }\n\n // For other filters\n return (\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {renderValueText(filter, value, strings)}\n </Text>\n );\n}\n\n// Helper function to render date values\nfunction renderDateValue(\n filter: FilterConfig,\n value: string[],\n strings: FilterStrings,\n) {\n if (filter.operator === 'between' && value.length === 2) {\n return `${formatDateValue(value[0], filter.dateFormat?.display)} - ${formatDateValue(value[1], filter.dateFormat?.display)}`;\n }\n\n if (value.length === 1) {\n return formatDateValue(value[0], filter.dateFormat?.display);\n }\n\n if (value.length === 2) {\n return `${formatDateValue(value[0], filter.dateFormat?.display)} - ${formatDateValue(value[1], filter.dateFormat?.display)}`;\n }\n\n return (\n filter.datePickerConfig?.noDatePlaceholder ||\n strings.calendar.notDateSelected\n );\n}\n\n// Helper function to render text values for async filters — always \"N selected\"\nfunction renderAsyncValueText(\n _filter: FilterConfig,\n value: string[],\n strings: FilterStrings,\n) {\n if (value.length === 0) return '';\n return interpolateFilterString(strings.selected, { count: value.length, filterLabel: (value.length > 1 ? _filter.pluralLabel : _filter.label) ?? _filter.label });\n}\n\n// Helper function to render text values\nfunction renderValueText(\n filter: FilterConfig,\n value: string[],\n strings: FilterStrings,\n) {\n if (value.length > 1) {\n return interpolateFilterString(strings.selected, {\n count: value.length,\n filterLabel: filter.pluralLabel ?? filter.label,\n });\n }\n\n return value\n .map((val) => {\n const option = filter.options?.find((o) => o.value === val);\n return option?.label || val;\n })\n .join(', ');\n}\n\nfunction formatDateValue(rawValue: string, pattern?: string) {\n const parsed = new Date(rawValue);\n\n if (Number.isNaN(parsed.getTime())) {\n return rawValue;\n }\n\n if (pattern) {\n try {\n return format(parsed, pattern);\n } catch {\n // Fall through to locale formatting if the provided pattern is invalid\n }\n }\n\n return parsed.toLocaleDateString();\n}\n","import { ChevronDown, X } from 'lucide-react';\nimport React from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport {\n FILTER_ELEMENT_HEIGHT,\n type FilterConfig,\n type FilterOperator,\n type OperatorOption,\n} from '../filters.types';\nimport { FilterOperatorSelect } from './filter-operator-select';\nimport { FilterValueDisplay } from './filter-value-display';\n\ninterface ActiveFilterItemProps {\n filter: FilterConfig;\n value: string[];\n isActive: boolean;\n operators: OperatorOption[];\n operator: FilterOperator;\n onOperatorChange: (operator: FilterOperator) => void;\n onFilterClear: () => void;\n onFilterClick: () => void;\n}\n\n/**\n * Active Filter Item Component\n *\n * This component displays a single active filter in the filter list.\n * It provides:\n * - Display of filter label and value\n * - Remove filter functionality\n * - Visual feedback for active state\n * - Support for different filter types\n *\n * The component is used in the filter list to show currently active filters\n * and allow users to remove them.\n */\n\nexport function ActiveFilterItem({\n filter,\n value,\n isActive,\n operators,\n operator,\n onOperatorChange,\n onFilterClear,\n onFilterClick,\n}: ActiveFilterItemProps) {\n const { strings } = useFilters();\n\n // Handle button click to avoid interference with children\n const handleLabelClick = (e: React.MouseEvent) => {\n // Only proceed if this is directly on the button, not a child element\n if (\n e.currentTarget === e.target ||\n (e.target as HTMLElement).tagName !== 'BUTTON'\n ) {\n onFilterClick();\n }\n };\n\n // Inside the pill, segment buttons must not paint their own border or\n // focus ring — the pill itself is the visual container. The global\n // `<Button>` primitive bakes in `border border-transparent\n // focus-visible:border-ring focus-visible:ring-3`, so without these\n // overrides every segment paints a full 1px box (showing as a\n // double-border just inside the pill chrome) and a rounded focus ring\n // when the popover opens.\n const SEGMENT_RESET =\n '!border-0 !rounded-none !shadow-none focus-visible:!ring-0 focus-visible:!border-transparent';\n\n // Explicit 1px divider — the segment buttons use `!border-0` (so they\n // don't paint an inner full-box decoration) which would also wipe a\n // `divide-x` border. A standalone separator div is unambiguous and\n // doesn't fight with the buttons' baseline chrome.\n const Divider = () => <div aria-hidden className=\"w-px self-stretch bg-border\" />;\n\n return (\n <div\n role=\"group\"\n aria-label={filter.label}\n className={cn(\n `border-input bg-background flex ${FILTER_ELEMENT_HEIGHT} items-center overflow-hidden rounded-md border`,\n filter.displayConfig?.className,\n isActive && 'active',\n )}\n >\n {/* Filter icon, label and dropdown button grouped together */}\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className={cn(\n SEGMENT_RESET,\n 'flex h-full items-center px-3 hover:bg-accent hover:text-accent-foreground',\n )}\n onClick={handleLabelClick}\n >\n {!!filter.icon && (\n <span className=\"text-muted-foreground mr-1\">\n {filter.icon}\n </span>\n )}\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">{filter.label}</Text>\n <ChevronDown className=\"ml-1 h-4 w-4\" />\n </Button>\n\n <Divider />\n\n {/* Operator dropdown */}\n <FilterOperatorSelect\n operator={operator}\n operators={operators}\n onOperatorChange={onOperatorChange}\n segmentResetClass={SEGMENT_RESET}\n />\n\n <Divider />\n\n {/* Value display with icons and count when multiple selected - explicitly non-interactive */}\n <div className=\"pointer-events-none flex flex-1 items-center px-2\">\n <FilterValueDisplay filter={filter} value={value} />\n </div>\n\n <Divider />\n\n {/* Clear button */}\n <Button\n variant=\"secondary\" buttonStyle=\"ghost\"\n className={cn(SEGMENT_RESET, 'h-full w-8 px-0 rounded-r-md')}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n onFilterClear();\n }}\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{strings.clear}</span>\n </Button>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\n\nexport function useDebounce<T>(value: T, delay: number = 500): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}","/**\n * useAsyncOptions — peer-dep-free async fetcher for filter facets.\n *\n * Replaces the previous `@tanstack/react-query` integration so the feature\n * stays framework-agnostic. Behaviour preserved:\n * - Debounced search input\n * - Min-query-length gating with an `isBelowMinQuery` flag\n * - Optional preload (empty query) with an `enabled` toggle\n * - AbortController on each new request\n * - In-memory cache keyed by `(filter.key, query)` to avoid refetching\n * identical queries within the cache window (`staleTime`)\n * - `refetch()` for the consumer's retry button\n *\n * Consumers that want react-query semantics can compose `asyncConfig.fetcher`\n * with their own `useQuery` and pass the resulting `FilterOption[]` through\n * a controlled `options` prop on the facet — no integration code needed in\n * this library.\n */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useDebounce } from '@/hooks/use-debounce';\nimport { useFiltersConfig } from '@/lib/ui-provider';\n\nimport type { FilterConfig, FilterOption } from '../filters.types';\n\ninterface CacheEntry {\n timestamp: number;\n data: FilterOption[];\n}\n\nconst moduleCache = new Map<string, CacheEntry>();\n\nexport interface UseAsyncOptionsResult {\n options: FilterOption[];\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n refetch: () => void;\n isBelowMinQuery: boolean;\n minQueryLength: number;\n}\n\nexport function useAsyncOptions(\n filter: FilterConfig,\n searchInput: string,\n isActive: boolean,\n): UseAsyncOptionsResult {\n const { asyncConfig, fetchOptions } = filter;\n const { debounceMs: configDebounceMs, defaultPageSize } = useFiltersConfig();\n const debounceMs = asyncConfig?.debounceMs ?? filter.delay ?? configDebounceMs ?? 300;\n const debouncedSearch = useDebounce(searchInput, debounceMs);\n const normalisedQuery = (debouncedSearch ?? '').trim();\n\n const limit = asyncConfig?.limit ?? defaultPageSize ?? 10;\n const minQueryLength = asyncConfig?.minQueryLength ?? 0;\n const preload = asyncConfig?.preload ?? true;\n const staleTime = asyncConfig?.staleTime ?? 60_000;\n\n const isPreload = normalisedQuery.length === 0 && preload;\n const meetsMinLength = normalisedQuery.length >= minQueryLength;\n const canFetch =\n isActive && (isPreload || (normalisedQuery.length > 0 && meetsMinLength));\n const isBelowMinQuery =\n isActive &&\n !isPreload &&\n normalisedQuery.length > 0 &&\n normalisedQuery.length < minQueryLength;\n\n const cacheKey = useMemo(() => {\n if (asyncConfig?.queryKey) {\n return JSON.stringify(\n asyncConfig.queryKey({ query: normalisedQuery, limit }),\n );\n }\n return JSON.stringify(['filter', filter.key, normalisedQuery, limit]);\n }, [asyncConfig, filter.key, normalisedQuery, limit]);\n\n const queryFn = useCallback(\n async (signal: AbortSignal): Promise<FilterOption[]> => {\n if (asyncConfig?.fetcher && asyncConfig.mapToOption) {\n const items = await asyncConfig.fetcher({\n query: normalisedQuery,\n limit,\n signal,\n });\n return items.map(asyncConfig.mapToOption);\n }\n if (fetchOptions) {\n return fetchOptions({ q: [normalisedQuery] });\n }\n return [];\n },\n [asyncConfig, fetchOptions, normalisedQuery, limit],\n );\n\n const [state, setState] = useState<{\n data: FilterOption[];\n loading: boolean;\n fetching: boolean;\n error: boolean;\n }>(() => {\n const cached = moduleCache.get(cacheKey);\n return {\n data: cached?.data ?? [],\n loading: false,\n fetching: false,\n error: false,\n };\n });\n\n const [reloadTick, setReloadTick] = useState(0);\n const refetch = useCallback(() => setReloadTick((t) => t + 1), []);\n\n useEffect(() => {\n if (!canFetch) return;\n\n const cached = moduleCache.get(cacheKey);\n const isFresh =\n cached !== undefined && Date.now() - cached.timestamp < staleTime;\n\n const controller = new AbortController();\n\n if (isFresh && reloadTick === 0) {\n setState({\n data: cached.data,\n loading: false,\n fetching: false,\n error: false,\n });\n return () => controller.abort();\n }\n\n setState((prev) => ({\n data: cached?.data ?? prev.data,\n loading: cached === undefined,\n fetching: true,\n error: false,\n }));\n\n let cancelled = false;\n queryFn(controller.signal)\n .then((data) => {\n if (cancelled) return;\n moduleCache.set(cacheKey, { timestamp: Date.now(), data });\n setState({\n data,\n loading: false,\n fetching: false,\n error: false,\n });\n })\n .catch((err) => {\n if (cancelled || controller.signal.aborted) return;\n if (err && (err as { name?: string }).name === 'AbortError') return;\n setState((prev) => ({\n data: prev.data,\n loading: false,\n fetching: false,\n error: true,\n }));\n });\n\n return () => {\n cancelled = true;\n controller.abort();\n };\n }, [cacheKey, queryFn, canFetch, staleTime, reloadTick]);\n\n return {\n options: canFetch ? state.data : [],\n isLoading: canFetch && state.loading,\n isFetching: canFetch && state.fetching,\n isError: canFetch && state.error,\n refetch,\n isBelowMinQuery,\n minQueryLength,\n };\n}\n","import {\n AlertCircle,\n ArrowLeft,\n Check,\n Loader2,\n} from 'lucide-react';\nimport { useMemo, useRef, useState } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/base/command';\nimport { Text } from '@/components/typography';\n\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\nimport type { FilterConfig, FilterOption } from '../filters.types';\nimport { useAsyncOptions } from '../hooks';\n\n// ---------------------------------------------------------------------------\n// Props\n// ---------------------------------------------------------------------------\n\ninterface AsyncFilterContentProps {\n filter: FilterConfig;\n value: string[];\n onFilterChange: (value: string[]) => void;\n onBackToFilterList: () => void;\n onClose: () => void;\n isFromMainFilterButton?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * Async Filter Content – renders inside the popover pipeline.\n *\n * Matches the layout of RegularFilterContent (header + command list + footer)\n * but fetches options asynchronously via TanStack Query.\n */\nexport function AsyncFilterContent({\n filter,\n value,\n onFilterChange,\n onBackToFilterList,\n onClose,\n isFromMainFilterButton = false,\n}: AsyncFilterContentProps) {\n const { strings, cacheAsyncOptions, getAsyncOptionLabel } = useFilters();\n const [searchInput, setSearchInput] = useState('');\n const [tempValue, setTempValue] = useState<string[]>(value ?? []);\n\n // Sync tempValue when external value changes\n const prevValueRef = useRef(value);\n if (value !== prevValueRef.current) {\n prevValueRef.current = value;\n setTempValue(value ?? []);\n }\n\n const {\n options,\n isLoading,\n isFetching,\n isError,\n refetch,\n isBelowMinQuery,\n minQueryLength,\n } = useAsyncOptions(filter, searchInput, true);\n\n // Populate the shared async options cache for label resolution in FilterValueDisplay\n if (options.length > 0) {\n cacheAsyncOptions(filter.key, options);\n }\n\n const isMulti = filter.multiple !== false;\n const maxSelected = filter.maxSelected;\n const showBackButton = Boolean(isFromMainFilterButton);\n\n // Sort options: selected items first, then the rest.\n // Also include cached selected items that may not be in current search results.\n const sortedOptions = useMemo(() => {\n const selectedSet = new Set(tempValue);\n const optionValueSet = new Set(options.map((o) => o.value));\n\n // Resolve selected items missing from current results via the global cache\n const missingSelected: FilterOption[] = [];\n for (const val of tempValue) {\n if (!optionValueSet.has(val)) {\n const label = getAsyncOptionLabel(filter.key, val);\n if (label) {\n missingSelected.push({ value: val, label, icon: filter.icon });\n }\n }\n }\n\n const all = [...missingSelected, ...options];\n return all.sort((a, b) => {\n const aSelected = selectedSet.has(a.value) ? 0 : 1;\n const bSelected = selectedSet.has(b.value) ? 0 : 1;\n return aSelected - bSelected;\n });\n }, [options, tempValue, filter.key, filter.icon, getAsyncOptionLabel]);\n\n const handleValueSelect = (optionValue: string) => {\n if (isMulti) {\n if (tempValue.includes(optionValue)) {\n setTempValue(tempValue.filter((v) => v !== optionValue));\n } else {\n if (maxSelected && tempValue.length >= maxSelected) return;\n setTempValue([...tempValue, optionValue]);\n }\n } else {\n setTempValue([optionValue]);\n if (filter.closeOnSelect === true) {\n onFilterChange([optionValue]);\n onClose();\n }\n }\n };\n\n const handleDone = () => {\n onFilterChange(tempValue);\n onClose();\n };\n\n // Render the status area inside CommandEmpty\n const emptyContent = useMemo(() => {\n if (isLoading || isFetching) {\n return (\n <div className=\"flex items-center justify-center gap-2 py-4\">\n <Loader2 className=\"text-muted-foreground size-4 animate-spin\" />\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.searching}\n </Text>\n </div>\n );\n }\n\n if (isError) {\n return (\n <div className=\"flex flex-col items-center gap-2 py-4\">\n <div className=\"flex items-center gap-1.5\">\n <AlertCircle className=\"text-destructive size-4\" />\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.fetchError}\n </Text>\n </div>\n <Button\n variant=\"secondary\"\n buttonStyle=\"outline\"\n size=\"xs\"\n onClick={(e) => {\n e.stopPropagation();\n void refetch();\n }}\n >\n {strings.retryFetch}\n </Button>\n </div>\n );\n }\n\n if (isBelowMinQuery) {\n return (\n <div className=\"text-muted-foreground flex items-center justify-center py-4\">\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {interpolateFilterString(strings.minQueryHint, {\n min: minQueryLength,\n })}\n </Text>\n </div>\n );\n }\n\n return strings.noOptionsFound;\n }, [\n isLoading,\n isFetching,\n isError,\n isBelowMinQuery,\n minQueryLength,\n strings,\n refetch,\n ]);\n\n return (\n <>\n {/* Header – matches RegularFilterContent */}\n <div className=\"flex items-center border-b p-2\">\n {Boolean(showBackButton) && (\n <Button\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className=\"mr-2 h-8 w-8 p-0\"\n onClick={onBackToFilterList}\n aria-label={strings.backToFilters}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n )}\n <div className=\"flex flex-col\">\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {filter.label}\n </Text>\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.selectValues}\n </Text>\n </div>\n </div>\n\n {/* Command list with async search */}\n <Command shouldFilter={false}>\n <CommandInput\n placeholder={interpolateFilterString(\n strings.searchPlaceholder,\n { filterLabel: filter.label.toLowerCase() },\n )}\n value={searchInput}\n onValueChange={setSearchInput}\n />\n <CommandList>\n {sortedOptions.length === 0 ? (\n <CommandEmpty>{emptyContent}</CommandEmpty>\n ) : (\n <CommandGroup>\n {Boolean(isFetching && !isLoading) && (\n <div className=\"flex items-center gap-1.5 px-2 py-1\">\n <Loader2 className=\"text-muted-foreground size-3 animate-spin\" />\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.searching}\n </Text>\n </div>\n )}\n {sortedOptions.map((option) => (\n <CommandItem\n key={option.value}\n onSelect={() => handleValueSelect(option.value)}\n disabled={\n option.disabled ||\n (!!maxSelected &&\n tempValue.length >= maxSelected &&\n !tempValue.includes(option.value))\n }\n className=\"flex items-center gap-2\"\n >\n {option.icon}\n <Text tag=\"span\" size=\"xs\">\n {option.label}\n </Text>\n {tempValue.includes(option.value) && (\n <span className=\"ml-auto\">\n <Check className=\"h-4 w-4\" />\n </span>\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n </CommandList>\n </Command>\n\n {/* Footer – matches RegularFilterContent */}\n <div className=\"flex justify-between border-t p-2\">\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {interpolateFilterString(strings.selected, {\n count: tempValue.length,\n filterLabel: (tempValue.length > 1 ? filter.pluralLabel : filter.label) ?? filter.label,\n })}\n </Text>\n <div className=\"flex gap-2\">\n <Button\n variant=\"secondary\"\n buttonStyle=\"outline\"\n size=\"xs\"\n onClick={handleDone}\n >\n {strings.confirm}\n </Button>\n </div>\n </div>\n </>\n );\n}\n","import { isValid } from 'date-fns';\nimport type { DateRange } from 'react-day-picker';\nimport {\n DatePicker,\n type DateOutput,\n type DateRangeOutput,\n type PresetDateRange,\n} from '@/components/base/date-pickers';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\n\nconst EMPTY_PRESETS: PresetDateRange[] = [];\n\ninterface DateFacetProps {\n filter: FilterConfig;\n value: { start?: Date; end?: Date };\n onChange: (value: { start?: Date; end?: Date }) => void;\n className?: string;\n}\n\nexport function DateFacet({\n filter,\n value,\n onChange,\n className,\n}: DateFacetProps) {\n const { strings } = useFilters();\n\n const isRangeMode =\n filter.operators?.some((op) => op.value === 'between') ||\n filter.operator === 'between' ||\n filter.key.toLowerCase().includes('range') ||\n filter.key.toLowerCase().includes('between');\n\n const dateFormat = filter.dateFormat?.param ?? 'yyyy-MM-dd';\n const readableFormat = filter.dateFormat?.display ?? 'PPP';\n const placeholder = isRangeMode\n ? (filter.datePickerConfig?.noRangePlaceholder ??\n filter.placeholder ??\n strings.calendar.notDateRangeSelected)\n : (filter.datePickerConfig?.noDatePlaceholder ??\n filter.placeholder ??\n strings.calendar.notDateSelected);\n const withConfirm = Boolean(filter.datePickerConfig?.showConfirmButton);\n const closeOnSelect = filter.datePickerConfig?.autoApply ?? !withConfirm;\n const showShortcuts = filter.datePickerConfig?.showShortcuts ?? true;\n\n const rangeValue: DateRange | undefined =\n isRangeMode && (value.start || value.end)\n ? { from: value.start, to: value.end }\n : undefined;\n\n const singleValue =\n !isRangeMode && value.start && isValid(value.start)\n ? value.start\n : undefined;\n\n const commonProps = {\n format: dateFormat,\n readableFormat,\n placeholder,\n disablePortal: true,\n numberOfMonths: 1,\n className: cn('date-facet--component', 'w-full', className),\n };\n\n const handleSingleChange = (output: DateOutput) => {\n onChange({ start: output.date ?? undefined, end: undefined });\n };\n\n const handleRangeChange = (output: DateRangeOutput) => {\n onChange({\n start: output.range?.from ?? undefined,\n end: output.range?.to ?? undefined,\n });\n };\n\n if (isRangeMode) {\n const presetsProp = showShortcuts ? undefined : EMPTY_PRESETS;\n return (\n <DatePicker\n mode=\"range\"\n value={rangeValue}\n onChange={handleRangeChange}\n withConfirm={withConfirm}\n closeOnSelect={closeOnSelect}\n presets={presetsProp}\n {...commonProps}\n />\n );\n }\n\n return (\n <DatePicker\n mode=\"single\"\n value={singleValue}\n onChange={handleSingleChange}\n closeOnSelect={closeOnSelect}\n {...commonProps}\n />\n );\n}\n","import { format, parse, isValid } from 'date-fns';\nimport { ArrowLeft } from 'lucide-react';\nimport { Button } from '@/components/base/buttons';\nimport { DateFacet } from '../facets/date-facet';\nimport { Text } from '@/components/typography';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\n\ninterface DateFilterContentProps {\n filter: FilterConfig;\n value: string[];\n onFilterChange: (value: string[]) => void;\n onBackToFilterList: () => void;\n isFromMainFilterButton?: boolean;\n}\n\nexport function DateFilterContent({\n filter,\n value,\n onFilterChange,\n onBackToFilterList,\n isFromMainFilterButton = false,\n}: DateFilterContentProps) {\n const { strings } = useFilters();\n\n const parseInputDate = (input?: string) => {\n if (!input) {\n return undefined;\n }\n\n if (filter.dateFormat?.param) {\n const parsed = parse(input, filter.dateFormat.param, new Date());\n return isValid(parsed) ? parsed : undefined;\n }\n\n const parsed = new Date(input);\n return isValid(parsed) ? parsed : undefined;\n };\n\n const startDate = parseInputDate(value[0]);\n const endDate = parseInputDate(value[1]);\n\n // Default date format for filter params - matches backend expectations\n const defaultDateFormat = 'yyyy-MM-dd';\n\n const formatOutputDate = (date?: Date) => {\n if (!date || !isValid(date)) {\n return undefined;\n }\n\n return format(date, filter.dateFormat?.param ?? defaultDateFormat);\n };\n\n const handleDateChange = ({ start, end }: { start?: Date; end?: Date }) => {\n const next: string[] = [];\n const formattedStart = formatOutputDate(start);\n const formattedEnd = formatOutputDate(end);\n\n if (formattedStart) {\n next.push(formattedStart);\n }\n\n if (formattedEnd) {\n next.push(formattedEnd);\n }\n\n onFilterChange(next);\n };\n\n const showBackButton = Boolean(isFromMainFilterButton);\n\n const facetValue = { start: startDate, end: endDate };\n\n return (\n <div className=\"flex flex-col\">\n <div className=\"flex items-center gap-2 border-b border-border/60 px-3 py-2.5\">\n {!!showBackButton && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-xs\"\n onClick={onBackToFilterList}\n className=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\"\n aria-label={strings.backToFilters}\n >\n <ArrowLeft className=\"size-3.5\" />\n </Button>\n )}\n <Text tag=\"span\" weight=\"semibold\" className=\"truncate\">\n {filter.label}\n </Text>\n </div>\n\n <div className=\"p-2\">\n <DateFacet\n filter={filter}\n value={facetValue}\n onChange={handleDateChange}\n />\n </div>\n </div>\n );\n}\n","import { X } from 'lucide-react';\nimport { Component, type ErrorInfo, type ReactNode, useMemo } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\n\ninterface Props {\n children: ReactNode;\n filterKey?: string;\n fallback?: ReactNode;\n}\n\ninterface State {\n hasError: boolean;\n error: Error | null;\n}\n\ninterface FilterErrorBoundaryLabels {\n title: string;\n reset: string;\n getDescription: (filterKey?: string) => string;\n unknownError: string;\n}\n\nclass FilterErrorBoundaryBase extends Component<\n Props & { labels: FilterErrorBoundaryLabels },\n State\n> {\n public state: State = {\n hasError: false,\n error: null,\n };\n\n /**\n * Update state when an error occurs\n */\n public static getDerivedStateFromError(error: Error): State {\n return { hasError: true, error };\n }\n\n /**\n * Log the error to the console and to an error tracking service if available\n */\n public componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n if (import.meta.env?.DEV) {\n\t console.error('Filter error:', error, errorInfo);\n }\n\n // Report to error monitoring service if available\n // This is where you would integrate with services like Sentry\n if (typeof window !== 'undefined' && window.dispatchEvent) {\n window.dispatchEvent(\n new CustomEvent('filter-error', {\n detail: {\n filterKey: this.props.filterKey,\n error,\n errorInfo,\n },\n }),\n );\n }\n }\n\n /**\n * Reset the error state\n */\n private handleReset = () => {\n this.setState({ hasError: false, error: null });\n };\n\n public render() {\n if (this.state.hasError) {\n const { fallback, filterKey, labels } = this.props;\n if (fallback) {\n return fallback;\n }\n\n return (\n <div className=\"rounded-md border border-destructive/30 bg-destructive/10 p-3 text-xs text-destructive\">\n <div className=\"mb-1 flex items-center justify-between\">\n <Text tag=\"span\" weight=\"semibold\">\n {labels.title}\n </Text>\n <Button\n type=\"button\"\n variant=\"error\"\n buttonStyle=\"ghost\"\n size=\"icon-xs\"\n onClick={this.handleReset}\n className=\"size-6 rounded-full p-0\"\n aria-label={labels.reset}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n <Text size=\"xs\">{labels.getDescription(filterKey)}</Text>\n <Text size=\"xs\" type=\"error\" className=\"mt-1 font-mono\">\n {this.state.error?.message || labels.unknownError}\n </Text>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\nexport function FilterErrorBoundary(props: Props) {\n const { strings } = useFilters();\n\n const labels = useMemo<FilterErrorBoundaryLabels>(\n () => ({\n title: strings.error.title,\n reset: strings.clear,\n getDescription: (filterKey?: string) =>\n filterKey\n ? interpolateFilterString(strings.error.descriptionWithKey, {\n filterKey,\n })\n : strings.error.generic,\n unknownError: strings.error.unknown,\n }),\n [strings],\n );\n\n return <FilterErrorBoundaryBase {...props} labels={labels} />;\n}\n","import { CommandItem } from '@/components/base/command';\nimport { Text } from '@/components/typography';\nimport { useFilters } from '../filter-context';\nimport { FilterType, type FilterConfig } from '../filters.types';\n\ninterface FilterListItemProps {\n filter: FilterConfig;\n onSelect: () => void;\n}\n\n/**\n * FilterListItem — single row inside the Filters-button menu.\n *\n * Shows a leading icon (rendered as-is so its native colour comes through),\n * the filter label as the primary line, and a secondary \"{n} options\" line\n * for SELECT-style filters or the \"select date range\" hint for DATE filters.\n *\n * All typography flows through the base Text component so the global\n * scale + theming applies consistently.\n */\nexport function FilterListItem({ filter, onSelect }: FilterListItemProps) {\n const { strings } = useFilters();\n\n const subtitle =\n filter.type === FilterType.DATE\n ? filter.operator === 'between'\n ? strings?.selectDateRange\n : strings?.selectDate\n : filter.options\n ? `${filter.options.length} ${strings?.options ?? ''}`.trim()\n : null;\n\n return (\n <CommandItem\n key={filter.key}\n onSelect={onSelect}\n className=\"flex items-center gap-3 rounded-none px-3 py-2\"\n >\n {!!filter.icon && (\n <span className=\"shrink-0 text-muted-foreground\">{filter.icon}</span>\n )}\n <div className=\"flex min-w-0 flex-col leading-tight\">\n <Text tag=\"span\" weight=\"semibold\" className=\"truncate\">\n {filter.label}\n </Text>\n {!!subtitle && (\n <Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"truncate\">\n {subtitle}\n </Text>\n )}\n </div>\n </CommandItem>\n );\n}\n","import {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandList,\n CommandSeparator,\n} from '@/components/base/command';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\nimport { FilterListItem } from './filter-list-item';\n\ninterface FilterListContentProps {\n availableFilters: FilterConfig[];\n activeFilters: FilterConfig[];\n onFilterSelect: (filter: FilterConfig) => void;\n}\n\n/**\n * Filter Popover Content Component\n *\n * This component provides the content wrapper for filter popovers.\n * It handles:\n * - Consistent popover styling\n * - Content layout and spacing\n * - Responsive behavior\n * - Animation and transitions\n *\n * The component is used to wrap filter content in a consistent\n * popover interface across different filter types.\n */\n\nexport function FilterListContent({\n availableFilters,\n activeFilters,\n onFilterSelect,\n}: FilterListContentProps) {\n const { strings } = useFilters();\n\n // Handle filter selection with explicit closing of popover\n const handleFilterSelect = (filter: FilterConfig) => {\n // Call the passed onFilterSelect with the filter\n onFilterSelect(filter);\n };\n\n // Group headings get the same px-3 horizontal as items so they all\n // align with the search input above.\n const groupHeadingClasses =\n '[&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:font-medium';\n\n return (\n <Command className=\"rounded-none p-0\">\n <div className=\"border-b border-border/50 px-3 py-2\">\n <CommandInput className=\"text-xs\" placeholder={strings.searchFilters} />\n </div>\n <CommandList className=\"max-h-72 py-1\">\n <CommandEmpty className=\"px-3 py-4 text-center text-xs text-muted-foreground\">\n {strings.noFiltersAvailable}\n </CommandEmpty>\n\n {availableFilters.length > 0 && (\n <CommandGroup heading={strings.availableFilters} className={`p-0 ${groupHeadingClasses}`}>\n {availableFilters.map((filter) => (\n <FilterListItem\n key={filter.key}\n filter={filter}\n onSelect={() => handleFilterSelect(filter)}\n />\n ))}\n </CommandGroup>\n )}\n\n {activeFilters.length > 0 && (\n <>\n <CommandSeparator className=\"my-1\" />\n <CommandGroup heading={strings.activeFilters} className={`p-0 ${groupHeadingClasses}`}>\n {activeFilters.map((filter) => (\n <FilterListItem\n key={filter.key}\n filter={filter}\n onSelect={() => handleFilterSelect(filter)}\n />\n ))}\n </CommandGroup>\n </>\n )}\n </CommandList>\n </Command>\n );\n}\n","import { ArrowLeft } from 'lucide-react';\nimport { useState, useEffect } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/base/command';\nimport { Text } from '@/components/typography';\n\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\nimport { FilterType, type FilterConfig } from '../filters.types';\n\ninterface RegularFilterContentProps {\n filter: FilterConfig;\n value: string[];\n onFilterChange: (value: string[]) => void;\n onBackToFilterList: () => void;\n onClose: () => void;\n isFromMainFilterButton?: boolean;\n}\n\n/**\n * RegularFilterContent — popover body for SELECT / MULTI_SELECT filters.\n *\n * Layout:\n * - Compact header: optional back-arrow, label as small uppercase eyebrow.\n * - Inline search input (only if the filter has more than 5 options).\n * - Tight list of options (sm padding, xs font, ml-auto check on the right).\n * - Compact footer: selected count on the leading edge, Confirm button on\n * the trailing edge — only rendered when the user has changed selection.\n *\n * Sizes are tuned to feel like a native menu, not a card. Popover width\n * stays at ~260-300px so labels read at one glance.\n */\nexport function RegularFilterContent({\n filter,\n value,\n onFilterChange,\n onBackToFilterList,\n onClose,\n isFromMainFilterButton = false,\n}: RegularFilterContentProps) {\n const { strings } = useFilters();\n\n const isMultiSelect =\n filter.multiple === true || filter.type === FilterType.MULTI_SELECT;\n const showBackButton = Boolean(isFromMainFilterButton);\n\n const [tempValue, setTempValue] = useState<string[]>(value || []);\n\n useEffect(() => {\n setTempValue(value || []);\n }, [value]);\n\n const handleValueSelect = (optionValue: string) => {\n if (isMultiSelect) {\n const newValue = tempValue.includes(optionValue)\n ? tempValue.filter((v) => v !== optionValue)\n : [...tempValue, optionValue];\n setTempValue(newValue);\n } else {\n setTempValue([optionValue]);\n\n if (filter.closeOnSelect === true) {\n onFilterChange([optionValue]);\n onClose();\n }\n }\n };\n\n const handleDone = () => {\n try {\n onFilterChange(tempValue);\n onClose();\n } catch (error) {\n if (import.meta.env?.DEV) {\n\t console.error('Error applying filter:', error);\n }\n }\n };\n\n const isDirty = JSON.stringify(tempValue.slice().sort()) !== JSON.stringify((value ?? []).slice().sort());\n\n return (\n <div className=\"flex flex-col\">\n {/* SECTION 1 — Label header */}\n <div className=\"flex items-center gap-2 border-b border-border/60 px-3 py-2.5\">\n {!!showBackButton && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-xs\"\n onClick={onBackToFilterList}\n className=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\"\n aria-label={strings.backToFilters}\n >\n <ArrowLeft className=\"size-3.5\" />\n </Button>\n )}\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\" className=\"truncate\">\n {filter.label}\n </Text>\n </div>\n\n <Command className=\"rounded-none p-0\">\n {/* SECTION 2 — Search.\n Same px-3 py-2.5 as the label section. */}\n <div className=\"border-b border-border/50 px-3 py-2.5\">\n <CommandInput\n className=\"text-xs\"\n placeholder={interpolateFilterString(\n strings.searchPlaceholder,\n { filterLabel: filter.label.toLowerCase() },\n )}\n />\n </div>\n\n {/* SECTION 3 — Values list.\n Same px-3 py-2.5 outer padding as the other two sections.\n Items inside have ADDITIONAL inner padding (px-2) so option\n labels are slightly more indented than the section frame —\n that's what tells the eye \"these are list rows, not header\n text\". Total label inset: 12px (section) + 8px (item) = 20px. */}\n <CommandList className=\"max-h-64 px-3 py-2\">\n <CommandEmpty>\n <Text size=\"xs\" type=\"secondary\" align=\"center\" className=\"py-4\">\n {strings.noOptionsFound}\n </Text>\n </CommandEmpty>\n <CommandGroup className=\"p-0 [&_[cmdk-group]]:p-0\">\n {filter.options?.map((option) => {\n const isSelected = tempValue.includes(option.value);\n // data-checked toggles the CommandItem's built-in\n // CheckIcon (rendered after children with ml-auto).\n return (\n <CommandItem\n key={option.value}\n onSelect={() => handleValueSelect(option.value)}\n data-checked={isSelected || undefined}\n disabled={option.disabled}\n className=\"flex items-start gap-2.5 rounded-md px-2 py-2 data-[checked=true]:**:[svg]:text-primary\"\n >\n {!!option.icon && (\n <span className=\"mt-0.5 shrink-0 text-muted-foreground\">\n {option.icon}\n </span>\n )}\n <div className=\"flex min-w-0 flex-1 flex-col leading-tight\">\n <Text\n tag=\"span\"\n size=\"xs\"\n weight={isSelected ? 'medium' : 'regular'}\n className=\"truncate\"\n >\n {option.label}\n </Text>\n {!!option.description && (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"truncate mt-0.5\"\n >\n {option.description}\n </Text>\n )}\n </div>\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n\n {/* Compact footer — only shows when dirty */}\n {!!isDirty && (\n <div className=\"flex items-center justify-between gap-2 border-t border-border/60 px-2.5 py-1.5\">\n <Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n {interpolateFilterString(strings.selected, {\n count: tempValue.length,\n filterLabel: (tempValue.length > 1 ? filter.pluralLabel : filter.label) ?? filter.label,\n })}\n </Text>\n <Button variant=\"primary\" size=\"xs\" onClick={handleDone}>\n {strings.confirm}\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { X, Plus } from 'lucide-react';\nimport React, { useState, useCallback, type KeyboardEvent } from 'react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Input } from '@/components/base/forms';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\n\ninterface TagsFacetProps {\n filter: FilterConfig;\n value: string[];\n onChange: (value: string[]) => void;\n className?: string;\n}\n\n/**\n * Tags Filter Facet\n *\n * This component implements a tags input filter that allows users to:\n * - Enter tags through an input field\n * - Add tags by pressing Enter or clicking the add button\n * - View all selected tags as removable badges\n * - Remove individual tags by clicking the X on each badge\n *\n * The component is ideal for filtering by multiple tags or keywords\n * where users need to see all selected values at once.\n */\n\nfunction TagsFacetComponent({\n filter,\n value,\n onChange,\n className,\n}: TagsFacetProps) {\n const { strings } = useFilters();\n const [inputValue, setInputValue] = useState('');\n // Handle adding a new tag\n const handleAddTag = useCallback(() => {\n const trimmedValue = inputValue.trim();\n\n // Don't add empty tags or duplicates\n if (!trimmedValue || value.includes(trimmedValue)) {\n return;\n }\n\n onChange([...value, trimmedValue]);\n setInputValue('');\n }, [inputValue, value, onChange]);\n\n // Handle removing a tag\n const handleRemoveTag = useCallback(\n (tagToRemove: string) => {\n onChange(value.filter((tag) => tag !== tagToRemove));\n },\n [value, onChange],\n );\n\n // Handle keyboard events\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleAddTag();\n }\n };\n\n // Clear all tags\n const handleClearAll = useCallback(() => {\n onChange([]);\n setInputValue('');\n }, [onChange]);\n\n const hasTags = value.length > 0;\n const tagCountLabel =\n value.length === 1 ? strings.tag : strings.tags;\n const tagSummary = hasTags ? (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {value.length} {tagCountLabel}\n </Text>\n <Button\n onClick={handleClearAll}\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"xs\"\n className=\"h-auto px-1 py-0 text-xs text-muted-foreground hover:text-foreground\"\n type=\"button\"\n aria-label={strings.clearAll}\n >\n {strings.clearAll}\n </Button>\n </div>\n <div className=\"flex flex-wrap gap-2\">\n {value.map((tag) => (\n <Badge\n key={tag}\n variant=\"secondary\"\n className=\"flex items-center gap-1 py-1 pl-2 pr-1\"\n >\n <Text tag=\"span\" size=\"xs\">{tag}</Text>\n <Button\n onClick={() => handleRemoveTag(tag)}\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-xs\"\n className=\"ml-1 size-4 rounded-full p-0 hover:bg-muted-foreground/20\"\n type=\"button\"\n aria-label={`${strings.removeTag} ${tag}`}\n >\n <X className=\"h-3 w-3\" />\n </Button>\n </Badge>\n ))}\n </div>\n </div>\n ) : null;\n\n return (\n <div className={cn('tags-facet--component', 'space-y-3', className)}>\n {/* Input section */}\n <div className=\"flex gap-2\">\n <div className=\"relative flex-1\">\n <Input\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={\n filter.placeholder ?? strings.enterTag\n }\n className=\"h-10\"\n />\n </div>\n <Button\n onClick={handleAddTag}\n disabled={!inputValue.trim()}\n className=\"h-10 px-4\"\n type=\"button\"\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"sr-only\">{strings.addTag}</span>\n </Button>\n </div>\n\n {/* Tags display section */}\n {tagSummary}\n </div>\n );\n}\n\nexport const TagsFacet = React.memo(TagsFacetComponent);\nTagsFacet.displayName = 'TagsFacet';\n","import { ArrowLeft } from 'lucide-react';\nimport { useState, useEffect } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { TagsFacet } from '../facets/tags-facet';\nimport { Text } from '@/components/typography';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\n\ninterface TagsFilterContentProps {\n filter: FilterConfig;\n value: string[];\n onFilterChange: (value: string[]) => void;\n onBackToFilterList: () => void;\n onClose: () => void;\n isFromMainFilterButton?: boolean;\n}\n\n/**\n * Tags Filter Content Component\n *\n * This component provides the content for tags filter popovers.\n * It handles:\n * - Tag input and management\n * - Multiple tag selection\n * - Displaying and removing tags\n * - Applying filter changes\n *\n * The component wraps the TagsFacet component and provides\n * the popover-specific UI elements like header and action buttons.\n */\n\nexport function TagsFilterContent({\n filter,\n value,\n onFilterChange,\n onBackToFilterList,\n onClose,\n isFromMainFilterButton = false,\n}: TagsFilterContentProps) {\n const { strings } = useFilters();\n\n // Use local state to track temporary values before committing\n const [tempValue, setTempValue] = useState<string[]>(value || []);\n const showBackButton = Boolean(isFromMainFilterButton);\n const tagCountLabel =\n tempValue.length === 1 ? strings.tag : strings.tags;\n\n // Update tempValue when value changes (for initial or external updates)\n useEffect(() => {\n setTempValue(value || []);\n }, [value]);\n\n // Apply changes when Done is clicked\n const handleDone = () => {\n try {\n onFilterChange(tempValue);\n onClose();\n } catch (error) {\n if (import.meta.env?.DEV) {\n\t console.error('Error applying filter:', error);\n }\n }\n };\n\n const isDirty = JSON.stringify(tempValue.slice().sort()) !== JSON.stringify((value ?? []).slice().sort());\n\n return (\n <div className=\"flex flex-col\">\n <div className=\"flex items-center gap-2 border-b border-border/60 px-3 py-2.5\">\n {!!showBackButton && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-xs\"\n onClick={onBackToFilterList}\n className=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\"\n aria-label={strings.backToFilters}\n >\n <ArrowLeft className=\"size-3.5\" />\n </Button>\n )}\n <Text tag=\"span\" weight=\"semibold\" className=\"truncate\">\n {filter.label}\n </Text>\n </div>\n\n <div className=\"p-2\">\n <TagsFacet\n filter={filter}\n value={tempValue}\n onChange={setTempValue}\n />\n </div>\n\n {!!isDirty && (\n <div className=\"flex items-center justify-between gap-2 border-t border-border/60 px-2.5 py-1.5\">\n <Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n {tempValue.length} {tagCountLabel}\n </Text>\n <Button variant=\"primary\" size=\"xs\" onClick={handleDone}>\n {strings.confirm}\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { PopoverContent } from '@/components/base/popover';\nimport { FilterType, type FilterConfig } from '../filters.types';\nimport { AsyncFilterContent } from './async-filter-content';\nimport { DateFilterContent } from './date-filter-content';\nimport { FilterListContent } from './filter-list-content';\nimport { RegularFilterContent } from './regular-filter-content';\nimport { TagsFilterContent } from './tags-filter-content';\n\ninterface FilterPopoverContentProps {\n activeFilterInPopover: FilterConfig | null;\n availableFilters: FilterConfig[];\n activeFilters: FilterConfig[];\n getFilterValue: (key: string) => string[];\n setFilterValue: (key: string, value: string[]) => void;\n onFilterSelect: (filter: FilterConfig) => void;\n onBackToFilterList: () => void;\n onClose: () => void;\n isFromMainFilterButton?: boolean; // Determines back button behavior\n}\n\n/**\n * Filter Popover Content Component\n *\n * This component provides the content wrapper for filter popovers.\n * It handles:\n * - Consistent popover styling\n * - Content layout and spacing\n * - Responsive behavior\n * - Animation and transitions\n *\n * The component is used to wrap filter content in a consistent\n * popover interface across different filter types.\n */\n\nexport function FilterPopoverContent({\n activeFilterInPopover,\n availableFilters,\n activeFilters,\n getFilterValue,\n setFilterValue,\n onFilterSelect,\n onBackToFilterList,\n onClose,\n isFromMainFilterButton = false,\n}: FilterPopoverContentProps) {\n const popoverWidth =\n activeFilterInPopover?.type === FilterType.DATE ||\n activeFilterInPopover?.type === FilterType.TAGS\n ? 'w-auto min-w-[320px] p-0 overflow-hidden rounded-lg shadow-lg'\n : activeFilterInPopover?.type === FilterType.ASYNC_SELECT\n ? 'w-72 p-0 overflow-hidden rounded-lg shadow-lg'\n : 'w-64 p-0 overflow-hidden rounded-lg shadow-lg';\n\n // Forward values directly so upstream can decide whether to add or clear the filter\n const handleSetFilterValue = (key: string, value: string[]) => {\n setFilterValue(key, value);\n };\n\n return (\n <PopoverContent className={popoverWidth} align=\"start\">\n {activeFilterInPopover ? (\n // Render specific filter content based on type\n activeFilterInPopover.type === FilterType.DATE ? (\n <DateFilterContent\n filter={activeFilterInPopover}\n value={getFilterValue(activeFilterInPopover.key)}\n onFilterChange={(value) =>\n handleSetFilterValue(\n activeFilterInPopover.key,\n value,\n )\n }\n onBackToFilterList={onBackToFilterList}\n isFromMainFilterButton={isFromMainFilterButton}\n />\n ) : activeFilterInPopover.type === FilterType.TAGS ? (\n <TagsFilterContent\n filter={activeFilterInPopover}\n value={getFilterValue(activeFilterInPopover.key)}\n onFilterChange={(value) =>\n handleSetFilterValue(\n activeFilterInPopover.key,\n value,\n )\n }\n onBackToFilterList={onBackToFilterList}\n onClose={onClose}\n isFromMainFilterButton={isFromMainFilterButton}\n />\n ) : activeFilterInPopover.type === FilterType.ASYNC_SELECT ? (\n <AsyncFilterContent\n filter={activeFilterInPopover}\n value={getFilterValue(activeFilterInPopover.key)}\n onFilterChange={(value) =>\n handleSetFilterValue(\n activeFilterInPopover.key,\n value,\n )\n }\n onBackToFilterList={onBackToFilterList}\n onClose={onClose}\n isFromMainFilterButton={isFromMainFilterButton}\n />\n ) : (\n <RegularFilterContent\n filter={activeFilterInPopover}\n value={getFilterValue(activeFilterInPopover.key)}\n onFilterChange={(value) =>\n handleSetFilterValue(\n activeFilterInPopover.key,\n value,\n )\n }\n onBackToFilterList={onBackToFilterList}\n onClose={onClose}\n isFromMainFilterButton={isFromMainFilterButton}\n />\n )\n ) : (\n // Render the list of available filters\n <FilterListContent\n availableFilters={availableFilters}\n activeFilters={activeFilters}\n onFilterSelect={onFilterSelect}\n />\n )}\n </PopoverContent>\n );\n}\n","/**\n * FilterPill — internal partial that wraps a single `ActiveFilterItem` with\n * its popover. Used by `FilterLayout` for both `display: 'always'` filters\n * and `active` regular filters since the rendering is identical except for\n * the `availableFilters` / `activeFilters` lists passed to the popover.\n *\n * Exported from `partials/index.ts` so consumers building a custom strip\n * around `<FilterProvider>` can re-use it without duplicating the popover\n * machinery.\n */\nimport { useRef, useState } from 'react';\n\nimport { Popover, PopoverTrigger } from '@/components/base/popover';\n\nimport type {\n FilterConfig,\n FilterOperator,\n OperatorOption,\n} from '../filters.types';\n\nimport { ActiveFilterItem } from './active-filter-item';\nimport { FilterErrorBoundary } from './filter-error-boundary';\nimport { FilterPopoverContent } from './filter-popover-content';\n\nexport interface FilterPillProps {\n filter: FilterConfig;\n value: string[];\n isActive: boolean;\n operator: FilterOperator;\n operators: OperatorOption[];\n onOperatorChange: (operator: FilterOperator) => void;\n onValueChange: (value: string[]) => void;\n onClear: () => void;\n /** Filters to render in the \"+\" list inside the popover. */\n availableFilters: FilterConfig[];\n /** Active regular filters list (for the popover header / context). */\n activeFilters: FilterConfig[];\n /** External signal to suppress popover open during operator change. */\n operatorChangeRef?: React.MutableRefObject<boolean>;\n}\n\nexport function FilterPill({\n filter,\n value,\n isActive,\n operator,\n operators,\n onOperatorChange,\n onValueChange,\n onClear,\n availableFilters,\n activeFilters,\n operatorChangeRef,\n}: FilterPillProps) {\n const localRef = useRef(false);\n const isOperatorChangeRef = operatorChangeRef ?? localRef;\n\n const [open, setOpen] = useState(false);\n\n return (\n <FilterErrorBoundary filterKey={filter.key}>\n <Popover\n open={open}\n onOpenChange={(isOpen) => {\n if (isOpen && isOperatorChangeRef.current) return;\n setOpen(isOpen);\n }}\n >\n <PopoverTrigger\n nativeButton={false}\n render={\n <div>\n <ActiveFilterItem\n filter={filter}\n value={value}\n isActive={isActive}\n operators={operators}\n operator={operator}\n onOperatorChange={(next) => {\n isOperatorChangeRef.current = true;\n onOperatorChange(next);\n setOpen(false);\n setTimeout(() => {\n isOperatorChangeRef.current = false;\n }, 100);\n }}\n onFilterClear={() => {\n setOpen(false);\n onClear();\n }}\n onFilterClick={() => {\n if (!isOperatorChangeRef.current) {\n setOpen(true);\n }\n }}\n />\n </div>\n }\n />\n\n <FilterPopoverContent\n activeFilterInPopover={filter}\n availableFilters={availableFilters}\n activeFilters={activeFilters}\n getFilterValue={() => value}\n setFilterValue={(_, next) => onValueChange(next)}\n onFilterSelect={() => {}}\n onBackToFilterList={() => {}}\n onClose={() => setOpen(false)}\n isFromMainFilterButton={false}\n />\n </Popover>\n </FilterErrorBoundary>\n );\n}\n\nFilterPill.displayName = 'FilterPill';\n","import { Filter } from 'lucide-react';\nimport { useState, useEffect } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport {\n Popover,\n PopoverTrigger,\n} from '@/components/base/popover';\nimport { FILTER_ELEMENT_HEIGHT, type FilterConfig } from '../filters.types';\nimport { FilterPopoverContent } from './filter-popover-content';\n// import { useFilters } from '../filter-context'; // Currently unused\n\ninterface FiltersButtonProps {\n availableFilters: FilterConfig[];\n activeFilters: FilterConfig[];\n activeFilterInPopover: FilterConfig | null;\n getFilterValue: (key: string) => string[];\n setFilterValue: (key: string, value: string[]) => void;\n setActiveFilterInPopover: (filter: FilterConfig | null) => void;\n locale?: string;\n}\n\n/**\n * Filters Button Component\n *\n * This component provides the main button for adding and managing filters.\n * It handles:\n * - Opening the filter popover\n * - Managing filter selection state\n * - Handling filter actions (select, back, close)\n * - Supporting internationalization\n *\n * The component is used as the primary entry point for users to\n * add and configure filters in the application.\n */\n\nexport function FiltersButton({\n availableFilters,\n activeFilters,\n activeFilterInPopover,\n getFilterValue,\n setFilterValue,\n setActiveFilterInPopover,\n}: FiltersButtonProps) {\n // Control popover state explicitly\n const [isOpen, setIsOpen] = useState(false);\n\n // const { t } = useFilters(); // Currently unused\n\n // Handle filter selection - keep popover open\n const handleFilterSelect = (filter: FilterConfig) => {\n // Set the selected filter without closing the popover\n setActiveFilterInPopover(filter);\n };\n\n // Handle back to filter list action\n const handleBackToFilterList = () => {\n setActiveFilterInPopover(null);\n };\n\n // Handle complete close action - reset everything\n const handleClose = () => {\n setActiveFilterInPopover(null);\n setIsOpen(false);\n };\n\n // Reset active filter when popover closes\n useEffect(() => {\n if (!isOpen) {\n // Reset to filters view when popover is closed\n setActiveFilterInPopover(null);\n }\n }, [isOpen, setActiveFilterInPopover]);\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger\n render={\n <Button\n variant=\"secondary\" buttonStyle=\"outline\"\n className={`flex ${FILTER_ELEMENT_HEIGHT} items-center gap-1.5`}\n >\n <Filter className=\"h-4 w-4\" />\n </Button>\n }\n />\n <FilterPopoverContent\n activeFilterInPopover={activeFilterInPopover}\n availableFilters={availableFilters}\n activeFilters={activeFilters}\n getFilterValue={getFilterValue}\n setFilterValue={setFilterValue}\n onFilterSelect={handleFilterSelect}\n onBackToFilterList={handleBackToFilterList}\n onClose={handleClose}\n isFromMainFilterButton={true}\n />\n </Popover>\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport { FilterType, type ActiveFilter, type FilterTab } from '../filters.types';\nimport { getDefaultOperatorForType } from '../operator-options';\n\ninterface FilterTabsProps {\n tabs: FilterTab[];\n}\n\n/**\n * Horizontal tab row for filter presets (Shopify admin style).\n *\n * - \"All\" tab (empty presets): active when zero non-search active filters\n * - Named tabs: active when presets exactly match non-search active filters\n * - Search filters are preserved across tab switches\n */\nexport function FilterTabs({ tabs }: FilterTabsProps) {\n const { activeFilters, filters, replaceFilters } = useFilters();\n\n const nonSearchFilters = useMemo(\n () => activeFilters.filter((f) => {\n const config = filters.find((fc) => fc.key === f.key);\n return config?.type !== FilterType.SEARCH;\n }),\n [activeFilters, filters],\n );\n\n const searchFilters = useMemo(\n () => activeFilters.filter((f) => {\n const config = filters.find((fc) => fc.key === f.key);\n return config?.type === FilterType.SEARCH;\n }),\n [activeFilters, filters],\n );\n\n const activeTabId = useMemo(() => {\n for (const tab of tabs) {\n // \"All\" tab: no presets → active when zero non-search filters\n if (tab.presets.length === 0) {\n if (nonSearchFilters.length === 0) return tab.id;\n continue;\n }\n\n // Named tab: bidirectional exact match\n if (tab.presets.length !== nonSearchFilters.length) continue;\n\n const allMatch = tab.presets.every((preset) => {\n const active = nonSearchFilters.find((f) => f.key === preset.key);\n if (!active) return false;\n\n const sortedPreset = [...preset.value].sort();\n const sortedActive = [...active.value].sort();\n if (sortedPreset.length !== sortedActive.length) return false;\n if (sortedPreset.some((v, i) => v !== sortedActive[i])) return false;\n\n // Check operator if specified in preset\n if (preset.operator && active.operator !== preset.operator) return false;\n\n return true;\n });\n\n if (allMatch) return tab.id;\n }\n\n return null;\n }, [tabs, nonSearchFilters]);\n\n const handleTabClick = useCallback(\n (tab: FilterTab) => {\n if (tab.presets.length === 0) {\n // \"All\" tab — keep only search filters\n replaceFilters([...searchFilters]);\n return;\n }\n\n const presetFilters: ActiveFilter[] = tab.presets.map((preset) => {\n const filterConfig = filters.find((fc) => fc.key === preset.key);\n const operator =\n preset.operator ??\n filterConfig?.operator ??\n (filterConfig\n ? getDefaultOperatorForType(filterConfig.type)\n : 'equals');\n\n return {\n id: preset.key,\n key: preset.key,\n value: preset.value,\n operator,\n };\n });\n\n replaceFilters([...searchFilters, ...presetFilters]);\n },\n [filters, searchFilters, replaceFilters],\n );\n\n if (tabs.length === 0) return null;\n\n return (\n <div className=\"flex flex-wrap gap-1.5\" role=\"tablist\">\n {tabs.map((tab) => {\n const isActive = activeTabId === tab.id;\n\n return (\n <Button\n key={tab.id}\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"xs\"\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => handleTabClick(tab)}\n className={cn(\n 'rounded-md px-2.5 py-1 text-xs font-semibold transition-colors',\n isActive\n ? 'bg-foreground text-background'\n : 'bg-muted/60 text-muted-foreground hover:bg-muted hover:text-foreground',\n )}\n >\n {tab.label}\n {tab.count !== undefined && (\n <span\n className={cn(\n 'ml-1 tabular-nums',\n isActive\n ? 'text-background/70'\n : 'text-muted-foreground/70',\n )}\n >\n {tab.count}\n </span>\n )}\n </Button>\n );\n })}\n </div>\n );\n}\n","import { Loader2, X } from 'lucide-react';\nimport React, {\n type ChangeEvent,\n useState,\n useEffect,\n useRef,\n useCallback,\n} from 'react';\nimport { Input } from '@/components/base/forms/fields/input';\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\nimport { FILTER_ELEMENT_HEIGHT, type FilterConfig } from '../filters.types';\n\ninterface SearchFacetProps {\n filter: FilterConfig;\n value: string[];\n onChange: (value: string[]) => void;\n className?: string;\n}\n\n/**\n * Search Filter Facet\n *\n * This component implements a text search filter that allows users to:\n * - Enter search terms\n * - Configure search behavior (contains, equals, etc.)\n * - Set debounce delay for performance\n * - Customize placeholder text and appearance\n *\n * The component integrates with the filter context to manage the search value\n * and provides a responsive search input interface.\n */\n\nfunction SearchFacetComponent({\n filter,\n value,\n onChange,\n className,\n}: SearchFacetProps) {\n const { strings, isNavigating } = useFilters();\n\n // Use local state for the input value - initialized from value prop\n const [inputValue, setInputValue] = useState(value[0] || '');\n // Ref mirror of inputValue so the sync effect can read it without depending on it\n const inputValueRef = useRef(inputValue);\n inputValueRef.current = inputValue;\n // Track if the component is mounted to avoid unwanted effects\n const mounted = useRef(false);\n // Keep track of timeout ID for cleanup\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n // Tracking the last value we emitted to prevent duplicate emissions\n const lastEmittedValue = useRef<string | null>(value[0] || null);\n // Track if we're currently handling user input to prevent interference\n const isUserTypingRef = useRef(false);\n\n // Set mounted flag on initial render\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n // Clear any pending timeout on unmount\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n // Update input value when props change (for URL sync/refresh)\n // Guarded by isNavigating to prevent stale prop overwrites during the\n // gap between debounce-fire and Inertia response arriving.\n useEffect(() => {\n // Skip if user is actively typing or navigation is in-flight\n if (isUserTypingRef.current || isNavigating) {\n return;\n }\n\n const currentInput = inputValueRef.current;\n\n // Handle empty value array - this happens when filters are cleared\n if (!value.length || value[0] === '') {\n if (currentInput !== '') {\n setInputValue('');\n lastEmittedValue.current = '';\n }\n return;\n }\n\n // Only update if the value is different from what we have\n // and different from what we last emitted\n if (\n value[0] !== undefined &&\n value[0] !== currentInput &&\n value[0] !== lastEmittedValue.current\n ) {\n setInputValue(value[0]);\n lastEmittedValue.current = value[0];\n }\n }, [value, isNavigating]);\n\n // Debounced update function that consistently handles ALL input changes\n const debouncedUpdate = useCallback(\n (newValue: string) => {\n // Don't emit the same value twice\n if (lastEmittedValue.current === newValue) {\n return;\n }\n\n // Clear previous timeout\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n // Set new timeout for debouncing\n timeoutRef.current = setTimeout(() => {\n if (mounted.current) {\n lastEmittedValue.current = newValue;\n isUserTypingRef.current = false;\n onChange([newValue]);\n }\n }, filter.delay ?? 500);\n },\n [onChange, filter.delay],\n );\n\n // Handle input change - works for both typing and deleting characters\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n isUserTypingRef.current = true;\n const newValue = e.target.value;\n setInputValue(newValue);\n debouncedUpdate(newValue);\n };\n\n // Handle focusing the input\n const handleFocus = () => {\n isUserTypingRef.current = true;\n };\n\n // Handle blurring the input\n const handleBlur = () => {\n // Set a small delay before clearing the typing flag\n // This prevents immediate sync which could cause issues\n setTimeout(() => {\n isUserTypingRef.current = false;\n }, 100);\n };\n\n // Handle clear button click\n const handleClear = () => {\n isUserTypingRef.current = true;\n setInputValue('');\n debouncedUpdate('');\n };\n\n return (\n <div className={cn('search-facet--component', 'search-facet bg-background relative min-w-80', className)}>\n <Input\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={\n filter.placeholder ??\n (() => {\n const label = filter.label.trim().toLowerCase();\n if (!label || label === 'search') {\n // Collapse \"Search …\" stray space when the\n // filter label would otherwise duplicate the\n // template's leading \"Search\" word.\n return interpolateFilterString(\n strings.searchPlaceholder,\n { filterLabel: '' },\n )\n .replace(/\\s+([….?!])/g, '$1')\n .replace(/\\s{2,}/g, ' ')\n .trim();\n }\n return interpolateFilterString(\n strings.searchPlaceholder,\n { filterLabel: label },\n );\n })()\n }\n className={`w-full px-3 py-1 pr-9 placeholder:leading-1 text-xs md:text-xs placeholder:text-xs ${FILTER_ELEMENT_HEIGHT}`}\n />\n {inputValue.trim() !== '' && !isNavigating && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon\"\n onClick={handleClear}\n className=\"absolute right-1 top-1/2 h-6 w-6 -translate-y-1/2\"\n aria-label={strings.clearSearch}\n >\n <X className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n {!!isNavigating && (\n <span className=\"text-muted-foreground absolute right-2 top-1/2 -translate-y-1/2\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n </span>\n )}\n </div>\n );\n}\n\nexport const SearchFacet = React.memo(SearchFacetComponent);\nSearchFacet.displayName = 'SearchFacet';\n","import { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { SearchFacet } from '../facets/search-facet';\nimport type { FilterConfig } from '../filters.types';\n\ninterface SearchFiltersListProps {\n filters: FilterConfig[];\n getFilterValue: (key: string) => string[];\n setFilterValue: (key: string, value: string[]) => void;\n className?: string;\n}\n\n/**\n * Search Filters List Component\n *\n * This component provides a list of search filters that are always visible.\n * It handles:\n * - Rendering multiple search filters\n * - Managing filter values\n * - Applying custom styling\n * - Supporting responsive layout\n *\n * The component is used to display search filters that should be\n * immediately accessible to users without requiring a popover.\n */\n\nexport function SearchFiltersList({\n filters,\n getFilterValue,\n setFilterValue,\n className,\n}: SearchFiltersListProps) {\n return (\n <>\n {filters.map((filter) => (\n <div\n key={filter.key}\n className={cn(\n 'space-y-2',\n filter.displayConfig.className,\n className,\n )}\n >\n <SearchFacet\n filter={filter}\n value={getFilterValue(filter.key)}\n onChange={(newValue) =>\n setFilterValue(filter.key, newValue)\n }\n />\n {!!filter.description && (\n <Text size=\"xs\" type=\"secondary\">\n {filter.description}\n </Text>\n )}\n </div>\n ))}\n </>\n );\n}\n","/**\n * FilterLayout — default strip layout: search inputs inline, then either\n * \"always-visible\" or active filter pills, then the \"+\" button for the\n * remaining inactive filters.\n *\n * The heavy lifting now lives in two reusable pieces:\n * - `useFilterGroups()` (hook) — partitions filters into search /\n * always-visible / active / popover groups so consumers building a\n * custom strip can call this and place each group themselves.\n * - `<FilterPill>` (partial) — wraps `<ActiveFilterItem>` + popover so\n * the duplicated rendering between always-visible and active filters\n * collapses to a single component.\n */\nimport { useState } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\n\nimport { useFilters } from './filter-context';\nimport { interpolateFilterString } from './filters.strings';\nimport {\n type FilterConfig,\n type FilterTab,\n type FilterOperator,\n} from './filters.types';\nimport { useFilterGroups } from './hooks/use-filter-groups';\nimport { getOperatorsForType } from './operator-options';\n\nimport {\n FilterErrorBoundary,\n FiltersButton,\n FilterPill,\n FilterTabs,\n SearchFiltersList,\n} from './partials';\n\ninterface FilterLayoutProps {\n className?: string;\n /** Per-key dynamic options that override the provider's filter.options. */\n dynamicFilterOptions?: Record<string, FilterConfig['options']>;\n /** Per-key loading states; renders a small spinning chip. */\n loadingFilters?: Record<string, boolean>;\n variant?: 'default' | 'compact';\n showClearFilters?: boolean;\n tabs?: FilterTab[];\n}\n\nexport function FilterLayout({\n className,\n dynamicFilterOptions = {},\n loadingFilters = {},\n variant = 'default',\n showClearFilters = false,\n tabs,\n}: FilterLayoutProps) {\n const {\n getFilterValue,\n setFilterValue,\n isFilterActive,\n clearFilters,\n getFilterOperator,\n setFilterOperator,\n isNavigating,\n strings,\n } = useFilters();\n\n const groups = useFilterGroups({ dynamicFilterOptions });\n const {\n processedFilters,\n searchFilters,\n alwaysVisibleFilters,\n activeRegularFilters,\n popoverFilters,\n hasActive,\n } = groups;\n\n const [activeFilterInPopover, setActiveFilterInPopover] = useState<FilterConfig | null>(null);\n\n function getFilterOperators(filter: FilterConfig) {\n if (filter.operators && filter.operators.length > 0) return filter.operators;\n return getOperatorsForType(filter.type, strings.operators);\n }\n\n function handleOperatorChange(filterKey: string, operator: FilterOperator) {\n setFilterOperator(filterKey, operator);\n }\n\n return (\n <div\n className={cn('filter-layout--component', \n variant === 'compact' ? 'space-y-2' : 'space-y-4',\n className,\n )}\n >\n {!!tabs && tabs.length > 0 && <FilterTabs tabs={tabs} />}\n\n <div\n className={cn(\n 'flex flex-wrap items-center',\n variant === 'compact' ? 'gap-1' : 'gap-2',\n )}\n >\n <FilterErrorBoundary filterKey=\"search-filters\">\n <SearchFiltersList\n filters={searchFilters}\n getFilterValue={getFilterValue}\n setFilterValue={setFilterValue}\n />\n </FilterErrorBoundary>\n\n <div className={cn('contents', isNavigating && 'pointer-events-none opacity-60')}>\n {/* Loading chips for filters being updated */}\n {Object.entries(loadingFilters)\n .filter(([, isLoading]) => isLoading)\n .map(([key]) => {\n const filterLabel =\n processedFilters.find((f) => f.key === key)?.label || key;\n return (\n <div\n key={`loading-${key}`}\n className=\"text-muted-foreground bg-muted/50 flex items-center rounded-md px-2 py-1 text-xs\"\n >\n <div className=\"border-muted-foreground/30 border-t-primary mr-1 size-3 animate-spin rounded-full border-2\"></div>\n {interpolateFilterString(strings.loadingOptions, { filterLabel })}\n </div>\n );\n })}\n\n {/* Always-visible filters (display: 'always') — even when inactive */}\n {alwaysVisibleFilters.map((filter) => (\n <FilterPill\n key={filter.key}\n filter={filter}\n value={getFilterValue(filter.key) ?? []}\n isActive={false}\n operator={getFilterOperator(filter.key) || 'equals'}\n operators={getFilterOperators(filter)}\n onOperatorChange={(operator) => handleOperatorChange(filter.key, operator)}\n onValueChange={(value) => setFilterValue(filter.key, value)}\n onClear={() => setFilterValue(filter.key, [])}\n availableFilters={popoverFilters}\n activeFilters={[...activeRegularFilters, ...alwaysVisibleFilters]}\n />\n ))}\n\n {/* Active regular filters */}\n {activeRegularFilters.map((filter) => (\n <FilterPill\n key={filter.key}\n filter={filter}\n value={getFilterValue(filter.key) ?? []}\n isActive={isFilterActive(filter.key)}\n operator={getFilterOperator(filter.key) || 'equals'}\n operators={getFilterOperators(filter)}\n onOperatorChange={(operator) => handleOperatorChange(filter.key, operator)}\n onValueChange={(value) => setFilterValue(filter.key, value)}\n onClear={() => setFilterValue(filter.key, [])}\n availableFilters={popoverFilters}\n activeFilters={activeRegularFilters}\n />\n ))}\n\n {popoverFilters.length > 0 && (\n <FilterErrorBoundary filterKey=\"filters-button\">\n <FiltersButton\n availableFilters={popoverFilters}\n activeFilters={activeRegularFilters}\n activeFilterInPopover={activeFilterInPopover}\n getFilterValue={getFilterValue}\n setFilterValue={setFilterValue}\n setActiveFilterInPopover={setActiveFilterInPopover}\n />\n </FilterErrorBoundary>\n )}\n\n {!!showClearFilters && hasActive && (\n <Button\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n onClick={clearFilters}\n className=\"text-muted-foreground ml-auto\"\n >\n {strings.clearFilters}\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import { ChevronsUpDown } from 'lucide-react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { PopoverMenu, type PopoverMenuItem } from '@/components/base/popover-menu';\nimport { Text } from '@/components/typography';\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\n\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\nimport type { FilterConfig, FilterOption } from '../filters.types';\n\ninterface SelectFacetProps {\n filter: FilterConfig;\n value: string[];\n onChange: (value: string[]) => void;\n className?: string;\n}\n\n/**\n * SelectFacet — single/multi-select dropdown filter.\n *\n * Composes `PopoverMenu` for the popover + searchable list pattern.\n * Multi-select keeps the popover open after a tap; single-select closes\n * unless `closeOnSelect=false` is passed in the filter config.\n */\nexport function SelectFacet({\n filter,\n value,\n onChange,\n className,\n}: SelectFacetProps) {\n const { strings } = useFilters();\n const [open, setOpen] = useState(false);\n const [searchInput, setSearchInput] = useState('');\n const [options, setOptions] = useState<FilterOption[] | undefined>(\n filter.options,\n );\n const [isLoading, setIsLoading] = useState(false);\n const debounceRef = useRef<number | undefined>(undefined);\n const hasSelection = value.length > 0;\n\n const handleSelect = (selectedValue: string) => {\n if (filter.multiple) {\n if (value.includes(selectedValue)) {\n onChange(value.filter((v) => v !== selectedValue));\n } else {\n onChange([...value, selectedValue]);\n }\n } else {\n onChange([selectedValue]);\n if (filter.closeOnSelect !== false) {\n setOpen(false);\n }\n }\n };\n\n const getOptionLabel = (optionValue: string) =>\n (options || filter.options)?.find((opt) => opt.value === optionValue)\n ?.label ?? optionValue;\n\n // Load options (supports async fetchOptions with basic debounce on searchInput)\n const fetchOptionsFn = filter.fetchOptions;\n const fetchDelay = filter.delay;\n useEffect(() => {\n if (!open) return;\n if (!fetchOptionsFn) return; // static options mode\n\n if (debounceRef.current) window.clearTimeout(debounceRef.current);\n const delay = typeof fetchDelay === 'number' ? fetchDelay : 300;\n debounceRef.current = window.setTimeout(async () => {\n setIsLoading(true);\n try {\n const fetched = await fetchOptionsFn({ q: [searchInput] });\n setOptions(fetched);\n } finally {\n setIsLoading(false);\n }\n }, delay);\n\n return () => {\n if (debounceRef.current) window.clearTimeout(debounceRef.current);\n };\n }, [open, searchInput, fetchOptionsFn, fetchDelay]);\n\n const items = useMemo<PopoverMenuItem[]>(() => {\n const source = options || filter.options || [];\n return source.map((option) => ({\n value: option.value,\n label: option.label,\n description: option.description,\n icon: option.icon,\n selected: value.includes(option.value),\n disabled: option.disabled,\n }));\n }, [options, filter.options, value]);\n\n const placeholderInterpolated = interpolateFilterString(\n strings.searchPlaceholder,\n { filterLabel: filter.label.toLowerCase() },\n );\n\n const emptyMessage = isLoading\n ? interpolateFilterString(strings.loadingOptions, {\n filterLabel: filter.label,\n })\n : strings.noOptionsFound;\n\n return (\n <div className={cn('select-facet--component', 'relative', className)}>\n <PopoverMenu\n open={open}\n onOpenChange={setOpen}\n search\n searchValue={searchInput}\n onSearchChange={setSearchInput}\n strings={{\n searchPlaceholder: placeholderInterpolated,\n empty: emptyMessage,\n }}\n contentClassName=\"w-(--radix-popover-trigger-width) min-w-56\"\n trigger={\n <Button\n variant=\"secondary\"\n buttonStyle=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between\"\n >\n {hasSelection ? (\n value.length === 1 ? (\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\" className=\"truncate\">\n {getOptionLabel(value[0])}\n </Text>\n ) : (\n <Text tag=\"span\" size=\"xs\" weight=\"semibold\">\n {interpolateFilterString(strings.selected, {\n count: value.length,\n filterLabel:\n (value.length > 1\n ? filter.pluralLabel\n : filter.label) ?? filter.label,\n })}\n </Text>\n )\n ) : (\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {filter.placeholder ?? strings.select}\n </Text>\n )}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n }\n items={items}\n onSelect={(item) => handleSelect(item.value)}\n />\n </div>\n );\n}\n","import { AlertCircle, Check, ChevronsUpDown, Loader2 } from 'lucide-react';\nimport { useMemo, useRef, useState } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tCommand,\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandInput,\n\tCommandItem,\n\tCommandList,\n} from '@/components/base/command';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger,\n} from '@/components/base/popover';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useFilters } from '../filter-context';\nimport { interpolateFilterString } from '../filters.strings';\nimport type { FilterConfig, FilterOption } from '../filters.types';\nimport { useAsyncOptions } from '../hooks';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface AsyncSelectFacetProps {\n\tfilter: FilterConfig;\n\tvalue: string[];\n\tonChange: (value: string[]) => void;\n\tclassName?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * Async Select Filter Facet\n *\n * A TanStack Query-powered filter facet for server-side option loading.\n * Supports:\n * - Live typeahead search with debounce + AbortSignal\n * - Loading, error, empty, min-query-hint states\n * - Preload (fetch default options on open)\n * - Multi-select with maxSelected enforcement\n * - Options label cache for pill display after popover close\n */\nexport function AsyncSelectFacet({\n\tfilter,\n\tvalue,\n\tonChange,\n\tclassName,\n}: AsyncSelectFacetProps) {\n\tconst { strings, cacheAsyncOptions, getAsyncOptionLabel } = useFilters();\n\tconst [open, setOpen] = useState(false);\n\tconst [searchInput, setSearchInput] = useState('');\n\n\t// Cache resolved option labels so pills can show labels after popover closes\n\tconst labelCacheRef = useRef<Map<string, FilterOption>>(new Map());\n\n\tconst {\n\t\toptions,\n\t\tisLoading,\n\t\tisFetching,\n\t\tisError,\n\t\trefetch,\n\t\tisBelowMinQuery,\n\t\tminQueryLength,\n\t} = useAsyncOptions(filter, searchInput, open);\n\n\t// Update label cache when new options arrive\n\tif (options.length > 0) {\n\t\tfor (const opt of options) {\n\t\t\tlabelCacheRef.current.set(opt.value, opt);\n\t\t}\n\t\tcacheAsyncOptions(filter.key, options);\n\t}\n\n\tconst isMulti = filter.multiple !== false;\n\tconst maxSelected = filter.maxSelected;\n\tconst initialOptions = useMemo(() => filter.options ?? [], [filter.options]);\n\n\t// Sort options: selected items first, then the rest.\n\t// Also include cached selected items that may not be in current search results.\n\tconst sortedOptions = useMemo(() => {\n\t\tconst selectedSet = new Set(value);\n\t\tconst optionValueSet = new Set(\n\t\t\t[...initialOptions, ...options].map((o) => o.value),\n\t\t);\n\n\t\t// Resolve selected items missing from current results via caches\n\t\tconst missingSelected: FilterOption[] = [];\n\t\tfor (const val of value) {\n\t\t\tif (!optionValueSet.has(val)) {\n\t\t\t\tconst cached = labelCacheRef.current.get(val);\n\t\t\t\tif (cached) {\n\t\t\t\t\tmissingSelected.push(cached);\n\t\t\t\t} else {\n\t\t\t\t\tconst initial = initialOptions.find((o) => o.value === val);\n\t\t\t\t\tif (initial) {\n\t\t\t\t\t\tmissingSelected.push(initial);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst label = getAsyncOptionLabel(filter.key, val);\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tmissingSelected.push({ value: val, label, icon: filter.icon });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst all = [...missingSelected, ...initialOptions, ...options];\n\t\treturn all.sort((a, b) => {\n\t\t\tconst aSelected = selectedSet.has(a.value) ? 0 : 1;\n\t\t\tconst bSelected = selectedSet.has(b.value) ? 0 : 1;\n\t\t\treturn aSelected - bSelected;\n\t\t});\n\t}, [initialOptions, options, value, filter.key, filter.icon, getAsyncOptionLabel]);\n\n\tconst handleSelect = (selectedValue: string) => {\n\t\tif (isMulti) {\n\t\t\tif (value.includes(selectedValue)) {\n\t\t\t\tonChange(value.filter((v) => v !== selectedValue));\n\t\t\t} else {\n\t\t\t\tif (maxSelected && value.length >= maxSelected) return;\n\t\t\t\tonChange([...value, selectedValue]);\n\t\t\t}\n\t\t} else {\n\t\t\tonChange([selectedValue]);\n\t\t\tif (filter.closeOnSelect !== false) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst getOptionLabel = (optionValue: string): string => {\n\t\t// Check current options first, then cache\n\t\tconst fromOptions = options.find((o) => o.value === optionValue);\n\t\tif (fromOptions) return fromOptions.label;\n\t\tconst fromInitialOptions = initialOptions.find((o) => o.value === optionValue);\n\t\tif (fromInitialOptions) return fromInitialOptions.label;\n\t\tconst cached = labelCacheRef.current.get(optionValue);\n\t\tif (cached) return cached.label;\n\t\treturn optionValue;\n\t};\n\n\tconst hasSelection = value.length > 0;\n\n\t// Determine the empty state message\n\tconst emptyMessage = useMemo(() => {\n\t\tif (isLoading || isFetching) {\n\t\t\treturn (\n\t\t\t\t<div className={cn('async-select-facet--component', 'flex items-center justify-center gap-2 py-4')}>\n\t\t\t\t\t<Loader2 className=\"text-muted-foreground size-4 animate-spin\" />\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.searching}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (isError) {\n\t\t\treturn (\n\t\t\t\t<div className=\"flex flex-col items-center gap-2 py-4\">\n\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t<AlertCircle className=\"text-destructive size-4\" />\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.fetchError}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tvoid refetch();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.retryFetch}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (isBelowMinQuery) {\n\t\t\treturn (\n\t\t\t\t<div className=\"text-muted-foreground flex items-center justify-center py-4\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{interpolateFilterString(strings.minQueryHint, {\n\t\t\t\t\t\t\tmin: minQueryLength,\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tsize=\"xs\"\n\t\t\t\ttype=\"secondary\"\n\t\t\t>\n\t\t\t\t{strings.noOptionsFound}\n\t\t\t</Text>\n\t\t);\n\t}, [\n\t\tisLoading,\n\t\tisFetching,\n\t\tisError,\n\t\tisBelowMinQuery,\n\t\tminQueryLength,\n\t\tstrings,\n\t\trefetch,\n\t]);\n\n\treturn (\n\t\t<div className={cn('relative', className)}>\n\t\t\t<Popover\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={(next) => {\n\t\t\t\t\tsetOpen(next);\n\t\t\t\t\tif (!next) setSearchInput('');\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\tclassName=\"w-full justify-between\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{hasSelection ? (\n\t\t\t\t\t\t\t\tvalue.length === 1 ? (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{getOptionLabel(value[0])}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{interpolateFilterString(strings.selected, {\n\t\t\t\t\t\t\t\t\t\t\tcount: value.length,\n\t\t\t\t\t\t\t\t\t\t\tfilterLabel:\n\t\t\t\t\t\t\t\t\t\t\t\t(value.length > 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? filter.pluralLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t: filter.label) ?? filter.label,\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</Text>\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<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{filter.placeholder ?? strings.select}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<PopoverContent className=\"w-full min-w-[280px] p-0\">\n\t\t\t\t\t<Command shouldFilter={false}>\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tplaceholder={interpolateFilterString(\n\t\t\t\t\t\t\t\tstrings.searchPlaceholder,\n\t\t\t\t\t\t\t\t{ filterLabel: filter.label },\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tvalue={searchInput}\n\t\t\t\t\t\t\tonValueChange={setSearchInput}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<CommandList>\n\t\t\t\t\t\t\t{sortedOptions.length === 0 ? (\n\t\t\t\t\t\t\t\t<CommandEmpty>{emptyMessage}</CommandEmpty>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<CommandGroup>\n\t\t\t\t\t\t\t\t\t{Boolean(isFetching && !isLoading) && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5 px-2 py-1\">\n\t\t\t\t\t\t\t\t\t\t\t<Loader2 className=\"text-muted-foreground size-3 animate-spin\" />\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{strings.searching}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{sortedOptions.map((option) => (\n\t\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\t\t\t\t\t\tonSelect={() => handleSelect(option.value)}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\toption.disabled ||\n\t\t\t\t\t\t\t\t\t\t\t\t(!!maxSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length >= maxSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t!value.includes(option.value))\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Check\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'mr-2 h-4 w-4',\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.includes(option.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'opacity-100'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'opacity-0',\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{Boolean(option.icon) && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mr-1.5\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.icon}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</CommandGroup>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</CommandList>\n\t\t\t\t\t</Command>\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n\n/**\n * Retrieve the label cache ref from an AsyncSelectFacet instance.\n * This is used by FilterValueDisplay to resolve labels for active async filters.\n */\nexport type AsyncSelectLabelCache = Map<string, FilterOption>;\n","import { useState, useEffect, useId, useRef, type ChangeEvent } from 'react';\nimport { Input } from '@/components/base/forms';\nimport { Label } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useFilters } from '../filter-context';\nimport type { FilterConfig } from '../filters.types';\n\ninterface RangeFacetProps {\n filter: FilterConfig;\n value: { min?: number; max?: number };\n onChange: (value: { min?: number; max?: number }) => void;\n className?: string;\n}\n\n/**\n * Range Filter Facet\n *\n * This component implements a numeric range filter that allows users to:\n * - Set minimum and maximum values\n * - Configure step size and precision\n * - Set value constraints (min/max allowed values)\n * - Customize the range input appearance\n *\n * The component integrates with the filter context to manage the range values\n * and provides a user-friendly interface for range selection.\n */\n\nexport function RangeFacet({\n filter,\n value,\n onChange,\n className,\n}: RangeFacetProps) {\n const { strings } = useFilters();\n\n const [minValue, setMinValue] = useState<string>(\n value.min?.toString() ?? '',\n );\n const [maxValue, setMaxValue] = useState<string>(\n value.max?.toString() ?? '',\n );\n const instanceId = useId(); // Keep ids unique when multiple range facets render\n\n // Stabilize callback and value refs to keep the effect dep-light\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const valueRef = useRef(value);\n valueRef.current = value;\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n const currentValue = valueRef.current;\n const newValue = {\n min: minValue ? Number(minValue) : undefined,\n max: maxValue ? Number(maxValue) : undefined,\n };\n if (newValue.min !== currentValue.min || newValue.max !== currentValue.max) {\n onChangeRef.current(newValue);\n }\n }, filter.delay ?? 500);\n\n return () => clearTimeout(timeout);\n }, [minValue, maxValue, filter.delay]);\n\n const handleMinChange = (e: ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n if (val === '' || /^\\d*\\.?\\d*$/.test(val)) {\n setMinValue(val);\n }\n };\n\n const handleMaxChange = (e: ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n if (val === '' || /^\\d*\\.?\\d*$/.test(val)) {\n setMaxValue(val);\n }\n };\n\n return (\n <div className={cn('range-facet--component', 'space-y-2', className)}>\n <div className=\"grid grid-cols-2 gap-2\">\n <div className=\"space-y-1\">\n <Label htmlFor={`${instanceId}-min`}>\n {strings.min}\n </Label>\n <Input\n id={`${instanceId}-min`}\n type=\"text\"\n value={minValue}\n onChange={handleMinChange}\n placeholder={strings.min}\n className=\"w-full\"\n />\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor={`${instanceId}-max`}>\n {strings.max}\n </Label>\n <Input\n id={`${instanceId}-max`}\n type=\"text\"\n value={maxValue}\n onChange={handleMaxChange}\n placeholder={strings.max}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n );\n}\n","/**\n * Validator helpers for `FilterConfig.validation.custom`.\n *\n * Our `ValidationConfig` accepts `custom: (value) => boolean | string`\n * already (`true` = valid, `false` = generic invalid, `string` = custom\n * error message). These helpers adapt common third-party validators\n * — Zod, Valibot, plain async-safe predicates — to that shape so\n * consumers don't reinvent the bridge.\n *\n * The library does NOT depend on Zod or any specific validation lib.\n * The helpers are written against minimal duck-typed shapes that any\n * library implementing `safeParse` can satisfy.\n */\nimport type { ValidationConfig } from './filters.types';\n\n/**\n * Minimal Zod-compatible interface — a schema with a `safeParse` method\n * that returns `{ success: boolean, error?: { message?: string,\n * issues?: { message: string }[] } }`. Both Zod 3 and Zod 4 satisfy\n * this; Valibot's `safeParse` differs slightly but a thin wrapper\n * works.\n */\nexport interface SafeParseSchema<TInput = unknown> {\n\tsafeParse(value: TInput): {\n\t\tsuccess: boolean;\n\t\terror?: {\n\t\t\tmessage?: string;\n\t\t\tissues?: { message: string }[];\n\t\t};\n\t};\n}\n\n/**\n * Adapter: turn a Zod-like schema into a `ValidationConfig['custom']`.\n *\n * import { z } from 'zod';\n * import { zodValidator } from '@/components/features/filters';\n *\n * const emailSchema = z.string().email();\n * const config: FilterConfig = {\n * …,\n * validation: { custom: zodValidator(emailSchema) },\n * };\n *\n * On parse failure the first issue's `message` is returned (so\n * Zod's `.refine(...).message('Custom')` flows through). On success\n * returns `true`. The empty-string case is bypassed — let\n * `validation.required` handle \"must not be empty\" so error messages\n * stay coherent.\n */\nexport function zodValidator<TInput = unknown>(\n\tschema: SafeParseSchema<TInput>,\n): NonNullable<ValidationConfig['custom']> {\n\treturn (value: unknown): boolean | string => {\n\t\t// Skip empty strings — `validation.required` is the right channel\n\t\t// for \"missing value\" messaging.\n\t\tif (value === undefined || value === null) return true;\n\t\tif (typeof value === 'string' && value.length === 0) return true;\n\t\tconst result = schema.safeParse(value as TInput);\n\t\tif (result.success) return true;\n\t\tconst message =\n\t\t\tresult.error?.issues?.[0]?.message ??\n\t\t\tresult.error?.message ??\n\t\t\tfalse;\n\t\treturn message as string | false;\n\t};\n}\n\n/**\n * Adapter: pair a predicate with a static error message. Useful when\n * the consumer doesn't want to pull a validation library at all.\n *\n * validation: {\n * custom: predicateValidator(\n * (v) => /^https?:\\/\\//.test(String(v)),\n * 'URL must start with http:// or https://',\n * ),\n * }\n */\nexport function predicateValidator(\n\tpredicate: (value: unknown) => boolean,\n\tmessage: string,\n): NonNullable<ValidationConfig['custom']> {\n\treturn (value: unknown) => (predicate(value) ? true : message);\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export { FilterProvider, useFilters } from './filter-context';
2
+ export { FilterLayout } from './filter-layout';
3
+ export type { FilterConfig, FilterOption, ActiveFilter, FilterOperator, OperatorOption, FilterDependency, ValidationConfig, DisplayConfig, FilterTab, FilterTabPreset, AsyncSelectConfig, } from './filters.types';
4
+ export { FilterType, FilterOperatorEnum } from './filters.types';
5
+ export { defaultFilterStrings, getFilterString, interpolateFilterString, } from './filters.strings';
6
+ export type { FilterOperatorStrings, FilterStrings, } from './filters.strings';
7
+ export { getTextOperators, getSelectOperators, getNumberOperators, getDateOperators, getBooleanOperators, getOperatorsForType, getDefaultOperatorForType, } from './operator-options';
8
+ export { SearchFacet } from './facets/search-facet';
9
+ export { SelectFacet } from './facets/select-facet';
10
+ export { AsyncSelectFacet } from './facets/async-select-facet';
11
+ export { DateFacet } from './facets/date-facet';
12
+ export { RangeFacet } from './facets/range-facet';
13
+ export { TagsFacet } from './facets/tags-facet';
14
+ export { ActiveFilterItem } from './partials/active-filter-item';
15
+ export { FilterOperatorSelect } from './partials/filter-operator-select';
16
+ export { FilterPill } from './partials/filter-pill';
17
+ export type { FilterPillProps } from './partials/filter-pill';
18
+ export { FilterPopoverContent } from './partials/filter-popover-content';
19
+ export { FilterValueDisplay } from './partials/filter-value-display';
20
+ export { FiltersButton } from './partials/filters-button';
21
+ export { FilterTabs } from './partials/filter-tabs';
22
+ export { SearchFiltersList } from './partials/search-filters-list';
23
+ export { FilterErrorBoundary } from './partials/filter-error-boundary';
24
+ export { useAsyncOptions, useFilterGroups, type UseAsyncOptionsResult, type UseFilterGroupsOptions, type UseFilterGroupsResult, } from './hooks';
25
+ export { zodValidator, predicateValidator, type SafeParseSchema, } from './validators';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/filters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,eAAe,EACf,iBAAiB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACR,qBAAqB,EACrB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAShD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EACH,eAAe,EACf,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC7B,MAAM,SAAS,CAAC;AAOjB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,KAAK,eAAe,GACvB,MAAM,cAAc,CAAC"}