@od-oneapp/uni-ui 2026.1.1301

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 (1253) hide show
  1. package/README.md +753 -0
  2. package/dist/actions-C-SEx2GS.mjs +180 -0
  3. package/dist/actions-C-SEx2GS.mjs.map +1 -0
  4. package/dist/actions-Ch7h6cYC.d.mts +50 -0
  5. package/dist/actions-Cnupw96c.d.mts +50 -0
  6. package/dist/alert-BVUF7Xzb.d.mts +22 -0
  7. package/dist/alert-BuPyEXF-.mjs +206 -0
  8. package/dist/alert-BuPyEXF-.mjs.map +1 -0
  9. package/dist/alert-CfjDnZpm.d.mts +22 -0
  10. package/dist/animated-size-container-DSKNt1Cn.mjs +106 -0
  11. package/dist/animated-size-container-DSKNt1Cn.mjs.map +1 -0
  12. package/dist/areas-CtE8w69A.mjs +144 -0
  13. package/dist/areas-CtE8w69A.mjs.map +1 -0
  14. package/dist/areas-DtGnjGuX.d.mts +22 -0
  15. package/dist/auth-nav-user-CRxDpY_7.d.mts +30 -0
  16. package/dist/auth-nav-user-DPFv8dTp.mjs +181 -0
  17. package/dist/auth-nav-user-DPFv8dTp.mjs.map +1 -0
  18. package/dist/avatar-DjiX7nT8.mjs +202 -0
  19. package/dist/avatar-DjiX7nT8.mjs.map +1 -0
  20. package/dist/badge-CGTN2VG0.d.mts +25 -0
  21. package/dist/badge-CVoIuyYX.mjs +242 -0
  22. package/dist/badge-CVoIuyYX.mjs.map +1 -0
  23. package/dist/badge-DH0tY3wJ.d.mts +25 -0
  24. package/dist/bars-CWTAPKgm.d.mts +20 -0
  25. package/dist/bars-DOLvecrq.mjs +125 -0
  26. package/dist/bars-DOLvecrq.mjs.map +1 -0
  27. package/dist/branch-BEl6eS77.mjs +323 -0
  28. package/dist/branch-BEl6eS77.mjs.map +1 -0
  29. package/dist/branch-BtdY_TLE.d.mts +58 -0
  30. package/dist/branch-Duq6cW0s.d.mts +58 -0
  31. package/dist/button-BAdq0gBE.d.mts +31 -0
  32. package/dist/button-DVOrrZLw.mjs +632 -0
  33. package/dist/button-DVOrrZLw.mjs.map +1 -0
  34. package/dist/button-DnjeAftr.d.mts +31 -0
  35. package/dist/carousel-D-J1Zgn1.d.mts +49 -0
  36. package/dist/carousel-Dx5AOW5k.mjs +345 -0
  37. package/dist/carousel-Dx5AOW5k.mjs.map +1 -0
  38. package/dist/carousel-sY0y1-or.d.mts +49 -0
  39. package/dist/chart-context-CLV35VLJ.mjs +27 -0
  40. package/dist/chart-context-CLV35VLJ.mjs.map +1 -0
  41. package/dist/checkbox-wiF-DV6q.mjs +194 -0
  42. package/dist/checkbox-wiF-DV6q.mjs.map +1 -0
  43. package/dist/code-block-Cg_XtPH7.mjs +243 -0
  44. package/dist/code-block-Cg_XtPH7.mjs.map +1 -0
  45. package/dist/collapsible-CRgTpRfr.d.mts +46 -0
  46. package/dist/collapsible-CXy4T04n.mjs +239 -0
  47. package/dist/collapsible-CXy4T04n.mjs.map +1 -0
  48. package/dist/combobox-DSrxSkSl.d.mts +79 -0
  49. package/dist/combobox-DYFh2eZf.d.mts +79 -0
  50. package/dist/combobox-uEKksQFR.mjs +410 -0
  51. package/dist/combobox-uEKksQFR.mjs.map +1 -0
  52. package/dist/command-xK3X_A9t.mjs +206 -0
  53. package/dist/command-xK3X_A9t.mjs.map +1 -0
  54. package/dist/components-ai-elements/actions/index.d.mts +5 -0
  55. package/dist/components-ai-elements/actions/index.mjs +4 -0
  56. package/dist/components-ai-elements/agent-step/index.d.mts +32 -0
  57. package/dist/components-ai-elements/agent-step/index.mjs +183 -0
  58. package/dist/components-ai-elements/agent-step/index.mjs.map +1 -0
  59. package/dist/components-ai-elements/artifact/index.d.mts +81 -0
  60. package/dist/components-ai-elements/artifact/index.mjs +153 -0
  61. package/dist/components-ai-elements/artifact/index.mjs.map +1 -0
  62. package/dist/components-ai-elements/branch/index.d.mts +5 -0
  63. package/dist/components-ai-elements/branch/index.mjs +4 -0
  64. package/dist/components-ai-elements/chain-of-thought/index.d.mts +90 -0
  65. package/dist/components-ai-elements/chain-of-thought/index.mjs +338 -0
  66. package/dist/components-ai-elements/chain-of-thought/index.mjs.map +1 -0
  67. package/dist/components-ai-elements/chat-input/index.d.mts +21 -0
  68. package/dist/components-ai-elements/chat-input/index.mjs +137 -0
  69. package/dist/components-ai-elements/chat-input/index.mjs.map +1 -0
  70. package/dist/components-ai-elements/checkpoint/index.d.mts +46 -0
  71. package/dist/components-ai-elements/checkpoint/index.mjs +161 -0
  72. package/dist/components-ai-elements/checkpoint/index.mjs.map +1 -0
  73. package/dist/components-ai-elements/code-block/index.d.mts +39 -0
  74. package/dist/components-ai-elements/code-block/index.mjs +4 -0
  75. package/dist/components-ai-elements/confirmation/index.d.mts +96 -0
  76. package/dist/components-ai-elements/confirmation/index.mjs +295 -0
  77. package/dist/components-ai-elements/confirmation/index.mjs.map +1 -0
  78. package/dist/components-ai-elements/context/index.d.mts +83 -0
  79. package/dist/components-ai-elements/context/index.mjs +456 -0
  80. package/dist/components-ai-elements/context/index.mjs.map +1 -0
  81. package/dist/components-ai-elements/conversation/index.d.mts +46 -0
  82. package/dist/components-ai-elements/conversation/index.mjs +180 -0
  83. package/dist/components-ai-elements/conversation/index.mjs.map +1 -0
  84. package/dist/components-ai-elements/custom/index.d.mts +1142 -0
  85. package/dist/components-ai-elements/custom/index.mjs +5578 -0
  86. package/dist/components-ai-elements/custom/index.mjs.map +1 -0
  87. package/dist/components-ai-elements/generative-ui/index.d.mts +4 -0
  88. package/dist/components-ai-elements/generative-ui/index.mjs +4 -0
  89. package/dist/components-ai-elements/image/index.d.mts +20 -0
  90. package/dist/components-ai-elements/image/index.mjs +121 -0
  91. package/dist/components-ai-elements/image/index.mjs.map +1 -0
  92. package/dist/components-ai-elements/inline-citation/index.d.mts +94 -0
  93. package/dist/components-ai-elements/inline-citation/index.mjs +371 -0
  94. package/dist/components-ai-elements/inline-citation/index.mjs.map +1 -0
  95. package/dist/components-ai-elements/loader/index.d.mts +24 -0
  96. package/dist/components-ai-elements/loader/index.mjs +4 -0
  97. package/dist/components-ai-elements/message/index.d.mts +153 -0
  98. package/dist/components-ai-elements/message/index.mjs +597 -0
  99. package/dist/components-ai-elements/message/index.mjs.map +1 -0
  100. package/dist/components-ai-elements/model-selector/index.d.mts +72 -0
  101. package/dist/components-ai-elements/model-selector/index.mjs +224 -0
  102. package/dist/components-ai-elements/model-selector/index.mjs.map +1 -0
  103. package/dist/components-ai-elements/open-in-chat/index.d.mts +64 -0
  104. package/dist/components-ai-elements/open-in-chat/index.mjs +502 -0
  105. package/dist/components-ai-elements/open-in-chat/index.mjs.map +1 -0
  106. package/dist/components-ai-elements/plan/index.d.mts +71 -0
  107. package/dist/components-ai-elements/plan/index.mjs +219 -0
  108. package/dist/components-ai-elements/plan/index.mjs.map +1 -0
  109. package/dist/components-ai-elements/prompt-char-counter/index.d.mts +19 -0
  110. package/dist/components-ai-elements/prompt-char-counter/index.mjs +116 -0
  111. package/dist/components-ai-elements/prompt-char-counter/index.mjs.map +1 -0
  112. package/dist/components-ai-elements/prompt-input/index.d.mts +386 -0
  113. package/dist/components-ai-elements/prompt-input/index.mjs +4 -0
  114. package/dist/components-ai-elements/queue/index.d.mts +121 -0
  115. package/dist/components-ai-elements/queue/index.mjs +284 -0
  116. package/dist/components-ai-elements/queue/index.mjs.map +1 -0
  117. package/dist/components-ai-elements/reasoning/index.d.mts +42 -0
  118. package/dist/components-ai-elements/reasoning/index.mjs +241 -0
  119. package/dist/components-ai-elements/reasoning/index.mjs.map +1 -0
  120. package/dist/components-ai-elements/shimmer/index.d.mts +23 -0
  121. package/dist/components-ai-elements/shimmer/index.mjs +4 -0
  122. package/dist/components-ai-elements/sources/index.d.mts +56 -0
  123. package/dist/components-ai-elements/sources/index.mjs +211 -0
  124. package/dist/components-ai-elements/sources/index.mjs.map +1 -0
  125. package/dist/components-ai-elements/suggestion/index.d.mts +40 -0
  126. package/dist/components-ai-elements/suggestion/index.mjs +145 -0
  127. package/dist/components-ai-elements/suggestion/index.mjs.map +1 -0
  128. package/dist/components-ai-elements/task/index.d.mts +70 -0
  129. package/dist/components-ai-elements/task/index.mjs +218 -0
  130. package/dist/components-ai-elements/task/index.mjs.map +1 -0
  131. package/dist/components-ai-elements/tool/index.d.mts +78 -0
  132. package/dist/components-ai-elements/tool/index.mjs +370 -0
  133. package/dist/components-ai-elements/tool/index.mjs.map +1 -0
  134. package/dist/components-ai-elements/tool-approval/index.d.mts +20 -0
  135. package/dist/components-ai-elements/tool-approval/index.mjs +252 -0
  136. package/dist/components-ai-elements/tool-approval/index.mjs.map +1 -0
  137. package/dist/components-ai-elements/web-preview/index.d.mts +136 -0
  138. package/dist/components-ai-elements/web-preview/index.mjs +773 -0
  139. package/dist/components-ai-elements/web-preview/index.mjs.map +1 -0
  140. package/dist/components-ai-elements-constants.d.mts +207 -0
  141. package/dist/components-ai-elements-constants.mjs +301 -0
  142. package/dist/components-ai-elements-constants.mjs.map +1 -0
  143. package/dist/components-ai-workflows/canvas/index.d.mts +22 -0
  144. package/dist/components-ai-workflows/canvas/index.mjs +135 -0
  145. package/dist/components-ai-workflows/canvas/index.mjs.map +1 -0
  146. package/dist/components-ai-workflows/connection/index.d.mts +22 -0
  147. package/dist/components-ai-workflows/connection/index.mjs +4 -0
  148. package/dist/components-ai-workflows/controls/index.d.mts +14 -0
  149. package/dist/components-ai-workflows/controls/index.mjs +89 -0
  150. package/dist/components-ai-workflows/controls/index.mjs.map +1 -0
  151. package/dist/components-ai-workflows/edge/index.d.mts +20 -0
  152. package/dist/components-ai-workflows/edge/index.mjs +102 -0
  153. package/dist/components-ai-workflows/edge/index.mjs.map +1 -0
  154. package/dist/components-ai-workflows/node/index.d.mts +3 -0
  155. package/dist/components-ai-workflows/node/index.mjs +4 -0
  156. package/dist/components-ai-workflows/panel/index.d.mts +15 -0
  157. package/dist/components-ai-workflows/panel/index.mjs +89 -0
  158. package/dist/components-ai-workflows/panel/index.mjs.map +1 -0
  159. package/dist/components-ai-workflows/resizable-node/index.d.mts +30 -0
  160. package/dist/components-ai-workflows/resizable-node/index.mjs +164 -0
  161. package/dist/components-ai-workflows/resizable-node/index.mjs.map +1 -0
  162. package/dist/components-ai-workflows/toolbar/index.d.mts +19 -0
  163. package/dist/components-ai-workflows/toolbar/index.mjs +91 -0
  164. package/dist/components-ai-workflows/toolbar/index.mjs.map +1 -0
  165. package/dist/components-auth-client-nav-user.d.mts +3 -0
  166. package/dist/components-auth-client-nav-user.mjs +4 -0
  167. package/dist/components-auth-client-providers.d.mts +13 -0
  168. package/dist/components-auth-client-providers.mjs +89 -0
  169. package/dist/components-auth-client-providers.mjs.map +1 -0
  170. package/dist/components-auth-client.d.mts +5 -0
  171. package/dist/components-auth-client.mjs +5 -0
  172. package/dist/components-auth-server.d.mts +1878 -0
  173. package/dist/components-auth-server.mjs +32769 -0
  174. package/dist/components-auth-server.mjs.map +1 -0
  175. package/dist/components-auth.d.mts +5 -0
  176. package/dist/components-auth.mjs +5 -0
  177. package/dist/components-charts/areas/index.d.mts +3 -0
  178. package/dist/components-charts/areas/index.mjs +4 -0
  179. package/dist/components-charts/bars/index.d.mts +3 -0
  180. package/dist/components-charts/bars/index.mjs +4 -0
  181. package/dist/components-charts/funnel-chart/index.d.mts +3 -0
  182. package/dist/components-charts/funnel-chart/index.mjs +4 -0
  183. package/dist/components-charts/mini-area-chart/index.d.mts +3 -0
  184. package/dist/components-charts/mini-area-chart/index.mjs +4 -0
  185. package/dist/components-charts/time-series-chart/index.d.mts +3 -0
  186. package/dist/components-charts/time-series-chart/index.mjs +4 -0
  187. package/dist/components-charts/tooltip-sync/index.d.mts +3 -0
  188. package/dist/components-charts/tooltip-sync/index.mjs +4 -0
  189. package/dist/components-charts/x-axis/index.d.mts +3 -0
  190. package/dist/components-charts/x-axis/index.mjs +4 -0
  191. package/dist/components-charts/y-axis/index.d.mts +3 -0
  192. package/dist/components-charts/y-axis/index.mjs +4 -0
  193. package/dist/components-elements-accordion.d.mts +59 -0
  194. package/dist/components-elements-accordion.mjs +275 -0
  195. package/dist/components-elements-accordion.mjs.map +1 -0
  196. package/dist/components-elements-alert.d.mts +3 -0
  197. package/dist/components-elements-alert.mjs +4 -0
  198. package/dist/components-elements-avatar.d.mts +24 -0
  199. package/dist/components-elements-avatar.mjs +4 -0
  200. package/dist/components-elements-badge.d.mts +4 -0
  201. package/dist/components-elements-badge.mjs +4 -0
  202. package/dist/components-elements-button.d.mts +4 -0
  203. package/dist/components-elements-button.mjs +4 -0
  204. package/dist/components-elements-card.d.mts +3 -0
  205. package/dist/components-elements-card.mjs +4 -0
  206. package/dist/components-elements-carousel.d.mts +5 -0
  207. package/dist/components-elements-carousel.mjs +4 -0
  208. package/dist/components-elements-chart.d.mts +24 -0
  209. package/dist/components-elements-chart.mjs +226 -0
  210. package/dist/components-elements-chart.mjs.map +1 -0
  211. package/dist/components-elements-collapsible.d.mts +3 -0
  212. package/dist/components-elements-collapsible.mjs +4 -0
  213. package/dist/components-elements-dialog.d.mts +3 -0
  214. package/dist/components-elements-dialog.mjs +4 -0
  215. package/dist/components-elements-dropdown-menu.d.mts +3 -0
  216. package/dist/components-elements-dropdown-menu.mjs +4 -0
  217. package/dist/components-elements-dynamic-breadcrumb.d.mts +16 -0
  218. package/dist/components-elements-dynamic-breadcrumb.mjs +4 -0
  219. package/dist/components-elements-empty.d.mts +18 -0
  220. package/dist/components-elements-empty.mjs +199 -0
  221. package/dist/components-elements-empty.mjs.map +1 -0
  222. package/dist/components-elements-hover-card.d.mts +3 -0
  223. package/dist/components-elements-hover-card.mjs +4 -0
  224. package/dist/components-elements-loading-dots.d.mts +3 -0
  225. package/dist/components-elements-loading-dots.mjs +4 -0
  226. package/dist/components-elements-pagination-controls.d.mts +28 -0
  227. package/dist/components-elements-pagination-controls.mjs +4 -0
  228. package/dist/components-elements-progress.d.mts +28 -0
  229. package/dist/components-elements-progress.mjs +4 -0
  230. package/dist/components-elements-resizable.d.mts +31 -0
  231. package/dist/components-elements-resizable.mjs +4 -0
  232. package/dist/components-elements-scroll-area.d.mts +3 -0
  233. package/dist/components-elements-scroll-area.mjs +4 -0
  234. package/dist/components-elements-separator.d.mts +3 -0
  235. package/dist/components-elements-separator.mjs +4 -0
  236. package/dist/components-elements-skeleton.d.mts +3 -0
  237. package/dist/components-elements-skeleton.mjs +4 -0
  238. package/dist/components-elements-status-badge.d.mts +22 -0
  239. package/dist/components-elements-status-badge.mjs +174 -0
  240. package/dist/components-elements-status-badge.mjs.map +1 -0
  241. package/dist/components-elements-table.d.mts +44 -0
  242. package/dist/components-elements-table.mjs +4 -0
  243. package/dist/components-elements-tabs.d.mts +43 -0
  244. package/dist/components-elements-tabs.mjs +435 -0
  245. package/dist/components-elements-tabs.mjs.map +1 -0
  246. package/dist/components-elements-tooltip.d.mts +3 -0
  247. package/dist/components-elements-tooltip.mjs +4 -0
  248. package/dist/components-filter/filter-list/index.d.mts +4 -0
  249. package/dist/components-filter/filter-list/index.mjs +4 -0
  250. package/dist/components-filter/filter-select/index.d.mts +4 -0
  251. package/dist/components-filter/filter-select/index.mjs +4 -0
  252. package/dist/components-forms/checkbox/index.d.mts +27 -0
  253. package/dist/components-forms/checkbox/index.mjs +4 -0
  254. package/dist/components-forms/combobox/index.d.mts +5 -0
  255. package/dist/components-forms/combobox/index.mjs +4 -0
  256. package/dist/components-forms/date-picker/index.d.mts +3 -0
  257. package/dist/components-forms/date-picker/index.mjs +4 -0
  258. package/dist/components-forms/file-upload/index.d.mts +49 -0
  259. package/dist/components-forms/file-upload/index.mjs +323 -0
  260. package/dist/components-forms/file-upload/index.mjs.map +1 -0
  261. package/dist/components-forms/input/index.d.mts +3 -0
  262. package/dist/components-forms/input/index.mjs +4 -0
  263. package/dist/components-forms/input-group/index.d.mts +5 -0
  264. package/dist/components-forms/input-group/index.mjs +4 -0
  265. package/dist/components-forms/label/index.d.mts +23 -0
  266. package/dist/components-forms/label/index.mjs +4 -0
  267. package/dist/components-forms/radio-group/index.d.mts +29 -0
  268. package/dist/components-forms/radio-group/index.mjs +215 -0
  269. package/dist/components-forms/radio-group/index.mjs.map +1 -0
  270. package/dist/components-forms/select/index.d.mts +3 -0
  271. package/dist/components-forms/select/index.mjs +4 -0
  272. package/dist/components-forms/switch/index.d.mts +30 -0
  273. package/dist/components-forms/switch/index.mjs +4 -0
  274. package/dist/components-forms/textarea/index.d.mts +19 -0
  275. package/dist/components-forms/textarea/index.mjs +4 -0
  276. package/dist/components-layout/app-sidebar/index.d.mts +47 -0
  277. package/dist/components-layout/app-sidebar/index.mjs +340 -0
  278. package/dist/components-layout/app-sidebar/index.mjs.map +1 -0
  279. package/dist/components-layout/artifact-panel/index.d.mts +3 -0
  280. package/dist/components-layout/artifact-panel/index.mjs +4 -0
  281. package/dist/components-layout/content-sidebar/index.d.mts +89 -0
  282. package/dist/components-layout/content-sidebar/index.mjs +202 -0
  283. package/dist/components-layout/content-sidebar/index.mjs.map +1 -0
  284. package/dist/components-layout/nav-app-switcher/index.d.mts +3 -0
  285. package/dist/components-layout/nav-app-switcher/index.mjs +4 -0
  286. package/dist/components-layout/nav-main/index.d.mts +30 -0
  287. package/dist/components-layout/nav-main/index.mjs +4 -0
  288. package/dist/components-layout/nav-projects/index.d.mts +18 -0
  289. package/dist/components-layout/nav-projects/index.mjs +153 -0
  290. package/dist/components-layout/nav-projects/index.mjs.map +1 -0
  291. package/dist/components-layout/nav-secondary/index.d.mts +31 -0
  292. package/dist/components-layout/nav-secondary/index.mjs +4 -0
  293. package/dist/components-layout/nav-user/index.d.mts +17 -0
  294. package/dist/components-layout/nav-user/index.mjs +4 -0
  295. package/dist/components-layout/oneapp/index.mjs +4 -0
  296. package/dist/components-layout/sidebar/index.d.mts +8 -0
  297. package/dist/components-layout/sidebar/index.mjs +4 -0
  298. package/dist/components-layout/sidebar-inset-header-portal/index.d.mts +3 -0
  299. package/dist/components-layout/sidebar-inset-header-portal/index.mjs +4 -0
  300. package/dist/components-layout/sidebar-slots/index.d.mts +3 -0
  301. package/dist/components-layout/sidebar-slots/index.mjs +4 -0
  302. package/dist/components-layout/theme-provider/index.d.mts +15 -0
  303. package/dist/components-layout/theme-provider/index.mjs +4 -0
  304. package/dist/components-layout-app-shell.d.mts +83 -0
  305. package/dist/components-layout-app-shell.mjs +185 -0
  306. package/dist/components-layout-app-shell.mjs.map +1 -0
  307. package/dist/components-layout-oneapp.d.mts +84 -0
  308. package/dist/components-layout-oneapp.mjs +4 -0
  309. package/dist/components-overlays-confirm-dialog.d.mts +38 -0
  310. package/dist/components-overlays-confirm-dialog.mjs +145 -0
  311. package/dist/components-overlays-confirm-dialog.mjs.map +1 -0
  312. package/dist/components-overlays-toast.d.mts +16 -0
  313. package/dist/components-overlays-toast.mjs +127 -0
  314. package/dist/components-overlays-toast.mjs.map +1 -0
  315. package/dist/connection-D_kWZtAX.mjs +105 -0
  316. package/dist/connection-D_kWZtAX.mjs.map +1 -0
  317. package/dist/dark-mode-B4L-MZr7.mjs +288 -0
  318. package/dist/dark-mode-B4L-MZr7.mjs.map +1 -0
  319. package/dist/dark-mode-CYb7lJ6G.d.mts +191 -0
  320. package/dist/date-range-picker-CdemRFs_.mjs +676 -0
  321. package/dist/date-range-picker-CdemRFs_.mjs.map +1 -0
  322. package/dist/dialog-Di5QhIga.d.mts +31 -0
  323. package/dist/dialog-DuluSpxA.mjs +293 -0
  324. package/dist/dialog-DuluSpxA.mjs.map +1 -0
  325. package/dist/dropdown-menu-91g1g_Cl.mjs +379 -0
  326. package/dist/dropdown-menu-91g1g_Cl.mjs.map +1 -0
  327. package/dist/dropdown-menu-CwRZCnNs.d.mts +91 -0
  328. package/dist/dynamic-breadcrumb-33t_hdEI.mjs +385 -0
  329. package/dist/dynamic-breadcrumb-33t_hdEI.mjs.map +1 -0
  330. package/dist/error-boundary-Ggc5btkU.mjs +297 -0
  331. package/dist/error-boundary-Ggc5btkU.mjs.map +1 -0
  332. package/dist/filter-list-BMT7Nrli.d.mts +27 -0
  333. package/dist/filter-list-B_9aV5Lp.mjs +279 -0
  334. package/dist/filter-list-B_9aV5Lp.mjs.map +1 -0
  335. package/dist/filter-select-COLb1S5z.d.mts +34 -0
  336. package/dist/filter-select-CYfBhJ_E.mjs +341 -0
  337. package/dist/filter-select-CYfBhJ_E.mjs.map +1 -0
  338. package/dist/fonts.d.mts +22 -0
  339. package/dist/fonts.mjs +104 -0
  340. package/dist/fonts.mjs.map +1 -0
  341. package/dist/funnel-chart-CUpUr1pl.d.mts +22 -0
  342. package/dist/funnel-chart-fdwagDvc.mjs +318 -0
  343. package/dist/funnel-chart-fdwagDvc.mjs.map +1 -0
  344. package/dist/generative-ui-renderer-D0ZgNRZF.mjs +484 -0
  345. package/dist/generative-ui-renderer-D0ZgNRZF.mjs.map +1 -0
  346. package/dist/generative-ui-renderer-D69qYK0D.d.mts +32 -0
  347. package/dist/hooks/index.d.mts +5 -0
  348. package/dist/hooks/index.mjs +6 -0
  349. package/dist/hooks/use-mobile.d.mts +6 -0
  350. package/dist/hooks/use-mobile.mjs +45 -0
  351. package/dist/hooks/use-mobile.mjs.map +1 -0
  352. package/dist/hooks/use-responsive.d.mts +13 -0
  353. package/dist/hooks/use-responsive.mjs +50 -0
  354. package/dist/hooks/use-responsive.mjs.map +1 -0
  355. package/dist/hooks/use-scroll-progress.d.mts +17 -0
  356. package/dist/hooks/use-scroll-progress.mjs +62 -0
  357. package/dist/hooks/use-scroll-progress.mjs.map +1 -0
  358. package/dist/hooks/use-toast.d.mts +21 -0
  359. package/dist/hooks/use-toast.mjs +40 -0
  360. package/dist/hooks/use-toast.mjs.map +1 -0
  361. package/dist/hover-card-BqEpbXMp.d.mts +31 -0
  362. package/dist/hover-card-nn4fjJOh.mjs +161 -0
  363. package/dist/hover-card-nn4fjJOh.mjs.map +1 -0
  364. package/dist/index-AwyfWaOP.d.mts +60 -0
  365. package/dist/index.d.mts +503 -0
  366. package/dist/index.mjs +2158 -0
  367. package/dist/index.mjs.map +1 -0
  368. package/dist/input-CT1C9DMs.d.mts +19 -0
  369. package/dist/input-D0T5jbR6.d.mts +19 -0
  370. package/dist/input-DhpkXN3J.mjs +176 -0
  371. package/dist/input-DhpkXN3J.mjs.map +1 -0
  372. package/dist/input-group-CTBpkGI9.mjs +231 -0
  373. package/dist/input-group-CTBpkGI9.mjs.map +1 -0
  374. package/dist/input-group-DcDPUaQ3.d.mts +20 -0
  375. package/dist/input-group-VSZJM_on.d.mts +20 -0
  376. package/dist/integrations-COjiOhkd.d.mts +60 -0
  377. package/dist/integrations-Doz6nfxm.d.mts +60 -0
  378. package/dist/integrations-lBG309ZD.mjs +471 -0
  379. package/dist/integrations-lBG309ZD.mjs.map +1 -0
  380. package/dist/label-DnUThLUR.mjs +148 -0
  381. package/dist/label-DnUThLUR.mjs.map +1 -0
  382. package/dist/lib/export-csv.d.mts +12 -0
  383. package/dist/lib/export-csv.mjs +63 -0
  384. package/dist/lib/export-csv.mjs.map +1 -0
  385. package/dist/lib/index.d.mts +6 -0
  386. package/dist/lib/index.mjs +7 -0
  387. package/dist/lib/resize-image.d.mts +11 -0
  388. package/dist/lib/resize-image.mjs +66 -0
  389. package/dist/lib/resize-image.mjs.map +1 -0
  390. package/dist/lib/stable-sort.d.mts +6 -0
  391. package/dist/lib/stable-sort.mjs +33 -0
  392. package/dist/lib/stable-sort.mjs.map +1 -0
  393. package/dist/lib/utils.d.mts +8 -0
  394. package/dist/lib/utils.mjs +4 -0
  395. package/dist/lib-utils.mjs +4 -0
  396. package/dist/loader-B2SF0yPJ.mjs +168 -0
  397. package/dist/loader-B2SF0yPJ.mjs.map +1 -0
  398. package/dist/loading-dots-DJfxDgv3.mjs +119 -0
  399. package/dist/loading-dots-DJfxDgv3.mjs.map +1 -0
  400. package/dist/loading-dots-DvR1lwC-.d.mts +11 -0
  401. package/dist/mini-area-chart-GIUU-ZLo.d.mts +30 -0
  402. package/dist/mini-area-chart-s5ItHBk8.mjs +225 -0
  403. package/dist/mini-area-chart-s5ItHBk8.mjs.map +1 -0
  404. package/dist/motion-DLlwbMJ0.d.mts +33 -0
  405. package/dist/motion-zelaDelJ.mjs +47 -0
  406. package/dist/motion-zelaDelJ.mjs.map +1 -0
  407. package/dist/nav-app-switcher-B1NTlYrm.d.mts +43 -0
  408. package/dist/nav-app-switcher-V7aJAC18.mjs +235 -0
  409. package/dist/nav-app-switcher-V7aJAC18.mjs.map +1 -0
  410. package/dist/nav-main-BscfzNoi.mjs +105 -0
  411. package/dist/nav-main-BscfzNoi.mjs.map +1 -0
  412. package/dist/nav-secondary-t-xeA0I4.mjs +51 -0
  413. package/dist/nav-secondary-t-xeA0I4.mjs.map +1 -0
  414. package/dist/nav-user-A4YHm3-O.mjs +193 -0
  415. package/dist/nav-user-A4YHm3-O.mjs.map +1 -0
  416. package/dist/node-BKXOPjw9.d.mts +100 -0
  417. package/dist/node-CdmDD4k-.mjs +116 -0
  418. package/dist/node-CdmDD4k-.mjs.map +1 -0
  419. package/dist/oneapp-CfwhNatF.mjs +322 -0
  420. package/dist/oneapp-CfwhNatF.mjs.map +1 -0
  421. package/dist/pagination-controls-CE3-eCxI.mjs +135 -0
  422. package/dist/pagination-controls-CE3-eCxI.mjs.map +1 -0
  423. package/dist/popover-DmWxl2lW.mjs +198 -0
  424. package/dist/popover-DmWxl2lW.mjs.map +1 -0
  425. package/dist/preview.d.mts +6 -0
  426. package/dist/progress-BWxdthl4.mjs +230 -0
  427. package/dist/progress-BWxdthl4.mjs.map +1 -0
  428. package/dist/prompt-input-SFJ9_lNw.mjs +1149 -0
  429. package/dist/prompt-input-SFJ9_lNw.mjs.map +1 -0
  430. package/dist/resizable--DaTse0W.mjs +124 -0
  431. package/dist/resizable--DaTse0W.mjs.map +1 -0
  432. package/dist/scroll-area-Bxi-Edjc.mjs +139 -0
  433. package/dist/scroll-area-Bxi-Edjc.mjs.map +1 -0
  434. package/dist/scroll-area-CDRGG59G.d.mts +19 -0
  435. package/dist/select-DI6PzHN3.mjs +411 -0
  436. package/dist/select-DI6PzHN3.mjs.map +1 -0
  437. package/dist/select-csqviwUw.d.mts +44 -0
  438. package/dist/separator-BG9BqZqg.d.mts +20 -0
  439. package/dist/separator-CNQqqwfO.d.mts +20 -0
  440. package/dist/separator-veJJBul5.mjs +118 -0
  441. package/dist/separator-veJJBul5.mjs.map +1 -0
  442. package/dist/shared-BqVcofZN.d.mts +91 -0
  443. package/dist/shared-auth.d.mts +5 -0
  444. package/dist/shared-auth.mjs +6 -0
  445. package/dist/shimmer-BLRAD4VL.mjs +102 -0
  446. package/dist/shimmer-BLRAD4VL.mjs.map +1 -0
  447. package/dist/sidebar-CPteoqnB.d.mts +163 -0
  448. package/dist/sidebar-CdWE7H3R.mjs +814 -0
  449. package/dist/sidebar-CdWE7H3R.mjs.map +1 -0
  450. package/dist/sidebar-DYgXCHqQ.d.mts +163 -0
  451. package/dist/sidebar-inset-header-portal-CIRN-lKw.mjs +153 -0
  452. package/dist/sidebar-inset-header-portal-CIRN-lKw.mjs.map +1 -0
  453. package/dist/sidebar-inset-header-portal-DjfK7xCt.d.mts +24 -0
  454. package/dist/sidebar-slots-DNCEnx5L.mjs +135 -0
  455. package/dist/sidebar-slots-DNCEnx5L.mjs.map +1 -0
  456. package/dist/sidebar-slots-OqNmzlIk.d.mts +47 -0
  457. package/dist/skeleton-ByXUFNDF.d.mts +35 -0
  458. package/dist/skeleton-aXwA3YID.mjs +211 -0
  459. package/dist/skeleton-aXwA3YID.mjs.map +1 -0
  460. package/dist/sources.css +16 -0
  461. package/dist/storybook-preview.mjs +184 -0
  462. package/dist/storybook-preview.mjs.map +1 -0
  463. package/dist/styles/colors.css +166 -0
  464. package/dist/styles/index.css +2 -0
  465. package/dist/styles/mantine.css +1024 -0
  466. package/dist/styles/spacing.css +62 -0
  467. package/dist/styles/theme.css +1687 -0
  468. package/dist/styles/typography.css +59 -0
  469. package/dist/styles/variables.css +998 -0
  470. package/dist/styles.css +1 -0
  471. package/dist/switch-BFct1r4a.mjs +223 -0
  472. package/dist/switch-BFct1r4a.mjs.map +1 -0
  473. package/dist/table-DNkLM1TB.mjs +261 -0
  474. package/dist/table-DNkLM1TB.mjs.map +1 -0
  475. package/dist/textarea-MpLFc9sB.mjs +173 -0
  476. package/dist/textarea-MpLFc9sB.mjs.map +1 -0
  477. package/dist/theme-provider-4D34sBmG.mjs +83 -0
  478. package/dist/theme-provider-4D34sBmG.mjs.map +1 -0
  479. package/dist/time-series-chart-B66xH88w.d.mts +69 -0
  480. package/dist/time-series-chart-DxnknDhW.mjs +400 -0
  481. package/dist/time-series-chart-DxnknDhW.mjs.map +1 -0
  482. package/dist/tokens/tokens.dtcg.json +4353 -0
  483. package/dist/tokens/tokens.json +895 -0
  484. package/dist/tokens-mantine-types.d.mts +3 -0
  485. package/dist/tokens-mantine-types.mjs +4 -0
  486. package/dist/tokens.css +2 -0
  487. package/dist/tokens.d.mts +9398 -0
  488. package/dist/tokens.mjs +9311 -0
  489. package/dist/tokens.mjs.map +1 -0
  490. package/dist/tooltip-B8_zKnHC.mjs +301 -0
  491. package/dist/tooltip-B8_zKnHC.mjs.map +1 -0
  492. package/dist/tooltip-BA27ygge.d.mts +44 -0
  493. package/dist/tooltip-FqB3srL-.d.mts +44 -0
  494. package/dist/tooltip-sync-Ax1GmpjC.d.mts +17 -0
  495. package/dist/tooltip-sync-DzJUgiTM.mjs +85 -0
  496. package/dist/tooltip-sync-DzJUgiTM.mjs.map +1 -0
  497. package/dist/types-B8z57DW2.d.mts +41 -0
  498. package/dist/use-artifact-panel-state-CUQTn2Uq.mjs +346 -0
  499. package/dist/use-artifact-panel-state-CUQTn2Uq.mjs.map +1 -0
  500. package/dist/use-artifact-panel-state-DPZC--sz.d.mts +150 -0
  501. package/dist/utils-BJGrUJ6T.mjs +77 -0
  502. package/dist/utils-BJGrUJ6T.mjs.map +1 -0
  503. package/dist/utils-D2bGp2p_.mjs +33 -0
  504. package/dist/utils-D2bGp2p_.mjs.map +1 -0
  505. package/dist/x-axis-BY00htJY.mjs +137 -0
  506. package/dist/x-axis-BY00htJY.mjs.map +1 -0
  507. package/dist/x-axis-Dh66iD8l.d.mts +21 -0
  508. package/dist/y-axis-DgHlVHRG.mjs +118 -0
  509. package/dist/y-axis-DgHlVHRG.mjs.map +1 -0
  510. package/dist/y-axis-DocBbrSp.d.mts +23 -0
  511. package/dist/z-index-BlBlZL-F.d.mts +10775 -0
  512. package/package.json +429 -0
  513. package/src/ai-oneapp/flow-chat/index.ts +3 -0
  514. package/src/ai-oneapp/flow-chat/node-suggestion-card.tsx +37 -0
  515. package/src/ai-oneapp/flow-chat/template-suggestion-card.tsx +49 -0
  516. package/src/ai-oneapp/flow-chat/workflow-action-toast.tsx +55 -0
  517. package/src/components/.gitkeep +0 -0
  518. package/src/components/ai-elements/__tests__/test-utils.tsx +12 -0
  519. package/src/components/ai-elements/actions/actions.stories.tsx +288 -0
  520. package/src/components/ai-elements/actions/actions.test.tsx +60 -0
  521. package/src/components/ai-elements/actions/actions.tsx +286 -0
  522. package/src/components/ai-elements/actions/index.ts +7 -0
  523. package/src/components/ai-elements/agent-step/agent-step.stories.tsx +167 -0
  524. package/src/components/ai-elements/agent-step/agent-step.tsx +206 -0
  525. package/src/components/ai-elements/agent-step/index.ts +7 -0
  526. package/src/components/ai-elements/ai-elements.constants.ts +516 -0
  527. package/src/components/ai-elements/artifact/artifact.stories.tsx +199 -0
  528. package/src/components/ai-elements/artifact/artifact.tsx +277 -0
  529. package/src/components/ai-elements/artifact/index.ts +7 -0
  530. package/src/components/ai-elements/branch/branch.stories.tsx +212 -0
  531. package/src/components/ai-elements/branch/branch.test.tsx +148 -0
  532. package/src/components/ai-elements/branch/branch.tsx +502 -0
  533. package/src/components/ai-elements/branch/index.ts +7 -0
  534. package/src/components/ai-elements/chain-of-thought/chain-of-thought.stories.tsx +172 -0
  535. package/src/components/ai-elements/chain-of-thought/chain-of-thought.tsx +505 -0
  536. package/src/components/ai-elements/chain-of-thought/index.ts +7 -0
  537. package/src/components/ai-elements/chat-input/chat-input.stories.tsx +185 -0
  538. package/src/components/ai-elements/chat-input/chat-input.tsx +201 -0
  539. package/src/components/ai-elements/chat-input/index.ts +7 -0
  540. package/src/components/ai-elements/checkpoint/checkpoint.stories.tsx +171 -0
  541. package/src/components/ai-elements/checkpoint/checkpoint.tsx +256 -0
  542. package/src/components/ai-elements/checkpoint/index.ts +7 -0
  543. package/src/components/ai-elements/code-block/code-block.stories.tsx +317 -0
  544. package/src/components/ai-elements/code-block/code-block.tsx +366 -0
  545. package/src/components/ai-elements/code-block/index.ts +7 -0
  546. package/src/components/ai-elements/confirmation/confirmation.stories.tsx +236 -0
  547. package/src/components/ai-elements/confirmation/confirmation.tsx +465 -0
  548. package/src/components/ai-elements/confirmation/index.ts +7 -0
  549. package/src/components/ai-elements/context/context.stories.tsx +80 -0
  550. package/src/components/ai-elements/context/context.tsx +585 -0
  551. package/src/components/ai-elements/context/index.ts +7 -0
  552. package/src/components/ai-elements/conversation/__tests__/conversation.test.tsx +402 -0
  553. package/src/components/ai-elements/conversation/conversation.stories.tsx +1019 -0
  554. package/src/components/ai-elements/conversation/conversation.tsx +260 -0
  555. package/src/components/ai-elements/conversation/index.ts +7 -0
  556. package/src/components/ai-elements/custom/__tests__/accessibility.test.tsx +27 -0
  557. package/src/components/ai-elements/custom/__tests__/chat-container.test.tsx +30 -0
  558. package/src/components/ai-elements/custom/__tests__/conversation-history.test.tsx +100 -0
  559. package/src/components/ai-elements/custom/__tests__/export-dropdown.test.tsx +60 -0
  560. package/src/components/ai-elements/custom/ai-label/ai-label.stories.tsx +86 -0
  561. package/src/components/ai-elements/custom/ai-label/ai-label.tsx +291 -0
  562. package/src/components/ai-elements/custom/ai-label/index.ts +7 -0
  563. package/src/components/ai-elements/custom/artifact-skeleton/artifact-skeleton.stories.tsx +155 -0
  564. package/src/components/ai-elements/custom/artifact-skeleton/artifact-skeleton.tsx +269 -0
  565. package/src/components/ai-elements/custom/artifact-skeleton/index.ts +18 -0
  566. package/src/components/ai-elements/custom/audio-player/audio-player.stories.tsx +50 -0
  567. package/src/components/ai-elements/custom/audio-player/audio-player.tsx +296 -0
  568. package/src/components/ai-elements/custom/audio-player/index.ts +1 -0
  569. package/src/components/ai-elements/custom/button-group/button-group.stories.tsx +108 -0
  570. package/src/components/ai-elements/custom/button-group/button-group.tsx +142 -0
  571. package/src/components/ai-elements/custom/button-group/index.ts +15 -0
  572. package/src/components/ai-elements/custom/chat-container/chat-container.stories.tsx +143 -0
  573. package/src/components/ai-elements/custom/chat-container/chat-container.tsx +406 -0
  574. package/src/components/ai-elements/custom/chat-container/index.ts +9 -0
  575. package/src/components/ai-elements/custom/collapsible/collapsible.stories.tsx +130 -0
  576. package/src/components/ai-elements/custom/collapsible/index.ts +11 -0
  577. package/src/components/ai-elements/custom/collapsible/use-collapsible.tsx +240 -0
  578. package/src/components/ai-elements/custom/collapsible-content/collapsible-content.stories.tsx +113 -0
  579. package/src/components/ai-elements/custom/collapsible-content/collapsible-content.tsx +141 -0
  580. package/src/components/ai-elements/custom/collapsible-content/index.ts +7 -0
  581. package/src/components/ai-elements/custom/content-placeholder/content-placeholder.stories.tsx +82 -0
  582. package/src/components/ai-elements/custom/content-placeholder/content-placeholder.tsx +319 -0
  583. package/src/components/ai-elements/custom/content-placeholder/index.ts +10 -0
  584. package/src/components/ai-elements/custom/conversation-header/conversation-header.stories.tsx +102 -0
  585. package/src/components/ai-elements/custom/conversation-header/conversation-header.tsx +202 -0
  586. package/src/components/ai-elements/custom/conversation-header/index.ts +12 -0
  587. package/src/components/ai-elements/custom/conversation-history/conversation-history.stories.tsx +191 -0
  588. package/src/components/ai-elements/custom/conversation-history/conversation-history.tsx +515 -0
  589. package/src/components/ai-elements/custom/conversation-history/index.ts +16 -0
  590. package/src/components/ai-elements/custom/diff-view/diff-view.stories.tsx +173 -0
  591. package/src/components/ai-elements/custom/diff-view/diff-view.tsx +261 -0
  592. package/src/components/ai-elements/custom/diff-view/index.ts +7 -0
  593. package/src/components/ai-elements/custom/draggable-tabs/draggable-tabs.stories.tsx +157 -0
  594. package/src/components/ai-elements/custom/draggable-tabs/draggable-tabs.tsx +311 -0
  595. package/src/components/ai-elements/custom/draggable-tabs/index.ts +7 -0
  596. package/src/components/ai-elements/custom/export-conversation/export-conversation.stories.tsx +73 -0
  597. package/src/components/ai-elements/custom/export-conversation/export-conversation.tsx +405 -0
  598. package/src/components/ai-elements/custom/export-conversation/index.ts +10 -0
  599. package/src/components/ai-elements/custom/export-dropdown/export-dropdown.stories.tsx +121 -0
  600. package/src/components/ai-elements/custom/export-dropdown/export-dropdown.tsx +315 -0
  601. package/src/components/ai-elements/custom/export-dropdown/index.ts +11 -0
  602. package/src/components/ai-elements/custom/feedback/feedback.stories.tsx +85 -0
  603. package/src/components/ai-elements/custom/feedback/feedback.tsx +425 -0
  604. package/src/components/ai-elements/custom/feedback/index.ts +13 -0
  605. package/src/components/ai-elements/custom/file-card/file-card.stories.tsx +65 -0
  606. package/src/components/ai-elements/custom/file-card/file-card.tsx +249 -0
  607. package/src/components/ai-elements/custom/file-card/index.ts +1 -0
  608. package/src/components/ai-elements/custom/file-tree/file-tree.stories.tsx +96 -0
  609. package/src/components/ai-elements/custom/file-tree/file-tree.tsx +266 -0
  610. package/src/components/ai-elements/custom/file-tree/index.ts +7 -0
  611. package/src/components/ai-elements/custom/index.ts +73 -0
  612. package/src/components/ai-elements/custom/keyboard-shortcut/index.ts +14 -0
  613. package/src/components/ai-elements/custom/keyboard-shortcut/keyboard-shortcut.stories.tsx +118 -0
  614. package/src/components/ai-elements/custom/keyboard-shortcut/keyboard-shortcut.tsx +292 -0
  615. package/src/components/ai-elements/custom/message-edit/index.ts +1 -0
  616. package/src/components/ai-elements/custom/message-edit/message-edit.stories.tsx +88 -0
  617. package/src/components/ai-elements/custom/message-edit/message-edit.tsx +225 -0
  618. package/src/components/ai-elements/custom/message-error/index.ts +7 -0
  619. package/src/components/ai-elements/custom/message-error/message-error.stories.tsx +85 -0
  620. package/src/components/ai-elements/custom/message-error/message-error.tsx +301 -0
  621. package/src/components/ai-elements/custom/message-group/index.ts +1 -0
  622. package/src/components/ai-elements/custom/message-group/message-group.stories.tsx +82 -0
  623. package/src/components/ai-elements/custom/message-group/message-group.tsx +77 -0
  624. package/src/components/ai-elements/custom/message-separator/index.ts +1 -0
  625. package/src/components/ai-elements/custom/message-separator/message-separator.stories.tsx +65 -0
  626. package/src/components/ai-elements/custom/message-separator/message-separator.tsx +132 -0
  627. package/src/components/ai-elements/custom/scroll-to-bottom/index.ts +11 -0
  628. package/src/components/ai-elements/custom/scroll-to-bottom/scroll-to-bottom.stories.tsx +116 -0
  629. package/src/components/ai-elements/custom/scroll-to-bottom/use-scroll-to-bottom.tsx +215 -0
  630. package/src/components/ai-elements/custom/snippet/index.ts +1 -0
  631. package/src/components/ai-elements/custom/snippet/snippet.stories.tsx +59 -0
  632. package/src/components/ai-elements/custom/snippet/snippet.tsx +158 -0
  633. package/src/components/ai-elements/custom/stack-trace/index.ts +1 -0
  634. package/src/components/ai-elements/custom/stack-trace/stack-trace.stories.tsx +112 -0
  635. package/src/components/ai-elements/custom/stack-trace/stack-trace.tsx +368 -0
  636. package/src/components/ai-elements/custom/terminal/index.ts +9 -0
  637. package/src/components/ai-elements/custom/terminal/terminal.stories.tsx +92 -0
  638. package/src/components/ai-elements/custom/terminal/terminal.tsx +233 -0
  639. package/src/components/ai-elements/custom/test-results/test-results.tsx +438 -0
  640. package/src/components/ai-elements/custom/thought-chain/index.ts +7 -0
  641. package/src/components/ai-elements/custom/thought-chain/thought-chain.stories.tsx +123 -0
  642. package/src/components/ai-elements/custom/thought-chain/thought-chain.tsx +246 -0
  643. package/src/components/ai-elements/custom/token-usage/index.ts +6 -0
  644. package/src/components/ai-elements/custom/token-usage/token-usage.stories.tsx +104 -0
  645. package/src/components/ai-elements/custom/token-usage/token-usage.tsx +236 -0
  646. package/src/components/ai-elements/custom/transcription/index.ts +1 -0
  647. package/src/components/ai-elements/custom/transcription/transcription.stories.tsx +80 -0
  648. package/src/components/ai-elements/custom/transcription/transcription.tsx +163 -0
  649. package/src/components/ai-elements/custom/typing-indicator/index.ts +1 -0
  650. package/src/components/ai-elements/custom/typing-indicator/typing-indicator.stories.tsx +71 -0
  651. package/src/components/ai-elements/custom/typing-indicator/typing-indicator.tsx +126 -0
  652. package/src/components/ai-elements/custom/undo-redo/index.ts +12 -0
  653. package/src/components/ai-elements/custom/undo-redo/undo-redo.stories.tsx +145 -0
  654. package/src/components/ai-elements/custom/undo-redo/use-undo-redo.tsx +324 -0
  655. package/src/components/ai-elements/custom/voice-selector/index.ts +7 -0
  656. package/src/components/ai-elements/custom/voice-selector/voice-selector.stories.tsx +67 -0
  657. package/src/components/ai-elements/custom/voice-selector/voice-selector.tsx +301 -0
  658. package/src/components/ai-elements/custom/welcome/index.ts +1 -0
  659. package/src/components/ai-elements/custom/welcome/welcome.stories.tsx +92 -0
  660. package/src/components/ai-elements/custom/welcome/welcome.tsx +213 -0
  661. package/src/components/ai-elements/generative-ui/generative-ui-renderer.stories.tsx +451 -0
  662. package/src/components/ai-elements/generative-ui/generative-ui-renderer.test.tsx +383 -0
  663. package/src/components/ai-elements/generative-ui/generative-ui-renderer.tsx +668 -0
  664. package/src/components/ai-elements/generative-ui/index.ts +21 -0
  665. package/src/components/ai-elements/image/image.stories.tsx +179 -0
  666. package/src/components/ai-elements/image/image.tsx +178 -0
  667. package/src/components/ai-elements/image/index.ts +7 -0
  668. package/src/components/ai-elements/index.ts +195 -0
  669. package/src/components/ai-elements/inline-citation/index.ts +7 -0
  670. package/src/components/ai-elements/inline-citation/inline-citation.stories.tsx +331 -0
  671. package/src/components/ai-elements/inline-citation/inline-citation.tsx +595 -0
  672. package/src/components/ai-elements/loader/index.ts +7 -0
  673. package/src/components/ai-elements/loader/loader.stories.tsx +185 -0
  674. package/src/components/ai-elements/loader/loader.tsx +177 -0
  675. package/src/components/ai-elements/message/__tests__/message.test.tsx +352 -0
  676. package/src/components/ai-elements/message/index.ts +7 -0
  677. package/src/components/ai-elements/message/message-actions.test.tsx +51 -0
  678. package/src/components/ai-elements/message/message.stories.tsx +609 -0
  679. package/src/components/ai-elements/message/message.test.tsx +52 -0
  680. package/src/components/ai-elements/message/message.tsx +1125 -0
  681. package/src/components/ai-elements/message/response.test.tsx +18 -0
  682. package/src/components/ai-elements/model-selector/index.ts +7 -0
  683. package/src/components/ai-elements/model-selector/model-selector.stories.tsx +198 -0
  684. package/src/components/ai-elements/model-selector/model-selector.tsx +406 -0
  685. package/src/components/ai-elements/modernization_walkthrough.md +51 -0
  686. package/src/components/ai-elements/open-in-chat/index.ts +7 -0
  687. package/src/components/ai-elements/open-in-chat/open-in-chat.stories.tsx +221 -0
  688. package/src/components/ai-elements/open-in-chat/open-in-chat.tsx +606 -0
  689. package/src/components/ai-elements/plan/index.ts +7 -0
  690. package/src/components/ai-elements/plan/plan.stories.tsx +233 -0
  691. package/src/components/ai-elements/plan/plan.tsx +337 -0
  692. package/src/components/ai-elements/prompt-char-counter/index.ts +7 -0
  693. package/src/components/ai-elements/prompt-char-counter/prompt-char-counter.stories.tsx +98 -0
  694. package/src/components/ai-elements/prompt-char-counter/prompt-char-counter.tsx +159 -0
  695. package/src/components/ai-elements/prompt-input/index.ts +7 -0
  696. package/src/components/ai-elements/prompt-input/prompt-input.stories.tsx +548 -0
  697. package/src/components/ai-elements/prompt-input/prompt-input.test.tsx +22 -0
  698. package/src/components/ai-elements/prompt-input/prompt-input.tsx +2112 -0
  699. package/src/components/ai-elements/queue/index.ts +7 -0
  700. package/src/components/ai-elements/queue/queue.stories.tsx +249 -0
  701. package/src/components/ai-elements/queue/queue.tsx +456 -0
  702. package/src/components/ai-elements/reasoning/index.ts +7 -0
  703. package/src/components/ai-elements/reasoning/reasoning.stories.tsx +147 -0
  704. package/src/components/ai-elements/reasoning/reasoning.tsx +356 -0
  705. package/src/components/ai-elements/shimmer/index.ts +7 -0
  706. package/src/components/ai-elements/shimmer/shimmer.stories.tsx +240 -0
  707. package/src/components/ai-elements/shimmer/shimmer.tsx +150 -0
  708. package/src/components/ai-elements/sources/index.ts +7 -0
  709. package/src/components/ai-elements/sources/sources.stories.tsx +259 -0
  710. package/src/components/ai-elements/sources/sources.test.tsx +40 -0
  711. package/src/components/ai-elements/sources/sources.tsx +327 -0
  712. package/src/components/ai-elements/suggestion/index.ts +7 -0
  713. package/src/components/ai-elements/suggestion/suggestion.stories.tsx +207 -0
  714. package/src/components/ai-elements/suggestion/suggestion.tsx +229 -0
  715. package/src/components/ai-elements/task/index.ts +7 -0
  716. package/src/components/ai-elements/task/task.stories.tsx +213 -0
  717. package/src/components/ai-elements/task/task.tsx +356 -0
  718. package/src/components/ai-elements/test-utils.tsx +28 -0
  719. package/src/components/ai-elements/tool/index.ts +7 -0
  720. package/src/components/ai-elements/tool/tool.stories.tsx +195 -0
  721. package/src/components/ai-elements/tool/tool.test.tsx +160 -0
  722. package/src/components/ai-elements/tool/tool.tsx +537 -0
  723. package/src/components/ai-elements/tool-approval/index.ts +7 -0
  724. package/src/components/ai-elements/tool-approval/tool-approval.stories.tsx +260 -0
  725. package/src/components/ai-elements/tool-approval/tool-approval.tsx +423 -0
  726. package/src/components/ai-elements/vitest.config.ts +17 -0
  727. package/src/components/ai-elements/vitest.setup.ts +6 -0
  728. package/src/components/ai-elements/web-preview/index.ts +7 -0
  729. package/src/components/ai-elements/web-preview/web-preview.stories.tsx +202 -0
  730. package/src/components/ai-elements/web-preview/web-preview.tsx +1166 -0
  731. package/src/components/ai-workflows/canvas/canvas.stories.tsx +120 -0
  732. package/src/components/ai-workflows/canvas/canvas.tsx +173 -0
  733. package/src/components/ai-workflows/canvas/index.ts +7 -0
  734. package/src/components/ai-workflows/connection/connection.stories.tsx +66 -0
  735. package/src/components/ai-workflows/connection/connection.tsx +119 -0
  736. package/src/components/ai-workflows/connection/index.ts +7 -0
  737. package/src/components/ai-workflows/controls/controls.stories.tsx +72 -0
  738. package/src/components/ai-workflows/controls/controls.tsx +132 -0
  739. package/src/components/ai-workflows/controls/index.ts +7 -0
  740. package/src/components/ai-workflows/edge/edge.stories.tsx +120 -0
  741. package/src/components/ai-workflows/edge/edge.test.tsx +47 -0
  742. package/src/components/ai-workflows/edge/edge.tsx +136 -0
  743. package/src/components/ai-workflows/edge/index.ts +7 -0
  744. package/src/components/ai-workflows/flow-constants.ts +11 -0
  745. package/src/components/ai-workflows/node/index.ts +7 -0
  746. package/src/components/ai-workflows/node/node.stories.tsx +111 -0
  747. package/src/components/ai-workflows/node/node.tsx +227 -0
  748. package/src/components/ai-workflows/panel/index.ts +7 -0
  749. package/src/components/ai-workflows/panel/panel.stories.tsx +102 -0
  750. package/src/components/ai-workflows/panel/panel.tsx +106 -0
  751. package/src/components/ai-workflows/resizable-node/index.ts +7 -0
  752. package/src/components/ai-workflows/resizable-node/resizable-node.stories.tsx +93 -0
  753. package/src/components/ai-workflows/resizable-node/resizable-node.tsx +228 -0
  754. package/src/components/ai-workflows/toolbar/index.ts +7 -0
  755. package/src/components/ai-workflows/toolbar/toolbar.stories.tsx +99 -0
  756. package/src/components/ai-workflows/toolbar/toolbar.tsx +130 -0
  757. package/src/components/auth/client/index.ts +12 -0
  758. package/src/components/auth/client/nav-user/auth-nav-user.tsx +237 -0
  759. package/src/components/auth/client/nav-user/index.ts +11 -0
  760. package/src/components/auth/client/providers/ThemeProvider.stories.tsx +59 -0
  761. package/src/components/auth/client/providers/ThemeProvider.tsx +39 -0
  762. package/src/components/auth/client/providers/index.ts +7 -0
  763. package/src/components/auth/client/providers.tsx +129 -0
  764. package/src/components/auth/index.ts +14 -0
  765. package/src/components/auth/server/account/ProfileForm.stories.tsx +105 -0
  766. package/src/components/auth/server/account/ProfileForm.tsx +236 -0
  767. package/src/components/auth/server/account/index.ts +7 -0
  768. package/src/components/auth/server/actions/index.ts +11 -0
  769. package/src/components/auth/server/actions.ts +88 -0
  770. package/src/components/auth/server/admin/AdminBulkUserActions.stories.tsx +129 -0
  771. package/src/components/auth/server/admin/AdminBulkUserActions.tsx +649 -0
  772. package/src/components/auth/server/admin/AdminDashboard.stories.tsx +215 -0
  773. package/src/components/auth/server/admin/AdminDashboard.tsx +785 -0
  774. package/src/components/auth/server/admin/AdminDevicesManager.tsx +411 -0
  775. package/src/components/auth/server/admin/AdminImpersonation.stories.tsx +121 -0
  776. package/src/components/auth/server/admin/AdminImpersonation.tsx +569 -0
  777. package/src/components/auth/server/admin/AdminPasskeysManager.tsx +393 -0
  778. package/src/components/auth/server/admin/AdminSecurityEventsViewer.tsx +395 -0
  779. package/src/components/auth/server/admin/AdminServiceAccountsManager.tsx +454 -0
  780. package/src/components/auth/server/admin/AdminSessionsManager.tsx +664 -0
  781. package/src/components/auth/server/admin/AdminTwoFactorManager.tsx +431 -0
  782. package/src/components/auth/server/admin/AdminUserCreation.stories.tsx +87 -0
  783. package/src/components/auth/server/admin/AdminUserCreation.tsx +777 -0
  784. package/src/components/auth/server/admin/AdminUserDetail.stories.tsx +178 -0
  785. package/src/components/auth/server/admin/AdminUserDetail.tsx +1044 -0
  786. package/src/components/auth/server/admin/AdminUsersList.stories.tsx +228 -0
  787. package/src/components/auth/server/admin/AdminUsersList.tsx +859 -0
  788. package/src/components/auth/server/admin/index.ts +59 -0
  789. package/src/components/auth/server/advanced/PasskeySetup.stories.tsx +70 -0
  790. package/src/components/auth/server/advanced/PasskeySetup.tsx +383 -0
  791. package/src/components/auth/server/advanced/TwoFactorSetup.stories.tsx +79 -0
  792. package/src/components/auth/server/advanced/TwoFactorSetup.tsx +459 -0
  793. package/src/components/auth/server/advanced/TwoFactorVerify.stories.tsx +69 -0
  794. package/src/components/auth/server/advanced/TwoFactorVerify.tsx +323 -0
  795. package/src/components/auth/server/advanced/index.ts +10 -0
  796. package/src/components/auth/server/api-keys/APIKeysList.stories.tsx +95 -0
  797. package/src/components/auth/server/api-keys/APIKeysList.tsx +470 -0
  798. package/src/components/auth/server/api-keys/CreateAPIKeyForm.stories.tsx +79 -0
  799. package/src/components/auth/server/api-keys/CreateAPIKeyForm.tsx +501 -0
  800. package/src/components/auth/server/api-keys/index.ts +9 -0
  801. package/src/components/auth/server/enhanced/AccountDeletionFlow.stories.tsx +115 -0
  802. package/src/components/auth/server/enhanced/AccountDeletionFlow.tsx +733 -0
  803. package/src/components/auth/server/enhanced/AnonymousSessionCreator.stories.tsx +80 -0
  804. package/src/components/auth/server/enhanced/AnonymousSessionCreator.tsx +398 -0
  805. package/src/components/auth/server/enhanced/AnonymousToAccountConverter.stories.tsx +61 -0
  806. package/src/components/auth/server/enhanced/AnonymousToAccountConverter.tsx +538 -0
  807. package/src/components/auth/server/enhanced/BackupCodesManager.stories.tsx +108 -0
  808. package/src/components/auth/server/enhanced/BackupCodesManager.tsx +718 -0
  809. package/src/components/auth/server/enhanced/BearerTokenGenerator.stories.tsx +85 -0
  810. package/src/components/auth/server/enhanced/BearerTokenGenerator.tsx +618 -0
  811. package/src/components/auth/server/enhanced/ChangePasswordForm.stories.tsx +108 -0
  812. package/src/components/auth/server/enhanced/ChangePasswordForm.tsx +313 -0
  813. package/src/components/auth/server/enhanced/DataExportRequest.stories.tsx +84 -0
  814. package/src/components/auth/server/enhanced/DataExportRequest.tsx +734 -0
  815. package/src/components/auth/server/enhanced/DeviceManagement.stories.tsx +161 -0
  816. package/src/components/auth/server/enhanced/DeviceManagement.tsx +700 -0
  817. package/src/components/auth/server/enhanced/EmailChangeVerification.stories.tsx +94 -0
  818. package/src/components/auth/server/enhanced/EmailChangeVerification.tsx +421 -0
  819. package/src/components/auth/server/enhanced/EmailOTPSignIn.stories.tsx +68 -0
  820. package/src/components/auth/server/enhanced/EmailOTPSignIn.tsx +516 -0
  821. package/src/components/auth/server/enhanced/EmailOTPVerification.stories.tsx +95 -0
  822. package/src/components/auth/server/enhanced/EmailOTPVerification.tsx +610 -0
  823. package/src/components/auth/server/enhanced/EmailVerificationRequest.stories.tsx +97 -0
  824. package/src/components/auth/server/enhanced/EmailVerificationRequest.tsx +461 -0
  825. package/src/components/auth/server/enhanced/EmailVerificationStatus.stories.tsx +96 -0
  826. package/src/components/auth/server/enhanced/EmailVerificationStatus.tsx +631 -0
  827. package/src/components/auth/server/enhanced/MagicLinkRequestForm.stories.tsx +88 -0
  828. package/src/components/auth/server/enhanced/MagicLinkRequestForm.tsx +439 -0
  829. package/src/components/auth/server/enhanced/MagicLinkStatusIndicator.stories.tsx +101 -0
  830. package/src/components/auth/server/enhanced/MagicLinkStatusIndicator.tsx +610 -0
  831. package/src/components/auth/server/enhanced/MultiSessionDashboard.stories.tsx +101 -0
  832. package/src/components/auth/server/enhanced/MultiSessionDashboard.tsx +996 -0
  833. package/src/components/auth/server/enhanced/OrganizationAuditLog.stories.tsx +86 -0
  834. package/src/components/auth/server/enhanced/OrganizationAuditLog.tsx +1006 -0
  835. package/src/components/auth/server/enhanced/PasskeyManagement.stories.tsx +102 -0
  836. package/src/components/auth/server/enhanced/PasskeyManagement.tsx +705 -0
  837. package/src/components/auth/server/enhanced/PasskeyRegistrationWizard.stories.tsx +83 -0
  838. package/src/components/auth/server/enhanced/PasskeyRegistrationWizard.tsx +566 -0
  839. package/src/components/auth/server/enhanced/PasskeySignInInterface.stories.tsx +90 -0
  840. package/src/components/auth/server/enhanced/PasskeySignInInterface.tsx +792 -0
  841. package/src/components/auth/server/enhanced/PasswordStrengthIndicator.stories.tsx +129 -0
  842. package/src/components/auth/server/enhanced/PasswordStrengthIndicator.tsx +539 -0
  843. package/src/components/auth/server/enhanced/PhoneNumberManagement.stories.tsx +103 -0
  844. package/src/components/auth/server/enhanced/PhoneNumberManagement.tsx +594 -0
  845. package/src/components/auth/server/enhanced/PhoneNumberSetupForm.stories.tsx +91 -0
  846. package/src/components/auth/server/enhanced/PhoneNumberSetupForm.tsx +518 -0
  847. package/src/components/auth/server/enhanced/PhoneSignInForm.stories.tsx +63 -0
  848. package/src/components/auth/server/enhanced/PhoneSignInForm.tsx +801 -0
  849. package/src/components/auth/server/enhanced/PhoneSignInWithSMS.stories.tsx +87 -0
  850. package/src/components/auth/server/enhanced/PhoneSignInWithSMS.tsx +886 -0
  851. package/src/components/auth/server/enhanced/PhoneVerificationForm.stories.tsx +81 -0
  852. package/src/components/auth/server/enhanced/PhoneVerificationForm.tsx +306 -0
  853. package/src/components/auth/server/enhanced/ResendVerificationEmail.stories.tsx +84 -0
  854. package/src/components/auth/server/enhanced/ResendVerificationEmail.tsx +407 -0
  855. package/src/components/auth/server/enhanced/SMSVerificationForm.stories.tsx +92 -0
  856. package/src/components/auth/server/enhanced/SMSVerificationForm.tsx +521 -0
  857. package/src/components/auth/server/enhanced/SecurityEventLog.stories.tsx +115 -0
  858. package/src/components/auth/server/enhanced/SecurityEventLog.tsx +916 -0
  859. package/src/components/auth/server/enhanced/TeamCreationWizard.stories.tsx +85 -0
  860. package/src/components/auth/server/enhanced/TeamCreationWizard.tsx +1023 -0
  861. package/src/components/auth/server/enhanced/__tests__/actions.test.ts +388 -0
  862. package/src/components/auth/server/enhanced/__tests__/more-actions.test.ts +139 -0
  863. package/src/components/auth/server/enhanced/actions.ts +1199 -0
  864. package/src/components/auth/server/enhanced/auth-enhanced-actions.ts +936 -0
  865. package/src/components/auth/server/enhanced/index.ts +37 -0
  866. package/src/components/auth/server/forms/ForgotPasswordForm.stories.tsx +82 -0
  867. package/src/components/auth/server/forms/ForgotPasswordForm.tsx +287 -0
  868. package/src/components/auth/server/forms/ResetPasswordForm.stories.tsx +79 -0
  869. package/src/components/auth/server/forms/ResetPasswordForm.tsx +217 -0
  870. package/src/components/auth/server/forms/SignInForm.stories.tsx +113 -0
  871. package/src/components/auth/server/forms/SignInForm.tsx +211 -0
  872. package/src/components/auth/server/forms/SignUpForm.stories.tsx +130 -0
  873. package/src/components/auth/server/forms/SignUpForm.tsx +243 -0
  874. package/src/components/auth/server/forms/index.ts +10 -0
  875. package/src/components/auth/server/index.ts +22 -0
  876. package/src/components/auth/server/jwt/JWTTokenManager.tsx +315 -0
  877. package/src/components/auth/server/jwt/index.ts +7 -0
  878. package/src/components/auth/server/organization/AuditLogViewer.tsx +288 -0
  879. package/src/components/auth/server/organization/CreateRoleDialog.tsx +540 -0
  880. package/src/components/auth/server/organization/EditRoleDialog.tsx +487 -0
  881. package/src/components/auth/server/organization/InviteMembers.stories.tsx +82 -0
  882. package/src/components/auth/server/organization/InviteMembers.tsx +264 -0
  883. package/src/components/auth/server/organization/MembersList.stories.tsx +117 -0
  884. package/src/components/auth/server/organization/MembersList.tsx +425 -0
  885. package/src/components/auth/server/organization/OrganizationCreation.stories.tsx +99 -0
  886. package/src/components/auth/server/organization/OrganizationCreation.tsx +293 -0
  887. package/src/components/auth/server/organization/OrganizationSettings.stories.tsx +99 -0
  888. package/src/components/auth/server/organization/OrganizationSettings.tsx +494 -0
  889. package/src/components/auth/server/organization/OrganizationSwitcher.stories.tsx +98 -0
  890. package/src/components/auth/server/organization/OrganizationSwitcher.tsx +308 -0
  891. package/src/components/auth/server/organization/PermissionMatrix.tsx +366 -0
  892. package/src/components/auth/server/organization/RoleManagement.stories.tsx +120 -0
  893. package/src/components/auth/server/organization/RoleManagement.tsx +318 -0
  894. package/src/components/auth/server/organization/index.ts +16 -0
  895. package/src/components/auth/server/session/SessionsList.stories.tsx +81 -0
  896. package/src/components/auth/server/session/SessionsList.tsx +274 -0
  897. package/src/components/auth/server/session/index.ts +7 -0
  898. package/src/components/auth/server/social/SocialLoginButtons.stories.tsx +139 -0
  899. package/src/components/auth/server/social/SocialLoginButtons.tsx +292 -0
  900. package/src/components/auth/server/social/index.ts +7 -0
  901. package/src/components/auth/server/ui/Alert.stories.tsx +97 -0
  902. package/src/components/auth/server/ui/Alert.tsx +159 -0
  903. package/src/components/auth/server/ui/Button.stories.tsx +149 -0
  904. package/src/components/auth/server/ui/Button.tsx +221 -0
  905. package/src/components/auth/server/ui/Card.stories.tsx +80 -0
  906. package/src/components/auth/server/ui/Card.tsx +51 -0
  907. package/src/components/auth/server/ui/Input.stories.tsx +143 -0
  908. package/src/components/auth/server/ui/Input.tsx +195 -0
  909. package/src/components/auth/server/ui/index.ts +18 -0
  910. package/src/components/charts/areas/areas.stories.tsx +113 -0
  911. package/src/components/charts/areas/areas.tsx +185 -0
  912. package/src/components/charts/areas/index.ts +11 -0
  913. package/src/components/charts/bars/bars.stories.tsx +109 -0
  914. package/src/components/charts/bars/bars.tsx +164 -0
  915. package/src/components/charts/bars/index.ts +11 -0
  916. package/src/components/charts/chart-context.ts +35 -0
  917. package/src/components/charts/funnel-chart/funnel-chart.stories.tsx +111 -0
  918. package/src/components/charts/funnel-chart/funnel-chart.tsx +392 -0
  919. package/src/components/charts/funnel-chart/index.ts +11 -0
  920. package/src/components/charts/index.ts +45 -0
  921. package/src/components/charts/mini-area-chart/index.ts +11 -0
  922. package/src/components/charts/mini-area-chart/mini-area-chart.stories.tsx +100 -0
  923. package/src/components/charts/mini-area-chart/mini-area-chart.tsx +244 -0
  924. package/src/components/charts/time-series-chart/index.ts +11 -0
  925. package/src/components/charts/time-series-chart/time-series-chart.stories.tsx +140 -0
  926. package/src/components/charts/time-series-chart/time-series-chart.tsx +337 -0
  927. package/src/components/charts/tooltip-sync/index.ts +11 -0
  928. package/src/components/charts/tooltip-sync/tooltip-sync.stories.tsx +89 -0
  929. package/src/components/charts/tooltip-sync/tooltip-sync.tsx +91 -0
  930. package/src/components/charts/types.ts +93 -0
  931. package/src/components/charts/use-tooltip.ts +230 -0
  932. package/src/components/charts/utils.ts +69 -0
  933. package/src/components/charts/x-axis/index.ts +11 -0
  934. package/src/components/charts/x-axis/x-axis.stories.tsx +94 -0
  935. package/src/components/charts/x-axis/x-axis.tsx +176 -0
  936. package/src/components/charts/y-axis/index.ts +7 -0
  937. package/src/components/charts/y-axis/y-axis.stories.tsx +110 -0
  938. package/src/components/charts/y-axis/y-axis.tsx +139 -0
  939. package/src/components/elements/atoms/alert/alert.stories.tsx +234 -0
  940. package/src/components/elements/atoms/alert/alert.tsx +293 -0
  941. package/src/components/elements/atoms/alert/index.ts +7 -0
  942. package/src/components/elements/atoms/avatar/avatar.stories.tsx +174 -0
  943. package/src/components/elements/atoms/avatar/avatar.tsx +274 -0
  944. package/src/components/elements/atoms/avatar/index.ts +7 -0
  945. package/src/components/elements/atoms/badge/badge.stories.tsx +186 -0
  946. package/src/components/elements/atoms/badge/badge.tsx +333 -0
  947. package/src/components/elements/atoms/badge/index.ts +7 -0
  948. package/src/components/elements/atoms/blur-image/blur-image.stories.tsx +140 -0
  949. package/src/components/elements/atoms/blur-image/blur-image.tsx +102 -0
  950. package/src/components/elements/atoms/blur-image/index.ts +7 -0
  951. package/src/components/elements/atoms/button/button.stories.tsx +776 -0
  952. package/src/components/elements/atoms/button/button.tsx +878 -0
  953. package/src/components/elements/atoms/button/index.ts +7 -0
  954. package/src/components/elements/atoms/copy-button/copy-button.stories.tsx +162 -0
  955. package/src/components/elements/atoms/copy-button/copy-button.tsx +232 -0
  956. package/src/components/elements/atoms/copy-button/index.ts +7 -0
  957. package/src/components/elements/atoms/copy-text/copy-text.stories.tsx +128 -0
  958. package/src/components/elements/atoms/copy-text/copy-text.tsx +201 -0
  959. package/src/components/elements/atoms/copy-text/index.ts +7 -0
  960. package/src/components/elements/atoms/empty-state/empty-state.stories.tsx +410 -0
  961. package/src/components/elements/atoms/empty-state/empty-state.tsx +338 -0
  962. package/src/components/elements/atoms/empty-state/index.ts +1 -0
  963. package/src/components/elements/atoms/go-back-button/go-back-button.stories.tsx +83 -0
  964. package/src/components/elements/atoms/go-back-button/go-back-button.tsx +104 -0
  965. package/src/components/elements/atoms/go-back-button/index.ts +7 -0
  966. package/src/components/elements/atoms/inline-snippet/index.ts +7 -0
  967. package/src/components/elements/atoms/inline-snippet/inline-snippet.stories.tsx +130 -0
  968. package/src/components/elements/atoms/inline-snippet/inline-snippet.tsx +140 -0
  969. package/src/components/elements/atoms/loading-dots/index.ts +1 -0
  970. package/src/components/elements/atoms/loading-dots/loading-dots.stories.tsx +274 -0
  971. package/src/components/elements/atoms/loading-dots/loading-dots.tsx +138 -0
  972. package/src/components/elements/atoms/mode-toggle/index.ts +7 -0
  973. package/src/components/elements/atoms/mode-toggle/mode-toggle.stories.tsx +67 -0
  974. package/src/components/elements/atoms/mode-toggle/mode-toggle.tsx +163 -0
  975. package/src/components/elements/atoms/progress/index.ts +7 -0
  976. package/src/components/elements/atoms/progress/progress.stories.tsx +141 -0
  977. package/src/components/elements/atoms/progress/progress.tsx +314 -0
  978. package/src/components/elements/atoms/progress-circle/index.ts +7 -0
  979. package/src/components/elements/atoms/progress-circle/progress-circle.stories.tsx +185 -0
  980. package/src/components/elements/atoms/progress-circle/progress-circle.tsx +207 -0
  981. package/src/components/elements/atoms/separator/index.ts +7 -0
  982. package/src/components/elements/atoms/separator/separator.stories.tsx +154 -0
  983. package/src/components/elements/atoms/separator/separator.tsx +169 -0
  984. package/src/components/elements/atoms/skeleton/index.ts +7 -0
  985. package/src/components/elements/atoms/skeleton/skeleton.stories.tsx +152 -0
  986. package/src/components/elements/atoms/skeleton/skeleton.tsx +336 -0
  987. package/src/components/elements/atoms/slider/index.ts +7 -0
  988. package/src/components/elements/atoms/slider/slider.stories.tsx +199 -0
  989. package/src/components/elements/atoms/slider/slider.tsx +487 -0
  990. package/src/components/elements/atoms/sonner/index.ts +7 -0
  991. package/src/components/elements/atoms/sonner/sonner.stories.tsx +408 -0
  992. package/src/components/elements/atoms/sonner/sonner.tsx +131 -0
  993. package/src/components/elements/atoms/status-badge/index.ts +7 -0
  994. package/src/components/elements/atoms/status-badge/status-badge.stories.tsx +166 -0
  995. package/src/components/elements/atoms/status-badge/status-badge.tsx +262 -0
  996. package/src/components/elements/atoms/timestamp-tooltip/index.ts +7 -0
  997. package/src/components/elements/atoms/timestamp-tooltip/timestamp-tooltip.stories.tsx +127 -0
  998. package/src/components/elements/atoms/timestamp-tooltip/timestamp-tooltip.tsx +404 -0
  999. package/src/components/elements/molecules/animated-size-container/animated-size-container.stories.tsx +165 -0
  1000. package/src/components/elements/molecules/animated-size-container/animated-size-container.tsx +125 -0
  1001. package/src/components/elements/molecules/animated-size-container/index.ts +7 -0
  1002. package/src/components/elements/molecules/avatar-stack/avatar-stack.stories.tsx +179 -0
  1003. package/src/components/elements/molecules/avatar-stack/avatar-stack.tsx +258 -0
  1004. package/src/components/elements/molecules/avatar-stack/index.ts +7 -0
  1005. package/src/components/elements/molecules/breadcrumb/breadcrumb.stories.tsx +273 -0
  1006. package/src/components/elements/molecules/breadcrumb/breadcrumb.tsx +299 -0
  1007. package/src/components/elements/molecules/breadcrumb/index.ts +7 -0
  1008. package/src/components/elements/molecules/button-group/button-group.stories.tsx +267 -0
  1009. package/src/components/elements/molecules/button-group/button-group.tsx +244 -0
  1010. package/src/components/elements/molecules/button-group/index.ts +7 -0
  1011. package/src/components/elements/molecules/collapsible/collapsible.stories.tsx +186 -0
  1012. package/src/components/elements/molecules/collapsible/collapsible.tsx +362 -0
  1013. package/src/components/elements/molecules/collapsible/index.ts +7 -0
  1014. package/src/components/elements/molecules/empty/empty.stories.tsx +182 -0
  1015. package/src/components/elements/molecules/empty/empty.tsx +230 -0
  1016. package/src/components/elements/molecules/empty/index.ts +7 -0
  1017. package/src/components/elements/molecules/pagination-controls/index.ts +8 -0
  1018. package/src/components/elements/molecules/pagination-controls/pagination-controls.stories.tsx +193 -0
  1019. package/src/components/elements/molecules/pagination-controls/pagination-controls.tsx +174 -0
  1020. package/src/components/elements/molecules/tab-select/index.ts +7 -0
  1021. package/src/components/elements/molecules/tab-select/tab-select.stories.tsx +175 -0
  1022. package/src/components/elements/molecules/tab-select/tab-select.tsx +261 -0
  1023. package/src/components/elements/molecules/tabs/index.ts +7 -0
  1024. package/src/components/elements/molecules/tabs/tabs.stories.tsx +198 -0
  1025. package/src/components/elements/molecules/tabs/tabs.tsx +744 -0
  1026. package/src/components/elements/molecules/toggle-group/index.ts +7 -0
  1027. package/src/components/elements/molecules/toggle-group/toggle-group.stories.tsx +201 -0
  1028. package/src/components/elements/molecules/toggle-group/toggle-group.tsx +236 -0
  1029. package/src/components/elements/organisms/accordion/accordion.stories.tsx +217 -0
  1030. package/src/components/elements/organisms/accordion/accordion.tsx +456 -0
  1031. package/src/components/elements/organisms/accordion/index.ts +7 -0
  1032. package/src/components/elements/organisms/card/card.stories.tsx +406 -0
  1033. package/src/components/elements/organisms/card/card.tsx +437 -0
  1034. package/src/components/elements/organisms/card/index.ts +8 -0
  1035. package/src/components/elements/organisms/card/integration-card.stories.tsx +348 -0
  1036. package/src/components/elements/organisms/card/integration-compact.stories.tsx +310 -0
  1037. package/src/components/elements/organisms/card/integrations.tsx +356 -0
  1038. package/src/components/elements/organisms/carousel/carousel.stories.tsx +182 -0
  1039. package/src/components/elements/organisms/carousel/carousel.tsx +537 -0
  1040. package/src/components/elements/organisms/carousel/index.ts +7 -0
  1041. package/src/components/elements/organisms/chart/chart.stories.tsx +147 -0
  1042. package/src/components/elements/organisms/chart/chart.tsx +317 -0
  1043. package/src/components/elements/organisms/chart/index.ts +7 -0
  1044. package/src/components/elements/organisms/command/command.stories.tsx +246 -0
  1045. package/src/components/elements/organisms/command/command.tsx +284 -0
  1046. package/src/components/elements/organisms/command/index.ts +7 -0
  1047. package/src/components/elements/organisms/dialog/dialog.stories.tsx +266 -0
  1048. package/src/components/elements/organisms/dialog/dialog.tsx +366 -0
  1049. package/src/components/elements/organisms/dialog/index.ts +7 -0
  1050. package/src/components/elements/organisms/dropdown-menu/dropdown-menu.stories.tsx +334 -0
  1051. package/src/components/elements/organisms/dropdown-menu/dropdown-menu.tsx +611 -0
  1052. package/src/components/elements/organisms/dropdown-menu/index.ts +7 -0
  1053. package/src/components/elements/organisms/dynamic-breadcrumb/dynamic-breadcrumb.stories.tsx +50 -0
  1054. package/src/components/elements/organisms/dynamic-breadcrumb/dynamic-breadcrumb.tsx +257 -0
  1055. package/src/components/elements/organisms/dynamic-breadcrumb/index.ts +7 -0
  1056. package/src/components/elements/organisms/error-boundary/error-boundary.stories.tsx +142 -0
  1057. package/src/components/elements/organisms/error-boundary/error-boundary.tsx +408 -0
  1058. package/src/components/elements/organisms/error-boundary/index.ts +7 -0
  1059. package/src/components/elements/organisms/hover-card/hover-card.stories.tsx +245 -0
  1060. package/src/components/elements/organisms/hover-card/hover-card.tsx +370 -0
  1061. package/src/components/elements/organisms/hover-card/index.ts +7 -0
  1062. package/src/components/elements/organisms/modal/index.ts +7 -0
  1063. package/src/components/elements/organisms/modal/modal.stories.tsx +189 -0
  1064. package/src/components/elements/organisms/modal/modal.tsx +266 -0
  1065. package/src/components/elements/organisms/popover/index.ts +7 -0
  1066. package/src/components/elements/organisms/popover/popover.stories.tsx +200 -0
  1067. package/src/components/elements/organisms/popover/popover.tsx +302 -0
  1068. package/src/components/elements/organisms/resizable/index.ts +7 -0
  1069. package/src/components/elements/organisms/resizable/resizable.stories.tsx +204 -0
  1070. package/src/components/elements/organisms/resizable/resizable.tsx +178 -0
  1071. package/src/components/elements/organisms/scroll-area/index.ts +7 -0
  1072. package/src/components/elements/organisms/scroll-area/scroll-area.stories.tsx +170 -0
  1073. package/src/components/elements/organisms/scroll-area/scroll-area.tsx +167 -0
  1074. package/src/components/elements/organisms/sheet/index.ts +7 -0
  1075. package/src/components/elements/organisms/sheet/sheet.stories.tsx +235 -0
  1076. package/src/components/elements/organisms/sheet/sheet.tsx +381 -0
  1077. package/src/components/elements/organisms/table/index.ts +7 -0
  1078. package/src/components/elements/organisms/table/table.stories.tsx +238 -0
  1079. package/src/components/elements/organisms/table/table.tsx +392 -0
  1080. package/src/components/elements/organisms/tooltip/index.ts +7 -0
  1081. package/src/components/elements/organisms/tooltip/tooltip.stories.tsx +205 -0
  1082. package/src/components/elements/organisms/tooltip/tooltip.tsx +547 -0
  1083. package/src/components/filter/filter-list/filter-list.stories.tsx +157 -0
  1084. package/src/components/filter/filter-list/filter-list.tsx +435 -0
  1085. package/src/components/filter/filter-list/index.ts +7 -0
  1086. package/src/components/filter/filter-select/filter-select.stories.tsx +124 -0
  1087. package/src/components/filter/filter-select/filter-select.tsx +558 -0
  1088. package/src/components/filter/filter-select/index.ts +7 -0
  1089. package/src/components/filter/index.ts +9 -0
  1090. package/src/components/filter/types.ts +70 -0
  1091. package/src/components/forms/checkbox/checkbox.stories.tsx +177 -0
  1092. package/src/components/forms/checkbox/checkbox.tsx +332 -0
  1093. package/src/components/forms/checkbox/index.ts +11 -0
  1094. package/src/components/forms/combobox/combobox.stories.tsx +224 -0
  1095. package/src/components/forms/combobox/combobox.tsx +679 -0
  1096. package/src/components/forms/combobox/index.ts +7 -0
  1097. package/src/components/forms/date-picker/calendar/calendar.stories.tsx +78 -0
  1098. package/src/components/forms/date-picker/calendar/calendar.tsx +271 -0
  1099. package/src/components/forms/date-picker/calendar/index.ts +7 -0
  1100. package/src/components/forms/date-picker/date-range-picker/date-range-picker.stories.tsx +108 -0
  1101. package/src/components/forms/date-picker/date-range-picker/date-range-picker.tsx +334 -0
  1102. package/src/components/forms/date-picker/date-range-picker/index.ts +7 -0
  1103. package/src/components/forms/date-picker/index.ts +10 -0
  1104. package/src/components/forms/date-picker/presets/index.ts +7 -0
  1105. package/src/components/forms/date-picker/presets/presets.stories.tsx +105 -0
  1106. package/src/components/forms/date-picker/presets/presets.tsx +196 -0
  1107. package/src/components/forms/date-picker/shared.ts +109 -0
  1108. package/src/components/forms/date-picker/trigger/index.ts +7 -0
  1109. package/src/components/forms/date-picker/trigger/trigger.stories.tsx +78 -0
  1110. package/src/components/forms/date-picker/trigger/trigger.tsx +195 -0
  1111. package/src/components/forms/date-picker/types.ts +63 -0
  1112. package/src/components/forms/file-upload/file-upload.stories.tsx +145 -0
  1113. package/src/components/forms/file-upload/file-upload.tsx +504 -0
  1114. package/src/components/forms/file-upload/index.ts +7 -0
  1115. package/src/components/forms/input/index.ts +7 -0
  1116. package/src/components/forms/input/input.stories.tsx +185 -0
  1117. package/src/components/forms/input/input.tsx +228 -0
  1118. package/src/components/forms/input-group/index.ts +11 -0
  1119. package/src/components/forms/input-group/input-group.stories.tsx +146 -0
  1120. package/src/components/forms/input-group/input-group.tsx +344 -0
  1121. package/src/components/forms/label/index.ts +7 -0
  1122. package/src/components/forms/label/label.stories.tsx +140 -0
  1123. package/src/components/forms/label/label.tsx +189 -0
  1124. package/src/components/forms/radio-group/index.ts +7 -0
  1125. package/src/components/forms/radio-group/radio-group.stories.tsx +233 -0
  1126. package/src/components/forms/radio-group/radio-group.tsx +476 -0
  1127. package/src/components/forms/select/index.ts +7 -0
  1128. package/src/components/forms/select/select.stories.tsx +274 -0
  1129. package/src/components/forms/select/select.tsx +654 -0
  1130. package/src/components/forms/switch/index.ts +11 -0
  1131. package/src/components/forms/switch/switch.stories.tsx +166 -0
  1132. package/src/components/forms/switch/switch.tsx +362 -0
  1133. package/src/components/forms/textarea/index.ts +7 -0
  1134. package/src/components/forms/textarea/textarea.stories.tsx +176 -0
  1135. package/src/components/forms/textarea/textarea.tsx +225 -0
  1136. package/src/components/layout/app-shell.tsx +363 -0
  1137. package/src/components/layout/app-sidebar/app-sidebar.stories.tsx +68 -0
  1138. package/src/components/layout/app-sidebar/app-sidebar.tsx +418 -0
  1139. package/src/components/layout/app-sidebar/index.ts +11 -0
  1140. package/src/components/layout/artifact-panel/artifact-panel-header.tsx +89 -0
  1141. package/src/components/layout/artifact-panel/expandable-panel.stories.tsx +484 -0
  1142. package/src/components/layout/artifact-panel/expandable-panel.tsx +289 -0
  1143. package/src/components/layout/artifact-panel/index.ts +23 -0
  1144. package/src/components/layout/artifact-panel/split-panel-layout.tsx +70 -0
  1145. package/src/components/layout/artifact-panel/types.ts +63 -0
  1146. package/src/components/layout/artifact-panel/use-artifact-panel-state.ts +101 -0
  1147. package/src/components/layout/content-sidebar/content-sidebar.stories.tsx +490 -0
  1148. package/src/components/layout/content-sidebar/content-sidebar.tsx +337 -0
  1149. package/src/components/layout/content-sidebar/index.ts +17 -0
  1150. package/src/components/layout/nav-app-switcher/index.ts +7 -0
  1151. package/src/components/layout/nav-app-switcher/nav-app-switcher.stories.tsx +138 -0
  1152. package/src/components/layout/nav-app-switcher/nav-app-switcher.tsx +282 -0
  1153. package/src/components/layout/nav-main/index.ts +11 -0
  1154. package/src/components/layout/nav-main/nav-main.stories.tsx +103 -0
  1155. package/src/components/layout/nav-main/nav-main.tsx +259 -0
  1156. package/src/components/layout/nav-projects/index.ts +11 -0
  1157. package/src/components/layout/nav-projects/nav-projects.stories.tsx +82 -0
  1158. package/src/components/layout/nav-projects/nav-projects.tsx +218 -0
  1159. package/src/components/layout/nav-secondary/index.ts +11 -0
  1160. package/src/components/layout/nav-secondary/nav-secondary.stories.tsx +81 -0
  1161. package/src/components/layout/nav-secondary/nav-secondary.tsx +145 -0
  1162. package/src/components/layout/nav-user/index.ts +11 -0
  1163. package/src/components/layout/nav-user/nav-user.stories.tsx +80 -0
  1164. package/src/components/layout/nav-user/nav-user.tsx +226 -0
  1165. package/src/components/layout/oneapp/auth-context.tsx +74 -0
  1166. package/src/components/layout/oneapp/ensure-anonymous-session.tsx +218 -0
  1167. package/src/components/layout/oneapp/index.ts +37 -0
  1168. package/src/components/layout/oneapp/microfrontend-layout.tsx +191 -0
  1169. package/src/components/layout/oneapp/types.ts +98 -0
  1170. package/src/components/layout/sidebar/index.ts +7 -0
  1171. package/src/components/layout/sidebar/sidebar.stories.tsx +170 -0
  1172. package/src/components/layout/sidebar/sidebar.tsx +945 -0
  1173. package/src/components/layout/sidebar-inset-header-portal/index.ts +8 -0
  1174. package/src/components/layout/sidebar-inset-header-portal/sidebar-inset-header-portal.stories.tsx +355 -0
  1175. package/src/components/layout/sidebar-inset-header-portal/sidebar-inset-header-portal.tsx +179 -0
  1176. package/src/components/layout/sidebar-slots/USAGE.md +163 -0
  1177. package/src/components/layout/sidebar-slots/__tests__/sidebar-slots.test.tsx +239 -0
  1178. package/src/components/layout/sidebar-slots/index.ts +9 -0
  1179. package/src/components/layout/sidebar-slots/sidebar-slots.stories.tsx +525 -0
  1180. package/src/components/layout/sidebar-slots/sidebar-slots.tsx +205 -0
  1181. package/src/components/layout/theme-provider/index.ts +11 -0
  1182. package/src/components/layout/theme-provider/theme-provider.stories.tsx +82 -0
  1183. package/src/components/layout/theme-provider/theme-provider.tsx +101 -0
  1184. package/src/components/overlays/confirm-dialog.stories.tsx +371 -0
  1185. package/src/components/overlays/confirm-dialog.tsx +201 -0
  1186. package/src/components/overlays/toast.stories.tsx +373 -0
  1187. package/src/components/overlays/toast.tsx +115 -0
  1188. package/src/constants/container.ts +183 -0
  1189. package/src/constants/index.ts +38 -0
  1190. package/src/constants/motion.ts +104 -0
  1191. package/src/fonts/Satoshi-Variable.woff2 +0 -0
  1192. package/src/fonts/Satoshi-VariableItalic.woff2 +0 -0
  1193. package/src/fonts/fonts.css +41 -0
  1194. package/src/fonts/index.ts +106 -0
  1195. package/src/hooks/.gitkeep +0 -0
  1196. package/src/hooks/ai-chat/context.tsx +294 -0
  1197. package/src/hooks/ai-chat/hooks.ts +297 -0
  1198. package/src/hooks/ai-chat/index.ts +35 -0
  1199. package/src/hooks/ai-chat/utils.ts +65 -0
  1200. package/src/hooks/index.ts +18 -0
  1201. package/src/hooks/use-mobile.ts +45 -0
  1202. package/src/hooks/use-responsive.ts +64 -0
  1203. package/src/hooks/use-scroll-progress.ts +101 -0
  1204. package/src/hooks/use-toast.ts +65 -0
  1205. package/src/index.ts +857 -0
  1206. package/src/lib/export-csv.ts +107 -0
  1207. package/src/lib/index.ts +10 -0
  1208. package/src/lib/resize-image.ts +109 -0
  1209. package/src/lib/stable-sort.ts +29 -0
  1210. package/src/lib/utils.ts +28 -0
  1211. package/src/react-19-compat.d.ts +28 -0
  1212. package/src/shared/auth/index.ts +8 -0
  1213. package/src/shared/auth/types/index.ts +163 -0
  1214. package/src/shared/auth/types.ts +196 -0
  1215. package/src/shared/auth/utils/dark-mode.ts +336 -0
  1216. package/src/shared/index.ts +5 -0
  1217. package/src/styles/_tokens.generated.scss +84 -0
  1218. package/src/styles/ai-elements.scss +9 -0
  1219. package/src/styles/base.scss +44 -0
  1220. package/src/styles/flows.scss +62 -0
  1221. package/src/styles/globals.css +627 -0
  1222. package/src/styles/index.scss +9 -0
  1223. package/src/styles/shadcn.scss +16 -0
  1224. package/src/styles/sources.css +16 -0
  1225. package/src/styles/theme.css +1687 -0
  1226. package/src/styles/theme.template.css +95 -0
  1227. package/src/tokens/accessibility.ts +494 -0
  1228. package/src/tokens/animations.ts +305 -0
  1229. package/src/tokens/aspect-ratio.ts +89 -0
  1230. package/src/tokens/blur.ts +82 -0
  1231. package/src/tokens/border-width.ts +86 -0
  1232. package/src/tokens/breakpoints.ts +150 -0
  1233. package/src/tokens/colors.ts +1199 -0
  1234. package/src/tokens/component.ts +362 -0
  1235. package/src/tokens/container.ts +42 -0
  1236. package/src/tokens/focus.ts +266 -0
  1237. package/src/tokens/form-states.ts +521 -0
  1238. package/src/tokens/grid.ts +258 -0
  1239. package/src/tokens/index.ts +1175 -0
  1240. package/src/tokens/interactions.ts +558 -0
  1241. package/src/tokens/mantine-types.ts +68 -0
  1242. package/src/tokens/opacity.ts +139 -0
  1243. package/src/tokens/palette.ts +854 -0
  1244. package/src/tokens/pseudo-elements.ts +508 -0
  1245. package/src/tokens/radius.ts +57 -0
  1246. package/src/tokens/shadows.ts +313 -0
  1247. package/src/tokens/spacing.ts +95 -0
  1248. package/src/tokens/states.ts +392 -0
  1249. package/src/tokens/structural.ts +589 -0
  1250. package/src/tokens/timing.ts +224 -0
  1251. package/src/tokens/typography.ts +242 -0
  1252. package/src/tokens/z-index.ts +184 -0
  1253. package/storybook/preview.tsx +201 -0
