@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,135 @@
1
+ 'use client';
2
+ import { t as cn } from "./utils-D2bGp2p_.mjs";
3
+ import { a as SPRING_TACTILE } from "./motion-zelaDelJ.mjs";
4
+ import { t as Button } from "./button-DVOrrZLw.mjs";
5
+ import * as React$1 from "react";
6
+ import { memo, useCallback } from "react";
7
+ import { useMediaQuery, useReducedMotion } from "@mantine/hooks";
8
+ import { motion } from "motion/react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+
11
+ //#region src/components/elements/molecules/pagination-controls/pagination-controls.tsx
12
+ /**
13
+ * @fileoverview PaginationControls Component - Premium Harmony V2
14
+ *
15
+ * A compact pagination component providing "Previous" and "Next" controls.
16
+ * Built with Premium Harmony V2 motion standards for tactile feedback and accessibility.
17
+ * Supports automatic touch optimization and respects reduced motion preferences.
18
+ *
19
+ * Features:
20
+ * - ES2023 syntax with modern pattern usage
21
+ * - Tailwind v4 CSS-first theming with CSS variables
22
+ * - Premium Harmony V2 spring physics (SPRING_TACTILE)
23
+ * - Touch detection with automatic sizing for mobile devices
24
+ * - Reduced motion support for accessibility
25
+ * - Complete pseudo-state coverage (:hover, :active, :focus-visible)
26
+ * - Standardized focus ring using ring-primary token
27
+ * - WCAG 2.5.5 compliant 44px minimum touch targets on mobile
28
+ * - Data attributes for state tracking (data-page, data-active)
29
+ * - Semantic button elements with accessibility labels
30
+ * - [Pillar 4: Micro-moments] Refined button hover/tap micro-interactions
31
+ *
32
+ * @module @od-oneapp/uni-ui/components/elements/pagination-controls
33
+ * @component PaginationControls
34
+ *
35
+ * @useCases
36
+ * - Multi-page forms: Navigate between sequential steps
37
+ * - Simple list navigation: Move through paginated data without page numbers
38
+ * - Gallery browsing: Move to previous or next image/media item
39
+ * - Article series: Navigate between parts of a long-form article
40
+ * - Wizard workflows: Sequential navigation through task-based flows
41
+ * - Mobile-first pagination: Space-efficient controls for small screens
42
+ *
43
+ * @example <PaginationControls currentPage={1} totalPages={10} onPageChange={setPage} />
44
+ */
45
+ const PAGINATION_PREVIOUS_LABEL = "Previous";
46
+ const PAGINATION_NEXT_LABEL = "Next";
47
+ const PaginationControls = memo(function PaginationControls({ disabled = false, className, ...props }) {
48
+ const isTouchDevice = useMediaQuery("(pointer: coarse)") ?? false;
49
+ const prefersReducedMotion = useReducedMotion();
50
+ const { currentPage, totalPages, onPageChange } = React$1.useMemo(() => {
51
+ if ("pagination" in props) {
52
+ const totalPagesCalculated = Math.max(1, Math.ceil(props.totalCount / props.pagination.pageSize));
53
+ return {
54
+ currentPage: props.pagination.pageIndex + 1,
55
+ totalPages: totalPagesCalculated,
56
+ onPageChange: (page) => {
57
+ props.setPagination((prev) => ({
58
+ ...prev,
59
+ pageIndex: page - 1
60
+ }));
61
+ }
62
+ };
63
+ }
64
+ return {
65
+ currentPage: props.currentPage,
66
+ totalPages: props.totalPages,
67
+ onPageChange: props.onPageChange
68
+ };
69
+ }, [props]);
70
+ const isFirstPage = currentPage <= 1;
71
+ const isLastPage = currentPage >= totalPages;
72
+ const handlePrevious = useCallback(() => {
73
+ if (!isFirstPage && !disabled) onPageChange(currentPage - 1);
74
+ }, [
75
+ currentPage,
76
+ isFirstPage,
77
+ onPageChange,
78
+ disabled
79
+ ]);
80
+ const handleNext = useCallback(() => {
81
+ if (!isLastPage && !disabled) onPageChange(currentPage + 1);
82
+ }, [
83
+ currentPage,
84
+ isLastPage,
85
+ onPageChange,
86
+ disabled
87
+ ]);
88
+ const buttonSize = isTouchDevice ? "lg" : "default";
89
+ return /* @__PURE__ */ jsxs("div", {
90
+ "data-slot": "pagination-controls",
91
+ className: cn("flex items-center justify-between gap-4 py-4", className),
92
+ children: [/* @__PURE__ */ jsx("div", {
93
+ className: "flex flex-1 items-center justify-start",
94
+ children: /* @__PURE__ */ jsx(motion.div, {
95
+ whileHover: !isFirstPage && !prefersReducedMotion ? { scale: 1.02 } : void 0,
96
+ whileTap: !isFirstPage && !prefersReducedMotion ? { scale: .98 } : void 0,
97
+ transition: prefersReducedMotion ? { duration: 0 } : SPRING_TACTILE,
98
+ children: /* @__PURE__ */ jsx(Button, {
99
+ type: "button",
100
+ variant: "outline",
101
+ size: buttonSize,
102
+ onClick: handlePrevious,
103
+ disabled: isFirstPage || disabled,
104
+ "data-page": "previous",
105
+ "data-active": !isFirstPage,
106
+ className: "focus-visible:ring-primary transition-all duration-200 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
107
+ children: PAGINATION_PREVIOUS_LABEL
108
+ })
109
+ })
110
+ }), /* @__PURE__ */ jsx("div", {
111
+ className: "flex flex-1 items-center justify-end",
112
+ children: /* @__PURE__ */ jsx(motion.div, {
113
+ whileHover: !isLastPage && !prefersReducedMotion ? { scale: 1.02 } : void 0,
114
+ whileTap: !isLastPage && !prefersReducedMotion ? { scale: .98 } : void 0,
115
+ transition: prefersReducedMotion ? { duration: 0 } : SPRING_TACTILE,
116
+ children: /* @__PURE__ */ jsx(Button, {
117
+ type: "button",
118
+ variant: "outline",
119
+ size: buttonSize,
120
+ onClick: handleNext,
121
+ disabled: isLastPage || disabled,
122
+ "data-page": "next",
123
+ "data-active": !isLastPage,
124
+ className: "focus-visible:ring-primary transition-all duration-200 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
125
+ children: PAGINATION_NEXT_LABEL
126
+ })
127
+ })
128
+ })]
129
+ });
130
+ });
131
+ PaginationControls.displayName = "PaginationControls";
132
+
133
+ //#endregion
134
+ export { PaginationControls as t };
135
+ //# sourceMappingURL=pagination-controls-CE3-eCxI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-controls-CE3-eCxI.mjs","names":["React"],"sources":["../src/components/elements/molecules/pagination-controls/pagination-controls.tsx"],"sourcesContent":["/**\n * @fileoverview PaginationControls Component - Premium Harmony V2\n *\n * A compact pagination component providing \"Previous\" and \"Next\" controls.\n * Built with Premium Harmony V2 motion standards for tactile feedback and accessibility.\n * Supports automatic touch optimization and respects reduced motion preferences.\n *\n * Features:\n * - ES2023 syntax with modern pattern usage\n * - Tailwind v4 CSS-first theming with CSS variables\n * - Premium Harmony V2 spring physics (SPRING_TACTILE)\n * - Touch detection with automatic sizing for mobile devices\n * - Reduced motion support for accessibility\n * - Complete pseudo-state coverage (:hover, :active, :focus-visible)\n * - Standardized focus ring using ring-primary token\n * - WCAG 2.5.5 compliant 44px minimum touch targets on mobile\n * - Data attributes for state tracking (data-page, data-active)\n * - Semantic button elements with accessibility labels\n * - [Pillar 4: Micro-moments] Refined button hover/tap micro-interactions\n *\n * @module @od-oneapp/uni-ui/components/elements/pagination-controls\n * @component PaginationControls\n *\n * @useCases\n * - Multi-page forms: Navigate between sequential steps\n * - Simple list navigation: Move through paginated data without page numbers\n * - Gallery browsing: Move to previous or next image/media item\n * - Article series: Navigate between parts of a long-form article\n * - Wizard workflows: Sequential navigation through task-based flows\n * - Mobile-first pagination: Space-efficient controls for small screens\n *\n * @example <PaginationControls currentPage={1} totalPages={10} onPageChange={setPage} />\n */\n\n'use client';\n\nimport * as React from 'react';\nimport { memo, useCallback } from 'react';\n\nimport { useMediaQuery, useReducedMotion } from '@mantine/hooks';\nimport { motion } from 'motion/react';\n\nimport { SPRING_TACTILE } from '../../../../constants/motion';\nimport { cn } from '../../../../lib/utils';\nimport { Button } from '../../atoms/button';\n\n// Static constants - moved outside component to prevent recreation\nconst PAGINATION_PREVIOUS_LABEL = 'Previous';\nconst PAGINATION_NEXT_LABEL = 'Next';\n\nexport interface PaginationControlsProps {\n /** The current active page (1-based) */\n currentPage: number;\n /** The total number of pages */\n totalPages: number;\n /** Callback function called when the page changes */\n onPageChange: (page: number) => void;\n /** Additional class names for the container */\n className?: string;\n /** Whether the controls are disabled */\n disabled?: boolean;\n}\n\ntype LegacyPaginationState = { pageIndex: number; pageSize: number };\n\ntype LegacyPaginationProps = {\n pagination: LegacyPaginationState;\n setPagination: React.Dispatch<React.SetStateAction<LegacyPaginationState>>;\n totalCount: number;\n unit?: (isPlural: boolean) => string;\n className?: string;\n disabled?: boolean;\n};\n\nexport const PaginationControls = memo(function PaginationControls({\n disabled = false,\n className,\n ...props\n}: PaginationControlsProps | LegacyPaginationProps) {\n // Premium Harmony V2: Detect touch devices for adaptive sizing\n const isTouchDevice = useMediaQuery('(pointer: coarse)') ?? false;\n // Premium Harmony V2: Respect user motion preferences\n const prefersReducedMotion = useReducedMotion();\n\n const { currentPage, totalPages, onPageChange } = React.useMemo(() => {\n if ('pagination' in props) {\n const totalPagesCalculated = Math.max(\n 1,\n Math.ceil(props.totalCount / props.pagination.pageSize),\n );\n return {\n currentPage: props.pagination.pageIndex + 1,\n totalPages: totalPagesCalculated,\n onPageChange: (page: number) => {\n props.setPagination(prev => ({ ...prev, pageIndex: page - 1 }));\n },\n };\n }\n return {\n currentPage: props.currentPage,\n totalPages: props.totalPages,\n onPageChange: props.onPageChange,\n };\n }, [props]);\n\n const isFirstPage = currentPage <= 1;\n const isLastPage = currentPage >= totalPages;\n\n const handlePrevious = useCallback(() => {\n if (!isFirstPage && !disabled) {\n onPageChange(currentPage - 1);\n }\n }, [currentPage, isFirstPage, onPageChange, disabled]);\n\n const handleNext = useCallback(() => {\n if (!isLastPage && !disabled) {\n onPageChange(currentPage + 1);\n }\n }, [currentPage, isLastPage, onPageChange, disabled]);\n\n // Premium Harmony V2: Adaptive button size for touch devices\n const buttonSize = isTouchDevice ? 'lg' : 'default';\n\n return (\n <div\n data-slot=\"pagination-controls\"\n className={cn('flex items-center justify-between gap-4 py-4', className)}\n >\n <div className=\"flex flex-1 items-center justify-start\">\n <motion.div\n whileHover={!isFirstPage && !prefersReducedMotion ? { scale: 1.02 } : undefined}\n whileTap={!isFirstPage && !prefersReducedMotion ? { scale: 0.98 } : undefined}\n transition={prefersReducedMotion ? { duration: 0 } : SPRING_TACTILE}\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size={buttonSize}\n onClick={handlePrevious}\n disabled={isFirstPage || disabled}\n data-page=\"previous\"\n data-active={!isFirstPage}\n className=\"focus-visible:ring-primary transition-all duration-200 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none\"\n >\n {PAGINATION_PREVIOUS_LABEL}\n </Button>\n </motion.div>\n </div>\n\n <div className=\"flex flex-1 items-center justify-end\">\n <motion.div\n whileHover={!isLastPage && !prefersReducedMotion ? { scale: 1.02 } : undefined}\n whileTap={!isLastPage && !prefersReducedMotion ? { scale: 0.98 } : undefined}\n transition={prefersReducedMotion ? { duration: 0 } : SPRING_TACTILE}\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size={buttonSize}\n onClick={handleNext}\n disabled={isLastPage || disabled}\n data-page=\"next\"\n data-active={!isLastPage}\n className=\"focus-visible:ring-primary transition-all duration-200 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none\"\n >\n {PAGINATION_NEXT_LABEL}\n </Button>\n </motion.div>\n </div>\n </div>\n );\n});\n\nPaginationControls.displayName = 'PaginationControls';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAM,4BAA4B;AAClC,MAAM,wBAAwB;AA0B9B,MAAa,qBAAqB,KAAK,SAAS,mBAAmB,EACjE,WAAW,OACX,WACA,GAAG,SAC+C;CAElD,MAAM,gBAAgB,cAAc,oBAAoB,IAAI;CAE5D,MAAM,uBAAuB,kBAAkB;CAE/C,MAAM,EAAE,aAAa,YAAY,iBAAiBA,QAAM,cAAc;AACpE,MAAI,gBAAgB,OAAO;GACzB,MAAM,uBAAuB,KAAK,IAChC,GACA,KAAK,KAAK,MAAM,aAAa,MAAM,WAAW,SAAS,CACxD;AACD,UAAO;IACL,aAAa,MAAM,WAAW,YAAY;IAC1C,YAAY;IACZ,eAAe,SAAiB;AAC9B,WAAM,eAAc,UAAS;MAAE,GAAG;MAAM,WAAW,OAAO;MAAG,EAAE;;IAElE;;AAEH,SAAO;GACL,aAAa,MAAM;GACnB,YAAY,MAAM;GAClB,cAAc,MAAM;GACrB;IACA,CAAC,MAAM,CAAC;CAEX,MAAM,cAAc,eAAe;CACnC,MAAM,aAAa,eAAe;CAElC,MAAM,iBAAiB,kBAAkB;AACvC,MAAI,CAAC,eAAe,CAAC,SACnB,cAAa,cAAc,EAAE;IAE9B;EAAC;EAAa;EAAa;EAAc;EAAS,CAAC;CAEtD,MAAM,aAAa,kBAAkB;AACnC,MAAI,CAAC,cAAc,CAAC,SAClB,cAAa,cAAc,EAAE;IAE9B;EAAC;EAAa;EAAY;EAAc;EAAS,CAAC;CAGrD,MAAM,aAAa,gBAAgB,OAAO;AAE1C,QACE,qBAAC;EACC,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;aAExE,oBAAC;GAAI,WAAU;aACb,oBAAC,OAAO;IACN,YAAY,CAAC,eAAe,CAAC,uBAAuB,EAAE,OAAO,MAAM,GAAG;IACtE,UAAU,CAAC,eAAe,CAAC,uBAAuB,EAAE,OAAO,KAAM,GAAG;IACpE,YAAY,uBAAuB,EAAE,UAAU,GAAG,GAAG;cAErD,oBAAC;KACC,MAAK;KACL,SAAQ;KACR,MAAM;KACN,SAAS;KACT,UAAU,eAAe;KACzB,aAAU;KACV,eAAa,CAAC;KACd,WAAU;eAET;MACM;KACE;IACT,EAEN,oBAAC;GAAI,WAAU;aACb,oBAAC,OAAO;IACN,YAAY,CAAC,cAAc,CAAC,uBAAuB,EAAE,OAAO,MAAM,GAAG;IACrE,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,OAAO,KAAM,GAAG;IACnE,YAAY,uBAAuB,EAAE,UAAU,GAAG,GAAG;cAErD,oBAAC;KACC,MAAK;KACL,SAAQ;KACR,MAAM;KACN,SAAS;KACT,UAAU,cAAc;KACxB,aAAU;KACV,eAAa,CAAC;KACd,WAAU;eAET;MACM;KACE;IACT;GACF;EAER;AAEF,mBAAmB,cAAc"}
@@ -0,0 +1,198 @@
1
+ 'use client';
2
+ import { t as cn } from "./utils-D2bGp2p_.mjs";
3
+ import { useResponsive } from "./hooks/use-responsive.mjs";
4
+ import { i as SPRING_GENTLE } from "./motion-zelaDelJ.mjs";
5
+ import { n as ErrorBoundary } from "./error-boundary-Ggc5btkU.mjs";
6
+ import { isValidElement, memo, useCallback, useMemo } from "react";
7
+ import { useMediaQuery, useReducedMotion } from "@mantine/hooks";
8
+ import { AnimatePresence, motion } from "motion/react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { FloatingFocusManager, FloatingPortal, autoUpdate, flip, offset, shift, useClick, useDismiss, useFloating, useInteractions, useRole } from "@floating-ui/react";
11
+ import { Drawer } from "vaul";
12
+
13
+ //#region src/components/elements/organisms/popover/popover.tsx
14
+ /**
15
+ * @fileoverview Popover Component - Premium Harmony V2
16
+ *
17
+ * Responsive popover that shows as a drawer on mobile and a floating popover on desktop.
18
+ * Built with Floating UI for intelligent positioning and Vaul Drawer for mobile gestures.
19
+ *
20
+ * Features:
21
+ * - Premium Harmony V2 spring physics animations (SPRING_GENTLE)
22
+ * - Motion/React for smooth, performant animations
23
+ * - Reduced motion support with useReducedMotion
24
+ * - Touch device detection with useMediaQuery
25
+ * - ES2023 syntax with modern patterns
26
+ * - Tailwind v4 CSS-first theming with CSS variables
27
+ * - Super light/dark mode with seamless switching
28
+ * - Responsive: Drawer on mobile, Floating UI popover on desktop
29
+ * - Floating UI for intelligent positioning
30
+ * - Auto-flip and shift for viewport collision
31
+ * - Vaul Drawer for mobile swipe gestures
32
+ * - Toast dismissal prevention (Sonner integration)
33
+ * - Configurable alignment and side offset
34
+ * - ErrorBoundary wrapper for resilience
35
+ * - Data attributes for state management (data-state)
36
+ * - Semantic color tokens (no hardcoded colors)
37
+ * - Focus-visible ring styles for interactive elements
38
+ * - AnimatePresence for conditional rendering
39
+ *
40
+ * @module @od-oneapp/uni-ui/components/popover
41
+ * @component Popover
42
+ *
43
+ * @useCases
44
+ * - Display contextual menus, tooltips, or dropdown content near trigger elements
45
+ * - Show additional information or actions without navigating away from current view
46
+ * - Provide quick access to settings, filters, or form inputs in a floating panel
47
+ * - Adapt presentation based on device: drawer on mobile, floating popover on desktop
48
+ * - Display user profile cards, notification previews, or quick-access shortcuts
49
+ * - Support intelligent positioning with auto-flip and collision detection
50
+ * - Integrate with toast systems without dismissal conflicts (Sonner integration)
51
+ * - Enable mobile-friendly interactions with swipe-to-dismiss drawer gestures
52
+ *
53
+ * @subcomponents
54
+ * - Drawer.Root - Root container for mobile drawer mode (from vaul)
55
+ * - Drawer.Trigger - Trigger element for mobile drawer
56
+ * - Drawer.Portal - Portal for drawer rendering
57
+ * - Drawer.Overlay - Backdrop overlay for drawer
58
+ * - Drawer.Content - Content container for drawer
59
+ *
60
+ * @example
61
+ * // Basic usage with controlled state
62
+ * <Popover openPopover={isOpen} setOpenPopover={setIsOpen} content={<MenuItems />}>
63
+ * <Button>Open Menu</Button>
64
+ * </Popover>
65
+ *
66
+ * @example
67
+ * // With positioning options
68
+ * <Popover openPopover={open} setOpenPopover={setOpen} content={<Settings />} side="top" align="end" sideOffset={12}>
69
+ * <IconButton icon="settings" />
70
+ * </Popover>
71
+ */
72
+ const POPOVER_DRAWER_TRIGGER_CLASSNAME = "focus-visible:ring-ring focus-visible:ring-offset-background focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none sm:hidden";
73
+ const POPOVER_DRAWER_OVERLAY_CLASSNAME = "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm";
74
+ const POPOVER_DRAWER_CONTENT_CLASSNAME = "border-border bg-background fixed right-0 bottom-0 left-0 z-50 mt-24 rounded-t-xl border-t";
75
+ const POPOVER_DRAWER_ISLAND_CONTAINER_CLASSNAME = "sticky top-0 z-20 flex w-full items-center justify-center rounded-t-xl bg-inherit";
76
+ const POPOVER_DRAWER_ISLAND_BAR_CLASSNAME = "bg-border my-3 h-1 w-12 rounded-full";
77
+ const POPOVER_DRAWER_CONTENT_INNER_CLASSNAME = "bg-background flex min-h-[150px] w-full items-center justify-center overflow-hidden pb-8 align-middle shadow-xl";
78
+ const POPOVER_DESKTOP_TRIGGER_CLASSNAME = "focus-visible:ring-ring focus-visible:ring-offset-background focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none sm:inline-flex";
79
+ const POPOVER_DESKTOP_CONTENT_BASE_CLASSNAME = "border-border bg-popover z-50 items-center rounded-lg border shadow-lg sm:block";
80
+ const SONNER_TOAST_SELECTOR = "[data-sonner-toast]";
81
+ const DEFAULT_SIDE_OFFSET = 8;
82
+ /**
83
+ * Render a responsive popover that uses a bottom drawer on mobile and a floating popover on desktop.
84
+ */
85
+ const Popover = memo(function Popover({ children, content, align = "center", side = "bottom", openPopover, setOpenPopover, mobileOnly, popoverContentClassName, onOpenAutoFocus, collisionBoundary, sticky: _sticky, onEscapeKeyDown, onWheel, sideOffset = DEFAULT_SIDE_OFFSET }) {
86
+ const { isMobile } = useResponsive();
87
+ useMediaQuery("(pointer: coarse)");
88
+ const shouldReduceMotion = useReducedMotion() ?? false;
89
+ const shouldShowDrawer = useMemo(() => mobileOnly ?? isMobile, [mobileOnly, isMobile]);
90
+ const handlePointerDownOutside = useCallback((event) => {
91
+ if (event.detail.originalEvent.target instanceof Element && event.detail.originalEvent.target.closest(SONNER_TOAST_SELECTOR)) event.detail.originalEvent.preventDefault();
92
+ }, []);
93
+ const { refs, floatingStyles, context } = useFloating({
94
+ open: openPopover,
95
+ onOpenChange: setOpenPopover,
96
+ placement: useMemo(() => {
97
+ if (align === "center") return side;
98
+ return `${side}-${align}`;
99
+ }, [side, align]),
100
+ middleware: [
101
+ offset(sideOffset),
102
+ flip({
103
+ fallbackAxisSideDirection: "end",
104
+ boundary: collisionBoundary
105
+ }),
106
+ shift({
107
+ padding: 8,
108
+ boundary: collisionBoundary
109
+ })
110
+ ],
111
+ whileElementsMounted: autoUpdate
112
+ });
113
+ const { getReferenceProps, getFloatingProps } = useInteractions([
114
+ useClick(context),
115
+ useDismiss(context, {
116
+ outsidePress: (event) => {
117
+ if (event.target instanceof Element && event.target.closest(SONNER_TOAST_SELECTOR)) return false;
118
+ return true;
119
+ },
120
+ escapeKey: true
121
+ }),
122
+ useRole(context)
123
+ ]);
124
+ const desktopContentClassName = useMemo(() => cn(POPOVER_DESKTOP_CONTENT_BASE_CLASSNAME, popoverContentClassName), [popoverContentClassName]);
125
+ if (shouldShowDrawer) return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxs(Drawer.Root, {
126
+ open: openPopover,
127
+ onOpenChange: setOpenPopover,
128
+ children: [/* @__PURE__ */ jsx(Drawer.Trigger, {
129
+ className: POPOVER_DRAWER_TRIGGER_CLASSNAME,
130
+ asChild: true,
131
+ children: /* @__PURE__ */ jsx("div", {
132
+ className: POPOVER_DRAWER_TRIGGER_CLASSNAME,
133
+ children
134
+ })
135
+ }), /* @__PURE__ */ jsxs(Drawer.Portal, { children: [/* @__PURE__ */ jsx(Drawer.Overlay, { className: POPOVER_DRAWER_OVERLAY_CLASSNAME }), /* @__PURE__ */ jsxs(Drawer.Content, {
136
+ className: POPOVER_DRAWER_CONTENT_CLASSNAME,
137
+ onEscapeKeyDown,
138
+ onPointerDownOutside: handlePointerDownOutside,
139
+ children: [/* @__PURE__ */ jsx("div", {
140
+ className: POPOVER_DRAWER_ISLAND_CONTAINER_CLASSNAME,
141
+ children: /* @__PURE__ */ jsx("div", { className: POPOVER_DRAWER_ISLAND_BAR_CLASSNAME })
142
+ }), /* @__PURE__ */ jsx("div", {
143
+ className: POPOVER_DRAWER_CONTENT_INNER_CLASSNAME,
144
+ children: content
145
+ })]
146
+ })] })]
147
+ }) });
148
+ return /* @__PURE__ */ jsxs(ErrorBoundary, { children: [/* @__PURE__ */ jsx("div", {
149
+ ref: refs.setReference,
150
+ className: cn(POPOVER_DESKTOP_TRIGGER_CLASSNAME, isValidElement(children) && children.props.className),
151
+ ...getReferenceProps(),
152
+ children
153
+ }), /* @__PURE__ */ jsx(AnimatePresence, { children: openPopover ? /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(FloatingFocusManager, {
154
+ context,
155
+ modal: false,
156
+ initialFocus: onOpenAutoFocus ? -1 : 0,
157
+ children: /* @__PURE__ */ jsx(motion.div, {
158
+ ref: refs.setFloating,
159
+ "data-slot": "popover-content",
160
+ "data-side": side,
161
+ "data-align": align,
162
+ "data-state": openPopover ? "open" : "closed",
163
+ className: desktopContentClassName,
164
+ initial: shouldReduceMotion ? {
165
+ opacity: 1,
166
+ scale: 1,
167
+ y: 0
168
+ } : {
169
+ opacity: 0,
170
+ scale: .95,
171
+ y: -4
172
+ },
173
+ animate: {
174
+ opacity: 1,
175
+ scale: 1,
176
+ y: 0
177
+ },
178
+ exit: shouldReduceMotion ? {
179
+ opacity: 1,
180
+ scale: 1,
181
+ y: 0
182
+ } : {
183
+ opacity: 0,
184
+ scale: .95,
185
+ y: -4
186
+ },
187
+ transition: shouldReduceMotion ? { duration: 0 } : SPRING_GENTLE,
188
+ style: { ...floatingStyles },
189
+ onWheel,
190
+ ...getFloatingProps(),
191
+ children: content
192
+ })
193
+ }) }) : null })] });
194
+ });
195
+
196
+ //#endregion
197
+ export { Popover as t };
198
+ //# sourceMappingURL=popover-DmWxl2lW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-DmWxl2lW.mjs","names":[],"sources":["../src/components/elements/organisms/popover/popover.tsx"],"sourcesContent":["'use client';\n\n/**\n * @fileoverview Popover Component - Premium Harmony V2\n *\n * Responsive popover that shows as a drawer on mobile and a floating popover on desktop.\n * Built with Floating UI for intelligent positioning and Vaul Drawer for mobile gestures.\n *\n * Features:\n * - Premium Harmony V2 spring physics animations (SPRING_GENTLE)\n * - Motion/React for smooth, performant animations\n * - Reduced motion support with useReducedMotion\n * - Touch device detection with useMediaQuery\n * - ES2023 syntax with modern patterns\n * - Tailwind v4 CSS-first theming with CSS variables\n * - Super light/dark mode with seamless switching\n * - Responsive: Drawer on mobile, Floating UI popover on desktop\n * - Floating UI for intelligent positioning\n * - Auto-flip and shift for viewport collision\n * - Vaul Drawer for mobile swipe gestures\n * - Toast dismissal prevention (Sonner integration)\n * - Configurable alignment and side offset\n * - ErrorBoundary wrapper for resilience\n * - Data attributes for state management (data-state)\n * - Semantic color tokens (no hardcoded colors)\n * - Focus-visible ring styles for interactive elements\n * - AnimatePresence for conditional rendering\n *\n * @module @od-oneapp/uni-ui/components/popover\n * @component Popover\n *\n * @useCases\n * - Display contextual menus, tooltips, or dropdown content near trigger elements\n * - Show additional information or actions without navigating away from current view\n * - Provide quick access to settings, filters, or form inputs in a floating panel\n * - Adapt presentation based on device: drawer on mobile, floating popover on desktop\n * - Display user profile cards, notification previews, or quick-access shortcuts\n * - Support intelligent positioning with auto-flip and collision detection\n * - Integrate with toast systems without dismissal conflicts (Sonner integration)\n * - Enable mobile-friendly interactions with swipe-to-dismiss drawer gestures\n *\n * @subcomponents\n * - Drawer.Root - Root container for mobile drawer mode (from vaul)\n * - Drawer.Trigger - Trigger element for mobile drawer\n * - Drawer.Portal - Portal for drawer rendering\n * - Drawer.Overlay - Backdrop overlay for drawer\n * - Drawer.Content - Content container for drawer\n *\n * @example\n * // Basic usage with controlled state\n * <Popover openPopover={isOpen} setOpenPopover={setIsOpen} content={<MenuItems />}>\n * <Button>Open Menu</Button>\n * </Popover>\n *\n * @example\n * // With positioning options\n * <Popover openPopover={open} setOpenPopover={setOpen} content={<Settings />} side=\"top\" align=\"end\" sideOffset={12}>\n * <IconButton icon=\"settings\" />\n * </Popover>\n */\n\nimport {\n isValidElement,\n memo,\n useCallback,\n useMemo,\n type PropsWithChildren,\n type ReactNode,\n type WheelEventHandler,\n} from 'react';\n\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n type Placement,\n} from '@floating-ui/react';\nimport { useMediaQuery, useReducedMotion } from '@mantine/hooks';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { Drawer } from 'vaul';\n\nimport { useResponsive } from '../../../../hooks/use-responsive';\nimport { cn } from '../../../../lib/utils';\nimport { SPRING_GENTLE } from '../../../ai-elements/ai-elements.constants';\nimport { ErrorBoundary } from '../error-boundary';\n\n// Static classNames - moved outside component to prevent recreation\nconst POPOVER_DRAWER_TRIGGER_CLASSNAME =\n 'focus-visible:ring-ring focus-visible:ring-offset-background focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none sm:hidden';\nconst POPOVER_DRAWER_OVERLAY_CLASSNAME = 'fixed inset-0 z-50 bg-black/50 backdrop-blur-sm';\nconst POPOVER_DRAWER_CONTENT_CLASSNAME =\n 'border-border bg-background fixed right-0 bottom-0 left-0 z-50 mt-24 rounded-t-xl border-t';\nconst POPOVER_DRAWER_ISLAND_CONTAINER_CLASSNAME =\n 'sticky top-0 z-20 flex w-full items-center justify-center rounded-t-xl bg-inherit';\nconst POPOVER_DRAWER_ISLAND_BAR_CLASSNAME = 'bg-border my-3 h-1 w-12 rounded-full';\nconst POPOVER_DRAWER_CONTENT_INNER_CLASSNAME =\n 'bg-background flex min-h-[150px] w-full items-center justify-center overflow-hidden pb-8 align-middle shadow-xl';\nconst POPOVER_DESKTOP_TRIGGER_CLASSNAME =\n 'focus-visible:ring-ring focus-visible:ring-offset-background focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none sm:inline-flex';\nconst POPOVER_DESKTOP_CONTENT_BASE_CLASSNAME =\n 'border-border bg-popover z-50 items-center rounded-lg border shadow-lg sm:block';\n\n// Static strings - moved outside component to prevent recreation\nconst SONNER_TOAST_SELECTOR = '[data-sonner-toast]';\nconst DEFAULT_SIDE_OFFSET = 8;\n\nexport interface PopoverProps extends PropsWithChildren {\n /**\n * Trigger element(s) for the popover.\n * Must be an interactive element or component that accepts and forwards a `className` prop\n * (e.g., a Button component or DOM button element) to ensure proper focus styling.\n */\n children: ReactNode;\n content: ReactNode | string;\n align?: 'center' | 'start' | 'end';\n side?: 'bottom' | 'top' | 'left' | 'right';\n openPopover: boolean;\n setOpenPopover: (open: boolean) => void;\n mobileOnly?: boolean;\n popoverContentClassName?: string;\n onOpenAutoFocus?: (event: Event) => void;\n collisionBoundary?: Element | Element[];\n sticky?: 'partial' | 'always';\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n onWheel?: WheelEventHandler;\n sideOffset?: number;\n}\n\n/**\n * Render a responsive popover that uses a bottom drawer on mobile and a floating popover on desktop.\n */\nexport const Popover = memo(function Popover({\n children,\n content,\n align = 'center',\n side = 'bottom',\n openPopover,\n setOpenPopover,\n mobileOnly,\n popoverContentClassName,\n onOpenAutoFocus,\n collisionBoundary,\n sticky: _sticky,\n onEscapeKeyDown,\n onWheel,\n sideOffset = DEFAULT_SIDE_OFFSET,\n}: PopoverProps) {\n const { isMobile } = useResponsive();\n // Premium Harmony V2: Touch detection and reduced motion\n const isTouchDevice = useMediaQuery('(pointer: coarse)');\n const shouldReduceMotion = useReducedMotion() ?? false;\n\n // Memoize mobile drawer condition to prevent unnecessary re-computation\n const shouldShowDrawer = useMemo(() => mobileOnly ?? isMobile, [mobileOnly, isMobile]);\n\n // Memoize pointer down handler to prevent unnecessary re-renders\n const handlePointerDownOutside = useCallback(\n (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n // Prevent dismissal when clicking inside a toast\n if (\n event.detail.originalEvent.target instanceof Element &&\n event.detail.originalEvent.target.closest(SONNER_TOAST_SELECTOR)\n ) {\n event.detail.originalEvent.preventDefault();\n }\n },\n [],\n );\n\n // Convert side + align to Floating UI placement\n const placement = useMemo((): Placement => {\n if (align === 'center') return side;\n return `${side}-${align}` as Placement;\n }, [side, align]);\n\n // Floating UI setup\n const { refs, floatingStyles, context } = useFloating({\n open: openPopover,\n onOpenChange: setOpenPopover,\n placement,\n middleware: [\n offset(sideOffset),\n flip({\n fallbackAxisSideDirection: 'end',\n boundary: collisionBoundary,\n }),\n shift({ padding: 8, boundary: collisionBoundary }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context, {\n outsidePress: event => {\n // Prevent dismissal when clicking inside a toast\n if (event.target instanceof Element && event.target.closest(SONNER_TOAST_SELECTOR)) {\n return false;\n }\n return true;\n },\n escapeKey: true,\n });\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n // Memoize desktop content className\n const desktopContentClassName = useMemo(\n () => cn(POPOVER_DESKTOP_CONTENT_BASE_CLASSNAME, popoverContentClassName),\n [popoverContentClassName],\n );\n\n if (shouldShowDrawer) {\n return (\n <ErrorBoundary>\n <Drawer.Root open={openPopover} onOpenChange={setOpenPopover}>\n <Drawer.Trigger className={POPOVER_DRAWER_TRIGGER_CLASSNAME} asChild>\n <div className={POPOVER_DRAWER_TRIGGER_CLASSNAME}>{children}</div>\n </Drawer.Trigger>\n <Drawer.Portal>\n <Drawer.Overlay className={POPOVER_DRAWER_OVERLAY_CLASSNAME} />\n <Drawer.Content\n className={POPOVER_DRAWER_CONTENT_CLASSNAME}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={handlePointerDownOutside}\n >\n <div className={POPOVER_DRAWER_ISLAND_CONTAINER_CLASSNAME}>\n <div className={POPOVER_DRAWER_ISLAND_BAR_CLASSNAME} />\n </div>\n <div className={POPOVER_DRAWER_CONTENT_INNER_CLASSNAME}>{content}</div>\n </Drawer.Content>\n </Drawer.Portal>\n </Drawer.Root>\n </ErrorBoundary>\n );\n }\n\n // Desktop popover with Floating UI\n return (\n <ErrorBoundary>\n <div\n ref={refs.setReference}\n className={cn(\n POPOVER_DESKTOP_TRIGGER_CLASSNAME,\n isValidElement(children) && (children as React.ReactElement<any>).props.className,\n )}\n {...getReferenceProps()}\n >\n {children}\n </div>\n\n {/* Content */}\n <AnimatePresence>\n {openPopover ? (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={onOpenAutoFocus ? -1 : 0}\n >\n <motion.div\n ref={refs.setFloating}\n data-slot=\"popover-content\"\n data-side={side}\n data-align={align}\n data-state={openPopover ? 'open' : 'closed'}\n className={desktopContentClassName}\n initial={\n shouldReduceMotion\n ? { opacity: 1, scale: 1, y: 0 }\n : { opacity: 0, scale: 0.95, y: -4 }\n }\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={\n shouldReduceMotion\n ? { opacity: 1, scale: 1, y: 0 }\n : { opacity: 0, scale: 0.95, y: -4 }\n }\n transition={shouldReduceMotion ? { duration: 0 } : SPRING_GENTLE}\n style={{\n ...floatingStyles,\n }}\n onWheel={onWheel}\n {...getFloatingProps()}\n >\n {content}\n </motion.div>\n </FloatingFocusManager>\n </FloatingPortal>\n ) : null}\n </AnimatePresence>\n </ErrorBoundary>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,MAAM,mCACJ;AACF,MAAM,mCAAmC;AACzC,MAAM,mCACJ;AACF,MAAM,4CACJ;AACF,MAAM,sCAAsC;AAC5C,MAAM,yCACJ;AACF,MAAM,oCACJ;AACF,MAAM,yCACJ;AAGF,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB;;;;AA2B5B,MAAa,UAAU,KAAK,SAAS,QAAQ,EAC3C,UACA,SACA,QAAQ,UACR,OAAO,UACP,aACA,gBACA,YACA,yBACA,iBACA,mBACA,QAAQ,SACR,iBACA,SACA,aAAa,uBACE;CACf,MAAM,EAAE,aAAa,eAAe;AAEd,eAAc,oBAAoB;CACxD,MAAM,qBAAqB,kBAAkB,IAAI;CAGjD,MAAM,mBAAmB,cAAc,cAAc,UAAU,CAAC,YAAY,SAAS,CAAC;CAGtF,MAAM,2BAA2B,aAC9B,UAAwD;AAEvD,MACE,MAAM,OAAO,cAAc,kBAAkB,WAC7C,MAAM,OAAO,cAAc,OAAO,QAAQ,sBAAsB,CAEhE,OAAM,OAAO,cAAc,gBAAgB;IAG/C,EAAE,CACH;CASD,MAAM,EAAE,MAAM,gBAAgB,YAAY,YAAY;EACpD,MAAM;EACN,cAAc;EACd,WATgB,cAAyB;AACzC,OAAI,UAAU,SAAU,QAAO;AAC/B,UAAO,GAAG,KAAK,GAAG;KACjB,CAAC,MAAM,MAAM,CAAC;EAOf,YAAY;GACV,OAAO,WAAW;GAClB,KAAK;IACH,2BAA2B;IAC3B,UAAU;IACX,CAAC;GACF,MAAM;IAAE,SAAS;IAAG,UAAU;IAAmB,CAAC;GACnD;EACD,sBAAsB;EACvB,CAAC;CAeF,MAAM,EAAE,mBAAmB,qBAAqB,gBAAgB;EAblD,SAAS,QAAQ;EACf,WAAW,SAAS;GAClC,eAAc,UAAS;AAErB,QAAI,MAAM,kBAAkB,WAAW,MAAM,OAAO,QAAQ,sBAAsB,CAChF,QAAO;AAET,WAAO;;GAET,WAAW;GACZ,CAAC;EACW,QAAQ,QAAQ;EAEyD,CAAC;CAGvF,MAAM,0BAA0B,cACxB,GAAG,wCAAwC,wBAAwB,EACzE,CAAC,wBAAwB,CAC1B;AAED,KAAI,iBACF,QACE,oBAAC,2BACC,qBAAC,OAAO;EAAK,MAAM;EAAa,cAAc;aAC5C,oBAAC,OAAO;GAAQ,WAAW;GAAkC;aAC3D,oBAAC;IAAI,WAAW;IAAmC;KAAe;IACnD,EACjB,qBAAC,OAAO,qBACN,oBAAC,OAAO,WAAQ,WAAW,mCAAoC,EAC/D,qBAAC,OAAO;GACN,WAAW;GACM;GACjB,sBAAsB;cAEtB,oBAAC;IAAI,WAAW;cACd,oBAAC,SAAI,WAAW,sCAAuC;KACnD,EACN,oBAAC;IAAI,WAAW;cAAyC;KAAc;IACxD,IACH;GACJ,GACA;AAKpB,QACE,qBAAC,4BACC,oBAAC;EACC,KAAK,KAAK;EACV,WAAW,GACT,mCACA,eAAe,SAAS,IAAK,SAAqC,MAAM,UACzE;EACD,GAAI,mBAAmB;EAEtB;GACG,EAGN,oBAAC,6BACE,cACC,oBAAC,4BACC,oBAAC;EACU;EACT,OAAO;EACP,cAAc,kBAAkB,KAAK;YAErC,oBAAC,OAAO;GACN,KAAK,KAAK;GACV,aAAU;GACV,aAAW;GACX,cAAY;GACZ,cAAY,cAAc,SAAS;GACnC,WAAW;GACX,SACE,qBACI;IAAE,SAAS;IAAG,OAAO;IAAG,GAAG;IAAG,GAC9B;IAAE,SAAS;IAAG,OAAO;IAAM,GAAG;IAAI;GAExC,SAAS;IAAE,SAAS;IAAG,OAAO;IAAG,GAAG;IAAG;GACvC,MACE,qBACI;IAAE,SAAS;IAAG,OAAO;IAAG,GAAG;IAAG,GAC9B;IAAE,SAAS;IAAG,OAAO;IAAM,GAAG;IAAI;GAExC,YAAY,qBAAqB,EAAE,UAAU,GAAG,GAAG;GACnD,OAAO,EACL,GAAG,gBACJ;GACQ;GACT,GAAI,kBAAkB;aAErB;IACU;GACQ,GACR,GACf,OACY,IACJ;EAElB"}
@@ -0,0 +1,6 @@
1
+
2
+ //#region storybook/preview.d.ts
3
+ declare const _default: any;
4
+ //#endregion
5
+ export { _default as default };
6
+ //# sourceMappingURL=preview.d.mts.map
@@ -0,0 +1,230 @@
1
+ 'use client';
2
+ import { t as cn } from "./utils-D2bGp2p_.mjs";
3
+ import { a as SPRING_TACTILE, i as SPRING_GENTLE, r as SPRING_FLUID } from "./motion-zelaDelJ.mjs";
4
+ import { forwardRef, memo, useMemo } from "react";
5
+ import { useMediaQuery, useReducedMotion } from "@mantine/hooks";
6
+ import { cva } from "class-variance-authority";
7
+ import { AnimatePresence, motion } from "motion/react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+
10
+ //#region src/components/elements/atoms/progress/progress.tsx
11
+ /**
12
+ * @fileoverview Progress Component - Premium Harmony V2
13
+ *
14
+ * A progress bar component with size and color variants for visual feedback.
15
+ * Built with native HTML elements and ARIA attributes for accessibility.
16
+ *
17
+ * Features:
18
+ * - ES2023 syntax with modern patterns
19
+ * - Tailwind v4 CSS-first theming with CSS variables
20
+ * - Premium Harmony V2 spring physics for smooth animations
21
+ * - Touch detection with automatic sizing for mobile devices
22
+ * - Reduced motion support for accessibility
23
+ * - Multiple size and color variants with light/dark mode support
24
+ * - Full accessibility support (ARIA progressbar)
25
+ * - Indeterminate state with fluid animation
26
+ * - WCAG 2.5.5 compliant touch targets for interactive progress bars
27
+ * - Data attributes for state management (data-state, data-loading)
28
+ * - Enhanced focus styles for keyboard navigation
29
+ *
30
+ * @module @od-oneapp/uni-ui/components/elements/atoms/progress
31
+ *
32
+ * @component Progress
33
+ *
34
+ * @useCases
35
+ * - File upload progress with percentage display
36
+ * - Task completion through multi-step workflows
37
+ * - Loading indicators with indeterminate state
38
+ * - Download progress with animated fill
39
+ * - Profile completion gamification elements
40
+ * - Data processing with visual feedback
41
+ * - Achievement tracking and goal visualization
42
+ *
43
+ * @variants
44
+ * - size: xs, sm, default, lg, xl, touch
45
+ * - variant: default, success, warning, destructive
46
+ *
47
+ * @example <Progress value={60} />
48
+ *
49
+ * @example <Progress value={80} size="lg" variant="success" />
50
+ *
51
+ * @example <Progress indeterminate />
52
+ */
53
+ /**
54
+ * Progress track variant definitions using CVA
55
+ *
56
+ * Base styles include:
57
+ * - Rounded full shape
58
+ * - Overflow hidden for indicator
59
+ * - Relative positioning for indicator
60
+ * - Focus styles for keyboard navigation (when interactive)
61
+ */
62
+ const progressVariants = cva([
63
+ "relative w-full overflow-hidden",
64
+ "rounded-full",
65
+ "bg-primary/20",
66
+ "dark:bg-primary/15",
67
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
68
+ ], {
69
+ variants: {
70
+ size: {
71
+ xs: "h-0.5",
72
+ sm: "h-1",
73
+ default: "h-2",
74
+ lg: "h-3",
75
+ xl: "h-4",
76
+ touch: "h-11"
77
+ },
78
+ variant: {
79
+ default: "bg-primary/20 dark:bg-primary/15",
80
+ success: "bg-success/20 dark:bg-success/15",
81
+ warning: "bg-warning/20 dark:bg-warning/15",
82
+ destructive: "bg-destructive/20 dark:bg-destructive/15"
83
+ }
84
+ },
85
+ defaultVariants: {
86
+ size: "default",
87
+ variant: "default"
88
+ }
89
+ });
90
+ /**
91
+ * Progress indicator variant definitions
92
+ * Uses motion library for Premium Harmony V2 spring physics
93
+ */
94
+ const progressIndicatorVariants = cva(["h-full w-full flex-1"], {
95
+ variants: {
96
+ variant: {
97
+ default: ["bg-primary", "dark:bg-primary/90"],
98
+ success: ["bg-success", "dark:bg-success/90"],
99
+ warning: ["bg-warning", "dark:bg-warning/90"],
100
+ destructive: ["bg-destructive", "dark:bg-destructive/90"]
101
+ },
102
+ animation: {
103
+ none: "",
104
+ indeterminate: "animate-[progress-indeterminate_1.5s_ease-in-out_infinite] w-1/3",
105
+ striped: "bg-[length:1rem_1rem] bg-[linear-gradient(45deg,rgba(255,255,255,0.15)_25%,transparent_25%,transparent_50%,rgba(255,255,255,0.15)_50%,rgba(255,255,255,0.15)_75%,transparent_75%,transparent)]",
106
+ stripedAnimated: [
107
+ "bg-[length:1rem_1rem]",
108
+ "bg-[linear-gradient(45deg,rgba(255,255,255,0.15)_25%,transparent_25%,transparent_50%,rgba(255,255,255,0.15)_50%,rgba(255,255,255,0.15)_75%,transparent_75%,transparent)]",
109
+ "animate-[progress-stripes_1s_linear_infinite]"
110
+ ]
111
+ }
112
+ },
113
+ defaultVariants: {
114
+ variant: "default",
115
+ animation: "none"
116
+ }
117
+ });
118
+ /**
119
+ * Progress Component
120
+ *
121
+ * A progress bar that shows completion status with various visual options.
122
+ * Fully accessible with ARIA progressbar role.
123
+ * Enhanced with Premium Harmony V2 motion standards for smooth, physics-based animations.
124
+ */
125
+ const Progress = memo(forwardRef(function Progress({ className, value, max = 100, size: sizeProp, variant, indeterminate = false, striped = false, animated = false, getValueLabel, showLabel = false, ...props }, ref) {
126
+ const isTouchDevice = useMediaQuery("(pointer: coarse)");
127
+ const shouldReduceMotion = useReducedMotion();
128
+ const size = useMemo(() => {
129
+ if (sizeProp) return sizeProp;
130
+ return isTouchDevice ? "lg" : "default";
131
+ }, [sizeProp, isTouchDevice]);
132
+ const progressValue = useMemo(() => {
133
+ if (indeterminate || value === null || value === void 0) return null;
134
+ return Math.min(Math.max(value, 0), max);
135
+ }, [
136
+ value,
137
+ max,
138
+ indeterminate
139
+ ]);
140
+ const percentage = useMemo(() => {
141
+ if (progressValue === null) return null;
142
+ return progressValue / max * 100;
143
+ }, [progressValue, max]);
144
+ const trackClassName = useMemo(() => cn(progressVariants({
145
+ size,
146
+ variant
147
+ }), className), [
148
+ size,
149
+ variant,
150
+ className
151
+ ]);
152
+ const animationType = useMemo(() => {
153
+ if (indeterminate) return "indeterminate";
154
+ if (striped && animated) return "stripedAnimated";
155
+ if (striped) return "striped";
156
+ return "none";
157
+ }, [
158
+ indeterminate,
159
+ striped,
160
+ animated
161
+ ]);
162
+ const indicatorClassName = useMemo(() => progressIndicatorVariants({
163
+ variant,
164
+ animation: animationType
165
+ }), [variant, animationType]);
166
+ const valueLabel = useMemo(() => {
167
+ if (progressValue === null) return;
168
+ if (getValueLabel) return getValueLabel(progressValue, max);
169
+ return `${Math.round(percentage ?? 0)}%`;
170
+ }, [
171
+ progressValue,
172
+ max,
173
+ percentage,
174
+ getValueLabel
175
+ ]);
176
+ const dataState = useMemo(() => {
177
+ if (indeterminate) return "indeterminate";
178
+ if (progressValue === max) return "complete";
179
+ return "loading";
180
+ }, [
181
+ indeterminate,
182
+ progressValue,
183
+ max
184
+ ]);
185
+ const springConfig = useMemo(() => {
186
+ if (shouldReduceMotion) return { duration: 0 };
187
+ if (indeterminate) return SPRING_FLUID;
188
+ if (percentage !== null && percentage > 75) return SPRING_GENTLE;
189
+ return SPRING_TACTILE;
190
+ }, [
191
+ shouldReduceMotion,
192
+ indeterminate,
193
+ percentage
194
+ ]);
195
+ return /* @__PURE__ */ jsxs("div", {
196
+ ref,
197
+ role: "progressbar",
198
+ "aria-valuemin": 0,
199
+ "aria-valuemax": max,
200
+ "aria-valuenow": progressValue ?? void 0,
201
+ "aria-valuetext": valueLabel,
202
+ "data-slot": "progress",
203
+ "data-state": dataState,
204
+ "data-loading": indeterminate || progressValue !== null && progressValue < max,
205
+ "data-value": progressValue ?? void 0,
206
+ "data-max": max,
207
+ className: trackClassName,
208
+ ...props,
209
+ children: [/* @__PURE__ */ jsx(motion.div, {
210
+ "data-slot": "progress-indicator",
211
+ className: indicatorClassName,
212
+ initial: false,
213
+ animate: { x: indeterminate || percentage === null ? 0 : `${-(100 - percentage)}%` },
214
+ transition: springConfig
215
+ }), /* @__PURE__ */ jsx(AnimatePresence, { children: showLabel && !indeterminate && percentage !== null ? /* @__PURE__ */ jsxs(motion.span, {
216
+ "data-slot": "progress-label",
217
+ className: "text-primary-foreground absolute inset-0 flex items-center justify-center text-[10px] font-medium mix-blend-difference",
218
+ initial: { opacity: 0 },
219
+ animate: { opacity: 1 },
220
+ exit: { opacity: 0 },
221
+ transition: shouldReduceMotion ? { duration: 0 } : SPRING_GENTLE,
222
+ children: [Math.round(percentage), "%"]
223
+ }) : null })]
224
+ });
225
+ }));
226
+ Progress.displayName = "Progress";
227
+
228
+ //#endregion
229
+ export { progressIndicatorVariants as n, progressVariants as r, Progress as t };
230
+ //# sourceMappingURL=progress-BWxdthl4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-BWxdthl4.mjs","names":[],"sources":["../src/components/elements/atoms/progress/progress.tsx"],"sourcesContent":["/**\n * @fileoverview Progress Component - Premium Harmony V2\n *\n * A progress bar component with size and color variants for visual feedback.\n * Built with native HTML elements and ARIA attributes for accessibility.\n *\n * Features:\n * - ES2023 syntax with modern patterns\n * - Tailwind v4 CSS-first theming with CSS variables\n * - Premium Harmony V2 spring physics for smooth animations\n * - Touch detection with automatic sizing for mobile devices\n * - Reduced motion support for accessibility\n * - Multiple size and color variants with light/dark mode support\n * - Full accessibility support (ARIA progressbar)\n * - Indeterminate state with fluid animation\n * - WCAG 2.5.5 compliant touch targets for interactive progress bars\n * - Data attributes for state management (data-state, data-loading)\n * - Enhanced focus styles for keyboard navigation\n *\n * @module @od-oneapp/uni-ui/components/elements/atoms/progress\n *\n * @component Progress\n *\n * @useCases\n * - File upload progress with percentage display\n * - Task completion through multi-step workflows\n * - Loading indicators with indeterminate state\n * - Download progress with animated fill\n * - Profile completion gamification elements\n * - Data processing with visual feedback\n * - Achievement tracking and goal visualization\n *\n * @variants\n * - size: xs, sm, default, lg, xl, touch\n * - variant: default, success, warning, destructive\n *\n * @example <Progress value={60} />\n *\n * @example <Progress value={80} size=\"lg\" variant=\"success\" />\n *\n * @example <Progress indeterminate />\n */\n\n'use client';\n\nimport type { ComponentProps } from 'react';\nimport { forwardRef, memo, useMemo } from 'react';\n\nimport { useMediaQuery, useReducedMotion } from '@mantine/hooks';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { AnimatePresence, motion } from 'motion/react';\n\nimport { cn } from '../../../../lib/utils';\nimport {\n SPRING_FLUID,\n SPRING_GENTLE,\n SPRING_TACTILE,\n} from '../../../ai-elements/ai-elements.constants';\n\n/**\n * Progress track variant definitions using CVA\n *\n * Base styles include:\n * - Rounded full shape\n * - Overflow hidden for indicator\n * - Relative positioning for indicator\n * - Focus styles for keyboard navigation (when interactive)\n */\nconst progressVariants = cva(\n [\n // Layout\n 'relative w-full overflow-hidden',\n // Shape\n 'rounded-full',\n // Background track\n 'bg-primary/20',\n // Dark mode\n 'dark:bg-primary/15',\n // Focus styles (for interactive progress bars)\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n ],\n {\n variants: {\n /**\n * Size variants\n * 'touch' variant ensures WCAG 2.5.5 compliance with 44px minimum height\n */\n size: {\n xs: 'h-0.5',\n sm: 'h-1',\n default: 'h-2',\n lg: 'h-3',\n xl: 'h-4',\n touch: 'h-11', // 44px for WCAG 2.5.5 compliance\n },\n /**\n * Visual variant for track background\n */\n variant: {\n default: 'bg-primary/20 dark:bg-primary/15',\n success: 'bg-success/20 dark:bg-success/15',\n warning: 'bg-warning/20 dark:bg-warning/15',\n destructive: 'bg-destructive/20 dark:bg-destructive/15',\n },\n },\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n },\n);\n\n/**\n * Progress indicator variant definitions\n * Uses motion library for Premium Harmony V2 spring physics\n */\nconst progressIndicatorVariants = cva(\n [\n // Layout\n 'h-full w-full flex-1',\n ],\n {\n variants: {\n /**\n * Color variant for the indicator fill\n */\n variant: {\n default: ['bg-primary', 'dark:bg-primary/90'],\n success: ['bg-success', 'dark:bg-success/90'],\n warning: ['bg-warning', 'dark:bg-warning/90'],\n destructive: ['bg-destructive', 'dark:bg-destructive/90'],\n },\n /**\n * Animation state\n */\n animation: {\n none: '',\n indeterminate: 'animate-[progress-indeterminate_1.5s_ease-in-out_infinite] w-1/3',\n striped:\n 'bg-[length:1rem_1rem] bg-[linear-gradient(45deg,rgba(255,255,255,0.15)_25%,transparent_25%,transparent_50%,rgba(255,255,255,0.15)_50%,rgba(255,255,255,0.15)_75%,transparent_75%,transparent)]',\n stripedAnimated: [\n 'bg-[length:1rem_1rem]',\n 'bg-[linear-gradient(45deg,rgba(255,255,255,0.15)_25%,transparent_25%,transparent_50%,rgba(255,255,255,0.15)_50%,rgba(255,255,255,0.15)_75%,transparent_75%,transparent)]',\n 'animate-[progress-stripes_1s_linear_infinite]',\n ],\n },\n },\n defaultVariants: {\n variant: 'default',\n animation: 'none',\n },\n },\n);\n\n/**\n * Progress component props\n */\ninterface ProgressProps\n extends Omit<ComponentProps<'div'>, 'children'>, VariantProps<typeof progressVariants> {\n /** Current progress value (0-100 or 0-max) */\n value?: number | null;\n /** Maximum value for the progress bar */\n max?: number;\n /** Show indeterminate loading animation when value is unknown */\n indeterminate?: boolean;\n /** Show striped pattern */\n striped?: boolean;\n /** Animate striped pattern */\n animated?: boolean;\n /** Function to get the value label for accessibility */\n getValueLabel?: (value: number, max: number) => string;\n /** Show percentage label */\n showLabel?: boolean;\n}\n\n/**\n * Progress Component\n *\n * A progress bar that shows completion status with various visual options.\n * Fully accessible with ARIA progressbar role.\n * Enhanced with Premium Harmony V2 motion standards for smooth, physics-based animations.\n */\nconst Progress = memo(\n forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n {\n className,\n value,\n max = 100,\n size: sizeProp,\n variant,\n indeterminate = false,\n striped = false,\n animated = false,\n getValueLabel,\n showLabel = false,\n ...props\n },\n ref,\n ) {\n // Premium Harmony V2: Touch detection\n const isTouchDevice = useMediaQuery('(pointer: coarse)');\n // Premium Harmony V2: Reduced motion support\n const shouldReduceMotion = useReducedMotion();\n\n // Auto-adjust size for touch devices if not explicitly set\n const size = useMemo(() => {\n if (sizeProp) return sizeProp;\n return isTouchDevice ? 'lg' : 'default';\n }, [sizeProp, isTouchDevice]);\n\n // Calculate clamped progress value\n const progressValue = useMemo(() => {\n if (indeterminate || value === null || value === undefined) {\n return null;\n }\n return Math.min(Math.max(value, 0), max);\n }, [value, max, indeterminate]);\n\n // Calculate percentage\n const percentage = useMemo(() => {\n if (progressValue === null) return null;\n return (progressValue / max) * 100;\n }, [progressValue, max]);\n\n // Memoize track className\n const trackClassName = useMemo(\n () => cn(progressVariants({ size, variant }), className),\n [size, variant, className],\n );\n\n // Determine animation type\n const animationType = useMemo(() => {\n if (indeterminate) return 'indeterminate' as const;\n if (striped && animated) return 'stripedAnimated' as const;\n if (striped) return 'striped' as const;\n return 'none' as const;\n }, [indeterminate, striped, animated]);\n\n // Memoize indicator className\n const indicatorClassName = useMemo(\n () => progressIndicatorVariants({ variant, animation: animationType }),\n [variant, animationType],\n );\n\n // Generate accessible value label\n const valueLabel = useMemo(() => {\n if (progressValue === null) return;\n if (getValueLabel) return getValueLabel(progressValue, max);\n return `${Math.round(percentage ?? 0)}%`;\n }, [progressValue, max, percentage, getValueLabel]);\n\n // Determine data-state\n const dataState = useMemo(() => {\n if (indeterminate) return 'indeterminate';\n if (progressValue === max) return 'complete';\n return 'loading';\n }, [indeterminate, progressValue, max]);\n\n // Premium Harmony V2: Select appropriate spring physics\n const springConfig = useMemo(() => {\n if (shouldReduceMotion) return { duration: 0 }; // Instant for reduced motion\n if (indeterminate) return SPRING_FLUID; // Fluid for continuous motion\n if (percentage !== null && percentage > 75) return SPRING_GENTLE; // Gentle near completion\n return SPRING_TACTILE; // Tactile for normal progress\n }, [shouldReduceMotion, indeterminate, percentage]);\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={progressValue ?? undefined}\n aria-valuetext={valueLabel}\n data-slot=\"progress\"\n data-state={dataState}\n data-loading={indeterminate || (progressValue !== null && progressValue < max)}\n data-value={progressValue ?? undefined}\n data-max={max}\n className={trackClassName}\n {...props}\n >\n <motion.div\n data-slot=\"progress-indicator\"\n className={indicatorClassName}\n initial={false}\n animate={{\n x: indeterminate || percentage === null ? 0 : `${-(100 - percentage)}%`,\n }}\n transition={springConfig}\n />\n <AnimatePresence>\n {showLabel && !indeterminate && percentage !== null ? (\n <motion.span\n data-slot=\"progress-label\"\n className=\"text-primary-foreground absolute inset-0 flex items-center justify-center text-[10px] font-medium mix-blend-difference\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={shouldReduceMotion ? { duration: 0 } : SPRING_GENTLE}\n >\n {Math.round(percentage)}%\n </motion.span>\n ) : null}\n </AnimatePresence>\n </div>\n );\n }),\n);\n\nProgress.displayName = 'Progress';\n\nexport { Progress, progressIndicatorVariants, progressVariants };\nexport type { ProgressProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,MAAM,mBAAmB,IACvB;CAEE;CAEA;CAEA;CAEA;CAEA;CACD,EACD;CACE,UAAU;EAKR,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,OAAO;GACR;EAID,SAAS;GACP,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACd;EACF;CACD,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CACF,CACF;;;;;AAMD,MAAM,4BAA4B,IAChC,CAEE,uBACD,EACD;CACE,UAAU;EAIR,SAAS;GACP,SAAS,CAAC,cAAc,qBAAqB;GAC7C,SAAS,CAAC,cAAc,qBAAqB;GAC7C,SAAS,CAAC,cAAc,qBAAqB;GAC7C,aAAa,CAAC,kBAAkB,yBAAyB;GAC1D;EAID,WAAW;GACT,MAAM;GACN,eAAe;GACf,SACE;GACF,iBAAiB;IACf;IACA;IACA;IACD;GACF;EACF;CACD,iBAAiB;EACf,SAAS;EACT,WAAW;EACZ;CACF,CACF;;;;;;;;AA8BD,MAAM,WAAW,KACf,WAA0C,SAAS,SACjD,EACE,WACA,OACA,MAAM,KACN,MAAM,UACN,SACA,gBAAgB,OAChB,UAAU,OACV,WAAW,OACX,eACA,YAAY,OACZ,GAAG,SAEL,KACA;CAEA,MAAM,gBAAgB,cAAc,oBAAoB;CAExD,MAAM,qBAAqB,kBAAkB;CAG7C,MAAM,OAAO,cAAc;AACzB,MAAI,SAAU,QAAO;AACrB,SAAO,gBAAgB,OAAO;IAC7B,CAAC,UAAU,cAAc,CAAC;CAG7B,MAAM,gBAAgB,cAAc;AAClC,MAAI,iBAAiB,UAAU,QAAQ,UAAU,OAC/C,QAAO;AAET,SAAO,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,EAAE,IAAI;IACvC;EAAC;EAAO;EAAK;EAAc,CAAC;CAG/B,MAAM,aAAa,cAAc;AAC/B,MAAI,kBAAkB,KAAM,QAAO;AACnC,SAAQ,gBAAgB,MAAO;IAC9B,CAAC,eAAe,IAAI,CAAC;CAGxB,MAAM,iBAAiB,cACf,GAAG,iBAAiB;EAAE;EAAM;EAAS,CAAC,EAAE,UAAU,EACxD;EAAC;EAAM;EAAS;EAAU,CAC3B;CAGD,MAAM,gBAAgB,cAAc;AAClC,MAAI,cAAe,QAAO;AAC1B,MAAI,WAAW,SAAU,QAAO;AAChC,MAAI,QAAS,QAAO;AACpB,SAAO;IACN;EAAC;EAAe;EAAS;EAAS,CAAC;CAGtC,MAAM,qBAAqB,cACnB,0BAA0B;EAAE;EAAS,WAAW;EAAe,CAAC,EACtE,CAAC,SAAS,cAAc,CACzB;CAGD,MAAM,aAAa,cAAc;AAC/B,MAAI,kBAAkB,KAAM;AAC5B,MAAI,cAAe,QAAO,cAAc,eAAe,IAAI;AAC3D,SAAO,GAAG,KAAK,MAAM,cAAc,EAAE,CAAC;IACrC;EAAC;EAAe;EAAK;EAAY;EAAc,CAAC;CAGnD,MAAM,YAAY,cAAc;AAC9B,MAAI,cAAe,QAAO;AAC1B,MAAI,kBAAkB,IAAK,QAAO;AAClC,SAAO;IACN;EAAC;EAAe;EAAe;EAAI,CAAC;CAGvC,MAAM,eAAe,cAAc;AACjC,MAAI,mBAAoB,QAAO,EAAE,UAAU,GAAG;AAC9C,MAAI,cAAe,QAAO;AAC1B,MAAI,eAAe,QAAQ,aAAa,GAAI,QAAO;AACnD,SAAO;IACN;EAAC;EAAoB;EAAe;EAAW,CAAC;AAEnD,QACE,qBAAC;EACM;EACL,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,iBAAe,iBAAiB;EAChC,kBAAgB;EAChB,aAAU;EACV,cAAY;EACZ,gBAAc,iBAAkB,kBAAkB,QAAQ,gBAAgB;EAC1E,cAAY,iBAAiB;EAC7B,YAAU;EACV,WAAW;EACX,GAAI;aAEJ,oBAAC,OAAO;GACN,aAAU;GACV,WAAW;GACX,SAAS;GACT,SAAS,EACP,GAAG,iBAAiB,eAAe,OAAO,IAAI,GAAG,EAAE,MAAM,YAAY,IACtE;GACD,YAAY;IACZ,EACF,oBAAC,6BACE,aAAa,CAAC,iBAAiB,eAAe,OAC7C,qBAAC,OAAO;GACN,aAAU;GACV,WAAU;GACV,SAAS,EAAE,SAAS,GAAG;GACvB,SAAS,EAAE,SAAS,GAAG;GACvB,MAAM,EAAE,SAAS,GAAG;GACpB,YAAY,qBAAqB,EAAE,UAAU,GAAG,GAAG;cAElD,KAAK,MAAM,WAAW,EAAC;IACZ,GACZ,OACY;GACd;EAER,CACH;AAED,SAAS,cAAc"}