@@ -0,0 +1,297 @@
1
+ 'use client';
2
+ import { t as cn } from "./utils-D2bGp2p_.mjs";
3
+ import { t as Button } from "./button-DVOrrZLw.mjs";
4
+ import { a as Card } from "./integrations-lBG309ZD.mjs";
5
+ import * as React$1 from "react";
6
+ import { memo, useCallback, useMemo } from "react";
7
+ import { useReducedMotion } from "@mantine/hooks";
8
+ import { AlertCircle, AlertTriangle, Home, RefreshCw } from "lucide-react";
9
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
+
11
+ //#region src/components/elements/organisms/error-boundary/error-boundary.tsx
12
+ /**
13
+ * @fileoverview ErrorBoundary Component - Premium Harmony V2
14
+ *
15
+ * React error boundary component with customizable fallback UI and error handling.
16
+ * Catches rendering errors and displays graceful fallback UIs with Premium Harmony V2 design.
17
+ *
18
+ * Features:
19
+ * - ES2023 syntax with modern patterns
20
+ * - Premium Harmony V2 design system with spring animations
21
+ * - Tailwind v4 CSS-first theming with CSS variables
22
+ * - Super light/dark mode with seamless switching
23
+ * - Two variants: page (full-page) and card (compact inline)
24
+ * - Custom fallback component support
25
+ * - Error callback for logging/monitoring
26
+ * - Context string for error messages
27
+ * - Development-only error stack display
28
+ * - HOC wrapper (withErrorBoundary)
29
+ * - Memoized fallback components
30
+ * - Reduced motion support for accessibility
31
+ * - Data attributes for testing and state tracking
32
+ *
33
+ * @module @od-oneapp/uni-ui/components/error-boundary
34
+ * @component ErrorBoundary, CardErrorFallback, withErrorBoundary
35
+ *
36
+ * @useCases
37
+ * - Wrapping entire page layouts to catch and recover from critical errors
38
+ * - Protecting individual widgets/cards from crashing the entire application
39
+ * - Providing graceful error experiences in dashboard and analytics views
40
+ * - Isolating third-party components that may throw errors
41
+ * - Creating resilient artifact viewers and content displays
42
+ * - Building developer-friendly error displays with stack traces in development
43
+ * - Implementing error boundaries in microfrontend architectures
44
+ * - Protecting form sections from isolated validation errors
45
+ *
46
+ * @variants
47
+ * - variant: page (default), card
48
+ *
49
+ * @example <ErrorBoundary context="dashboard" onError={logError}><Dashboard /></ErrorBoundary>
50
+ * @example <ErrorBoundary variant="card" context="widget"><Widget /></ErrorBoundary>
51
+ * @example const SafeComponent = withErrorBoundary(MyComponent, null, 'my-component');
52
+ */
53
+ const ERROR_BOUNDARY_CONTAINER_CLASSNAME = "bg-background flex min-h-screen w-full items-center justify-center p-6";
54
+ const ERROR_BOUNDARY_CARD_CLASSNAME = "w-full max-w-2xl space-y-6 p-8";
55
+ const ERROR_BOUNDARY_HEADER_CLASSNAME = "text-destructive flex items-center gap-3";
56
+ const ERROR_BOUNDARY_TITLE_CLASSNAME = "text-2xl font-semibold";
57
+ const ERROR_BOUNDARY_MESSAGE_CLASSNAME = "text-muted-foreground";
58
+ const ERROR_BOUNDARY_DETAILS_CLASSNAME = "mt-4";
59
+ const ERROR_BOUNDARY_SUMMARY_CLASSNAME = "text-muted-foreground hover:text-foreground cursor-pointer text-sm font-medium";
60
+ const ERROR_BOUNDARY_PRE_CLASSNAME = "bg-muted mt-2 overflow-auto rounded-md p-4 text-xs";
61
+ const ERROR_BOUNDARY_ACTIONS_CLASSNAME = "flex flex-wrap gap-3";
62
+ const ERROR_BOUNDARY_MESSAGE_CONTAINER_CLASSNAME = "space-y-2";
63
+ const ERROR_BOUNDARY_ICON_CLASSNAME = "h-8 w-8";
64
+ const ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME = "mr-2 h-4 w-4";
65
+ const ERROR_BOUNDARY_ANIMATION_CLASSNAME = "animate-in fade-in-0 zoom-in-95 duration-500 [animation-timing-function:cubic-bezier(0.34,1.56,0.64,1)]";
66
+ const ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME = "animate-in fade-in-0 duration-200";
67
+ const ERROR_TITLE = "Something went wrong";
68
+ const ERROR_DETAILS_SUMMARY = "Error Details (Development Only)";
69
+ const TRY_AGAIN_LABEL = "Try Again";
70
+ const RELOAD_PAGE_LABEL = "Reload Page";
71
+ const RELOAD_ARTIFACT_LABEL = "Reload Artifact";
72
+ const ERROR_MESSAGE_PREFIX = "An unexpected error occurred";
73
+ const ERROR_MESSAGE_SUFFIX = "If this persists, please refresh or report it.";
74
+ const ERROR_CONTEXT_PREFIX = "while using the";
75
+ const ERROR_CONTEXT_DEFAULT = "in this component";
76
+ const CARD_ERROR_MESSAGE = "The content encountered an error. Your data is safe and you can try again.";
77
+ /**
78
+ * Error boundary component with default fallback UI.
79
+ *
80
+ * Catches React errors in child components and displays a fallback UI.
81
+ * Supports custom fallback components, error callbacks, and two variants.
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * // Full-page error (default)
86
+ * <ErrorBoundary context="dashboard" onError={(error) => logError(error)}>
87
+ * <Dashboard />
88
+ * </ErrorBoundary>
89
+ * ```
90
+ *
91
+ * @example
92
+ * ```tsx
93
+ * // Compact card error for inline components
94
+ * <ErrorBoundary variant="card" context="artifact">
95
+ * <ArtifactViewer />
96
+ * </ErrorBoundary>
97
+ * ```
98
+ *
99
+ * @example
100
+ * ```tsx
101
+ * <ErrorBoundary fallback={CustomErrorFallback}>
102
+ * <App />
103
+ * </ErrorBoundary>
104
+ * ```
105
+ */
106
+ var ErrorBoundary = class extends React$1.Component {
107
+ constructor(props) {
108
+ super(props);
109
+ this.state = {
110
+ hasError: false,
111
+ error: null
112
+ };
113
+ }
114
+ static getDerivedStateFromError(error) {
115
+ return {
116
+ hasError: true,
117
+ error
118
+ };
119
+ }
120
+ componentDidCatch(error, errorInfo) {
121
+ this.props.onError?.(error, errorInfo);
122
+ }
123
+ resetError = () => {
124
+ this.setState({
125
+ hasError: false,
126
+ error: null
127
+ });
128
+ };
129
+ render() {
130
+ if (this.state.hasError && this.state.error) {
131
+ if (this.props.fallback) {
132
+ const Fallback = this.props.fallback;
133
+ return /* @__PURE__ */ jsx(Fallback, {
134
+ error: this.state.error,
135
+ resetError: this.resetError
136
+ });
137
+ }
138
+ if (this.props.variant === "card") return /* @__PURE__ */ jsx(CardErrorFallback, {
139
+ context: this.props.context,
140
+ error: this.state.error,
141
+ resetError: this.resetError,
142
+ minHeight: this.props.minHeight
143
+ });
144
+ return /* @__PURE__ */ jsx(DefaultErrorFallback, {
145
+ context: this.props.context,
146
+ error: this.state.error,
147
+ resetError: this.resetError
148
+ });
149
+ }
150
+ return this.props.children;
151
+ }
152
+ };
153
+ /**
154
+ * Compact card-style error fallback for inline components.
155
+ * Shows a red-bordered card with error icon, message, and action buttons.
156
+ * Premium Harmony V2: Spring animations with reduced motion support.
157
+ */
158
+ const CardErrorFallback = memo(function CardErrorFallback({ error, resetError, context, minHeight = "min-h-[400px]" }) {
159
+ const reducedMotion = useReducedMotion();
160
+ const errorMessage = error.message || "An unexpected error occurred";
161
+ const title = context ? `${context.charAt(0).toUpperCase()}${context.slice(1)} Error` : "Error";
162
+ const handleReload = useCallback(() => {
163
+ if (typeof window !== "undefined") window.location.reload();
164
+ }, []);
165
+ return /* @__PURE__ */ jsxs("div", {
166
+ "data-error-state": "visible",
167
+ "data-error-variant": "card",
168
+ className: cn("border-destructive/50 bg-destructive/5 flex flex-col items-center justify-center gap-4 rounded-lg border p-8", minHeight, reducedMotion ? ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME : ERROR_BOUNDARY_ANIMATION_CLASSNAME),
169
+ children: [
170
+ /* @__PURE__ */ jsx(AlertCircle, {
171
+ className: "text-destructive size-12",
172
+ "aria-hidden": "true"
173
+ }),
174
+ /* @__PURE__ */ jsxs("div", {
175
+ className: "text-center",
176
+ children: [
177
+ /* @__PURE__ */ jsx("h3", {
178
+ className: "text-lg font-semibold",
179
+ children: title
180
+ }),
181
+ /* @__PURE__ */ jsx("p", {
182
+ className: "text-muted-foreground mt-2 text-sm",
183
+ children: CARD_ERROR_MESSAGE
184
+ }),
185
+ errorMessage ? /* @__PURE__ */ jsx("p", {
186
+ className: "text-muted-foreground mt-1 font-mono text-xs",
187
+ children: errorMessage
188
+ }) : null
189
+ ]
190
+ }),
191
+ /* @__PURE__ */ jsxs("div", {
192
+ className: "flex gap-2",
193
+ children: [/* @__PURE__ */ jsx(Button, {
194
+ onClick: resetError,
195
+ variant: "outline",
196
+ size: "sm",
197
+ children: RELOAD_ARTIFACT_LABEL
198
+ }), /* @__PURE__ */ jsx(Button, {
199
+ onClick: handleReload,
200
+ variant: "ghost",
201
+ size: "sm",
202
+ children: RELOAD_PAGE_LABEL
203
+ })]
204
+ })
205
+ ]
206
+ });
207
+ });
208
+ const DefaultErrorFallback = memo(function DefaultErrorFallback({ error, resetError, context }) {
209
+ const reducedMotion = useReducedMotion();
210
+ const contextMessage = useMemo(() => context ? `${ERROR_CONTEXT_PREFIX} ${context}` : ERROR_CONTEXT_DEFAULT, [context]);
211
+ const errorMessage = useMemo(() => `${ERROR_MESSAGE_PREFIX} ${contextMessage}. ${ERROR_MESSAGE_SUFFIX}`, [contextMessage]);
212
+ const errorDetails = useMemo(() => {
213
+ return /* @__PURE__ */ jsxs("details", {
214
+ className: ERROR_BOUNDARY_DETAILS_CLASSNAME,
215
+ children: [/* @__PURE__ */ jsx("summary", {
216
+ className: ERROR_BOUNDARY_SUMMARY_CLASSNAME,
217
+ children: ERROR_DETAILS_SUMMARY
218
+ }), /* @__PURE__ */ jsxs("pre", {
219
+ className: ERROR_BOUNDARY_PRE_CLASSNAME,
220
+ children: [/* @__PURE__ */ jsx("code", { children: error.message }), error.stack ? /* @__PURE__ */ jsxs(Fragment$1, { children: ["\n\n", /* @__PURE__ */ jsx("code", { children: error.stack })] }) : null]
221
+ })]
222
+ });
223
+ }, [error.message, error.stack]);
224
+ const handleReload = useCallback(() => {
225
+ if (typeof window !== "undefined") window.location.reload();
226
+ }, []);
227
+ return /* @__PURE__ */ jsx("div", {
228
+ className: ERROR_BOUNDARY_CONTAINER_CLASSNAME,
229
+ "data-error-state": "visible",
230
+ children: /* @__PURE__ */ jsxs(Card, {
231
+ className: cn(ERROR_BOUNDARY_CARD_CLASSNAME, reducedMotion ? ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME : ERROR_BOUNDARY_ANIMATION_CLASSNAME),
232
+ "data-error-variant": "page",
233
+ children: [
234
+ /* @__PURE__ */ jsxs("div", {
235
+ className: ERROR_BOUNDARY_HEADER_CLASSNAME,
236
+ children: [/* @__PURE__ */ jsx(AlertTriangle, {
237
+ className: ERROR_BOUNDARY_ICON_CLASSNAME,
238
+ "aria-hidden": "true"
239
+ }), /* @__PURE__ */ jsx("h1", {
240
+ className: ERROR_BOUNDARY_TITLE_CLASSNAME,
241
+ children: ERROR_TITLE
242
+ })]
243
+ }),
244
+ /* @__PURE__ */ jsxs("div", {
245
+ className: ERROR_BOUNDARY_MESSAGE_CONTAINER_CLASSNAME,
246
+ children: [/* @__PURE__ */ jsx("p", {
247
+ className: ERROR_BOUNDARY_MESSAGE_CLASSNAME,
248
+ children: errorMessage
249
+ }), errorDetails]
250
+ }),
251
+ /* @__PURE__ */ jsxs("div", {
252
+ className: ERROR_BOUNDARY_ACTIONS_CLASSNAME,
253
+ children: [/* @__PURE__ */ jsxs(Button, {
254
+ onClick: resetError,
255
+ variant: "default",
256
+ type: "button",
257
+ children: [/* @__PURE__ */ jsx(RefreshCw, { className: ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME }), TRY_AGAIN_LABEL]
258
+ }), /* @__PURE__ */ jsxs(Button, {
259
+ onClick: handleReload,
260
+ variant: "outline",
261
+ type: "button",
262
+ children: [/* @__PURE__ */ jsx(Home, { className: ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME }), RELOAD_PAGE_LABEL]
263
+ })]
264
+ })
265
+ ]
266
+ })
267
+ });
268
+ });
269
+ /**
270
+ * Higher-order component that wraps a component with an error boundary.
271
+ *
272
+ * @template P - Component props type
273
+ * @param {React.ComponentType<P>} Component - Component to wrap
274
+ * @param {React.ComponentType<ErrorBoundaryFallbackProps>} [fallback] - Optional custom fallback component
275
+ * @param {string} [context] - Optional context string for error messages
276
+ * @param {(error: Error, info: React.ErrorInfo) => void} [onError] - Optional error handler
277
+ * @returns {React.ComponentType<P>} Component wrapped with error boundary
278
+ *
279
+ * @example
280
+ * ```tsx
281
+ * const SafeComponent = withErrorBoundary(MyComponent, CustomFallback, 'dashboard');
282
+ * ```
283
+ */
284
+ function withErrorBoundary(Component, fallback, context, onError) {
285
+ return function WithErrorBoundaryComponent(props) {
286
+ return /* @__PURE__ */ jsx(ErrorBoundary, {
287
+ fallback,
288
+ context,
289
+ onError,
290
+ children: /* @__PURE__ */ jsx(Component, { ...props })
291
+ });
292
+ };
293
+ }
294
+
295
+ //#endregion
296
+ export { ErrorBoundary as n, withErrorBoundary as r, CardErrorFallback as t };
297
+ //# sourceMappingURL=error-boundary-Ggc5btkU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-boundary-Ggc5btkU.mjs","names":["React"],"sources":["../src/components/elements/organisms/error-boundary/error-boundary.tsx"],"sourcesContent":["/**\n * @fileoverview ErrorBoundary Component - Premium Harmony V2\n *\n * React error boundary component with customizable fallback UI and error handling.\n * Catches rendering errors and displays graceful fallback UIs with Premium Harmony V2 design.\n *\n * Features:\n * - ES2023 syntax with modern patterns\n * - Premium Harmony V2 design system with spring animations\n * - Tailwind v4 CSS-first theming with CSS variables\n * - Super light/dark mode with seamless switching\n * - Two variants: page (full-page) and card (compact inline)\n * - Custom fallback component support\n * - Error callback for logging/monitoring\n * - Context string for error messages\n * - Development-only error stack display\n * - HOC wrapper (withErrorBoundary)\n * - Memoized fallback components\n * - Reduced motion support for accessibility\n * - Data attributes for testing and state tracking\n *\n * @module @od-oneapp/uni-ui/components/error-boundary\n * @component ErrorBoundary, CardErrorFallback, withErrorBoundary\n *\n * @useCases\n * - Wrapping entire page layouts to catch and recover from critical errors\n * - Protecting individual widgets/cards from crashing the entire application\n * - Providing graceful error experiences in dashboard and analytics views\n * - Isolating third-party components that may throw errors\n * - Creating resilient artifact viewers and content displays\n * - Building developer-friendly error displays with stack traces in development\n * - Implementing error boundaries in microfrontend architectures\n * - Protecting form sections from isolated validation errors\n *\n * @variants\n * - variant: page (default), card\n *\n * @example <ErrorBoundary context=\"dashboard\" onError={logError}><Dashboard /></ErrorBoundary>\n * @example <ErrorBoundary variant=\"card\" context=\"widget\"><Widget /></ErrorBoundary>\n * @example const SafeComponent = withErrorBoundary(MyComponent, null, 'my-component');\n */\n\n'use client';\n\nimport * as React from 'react';\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { useReducedMotion } from '@mantine/hooks';\nimport { AlertCircle, AlertTriangle, Home, RefreshCw } from 'lucide-react';\n\nimport { cn } from '../../../../lib/utils';\nimport { Button } from '../../atoms/button';\nimport { Card } from '../card';\n\n// =============================================================================\n// Static classNames for page variant (Premium Harmony V2)\n// =============================================================================\nconst ERROR_BOUNDARY_CONTAINER_CLASSNAME =\n 'bg-background flex min-h-screen w-full items-center justify-center p-6';\nconst ERROR_BOUNDARY_CARD_CLASSNAME = 'w-full max-w-2xl space-y-6 p-8';\nconst ERROR_BOUNDARY_HEADER_CLASSNAME = 'text-destructive flex items-center gap-3';\nconst ERROR_BOUNDARY_TITLE_CLASSNAME = 'text-2xl font-semibold';\nconst ERROR_BOUNDARY_MESSAGE_CLASSNAME = 'text-muted-foreground';\nconst ERROR_BOUNDARY_DETAILS_CLASSNAME = 'mt-4';\nconst ERROR_BOUNDARY_SUMMARY_CLASSNAME =\n 'text-muted-foreground hover:text-foreground cursor-pointer text-sm font-medium';\nconst ERROR_BOUNDARY_PRE_CLASSNAME = 'bg-muted mt-2 overflow-auto rounded-md p-4 text-xs';\nconst ERROR_BOUNDARY_ACTIONS_CLASSNAME = 'flex flex-wrap gap-3';\nconst ERROR_BOUNDARY_MESSAGE_CONTAINER_CLASSNAME = 'space-y-2';\nconst ERROR_BOUNDARY_ICON_CLASSNAME = 'h-8 w-8';\nconst ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME = 'mr-2 h-4 w-4';\n\n// Premium Harmony V2: Spring animation classes\n// Uses cubic-bezier for spring-like physics (0.34, 1.56, 0.64, 1) - gentle bounce\nconst ERROR_BOUNDARY_ANIMATION_CLASSNAME =\n 'animate-in fade-in-0 zoom-in-95 duration-500 [animation-timing-function:cubic-bezier(0.34,1.56,0.64,1)]';\nconst ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME = 'animate-in fade-in-0 duration-200';\n\n// =============================================================================\n// Static strings\n// =============================================================================\nconst ERROR_TITLE = 'Something went wrong';\nconst ERROR_DETAILS_SUMMARY = 'Error Details (Development Only)';\nconst TRY_AGAIN_LABEL = 'Try Again';\nconst RELOAD_PAGE_LABEL = 'Reload Page';\nconst RELOAD_ARTIFACT_LABEL = 'Reload Artifact';\nconst ERROR_MESSAGE_PREFIX = 'An unexpected error occurred';\nconst ERROR_MESSAGE_SUFFIX = 'If this persists, please refresh or report it.';\nconst ERROR_CONTEXT_PREFIX = 'while using the';\nconst ERROR_CONTEXT_DEFAULT = 'in this component';\nconst CARD_ERROR_MESSAGE =\n 'The content encountered an error. Your data is safe and you can try again.';\n\n// Static values - moved outside components to prevent recreation\nconst IS_DEVELOPMENT = process.env.NODE_ENV === 'development';\n\n/** Error boundary variant type */\nexport type ErrorBoundaryVariant = 'page' | 'card';\n\n/**\n * Error boundary component props.\n */\nexport interface ErrorBoundaryProps {\n /** Child components to wrap */\n children: React.ReactNode;\n /** Custom fallback component to render on error */\n fallback?: React.ComponentType<ErrorBoundaryFallbackProps>;\n /** Context string for error messages (e.g., \"dashboard\", \"artifact\") */\n context?: string;\n /** Error handler callback */\n onError?: (error: Error, info: React.ErrorInfo) => void;\n /** Variant: 'page' for full-page errors, 'card' for inline compact errors */\n variant?: ErrorBoundaryVariant;\n /** Minimum height for the card variant container */\n minHeight?: string;\n}\n\n/**\n * Error boundary fallback component props.\n */\nexport interface ErrorBoundaryFallbackProps {\n /** The error that occurred */\n error: Error;\n /** Function to reset the error boundary */\n resetError: () => void;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * Error boundary component with default fallback UI.\n *\n * Catches React errors in child components and displays a fallback UI.\n * Supports custom fallback components, error callbacks, and two variants.\n *\n * @example\n * ```tsx\n * // Full-page error (default)\n * <ErrorBoundary context=\"dashboard\" onError={(error) => logError(error)}>\n * <Dashboard />\n * </ErrorBoundary>\n * ```\n *\n * @example\n * ```tsx\n * // Compact card error for inline components\n * <ErrorBoundary variant=\"card\" context=\"artifact\">\n * <ArtifactViewer />\n * </ErrorBoundary>\n * ```\n *\n * @example\n * ```tsx\n * <ErrorBoundary fallback={CustomErrorFallback}>\n * <App />\n * </ErrorBoundary>\n * ```\n */\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this.props.onError?.(error, errorInfo);\n }\n\n resetError = () => {\n this.setState({\n hasError: false,\n error: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error) {\n if (this.props.fallback) {\n const Fallback = this.props.fallback;\n return <Fallback error={this.state.error} resetError={this.resetError} />;\n }\n\n // Use card variant for compact inline errors\n if (this.props.variant === 'card') {\n return (\n <CardErrorFallback\n context={this.props.context}\n error={this.state.error}\n resetError={this.resetError}\n minHeight={this.props.minHeight}\n />\n );\n }\n\n return (\n <DefaultErrorFallback\n context={this.props.context}\n error={this.state.error}\n resetError={this.resetError}\n />\n );\n }\n\n return this.props.children;\n }\n}\n\n// =============================================================================\n// Card Error Fallback - Compact inline error display\n// =============================================================================\n\ninterface CardErrorFallbackProps extends ErrorBoundaryFallbackProps {\n context?: string;\n minHeight?: string;\n}\n\n/**\n * Compact card-style error fallback for inline components.\n * Shows a red-bordered card with error icon, message, and action buttons.\n * Premium Harmony V2: Spring animations with reduced motion support.\n */\nexport const CardErrorFallback = memo(function CardErrorFallback({\n error,\n resetError,\n context,\n minHeight = 'min-h-[400px]',\n}: CardErrorFallbackProps) {\n // Premium Harmony V2: Check reduced motion preference\n const reducedMotion = useReducedMotion();\n\n const errorMessage = error.message || 'An unexpected error occurred';\n\n // Format context for display (e.g., \"dashboard\" -> \"Dashboard Error\")\n const title = context ? `${context.charAt(0).toUpperCase()}${context.slice(1)} Error` : 'Error';\n\n const handleReload = useCallback(() => {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n }, []);\n\n return (\n <div\n data-error-state=\"visible\"\n data-error-variant=\"card\"\n className={cn(\n 'border-destructive/50 bg-destructive/5 flex flex-col items-center justify-center gap-4 rounded-lg border p-8',\n minHeight,\n // Premium Harmony V2: Spring animation with reduced motion support\n reducedMotion\n ? ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME\n : ERROR_BOUNDARY_ANIMATION_CLASSNAME,\n )}\n >\n <AlertCircle className=\"text-destructive size-12\" aria-hidden=\"true\" />\n <div className=\"text-center\">\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n <p className=\"text-muted-foreground mt-2 text-sm\">{CARD_ERROR_MESSAGE}</p>\n {errorMessage ? (\n <p className=\"text-muted-foreground mt-1 font-mono text-xs\">{errorMessage}</p>\n ) : null}\n </div>\n <div className=\"flex gap-2\">\n <Button onClick={resetError} variant=\"outline\" size=\"sm\">\n {RELOAD_ARTIFACT_LABEL}\n </Button>\n <Button onClick={handleReload} variant=\"ghost\" size=\"sm\">\n {RELOAD_PAGE_LABEL}\n </Button>\n </div>\n </div>\n );\n});\n\n// =============================================================================\n// Default Error Fallback - Full-page error display\n// =============================================================================\n\ninterface DefaultErrorFallbackProps extends ErrorBoundaryFallbackProps {\n context?: string;\n}\n\nconst DefaultErrorFallback = memo(function DefaultErrorFallback({\n error,\n resetError,\n context,\n}: DefaultErrorFallbackProps) {\n // Premium Harmony V2: Check reduced motion preference\n const reducedMotion = useReducedMotion();\n\n // Memoize context message to prevent unnecessary re-computation\n const contextMessage = useMemo(\n () => (context ? `${ERROR_CONTEXT_PREFIX} ${context}` : ERROR_CONTEXT_DEFAULT),\n [context],\n );\n\n // Memoize full error message to prevent unnecessary re-computation\n const errorMessage = useMemo(\n () => `${ERROR_MESSAGE_PREFIX} ${contextMessage}. ${ERROR_MESSAGE_SUFFIX}`,\n [contextMessage],\n );\n\n // Memoize error details to prevent unnecessary re-computation\n const errorDetails = useMemo(() => {\n if (!IS_DEVELOPMENT) return null;\n\n return (\n <details className={ERROR_BOUNDARY_DETAILS_CLASSNAME}>\n <summary className={ERROR_BOUNDARY_SUMMARY_CLASSNAME}>{ERROR_DETAILS_SUMMARY}</summary>\n <pre className={ERROR_BOUNDARY_PRE_CLASSNAME}>\n <code>{error.message}</code>\n {error.stack ? (\n <>\n {'\\n\\n'}\n <code>{error.stack}</code>\n </>\n ) : null}\n </pre>\n </details>\n );\n }, [error.message, error.stack]);\n\n // Memoize reload handler to prevent unnecessary re-renders\n const handleReload = useCallback(() => {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n }, []);\n\n return (\n <div className={ERROR_BOUNDARY_CONTAINER_CLASSNAME} data-error-state=\"visible\">\n <Card\n className={cn(\n ERROR_BOUNDARY_CARD_CLASSNAME,\n // Premium Harmony V2: Spring animation with reduced motion support\n reducedMotion\n ? ERROR_BOUNDARY_ANIMATION_REDUCED_CLASSNAME\n : ERROR_BOUNDARY_ANIMATION_CLASSNAME,\n )}\n data-error-variant=\"page\"\n >\n <div className={ERROR_BOUNDARY_HEADER_CLASSNAME}>\n <AlertTriangle className={ERROR_BOUNDARY_ICON_CLASSNAME} aria-hidden=\"true\" />\n <h1 className={ERROR_BOUNDARY_TITLE_CLASSNAME}>{ERROR_TITLE}</h1>\n </div>\n\n <div className={ERROR_BOUNDARY_MESSAGE_CONTAINER_CLASSNAME}>\n <p className={ERROR_BOUNDARY_MESSAGE_CLASSNAME}>{errorMessage}</p>\n {errorDetails}\n </div>\n\n <div className={ERROR_BOUNDARY_ACTIONS_CLASSNAME}>\n <Button onClick={resetError} variant=\"default\" type=\"button\">\n <RefreshCw className={ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME} />\n {TRY_AGAIN_LABEL}\n </Button>\n <Button onClick={handleReload} variant=\"outline\" type=\"button\">\n <Home className={ERROR_BOUNDARY_BUTTON_ICON_CLASSNAME} />\n {RELOAD_PAGE_LABEL}\n </Button>\n </div>\n </Card>\n </div>\n );\n});\n\n/**\n * Higher-order component that wraps a component with an error boundary.\n *\n * @template P - Component props type\n * @param {React.ComponentType<P>} Component - Component to wrap\n * @param {React.ComponentType<ErrorBoundaryFallbackProps>} [fallback] - Optional custom fallback component\n * @param {string} [context] - Optional context string for error messages\n * @param {(error: Error, info: React.ErrorInfo) => void} [onError] - Optional error handler\n * @returns {React.ComponentType<P>} Component wrapped with error boundary\n *\n * @example\n * ```tsx\n * const SafeComponent = withErrorBoundary(MyComponent, CustomFallback, 'dashboard');\n * ```\n */\nexport function withErrorBoundary<P extends object>(\n Component: React.ComponentType<P>,\n fallback?: React.ComponentType<ErrorBoundaryFallbackProps>,\n context?: string,\n onError?: (error: Error, info: React.ErrorInfo) => void,\n) {\n return function WithErrorBoundaryComponent(props: P) {\n return (\n <ErrorBoundary fallback={fallback} context={context} onError={onError}>\n <Component {...props} />\n </ErrorBoundary>\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAM,qCACJ;AACF,MAAM,gCAAgC;AACtC,MAAM,kCAAkC;AACxC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC,MAAM,mCACJ;AACF,MAAM,+BAA+B;AACrC,MAAM,mCAAmC;AACzC,MAAM,6CAA6C;AACnD,MAAM,gCAAgC;AACtC,MAAM,uCAAuC;AAI7C,MAAM,qCACJ;AACF,MAAM,6CAA6C;AAKnD,MAAM,cAAc;AACpB,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB;AAC7B,MAAM,wBAAwB;AAC9B,MAAM,qBACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEF,IAAa,gBAAb,cAAmCA,QAAM,UAAkD;CACzF,YAAY,OAA2B;AACrC,QAAM,MAAM;AACZ,OAAK,QAAQ;GACX,UAAU;GACV,OAAO;GACR;;CAGH,OAAO,yBAAyB,OAAkC;AAChE,SAAO;GACL,UAAU;GACV;GACD;;CAGH,kBAAkB,OAAc,WAA4B;AAC1D,OAAK,MAAM,UAAU,OAAO,UAAU;;CAGxC,mBAAmB;AACjB,OAAK,SAAS;GACZ,UAAU;GACV,OAAO;GACR,CAAC;;CAGJ,SAAS;AACP,MAAI,KAAK,MAAM,YAAY,KAAK,MAAM,OAAO;AAC3C,OAAI,KAAK,MAAM,UAAU;IACvB,MAAM,WAAW,KAAK,MAAM;AAC5B,WAAO,oBAAC;KAAS,OAAO,KAAK,MAAM;KAAO,YAAY,KAAK;MAAc;;AAI3E,OAAI,KAAK,MAAM,YAAY,OACzB,QACE,oBAAC;IACC,SAAS,KAAK,MAAM;IACpB,OAAO,KAAK,MAAM;IAClB,YAAY,KAAK;IACjB,WAAW,KAAK,MAAM;KACtB;AAIN,UACE,oBAAC;IACC,SAAS,KAAK,MAAM;IACpB,OAAO,KAAK,MAAM;IAClB,YAAY,KAAK;KACjB;;AAIN,SAAO,KAAK,MAAM;;;;;;;;AAkBtB,MAAa,oBAAoB,KAAK,SAAS,kBAAkB,EAC/D,OACA,YACA,SACA,YAAY,mBACa;CAEzB,MAAM,gBAAgB,kBAAkB;CAExC,MAAM,eAAe,MAAM,WAAW;CAGtC,MAAM,QAAQ,UAAU,GAAG,QAAQ,OAAO,EAAE,CAAC,aAAa,GAAG,QAAQ,MAAM,EAAE,CAAC,UAAU;CAExF,MAAM,eAAe,kBAAkB;AACrC,MAAI,OAAO,WAAW,YACpB,QAAO,SAAS,QAAQ;IAEzB,EAAE,CAAC;AAEN,QACE,qBAAC;EACC,oBAAiB;EACjB,sBAAmB;EACnB,WAAW,GACT,gHACA,WAEA,gBACI,6CACA,mCACL;;GAED,oBAAC;IAAY,WAAU;IAA2B,eAAY;KAAS;GACvE,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAyB;OAAW;KAClD,oBAAC;MAAE,WAAU;gBAAsC;OAAuB;KACzE,eACC,oBAAC;MAAE,WAAU;gBAAgD;OAAiB,GAC5E;;KACA;GACN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAO,SAAS;KAAY,SAAQ;KAAU,MAAK;eACjD;MACM,EACT,oBAAC;KAAO,SAAS;KAAc,SAAQ;KAAQ,MAAK;eACjD;MACM;KACL;;GACF;EAER;AAUF,MAAM,uBAAuB,KAAK,SAAS,qBAAqB,EAC9D,OACA,YACA,WAC4B;CAE5B,MAAM,gBAAgB,kBAAkB;CAGxC,MAAM,iBAAiB,cACd,UAAU,GAAG,qBAAqB,GAAG,YAAY,uBACxD,CAAC,QAAQ,CACV;CAGD,MAAM,eAAe,cACb,GAAG,qBAAqB,GAAG,eAAe,IAAI,wBACpD,CAAC,eAAe,CACjB;CAGD,MAAM,eAAe,cAAc;AAGjC,SACE,qBAAC;GAAQ,WAAW;cAClB,oBAAC;IAAQ,WAAW;cAAmC;KAAgC,EACvF,qBAAC;IAAI,WAAW;eACd,oBAAC,oBAAM,MAAM,UAAe,EAC3B,MAAM,QACL,8CACG,QACD,oBAAC,oBAAM,MAAM,QAAa,IACzB,GACD;KACA;IACE;IAEX,CAAC,MAAM,SAAS,MAAM,MAAM,CAAC;CAGhC,MAAM,eAAe,kBAAkB;AACrC,MAAI,OAAO,WAAW,YACpB,QAAO,SAAS,QAAQ;IAEzB,EAAE,CAAC;AAEN,QACE,oBAAC;EAAI,WAAW;EAAoC,oBAAiB;YACnE,qBAAC;GACC,WAAW,GACT,+BAEA,gBACI,6CACA,mCACL;GACD,sBAAmB;;IAEnB,qBAAC;KAAI,WAAW;gBACd,oBAAC;MAAc,WAAW;MAA+B,eAAY;OAAS,EAC9E,oBAAC;MAAG,WAAW;gBAAiC;OAAiB;MAC7D;IAEN,qBAAC;KAAI,WAAW;gBACd,oBAAC;MAAE,WAAW;gBAAmC;OAAiB,EACjE;MACG;IAEN,qBAAC;KAAI,WAAW;gBACd,qBAAC;MAAO,SAAS;MAAY,SAAQ;MAAU,MAAK;iBAClD,oBAAC,aAAU,WAAW,uCAAwC,EAC7D;OACM,EACT,qBAAC;MAAO,SAAS;MAAc,SAAQ;MAAU,MAAK;iBACpD,oBAAC,QAAK,WAAW,uCAAwC,EACxD;OACM;MACL;;IACD;GACH;EAER;;;;;;;;;;;;;;;;AAiBF,SAAgB,kBACd,WACA,UACA,SACA,SACA;AACA,QAAO,SAAS,2BAA2B,OAAU;AACnD,SACE,oBAAC;GAAwB;GAAmB;GAAkB;aAC5D,oBAAC,aAAU,GAAI,QAAS;IACV"}
@@ -0,0 +1,27 @@
1
+
2
+ import { i as FilterOption, n as Filter, t as ActiveFilter } from "./types-B8z57DW2.mjs";
3
+ import { ComponentPropsWithoutRef, ComponentType } from "react";
4
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/filter/filter-list/filter-list.d.ts
7
+ interface FilterListProps {
8
+ filters: Filter[];
9
+ activeFilters?: ActiveFilter[];
10
+ onRemove: (key: string, value: FilterOption['value']) => void;
11
+ onRemoveAll: () => void;
12
+ onSelect?: (key: string, value: FilterOption['value']) => void;
13
+ className?: string;
14
+ LinkComponent?: ComponentType<ComponentPropsWithoutRef<'a'>> | 'a';
15
+ }
16
+ declare function FilterList({
17
+ filters,
18
+ activeFilters,
19
+ onRemove,
20
+ onRemoveAll,
21
+ onSelect,
22
+ className,
23
+ LinkComponent
24
+ }: FilterListProps): react_jsx_runtime0.JSX.Element;
25
+ //#endregion
26
+ export { FilterListProps as n, FilterList as t };
27
+ //# sourceMappingURL=filter-list-BMT7Nrli.d.mts.map
@@ -0,0 +1,279 @@
1
+ 'use client';
2
+ import { t as cn } from "./utils-D2bGp2p_.mjs";
3
+ import { t as AnimatedSizeContainer } from "./animated-size-container-DSKNt1Cn.mjs";
4
+ import { t as Combobox } from "./combobox-uEKksQFR.mjs";
5
+ import { isValidElement, useState } from "react";
6
+ import { useHotkeys } from "@mantine/hooks";
7
+ import { X } from "lucide-react";
8
+ import { AnimatePresence, motion } from "motion/react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { Logger } from "@repo/shared";
11
+
12
+ //#region src/components/filter/filter-list/filter-list.tsx
13
+ /**
14
+ * @fileoverview FilterList Component - Premium Harmony V2
15
+ *
16
+ * Displays active filters as interactive pills with remove functionality and
17
+ * inline editing support. Built with Premium Harmony V2 design standards.
18
+ *
19
+ * Features:
20
+ * - Premium Harmony V2 spring physics for smooth entrance/exit
21
+ * - Touch-optimized 44px minimum targets for filter pills
22
+ * - Reduced motion support for accessibility
23
+ * - Semantic color tokens for theme adaptation
24
+ * - Inline editing support for active filters
25
+ * - Hotkey support for quick removal (Escape)
26
+ * - Animated size container for smooth layout shifts
27
+ * - AnimatePresence for individual pill transitions
28
+ * - Data attributes for state tracking
29
+ *
30
+ * @module @od-oneapp/uni-ui/components/filter/filter-list
31
+ * @component FilterList
32
+ *
33
+ * @useCases
34
+ * - Displaying active search filters in data-heavy views
35
+ * - Providing quick-remove chips for faceted navigation
36
+ * - Showing selected criteria in reports or analytics
37
+ * - Mobile-friendly filter management interfaces
38
+ * - Real-time filtering with visual feedback
39
+ *
40
+ * @example
41
+ * <FilterList
42
+ * filters={availableFilters}
43
+ * activeFilters={activeFilters}
44
+ * onRemove={handleRemove}
45
+ * onRemoveAll={handleClearAll}
46
+ * />
47
+ */
48
+ const logger = new Logger("uni-ui:filter-list");
49
+ const isReactNode = (element) => isValidElement(element);
50
+ function OptionDisplay({ icon: Icon, label, permalink, displayClassName, LinkComponent = "a" }) {
51
+ const iconElement = (() => {
52
+ if (Icon == null) return null;
53
+ if (isValidElement(Icon)) return Icon;
54
+ if (typeof Icon === "function") return /* @__PURE__ */ jsx(Icon, { className: "size-4" });
55
+ return Icon;
56
+ })();
57
+ return /* @__PURE__ */ jsxs("div", {
58
+ className: cn("flex items-center gap-2.5 px-3 py-2", displayClassName),
59
+ children: [/* @__PURE__ */ jsx("span", {
60
+ className: "text-muted-foreground shrink-0",
61
+ children: iconElement
62
+ }), permalink != null ? /* @__PURE__ */ jsx(LinkComponent, {
63
+ href: permalink,
64
+ target: "_blank",
65
+ className: "cursor-alias decoration-dotted underline-offset-2 hover:underline",
66
+ children: label
67
+ }) : label]
68
+ });
69
+ }
70
+ /**
71
+ * Displays active filters as pills with remove functionality.
72
+ *
73
+ * @example
74
+ * <FilterList
75
+ * filters={filters}
76
+ * activeFilters={activeFilters}
77
+ * onRemove={handleRemove}
78
+ * onRemoveAll={handleRemoveAll}
79
+ * onSelect={handleSelect}
80
+ * />
81
+ */
82
+ function FilterList({ filters, activeFilters, onRemove, onRemoveAll, onSelect, className, LinkComponent = "a" }) {
83
+ useHotkeys([["Escape", onRemoveAll]]);
84
+ return /* @__PURE__ */ jsx(AnimatedSizeContainer, {
85
+ height: true,
86
+ className: "w-full",
87
+ transition: {
88
+ type: "tween",
89
+ duration: .3
90
+ },
91
+ children: /* @__PURE__ */ jsxs("div", {
92
+ className: cn("flex w-full flex-wrap items-start gap-4 sm:flex-nowrap", className),
93
+ children: [/* @__PURE__ */ jsx("div", {
94
+ className: "flex grow flex-wrap gap-x-4 gap-y-2",
95
+ children: /* @__PURE__ */ jsx(AnimatePresence, { children: activeFilters?.map(({ key, value: filterValue }) => {
96
+ if (key === "loader") return /* @__PURE__ */ jsx(motion.div, {
97
+ initial: {
98
+ opacity: 0,
99
+ y: 4
100
+ },
101
+ animate: {
102
+ opacity: 1,
103
+ y: 0
104
+ },
105
+ className: "border-border bg-background h-9 w-48 animate-pulse rounded-md border"
106
+ }, `loader-${String(filterValue)}`);
107
+ const filter = filters.find((f) => f.key === key);
108
+ if (filter == null) {
109
+ logger.error("Filter.List received an activeFilter without a corresponding filter", { key });
110
+ return null;
111
+ }
112
+ return (filter.multiple === true && Array.isArray(filterValue) ? filterValue : [filterValue]).map((value) => {
113
+ const option = filter.options?.find((o) => typeof o.value === "string" && typeof value === "string" ? o.value.toLowerCase() === value.toLowerCase() : o.value === value);
114
+ const OptionIcon = option?.icon ?? filter.getOptionIcon?.(value, {
115
+ key: filter.key,
116
+ option
117
+ }) ?? filter.icon;
118
+ const optionLabel = option?.label ?? filter.getOptionLabel?.(value, {
119
+ key: filter.key,
120
+ option
121
+ }) ?? String(value);
122
+ const optionPermalink = option?.permalink ?? filter.getOptionPermalink?.(value) ?? null;
123
+ const truncatedLabel = optionLabel.length > 30 ? `${optionLabel.slice(0, 30)}...` : optionLabel;
124
+ return /* @__PURE__ */ jsxs(motion.div, {
125
+ initial: {
126
+ opacity: 0,
127
+ y: 4
128
+ },
129
+ animate: {
130
+ opacity: 1,
131
+ y: 0
132
+ },
133
+ className: "divide-border border-border bg-background text-foreground flex items-center divide-x rounded-md border text-sm",
134
+ children: [
135
+ /* @__PURE__ */ jsxs("div", {
136
+ className: "flex items-center gap-2.5 px-3 py-2",
137
+ children: [/* @__PURE__ */ jsx("span", {
138
+ className: "text-muted-foreground shrink-0",
139
+ children: isReactNode(filter.icon) ? filter.icon : /* @__PURE__ */ jsx(filter.icon, { className: "size-4" })
140
+ }), filter.label]
141
+ }),
142
+ /* @__PURE__ */ jsx("div", {
143
+ className: "text-muted-foreground px-3 py-2",
144
+ children: "is"
145
+ }),
146
+ /* @__PURE__ */ jsx("div", {
147
+ className: "flex items-center",
148
+ children: (() => {
149
+ if (filter.options == null) return /* @__PURE__ */ jsx("div", {
150
+ className: "flex items-center gap-2.5 px-3 py-2",
151
+ children: /* @__PURE__ */ jsx("div", { className: "bg-muted h-5 w-12 animate-pulse rounded-md" })
152
+ });
153
+ if (onSelect != null && filter.hideInFilterDropdown !== true) return /* @__PURE__ */ jsx(FilterCombobox, {
154
+ filter,
155
+ value,
156
+ filterKey: key,
157
+ onRemove,
158
+ onSelect,
159
+ optionIcon: OptionIcon,
160
+ optionLabel,
161
+ optionPermalink,
162
+ truncatedLabel,
163
+ LinkComponent
164
+ });
165
+ return /* @__PURE__ */ jsx(OptionDisplay, {
166
+ icon: OptionIcon,
167
+ label: truncatedLabel,
168
+ LinkComponent,
169
+ permalink: optionPermalink
170
+ });
171
+ })()
172
+ }),
173
+ /* @__PURE__ */ jsx(motion.button, {
174
+ type: "button",
175
+ className: "text-muted-foreground ring-ring hover:bg-muted hover:text-foreground focus-visible:ring-ring focus-visible:ring-offset-background h-full rounded-r-md p-2 transition-transform ring-inset focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
176
+ onClick: () => onRemove(key, value),
177
+ whileTap: { scale: .98 },
178
+ transition: {
179
+ type: "spring",
180
+ stiffness: 500,
181
+ damping: 30
182
+ },
183
+ children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
184
+ })
185
+ ]
186
+ }, `${key}-${String(value)}`);
187
+ });
188
+ }) })
189
+ }), activeFilters != null && activeFilters.length !== 0 && /* @__PURE__ */ jsxs(motion.button, {
190
+ type: "button",
191
+ className: "group text-muted-foreground ring-ring hover:border-border hover:bg-background hover:text-foreground focus-visible:ring-ring focus-visible:ring-offset-background mt-px flex items-center gap-2 rounded-lg border border-transparent px-3 py-2 text-sm whitespace-nowrap transition-colors ring-inset focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
192
+ onClick: onRemoveAll,
193
+ whileTap: { scale: .98 },
194
+ transition: {
195
+ type: "spring",
196
+ stiffness: 500,
197
+ damping: 30
198
+ },
199
+ children: ["Clear Filters", /* @__PURE__ */ jsx("kbd", {
200
+ className: "border-border text-foreground group-hover:bg-muted rounded-md border px-1.5 py-0.5 text-xs",
201
+ children: "ESC"
202
+ })]
203
+ })]
204
+ })
205
+ });
206
+ }
207
+ function FilterCombobox({ filter, value, filterKey, onRemove, onSelect, optionIcon, optionLabel, optionPermalink, truncatedLabel, LinkComponent = "a" }) {
208
+ const [search, setSearch] = useState("");
209
+ const options = filter.options?.map((opt) => {
210
+ const optionIcon = opt.icon ?? filter.getOptionIcon?.(opt.value, {
211
+ key: filter.key,
212
+ option: opt
213
+ }) ?? filter.icon;
214
+ return {
215
+ label: opt.label ?? filter.getOptionLabel?.(opt.value, {
216
+ key: filter.key,
217
+ option: opt
218
+ }) ?? String(opt.value),
219
+ value: String(opt.value),
220
+ icon: optionIcon
221
+ };
222
+ }) ?? [];
223
+ const selectedOption = options.find((opt) => typeof opt.value === "string" && typeof value === "string" ? opt.value.toLowerCase() === String(value).toLowerCase() : opt.value === String(value));
224
+ const hasEmptyOptions = filter.options?.length === 0;
225
+ const emptyState = (() => {
226
+ if (hasEmptyOptions) {
227
+ if (search === "") return /* @__PURE__ */ jsx("div", {
228
+ className: "text-muted-foreground p-2 text-center text-sm",
229
+ children: "Start typing to search..."
230
+ });
231
+ return null;
232
+ }
233
+ return /* @__PURE__ */ jsx("div", {
234
+ className: "text-muted-foreground p-2 text-center text-sm",
235
+ children: "No matching options"
236
+ });
237
+ })();
238
+ const displayLabel = optionLabel.length > 30 ? `${optionLabel.slice(0, 30)}...` : optionLabel;
239
+ return /* @__PURE__ */ jsx(Combobox, {
240
+ selected: selectedOption ?? null,
241
+ setSelected: (newOption) => {
242
+ if (newOption != null && newOption.value !== String(value)) {
243
+ onRemove(filterKey, value);
244
+ onSelect(filterKey, newOption.value);
245
+ }
246
+ },
247
+ options,
248
+ onSearchChange: setSearch,
249
+ onCreate: hasEmptyOptions ? async (searchValue) => {
250
+ onRemove(filterKey, value);
251
+ onSelect(filterKey, searchValue);
252
+ return true;
253
+ } : void 0,
254
+ createLabel: hasEmptyOptions ? (searchValue) => searchValue : void 0,
255
+ createIcon: typeof filter.icon === "function" && !isValidElement(filter.icon) ? filter.icon : void 0,
256
+ optionRight: (option) => {
257
+ if (option.value === String(value)) return null;
258
+ const filterOption = filter.options?.find((opt) => typeof String(opt.value) === "string" && typeof option.value === "string" ? String(opt.value).toLowerCase() === option.value.toLowerCase() : String(opt.value) === option.value);
259
+ return filterOption?.right != null ? /* @__PURE__ */ jsx("span", {
260
+ className: "text-muted-foreground ml-2",
261
+ children: filterOption.right
262
+ }) : null;
263
+ },
264
+ placeholder: displayLabel,
265
+ caret: false,
266
+ emptyState,
267
+ trigger: /* @__PURE__ */ jsx(OptionDisplay, {
268
+ icon: optionIcon,
269
+ label: truncatedLabel,
270
+ permalink: optionPermalink,
271
+ displayClassName: "cursor-pointer hover:bg-muted",
272
+ LinkComponent
273
+ })
274
+ });
275
+ }
276
+
277
+ //#endregion
278
+ export { FilterList as t };
279
+ //# sourceMappingURL=filter-list-B_9aV5Lp.mjs.map