@flamingo-stack/openframe-frontend-core 0.0.518-1660.4292.1 → 0.0.518-1663.4312.1

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 (331) hide show
  1. package/dist/{chunk-7EFJJMNH.cjs → chunk-25JSVBPR.cjs} +7 -7
  2. package/dist/{chunk-7EFJJMNH.cjs.map → chunk-25JSVBPR.cjs.map} +1 -1
  3. package/dist/{chunk-NJADHL2G.cjs → chunk-3M2MFP2Y.cjs} +30 -2
  4. package/dist/chunk-3M2MFP2Y.cjs.map +1 -0
  5. package/dist/{chunk-QXUMLLYV.cjs → chunk-BQXHC336.cjs} +3 -3
  6. package/dist/{chunk-QXUMLLYV.cjs.map → chunk-BQXHC336.cjs.map} +1 -1
  7. package/dist/{chunk-66GH54DV.cjs → chunk-CHMQCXYO.cjs} +40 -40
  8. package/dist/{chunk-66GH54DV.cjs.map → chunk-CHMQCXYO.cjs.map} +1 -1
  9. package/dist/{chunk-RWYNJC2F.cjs → chunk-DN3GKQ47.cjs} +98 -98
  10. package/dist/{chunk-RWYNJC2F.cjs.map → chunk-DN3GKQ47.cjs.map} +1 -1
  11. package/dist/{chunk-O7L2VJDW.cjs → chunk-GH5YZSQQ.cjs} +12 -12
  12. package/dist/{chunk-O7L2VJDW.cjs.map → chunk-GH5YZSQQ.cjs.map} +1 -1
  13. package/dist/{chunk-XURRAFIB.js → chunk-GJAHN7LH.js} +404 -376
  14. package/dist/chunk-GJAHN7LH.js.map +1 -0
  15. package/dist/{chunk-FS3YSNSU.js → chunk-GS4HJA2G.js} +2 -2
  16. package/dist/{chunk-HIV2GIFP.cjs → chunk-GYONSC3U.cjs} +3 -3
  17. package/dist/{chunk-HIV2GIFP.cjs.map → chunk-GYONSC3U.cjs.map} +1 -1
  18. package/dist/{chunk-XURCARSX.cjs → chunk-I6IWT62M.cjs} +5 -5
  19. package/dist/{chunk-XURCARSX.cjs.map → chunk-I6IWT62M.cjs.map} +1 -1
  20. package/dist/{chunk-43ZZYJ3M.js → chunk-KRBH3PI4.js} +5 -5
  21. package/dist/{chunk-3LMOLDFT.cjs → chunk-KW7GDLSG.cjs} +14 -14
  22. package/dist/{chunk-3LMOLDFT.cjs.map → chunk-KW7GDLSG.cjs.map} +1 -1
  23. package/dist/{chunk-JLO2O5R4.js → chunk-LL4C2NXG.js} +5388 -5249
  24. package/dist/chunk-LL4C2NXG.js.map +1 -0
  25. package/dist/{chunk-DPFQWIZJ.cjs → chunk-LQ2R7IA2.cjs} +32 -32
  26. package/dist/{chunk-DPFQWIZJ.cjs.map → chunk-LQ2R7IA2.cjs.map} +1 -1
  27. package/dist/{chunk-P63LOLTB.js → chunk-MI7WNVWX.js} +6 -6
  28. package/dist/{chunk-BXRB4MQI.cjs → chunk-MKN6S7SU.cjs} +381 -242
  29. package/dist/chunk-MKN6S7SU.cjs.map +1 -0
  30. package/dist/{chunk-ZKVARGSO.js → chunk-MOZUJ7IN.js} +3 -3
  31. package/dist/{chunk-MIFJLUZK.js → chunk-MVY3WDFZ.js} +2 -2
  32. package/dist/{chunk-FXT2OZ5Q.js → chunk-NJJWY7SO.js} +3 -3
  33. package/dist/{chunk-H6K73RK2.cjs → chunk-O4XLTA5G.cjs} +40 -40
  34. package/dist/{chunk-H6K73RK2.cjs.map → chunk-O4XLTA5G.cjs.map} +1 -1
  35. package/dist/{chunk-MEXZZOBO.js → chunk-P6M5MN3L.js} +9 -9
  36. package/dist/{chunk-5KBQECAY.js → chunk-PUBL2NCH.js} +2 -2
  37. package/dist/{chunk-NBJ7L65H.js → chunk-PV3LXEHJ.js} +2 -2
  38. package/dist/{chunk-XZ6WTSVQ.js → chunk-QJHBYNHI.js} +6 -6
  39. package/dist/{chunk-Z3ADCYC5.js → chunk-RCBRCZUF.js} +2 -2
  40. package/dist/{chunk-KP4JRPUE.js → chunk-RJU7YCN3.js} +2 -2
  41. package/dist/{chunk-GA7BHFXD.cjs → chunk-RLVJISO4.cjs} +77 -77
  42. package/dist/{chunk-GA7BHFXD.cjs.map → chunk-RLVJISO4.cjs.map} +1 -1
  43. package/dist/{chunk-OGVIGAMZ.cjs → chunk-SXLEPNY2.cjs} +31 -31
  44. package/dist/{chunk-OGVIGAMZ.cjs.map → chunk-SXLEPNY2.cjs.map} +1 -1
  45. package/dist/{chunk-WI4XHZ2B.js → chunk-TFIPJAA5.js} +3 -3
  46. package/dist/{chunk-HPPCPGBR.cjs → chunk-URU6YKOA.cjs} +29 -29
  47. package/dist/{chunk-HPPCPGBR.cjs.map → chunk-URU6YKOA.cjs.map} +1 -1
  48. package/dist/{chunk-WSRPNLTY.cjs → chunk-WQDDSJWN.cjs} +18 -18
  49. package/dist/{chunk-WSRPNLTY.cjs.map → chunk-WQDDSJWN.cjs.map} +1 -1
  50. package/dist/{chunk-56OUH3UF.js → chunk-XARCNHWZ.js} +2 -2
  51. package/dist/{chunk-J7ZJ4KM2.cjs → chunk-YH627NWE.cjs} +4 -4
  52. package/dist/{chunk-J7ZJ4KM2.cjs.map → chunk-YH627NWE.cjs.map} +1 -1
  53. package/dist/{chunk-AI7WIW4E.js → chunk-YUQNJXSC.js} +4 -4
  54. package/dist/components/about-icon.d.ts +9 -0
  55. package/dist/components/about-icon.d.ts.map +1 -0
  56. package/dist/components/aspect-ratio.d.ts +4 -0
  57. package/dist/components/aspect-ratio.d.ts.map +1 -0
  58. package/dist/components/avatar.d.ts +7 -0
  59. package/dist/components/avatar.d.ts.map +1 -0
  60. package/dist/components/case-studies/index.cjs +14 -14
  61. package/dist/components/case-studies/index.js +4 -4
  62. package/dist/components/chart.d.ts +72 -0
  63. package/dist/components/chart.d.ts.map +1 -0
  64. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +7 -1
  65. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  66. package/dist/components/chat/index.cjs +6 -4
  67. package/dist/components/chat/index.cjs.map +1 -1
  68. package/dist/components/chat/index.js +5 -3
  69. package/dist/components/chat/types/api.types.d.ts +22 -4
  70. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  71. package/dist/components/check-circle-icon.d.ts +7 -0
  72. package/dist/components/check-circle-icon.d.ts.map +1 -0
  73. package/dist/components/checkbox.d.ts +5 -0
  74. package/dist/components/checkbox.d.ts.map +1 -0
  75. package/dist/components/claude-icon.d.ts +6 -0
  76. package/dist/components/claude-icon.d.ts.map +1 -0
  77. package/dist/components/coins-icon.d.ts +9 -0
  78. package/dist/components/coins-icon.d.ts.map +1 -0
  79. package/dist/components/command.d.ts +81 -0
  80. package/dist/components/command.d.ts.map +1 -0
  81. package/dist/components/community-hub-icon.d.ts +9 -0
  82. package/dist/components/community-hub-icon.d.ts.map +1 -0
  83. package/dist/components/community-icon.d.ts +9 -0
  84. package/dist/components/community-icon.d.ts.map +1 -0
  85. package/dist/components/compare-icon.d.ts +9 -0
  86. package/dist/components/compare-icon.d.ts.map +1 -0
  87. package/dist/components/contact/index.cjs +5 -5
  88. package/dist/components/contact/index.js +4 -4
  89. package/dist/components/context-menu.d.ts +28 -0
  90. package/dist/components/context-menu.d.ts.map +1 -0
  91. package/dist/components/custom-external-link-icon.d.ts +9 -0
  92. package/dist/components/custom-external-link-icon.d.ts.map +1 -0
  93. package/dist/components/custom-fork-icon.d.ts +9 -0
  94. package/dist/components/custom-fork-icon.d.ts.map +1 -0
  95. package/dist/components/custom-icons.d.ts +8 -0
  96. package/dist/components/custom-icons.d.ts.map +1 -0
  97. package/dist/components/custom-license-icon.d.ts +9 -0
  98. package/dist/components/custom-license-icon.d.ts.map +1 -0
  99. package/dist/components/custom-star-icon.d.ts +9 -0
  100. package/dist/components/custom-star-icon.d.ts.map +1 -0
  101. package/dist/components/custom-time-icon.d.ts +9 -0
  102. package/dist/components/custom-time-icon.d.ts.map +1 -0
  103. package/dist/components/docs/index.cjs +7 -7
  104. package/dist/components/docs/index.js +6 -6
  105. package/dist/components/donut-icon.d.ts +4 -0
  106. package/dist/components/donut-icon.d.ts.map +1 -0
  107. package/dist/components/edit-profile-icon.d.ts +7 -0
  108. package/dist/components/edit-profile-icon.d.ts.map +1 -0
  109. package/dist/components/elestio-logo.d.ts +9 -0
  110. package/dist/components/elestio-logo.d.ts.map +1 -0
  111. package/dist/components/embeds/index.cjs +5 -5
  112. package/dist/components/embeds/index.js +4 -4
  113. package/dist/components/empty-vendor-icon.d.ts +7 -0
  114. package/dist/components/empty-vendor-icon.d.ts.map +1 -0
  115. package/dist/components/faq/index.cjs +6 -6
  116. package/dist/components/faq/index.js +5 -5
  117. package/dist/components/features/index.cjs +4 -4
  118. package/dist/components/features/index.js +3 -3
  119. package/dist/components/features/provider-button.d.ts +1 -1
  120. package/dist/components/features/provider-button.d.ts.map +1 -1
  121. package/dist/components/flamingo-logo.d.ts +9 -0
  122. package/dist/components/flamingo-logo.d.ts.map +1 -0
  123. package/dist/components/form.d.ts +26 -0
  124. package/dist/components/form.d.ts.map +1 -0
  125. package/dist/components/github-icon.d.ts +9 -0
  126. package/dist/components/github-icon.d.ts.map +1 -0
  127. package/dist/components/google-logo.d.ts +5 -0
  128. package/dist/components/google-logo.d.ts.map +1 -0
  129. package/dist/components/hamburger-icon.d.ts +9 -0
  130. package/dist/components/hamburger-icon.d.ts.map +1 -0
  131. package/dist/components/help-center-pages/index.cjs +25 -25
  132. package/dist/components/help-center-pages/index.js +16 -16
  133. package/dist/components/hubspot-icon.d.ts +7 -0
  134. package/dist/components/hubspot-icon.d.ts.map +1 -0
  135. package/dist/components/icon-utils.d.ts +7 -0
  136. package/dist/components/icon-utils.d.ts.map +1 -0
  137. package/dist/components/icons/apple-icon.d.ts +10 -0
  138. package/dist/components/icons/apple-icon.d.ts.map +1 -0
  139. package/dist/components/icons/index.cjs +4 -2
  140. package/dist/components/icons/index.cjs.map +1 -1
  141. package/dist/components/icons/index.d.ts +1 -0
  142. package/dist/components/icons/index.d.ts.map +1 -1
  143. package/dist/components/icons/index.js +3 -1
  144. package/dist/components/index.cjs +222 -266
  145. package/dist/components/index.cjs.map +1 -1
  146. package/dist/components/index.js +374 -418
  147. package/dist/components/index.js.map +1 -1
  148. package/dist/components/interactive-wrapper.d.ts +84 -0
  149. package/dist/components/interactive-wrapper.d.ts.map +1 -0
  150. package/dist/components/join-waitlist-button-stub.d.ts +10 -0
  151. package/dist/components/join-waitlist-button-stub.d.ts.map +1 -0
  152. package/dist/components/made-with-love.d.ts.map +1 -1
  153. package/dist/components/meeting-scheduler/index.cjs +41 -41
  154. package/dist/components/meeting-scheduler/index.js +5 -5
  155. package/dist/components/menu-icon.d.ts +9 -0
  156. package/dist/components/menu-icon.d.ts.map +1 -0
  157. package/dist/components/minus-circle-icon.d.ts +7 -0
  158. package/dist/components/minus-circle-icon.d.ts.map +1 -0
  159. package/dist/components/moon-icon.d.ts +9 -0
  160. package/dist/components/moon-icon.d.ts.map +1 -0
  161. package/dist/components/ms-icon.d.ts +9 -0
  162. package/dist/components/ms-icon.d.ts.map +1 -0
  163. package/dist/components/navigation/index.cjs +4 -4
  164. package/dist/components/navigation/index.js +3 -3
  165. package/dist/components/onboarding-guides/index.cjs +8 -8
  166. package/dist/components/onboarding-guides/index.js +7 -7
  167. package/dist/components/open-source-features.d.ts +1 -1
  168. package/dist/components/open-source-features.d.ts.map +1 -1
  169. package/dist/components/open-source-icon.d.ts +9 -0
  170. package/dist/components/open-source-icon.d.ts.map +1 -0
  171. package/dist/components/openframe-logo.d.ts +7 -0
  172. package/dist/components/openframe-logo.d.ts.map +1 -0
  173. package/dist/components/openmsp-logo.d.ts +11 -0
  174. package/dist/components/openmsp-logo.d.ts.map +1 -0
  175. package/dist/components/plus-circle-icon.d.ts +9 -0
  176. package/dist/components/plus-circle-icon.d.ts.map +1 -0
  177. package/dist/components/progress.d.ts +7 -0
  178. package/dist/components/progress.d.ts.map +1 -0
  179. package/dist/components/provider-button.d.ts +10 -0
  180. package/dist/components/provider-button.d.ts.map +1 -0
  181. package/dist/components/reddit-icon.d.ts +10 -0
  182. package/dist/components/reddit-icon.d.ts.map +1 -0
  183. package/dist/components/related-content/index.cjs +6 -6
  184. package/dist/components/related-content/index.js +5 -5
  185. package/dist/components/resizable.d.ts +24 -0
  186. package/dist/components/resizable.d.ts.map +1 -0
  187. package/dist/components/scroll-area.d.ts +13 -0
  188. package/dist/components/scroll-area.d.ts.map +1 -0
  189. package/dist/components/send-icon.d.ts +7 -0
  190. package/dist/components/send-icon.d.ts.map +1 -0
  191. package/dist/components/separator.d.ts +5 -0
  192. package/dist/components/separator.d.ts.map +1 -0
  193. package/dist/components/skeleton.d.ts +4 -0
  194. package/dist/components/skeleton.d.ts.map +1 -0
  195. package/dist/components/slack-icon.d.ts +9 -0
  196. package/dist/components/slack-icon.d.ts.map +1 -0
  197. package/dist/components/slider.d.ts +5 -0
  198. package/dist/components/slider.d.ts.map +1 -0
  199. package/dist/components/smooth-accordion.d.ts +12 -0
  200. package/dist/components/smooth-accordion.d.ts.map +1 -0
  201. package/dist/components/steps.d.ts +17 -0
  202. package/dist/components/steps.d.ts.map +1 -0
  203. package/dist/components/sun-icon.d.ts +9 -0
  204. package/dist/components/sun-icon.d.ts.map +1 -0
  205. package/dist/components/switch.d.ts +5 -0
  206. package/dist/components/switch.d.ts.map +1 -0
  207. package/dist/components/textarea.d.ts +6 -0
  208. package/dist/components/textarea.d.ts.map +1 -0
  209. package/dist/components/tickets/index.cjs +8 -8
  210. package/dist/components/tickets/index.js +7 -7
  211. package/dist/components/ui/index.cjs +6 -4
  212. package/dist/components/ui/index.cjs.map +1 -1
  213. package/dist/components/ui/index.js +5 -3
  214. package/dist/components/ui/pagination-stub.d.ts +6 -0
  215. package/dist/components/ui/pagination-stub.d.ts.map +1 -0
  216. package/dist/components/ui/responsive-icons-block-stub.d.ts +7 -0
  217. package/dist/components/ui/responsive-icons-block-stub.d.ts.map +1 -0
  218. package/dist/components/user-icon.d.ts +9 -0
  219. package/dist/components/user-icon.d.ts.map +1 -0
  220. package/dist/components/vendor-directory-icon.d.ts +9 -0
  221. package/dist/components/vendor-directory-icon.d.ts.map +1 -0
  222. package/dist/components/vendors-icon.d.ts +9 -0
  223. package/dist/components/vendors-icon.d.ts.map +1 -0
  224. package/dist/components/why-it-matters.d.ts +1 -1
  225. package/dist/components/why-it-matters.d.ts.map +1 -1
  226. package/dist/components/x-icon.d.ts +9 -0
  227. package/dist/components/x-icon.d.ts.map +1 -0
  228. package/dist/components/x-logo.d.ts +7 -0
  229. package/dist/components/x-logo.d.ts.map +1 -0
  230. package/dist/hooks/index.cjs +3 -3
  231. package/dist/hooks/index.js +2 -2
  232. package/dist/index.cjs +8 -4
  233. package/dist/index.cjs.map +1 -1
  234. package/dist/index.js +7 -3
  235. package/package.json +1 -1
  236. package/src/components/about-icon.tsx +29 -0
  237. package/src/components/aspect-ratio.tsx +7 -0
  238. package/src/components/avatar.tsx +40 -0
  239. package/src/components/chart.tsx +364 -0
  240. package/src/components/chat/chat-container.tsx +1 -1
  241. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +11 -4
  242. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +71 -6
  243. package/src/components/chat/types/api.types.ts +22 -4
  244. package/src/components/chat/utils/__tests__/history-merge.test.ts +99 -0
  245. package/src/components/check-circle-icon.tsx +29 -0
  246. package/src/components/checkbox.tsx +30 -0
  247. package/src/components/claude-icon.tsx +24 -0
  248. package/src/components/coins-icon.tsx +29 -0
  249. package/src/components/command.tsx +153 -0
  250. package/src/components/community-hub-icon.tsx +27 -0
  251. package/src/components/community-icon.tsx +27 -0
  252. package/src/components/compare-icon.tsx +27 -0
  253. package/src/components/context-menu.tsx +200 -0
  254. package/src/components/custom-external-link-icon.tsx +33 -0
  255. package/src/components/custom-fork-icon.tsx +33 -0
  256. package/src/components/custom-icons.tsx +47 -0
  257. package/src/components/custom-license-icon.tsx +33 -0
  258. package/src/components/custom-star-icon.tsx +29 -0
  259. package/src/components/custom-time-icon.tsx +33 -0
  260. package/src/components/donut-icon.tsx +21 -0
  261. package/src/components/edit-profile-icon.tsx +23 -0
  262. package/src/components/elestio-logo.tsx +67 -0
  263. package/src/components/empty-vendor-icon.tsx +44 -0
  264. package/src/components/features/auth-providers-list.tsx +1 -1
  265. package/src/components/features/platform-badge.tsx +2 -2
  266. package/src/components/features/provider-button.tsx +6 -2
  267. package/src/components/flamingo-logo.tsx +27 -0
  268. package/src/components/form.tsx +138 -0
  269. package/src/components/github-icon.tsx +26 -0
  270. package/src/components/google-logo.tsx +32 -0
  271. package/src/components/hamburger-icon.tsx +29 -0
  272. package/src/components/hubspot-icon.tsx +20 -0
  273. package/src/components/icon-utils.tsx +36 -0
  274. package/src/components/icons/apple-icon.tsx +30 -0
  275. package/src/components/icons/index.ts +1 -0
  276. package/src/components/interactive-wrapper.tsx +336 -0
  277. package/src/components/join-waitlist-button-stub.tsx +30 -0
  278. package/src/components/loading/openmsp-heartbeat.tsx +1 -1
  279. package/src/components/made-with-love.tsx +3 -4
  280. package/src/components/menu-icon.tsx +22 -0
  281. package/src/components/minus-circle-icon.tsx +28 -0
  282. package/src/components/moon-icon.tsx +26 -0
  283. package/src/components/ms-icon.tsx +31 -0
  284. package/src/components/open-source-features.tsx +1 -1
  285. package/src/components/open-source-icon.tsx +27 -0
  286. package/src/components/openframe-logo.tsx +46 -0
  287. package/src/components/openmsp-logo.tsx +36 -0
  288. package/src/components/plus-circle-icon.tsx +30 -0
  289. package/src/components/progress.tsx +27 -0
  290. package/src/components/provider-button.tsx +40 -0
  291. package/src/components/reddit-icon.tsx +50 -0
  292. package/src/components/resizable.tsx +45 -0
  293. package/src/components/scroll-area.tsx +49 -0
  294. package/src/components/send-icon.tsx +26 -0
  295. package/src/components/separator.tsx +22 -0
  296. package/src/components/skeleton.tsx +8 -0
  297. package/src/components/slack-icon.tsx +43 -0
  298. package/src/components/slider.tsx +28 -0
  299. package/src/components/smooth-accordion.tsx +124 -0
  300. package/src/components/steps.tsx +98 -0
  301. package/src/components/sun-icon.tsx +27 -0
  302. package/src/components/switch.tsx +29 -0
  303. package/src/components/textarea.tsx +22 -0
  304. package/src/components/ui/pagination-stub.tsx +38 -0
  305. package/src/components/ui/responsive-icons-block-stub.tsx +14 -0
  306. package/src/components/user-icon.tsx +33 -0
  307. package/src/components/vendor-directory-icon.tsx +27 -0
  308. package/src/components/vendor-tag.tsx +1 -1
  309. package/src/components/vendors-icon.tsx +27 -0
  310. package/src/components/why-it-matters.tsx +1 -1
  311. package/src/components/x-icon.tsx +29 -0
  312. package/src/components/x-logo.tsx +22 -0
  313. package/dist/chunk-BXRB4MQI.cjs.map +0 -1
  314. package/dist/chunk-JLO2O5R4.js.map +0 -1
  315. package/dist/chunk-NJADHL2G.cjs.map +0 -1
  316. package/dist/chunk-XURRAFIB.js.map +0 -1
  317. /package/dist/{chunk-FS3YSNSU.js.map → chunk-GS4HJA2G.js.map} +0 -0
  318. /package/dist/{chunk-43ZZYJ3M.js.map → chunk-KRBH3PI4.js.map} +0 -0
  319. /package/dist/{chunk-P63LOLTB.js.map → chunk-MI7WNVWX.js.map} +0 -0
  320. /package/dist/{chunk-ZKVARGSO.js.map → chunk-MOZUJ7IN.js.map} +0 -0
  321. /package/dist/{chunk-MIFJLUZK.js.map → chunk-MVY3WDFZ.js.map} +0 -0
  322. /package/dist/{chunk-FXT2OZ5Q.js.map → chunk-NJJWY7SO.js.map} +0 -0
  323. /package/dist/{chunk-MEXZZOBO.js.map → chunk-P6M5MN3L.js.map} +0 -0
  324. /package/dist/{chunk-5KBQECAY.js.map → chunk-PUBL2NCH.js.map} +0 -0
  325. /package/dist/{chunk-NBJ7L65H.js.map → chunk-PV3LXEHJ.js.map} +0 -0
  326. /package/dist/{chunk-XZ6WTSVQ.js.map → chunk-QJHBYNHI.js.map} +0 -0
  327. /package/dist/{chunk-Z3ADCYC5.js.map → chunk-RCBRCZUF.js.map} +0 -0
  328. /package/dist/{chunk-KP4JRPUE.js.map → chunk-RJU7YCN3.js.map} +0 -0
  329. /package/dist/{chunk-WI4XHZ2B.js.map → chunk-TFIPJAA5.js.map} +0 -0
  330. /package/dist/{chunk-56OUH3UF.js.map → chunk-XARCNHWZ.js.map} +0 -0
  331. /package/dist/{chunk-AI7WIW4E.js.map → chunk-YUQNJXSC.js.map} +0 -0
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+
3
+ export const OpenFrameLogo = ({ className, lowerPathColor, upperPathColor, ...props }: { className?: string, lowerPathColor?: string, upperPathColor?: string } & React.SVGProps<SVGSVGElement>) => {
4
+ return (
5
+ <svg
6
+ {...props}
7
+ className={className}
8
+ width="32"
9
+ height="32"
10
+ viewBox="0 0 32 32"
11
+ fill="none"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ style={{
14
+ '--fill-0': 'currentColor',
15
+ ...props.style
16
+ } as React.CSSProperties}
17
+ >
18
+ <g>
19
+ <g>
20
+ {/* White squares - top right, bottom left, bottom right, bottom center */}
21
+ <path
22
+ d="M21.3333 16.5333C21.3333 16.2388 21.5721 16 21.8667 16H26.1333C26.4279 16 26.6667 16.2388 26.6667 16.5333V20.8C26.6667 21.0946 26.4279 21.3333 26.1333 21.3333H21.8667C21.5721 21.3333 21.3333 21.0946 21.3333 20.8V16.5333Z"
23
+ fill={lowerPathColor ?? '#ffffff'}
24
+ />
25
+ <path
26
+ d="M16 21.8667C16 21.5721 16.2388 21.3333 16.5333 21.3333H20.8C21.0946 21.3333 21.3333 21.5721 21.3333 21.8667V26.1333C21.3333 26.4279 21.0946 26.6667 20.8 26.6667H16.5333C16.2388 26.6667 16 26.4279 16 26.1333V21.8667Z"
27
+ fill={lowerPathColor ?? '#ffffff'}
28
+ />
29
+ <path
30
+ d="M26.6667 21.8667C26.6667 21.5721 26.9054 21.3333 27.2 21.3333H31.4667C31.7612 21.3333 32 21.5721 32 21.8667V26.1333C32 26.4279 31.7612 26.6667 31.4667 26.6667H27.2C26.9054 26.6667 26.6667 26.4279 26.6667 26.1333V21.8667Z"
31
+ fill={lowerPathColor ?? '#ffffff'}
32
+ />
33
+ <path
34
+ d="M21.3333 27.2C21.3333 26.9054 21.5721 26.6667 21.8667 26.6667H26.1333C26.4279 26.6667 26.6667 26.9054 26.6667 27.2V31.4667C26.6667 31.7612 26.4279 32 26.1333 32H21.8667C21.5721 32 21.3333 31.7612 21.3333 31.4667V27.2Z"
35
+ fill={lowerPathColor ?? '#ffffff'}
36
+ />
37
+ </g>
38
+ {/* Black frame/border */}
39
+ <path
40
+ d="M30.9333 0H1.06667C0.477563 0 0 0.477564 0 1.06667V30.9333C0 31.5224 0.477563 32 1.06667 32H14.9333C15.5224 32 16 31.5224 16 30.9333V27.7333C16 27.1442 15.5224 26.6667 14.9333 26.6667H5.86667C5.57211 26.6667 5.33333 26.4279 5.33333 26.1333V5.86667C5.33333 5.57211 5.57211 5.33333 5.86667 5.33333H26.1333C26.4279 5.33333 26.6667 5.57212 26.6667 5.86667V14.9333C26.6667 15.5224 27.1442 16 27.7333 16H30.9333C31.5224 16 32 15.5224 32 14.9333V1.06667C32 0.477563 31.5224 0 30.9333 0Z"
41
+ fill={upperPathColor ?? '#1A1A1A'}
42
+ />
43
+ </g>
44
+ </svg>
45
+ );
46
+ };
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+
3
+ interface OpenmspLogoProps extends React.SVGProps<SVGSVGElement> {
4
+ className?: string;
5
+ frontBubbleColor?: string;
6
+ innerFrontBubbleColor?: string;
7
+ backBubbleColor?: string;
8
+ color?: string;
9
+ }
10
+
11
+ export function OpenmspLogo({ className = '', frontBubbleColor = '#000000', innerFrontBubbleColor = '#ffffff', backBubbleColor = '#ffffff', ...props }: OpenmspLogoProps) {
12
+ return (
13
+ <svg
14
+ width="97"
15
+ height="96"
16
+ viewBox="0 0 97 96"
17
+ fill="none"
18
+ xmlns="http://www.w3.org/2000/svg"
19
+ className={className}
20
+ {...props}
21
+ >
22
+ <path
23
+ d="M73.933 0C75.7003 0 77.133 1.43269 77.133 3.2V54.4C77.133 56.1673 75.7003 57.6 73.933 57.6H3.53301C1.7657 57.6 0.333008 56.1673 0.333008 54.4V3.2C0.333008 1.43269 1.7657 0 3.53301 0H73.933ZM10.1076 47.6494C10.1076 48.0912 10.4658 48.4494 10.9076 48.4494H66.5584C67.0002 48.4494 67.3584 48.0912 67.3584 47.6494V9.95059C67.3584 9.50876 67.0002 9.15059 66.5584 9.15059H10.9076C10.4658 9.15059 10.1076 9.50876 10.1076 9.95059V47.6494Z"
24
+ fill={backBubbleColor} />
25
+ <path
26
+ d="M19.5332 22.4C19.5332 20.6326 20.9659 19.2 22.7332 19.2H93.1332C94.9005 19.2 96.3332 20.6326 96.3332 22.4V76.8C96.3332 78.2222 95.3945 79.4737 94.0292 79.8719L39.7572 95.7013C39.2452 95.8506 38.7332 95.4666 38.7332 94.9333V80C38.7332 79.5581 38.375 79.2 37.9332 79.2H22.7332C20.9659 79.2 19.5332 77.7673 19.5332 76V22.4Z"
27
+ fill={innerFrontBubbleColor} />
28
+ <path
29
+ d="M93.1332 19.2C94.9005 19.2 96.3332 20.6326 96.3332 22.4V76.8C96.3332 78.2222 95.3945 79.4737 94.0292 79.8719L39.7572 95.7013C39.2452 95.8506 38.7332 95.4666 38.7332 94.9333V80C38.7332 79.5581 38.375 79.2 37.9332 79.2H22.7332C20.9659 79.2 19.5332 77.7673 19.5332 76V22.4C19.5332 20.6326 20.9659 19.2 22.7332 19.2H93.1332ZM48.3377 82.1286C48.3355 82.6633 48.8484 83.0497 49.3617 82.9L86.1572 72.1672C86.4985 72.0676 86.7332 71.7547 86.7332 71.3992V29.6C86.7332 29.1581 86.375 28.8 85.9332 28.8H29.9332C29.4914 28.8 29.1332 29.1581 29.1332 29.6V68.8C29.1332 69.2418 29.4914 69.6 29.9332 69.6H47.5869C48.03 69.6 48.3887 69.9602 48.3869 70.4033L48.3377 82.1286Z"
30
+ fill={frontBubbleColor} />
31
+ <circle
32
+ cx="45.1334" cy="44.8" r="6.4"
33
+ fill={frontBubbleColor} />
34
+ </svg>
35
+ );
36
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react'
2
+
3
+ interface PlusCircleIconProps extends React.SVGProps<SVGSVGElement> {
4
+ className?: string
5
+ whiteOverlay?: boolean
6
+ iconSize?: number
7
+ }
8
+
9
+ export function PlusCircleIcon({ className, whiteOverlay = false, iconSize = 24, ...props }: PlusCircleIconProps) {
10
+ return (
11
+ <svg
12
+ width={iconSize}
13
+ height={iconSize}
14
+ viewBox="0 0 24 24"
15
+ fill="none"
16
+ xmlns="http://www.w3.org/2000/svg"
17
+ className={className}
18
+ {...props}
19
+ >
20
+ <path
21
+ d="M20.8745 12.0005C20.8745 7.09912 16.9018 3.12526 12.0005 3.125C7.09896 3.125 3.125 7.09896 3.125 12.0005C3.12526 16.9018 7.09912 20.8745 12.0005 20.8745C16.9016 20.8742 20.8742 16.9016 20.8745 12.0005ZM23.1245 12.0005C23.1242 18.1443 18.1443 23.1242 12.0005 23.1245C5.85648 23.1245 0.875264 18.1444 0.875 12.0005C0.875 5.85632 5.85632 0.875 12.0005 0.875C18.1444 0.875264 23.1245 5.85648 23.1245 12.0005Z"
22
+ fill={whiteOverlay ? "white" : "#5EA62E"}
23
+ />
24
+ <path
25
+ d="M10.8755 15.9995V13.1255H8C7.37884 13.1255 6.87526 12.6216 6.875 12.0005C6.875 11.3792 7.37868 10.8755 8 10.8755H10.8755V8C10.8755 7.37868 11.3792 6.875 12.0005 6.875C12.6216 6.87526 13.1255 7.37884 13.1255 8V10.8755H15.9995L16.1152 10.8813C16.6824 10.9391 17.1245 11.4181 17.1245 12.0005C17.1243 12.5827 16.6823 13.062 16.1152 13.1196L15.9995 13.1255H13.1255V15.9995C13.1255 16.6207 12.6216 17.1242 12.0005 17.1245C11.3792 17.1245 10.8755 16.6208 10.8755 15.9995Z"
26
+ fill={whiteOverlay ? "white" : "#5EA62E"}
27
+ />
28
+ </svg>
29
+ )
30
+ }
@@ -0,0 +1,27 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as ProgressPrimitive from "@radix-ui/react-progress"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ const Progress = React.forwardRef<
9
+ React.ElementRef<typeof ProgressPrimitive.Root>,
10
+ React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> & {
11
+ indicatorClassName?: string
12
+ }
13
+ >(({ className, value, indicatorClassName, ...props }, ref) => (
14
+ <ProgressPrimitive.Root
15
+ ref={ref}
16
+ className={cn("relative h-2 w-full overflow-hidden rounded-full bg-secondary", className)}
17
+ {...props}
18
+ >
19
+ <ProgressPrimitive.Indicator
20
+ className={cn("h-full w-full flex-1 bg-primary transition-all", indicatorClassName)}
21
+ style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
22
+ />
23
+ </ProgressPrimitive.Root>
24
+ ))
25
+ Progress.displayName = ProgressPrimitive.Root.displayName
26
+
27
+ export { Progress }
@@ -0,0 +1,40 @@
1
+ import * as React from "react"
2
+ import { Button } from "./ui/button"
3
+ import { cn } from "../utils/cn"
4
+
5
+ interface ProviderButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
6
+ provider: 'google' | 'microsoft' | 'slack' | 'github' | 'apple';
7
+ variant?: 'accent' | 'outline';
8
+ size?: 'default' | 'small-legacy';
9
+ loading?: boolean;
10
+ }
11
+
12
+ const ProviderButton = React.forwardRef<HTMLButtonElement, ProviderButtonProps>(
13
+ ({ className, provider, variant = 'outline', size = 'default', children, ...props }, ref) => {
14
+ const providerNames = {
15
+ google: 'Google',
16
+ microsoft: 'Microsoft',
17
+ slack: 'Slack',
18
+ github: 'GitHub',
19
+ apple: 'Apple'
20
+ };
21
+
22
+ return (
23
+ <Button
24
+ className={cn(
25
+ "w-full",
26
+ className
27
+ )}
28
+ variant={variant}
29
+ size={size}
30
+ ref={ref}
31
+ {...props}
32
+ >
33
+ {children || `Sign in with ${providerNames[provider]}`}
34
+ </Button>
35
+ )
36
+ }
37
+ )
38
+ ProviderButton.displayName = "ProviderButton"
39
+
40
+ export { ProviderButton }
@@ -0,0 +1,50 @@
1
+ import React from 'react'
2
+
3
+ interface RedditIconProps {
4
+ width?: number | string
5
+ height?: number | string
6
+ className?: string
7
+ variant?: 'original' | 'grayscale' | 'white'
8
+ }
9
+
10
+ export function RedditIcon({
11
+ width = 24,
12
+ height = 24,
13
+ className = "text-current",
14
+ variant = 'grayscale'
15
+ }: RedditIconProps) {
16
+ // Color scheme based on variant
17
+ let colors;
18
+ switch (variant) {
19
+ case 'original':
20
+ colors = {
21
+ background: '#FF4500' // White features
22
+ };
23
+ break;
24
+ case 'white':
25
+ colors = {
26
+ background: '#FFFFFF' // Black features
27
+ };
28
+ break;
29
+ default: // grayscale
30
+ colors = {
31
+ background: '#888888' // Light gray features
32
+ };
33
+ break;
34
+ }
35
+
36
+ return (
37
+ <svg
38
+ width={width}
39
+ height={height}
40
+ viewBox="0 0 256 256"
41
+ xmlns="http://www.w3.org/2000/svg"
42
+ className={className}
43
+ >
44
+ <path
45
+ fill={colors.background}
46
+ d="M248,104a31.99228,31.99228,0,0,0-52.9375-24.19043c-16.75439-8.90112-36.76172-14.279-57.666-15.52539l5.19581-31.17578,21.83105,3.3584a24.00409,24.00409,0,1,0,2.43506-15.814l-29.64209-4.56006a7.996,7.996,0,0,0-9.10742,6.5918l-6.91309,41.478c-21.83887.94165-42.813,6.37891-60.2583,15.647a31.99266,31.99266,0,0,0-42.59229,47.74024A59.04669,59.04669,0,0,0,16,144c0,21.93457,12.042,42.35156,33.90723,57.48926C70.875,216.00588,98.60938,224,128,224s57.125-7.99414,78.09277-22.51074C227.958,186.35158,240,165.93459,240,144a59.01726,59.01726,0,0,0-2.3457-16.44922A32.17163,32.17163,0,0,0,248,104ZM72,132a16,16,0,1,1,16,16A16.01833,16.01833,0,0,1,72,132Zm92.69629,51.10938a80.122,80.122,0,0,1-73.39209,0,8,8,0,0,1,7.34033-14.2168,64.09433,64.09433,0,0,0,58.71094,0,8.00008,8.00008,0,0,1,7.34082,14.2168ZM168,148a16,16,0,1,1,16-16A16.01833,16.01833,0,0,1,168,148Z"
47
+ />
48
+ </svg>
49
+ )
50
+ }
@@ -0,0 +1,45 @@
1
+ "use client"
2
+
3
+ import { GripVertical } from "lucide-react"
4
+ import * as ResizablePrimitive from "react-resizable-panels"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ const ResizablePanelGroup = ({
9
+ className,
10
+ ...props
11
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (
12
+ <ResizablePrimitive.PanelGroup
13
+ className={cn(
14
+ "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
15
+ className
16
+ )}
17
+ {...props}
18
+ />
19
+ )
20
+
21
+ const ResizablePanel = ResizablePrimitive.Panel
22
+
23
+ const ResizableHandle = ({
24
+ withHandle,
25
+ className,
26
+ ...props
27
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
28
+ withHandle?: boolean
29
+ }) => (
30
+ <ResizablePrimitive.PanelResizeHandle
31
+ className={cn(
32
+ "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
33
+ className
34
+ )}
35
+ {...props}
36
+ >
37
+ {withHandle && (
38
+ <div className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
39
+ <GripVertical className="h-2.5 w-2.5" />
40
+ </div>
41
+ )}
42
+ </ResizablePrimitive.PanelResizeHandle>
43
+ )
44
+
45
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle }
@@ -0,0 +1,49 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ interface ScrollAreaProps extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {
9
+ /**
10
+ * When set to true, the custom Radix scrollbars will be rendered. Defaults to `false` so that
11
+ * scrollbars remain hidden in accordance with the global requirement to remove scrollbars.
12
+ */
13
+ showScrollbar?: boolean
14
+ }
15
+
16
+ const ScrollArea = React.forwardRef<
17
+ React.ElementRef<typeof ScrollAreaPrimitive.Root>,
18
+ ScrollAreaProps
19
+ >(({ className, children, showScrollbar = false, ...props }, ref) => (
20
+ <ScrollAreaPrimitive.Root ref={ref} className={cn("relative overflow-hidden", className)} {...props}>
21
+ <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">{children}</ScrollAreaPrimitive.Viewport>
22
+ {showScrollbar && <ScrollBar />}
23
+ {/* The corner element is only useful when scrollbars are visible */}
24
+ {showScrollbar && <ScrollAreaPrimitive.Corner />}
25
+ </ScrollAreaPrimitive.Root>
26
+ ))
27
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName
28
+
29
+ const ScrollBar = React.forwardRef<
30
+ React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
31
+ React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>
32
+ >(({ className, orientation = "vertical", ...props }, ref) => (
33
+ <ScrollAreaPrimitive.ScrollAreaScrollbar
34
+ ref={ref}
35
+ orientation={orientation}
36
+ className={cn(
37
+ "flex touch-none select-none transition-colors",
38
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
39
+ orientation === "horizontal" && "h-2.5 border-t border-t-transparent p-[1px]",
40
+ className,
41
+ )}
42
+ {...props}
43
+ >
44
+ <ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
45
+ </ScrollAreaPrimitive.ScrollAreaScrollbar>
46
+ ))
47
+ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName
48
+
49
+ export { ScrollArea, ScrollBar }
@@ -0,0 +1,26 @@
1
+ interface SendIconProps {
2
+ className?: string;
3
+ fill?: string;
4
+ }
5
+
6
+ export function SendIcon({ className = "w-6 h-6", fill = "#1A1A1A" }: SendIconProps) {
7
+ return (
8
+ <svg
9
+ width="24"
10
+ height="24"
11
+ viewBox="0 0 24 24"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ className={className}
15
+ >
16
+ <path
17
+ d="M11.1554 14.4487C10.7164 14.888 10.0042 14.8891 9.56462 14.4501C9.12509 14.0111 9.12563 13.2989 9.56462 12.8593L11.1554 14.4487ZM15.1164 7.29875C15.5555 6.85958 16.2677 6.85988 16.7072 7.29875C17.1463 7.73779 17.1474 8.45008 16.7087 8.88957L11.1554 14.4487L9.56462 12.8593L15.1164 7.29875Z"
18
+ fill={fill}
19
+ />
20
+ <path
21
+ d="M19.0798 1.00652C21.4022 0.313771 23.5637 2.39031 23.0495 4.69646L22.9909 4.92058L18.2463 20.8742C17.4793 23.4519 14.0415 23.9417 12.5876 21.6769L10.7946 18.8849L7.54411 19.2116C6.28619 19.3373 5.19768 18.3477 5.19743 17.0861V13.3039L2.30583 11.4216C0.0601315 9.95982 0.552303 6.53369 3.12175 5.76726L19.0798 1.00652ZM7.44743 16.9587L10.9499 16.6086L11.1769 16.6012C11.6288 16.6191 12.0528 16.8255 12.3473 17.1681L12.4836 17.3498L14.4816 20.4611C14.8944 21.1041 15.8696 20.9675 16.0885 20.2326L20.8346 4.27898L20.8639 4.15154C20.9597 3.51747 20.3581 2.97326 19.7228 3.16277L3.76482 7.92351C3.03514 8.14117 2.8919 9.11753 3.53191 9.53484L6.70622 11.6017L6.87175 11.7233C7.23484 12.031 7.44743 12.4862 7.44743 12.9684V16.9587Z"
22
+ fill={fill}
23
+ />
24
+ </svg>
25
+ );
26
+ }
@@ -0,0 +1,22 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as SeparatorPrimitive from "@radix-ui/react-separator"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ const Separator = React.forwardRef<
9
+ React.ElementRef<typeof SeparatorPrimitive.Root>,
10
+ React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>
11
+ >(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (
12
+ <SeparatorPrimitive.Root
13
+ ref={ref}
14
+ decorative={decorative}
15
+ orientation={orientation}
16
+ className={cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className)}
17
+ {...props}
18
+ />
19
+ ))
20
+ Separator.displayName = SeparatorPrimitive.Root.displayName
21
+
22
+ export { Separator }
@@ -0,0 +1,8 @@
1
+ import type React from "react"
2
+ import { cn } from "../utils/cn"
3
+
4
+ function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
5
+ return <div className={cn("animate-pulse rounded-md bg-muted/60", className)} {...props} />
6
+ }
7
+
8
+ export { Skeleton }
@@ -0,0 +1,43 @@
1
+ import React from 'react'
2
+
3
+ interface SlackIconProps {
4
+ width?: number | string
5
+ height?: number | string
6
+ className?: string
7
+ }
8
+
9
+ export function SlackIcon({
10
+ width = 24,
11
+ height = 24,
12
+ className = "text-current"
13
+ }: SlackIconProps) {
14
+ return (
15
+ <svg
16
+ width={width}
17
+ height={height}
18
+ viewBox="0 0 24 24"
19
+ fill="none"
20
+ xmlns="http://www.w3.org/2000/svg"
21
+ className={className}
22
+ >
23
+ <g>
24
+ <path
25
+ d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313z"
26
+ fill="#E01E5A"
27
+ />
28
+ <path
29
+ d="M8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312z"
30
+ fill="#36C5F0"
31
+ />
32
+ <path
33
+ d="M18.956 8.834a2.528 2.528 0 0 1 2.521-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.523 2.521h-2.521V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312z"
34
+ fill="#2EB67D"
35
+ />
36
+ <path
37
+ d="M15.165 18.956a2.528 2.528 0 0 1 2.523 2.521A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.523v-2.521h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.528 2.528 0 0 1 2.52-2.521h6.313A2.528 2.528 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"
38
+ fill="#ECB22E"
39
+ />
40
+ </g>
41
+ </svg>
42
+ )
43
+ }
@@ -0,0 +1,28 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as SliderPrimitive from "@radix-ui/react-slider"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ const Slider = React.forwardRef<
9
+ React.ElementRef<typeof SliderPrimitive.Root>,
10
+ React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>
11
+ >(({ className, ...props }, ref) => (
12
+ <SliderPrimitive.Root
13
+ ref={ref}
14
+ className={cn(
15
+ "relative flex w-full touch-none select-none items-center",
16
+ className
17
+ )}
18
+ {...props}
19
+ >
20
+ <SliderPrimitive.Track className="relative h-2 w-full grow overflow-hidden rounded-full bg-secondary">
21
+ <SliderPrimitive.Range className="absolute h-full bg-primary" />
22
+ </SliderPrimitive.Track>
23
+ <SliderPrimitive.Thumb className="block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" />
24
+ </SliderPrimitive.Root>
25
+ ))
26
+ Slider.displayName = SliderPrimitive.Root.displayName
27
+
28
+ export { Slider }
@@ -0,0 +1,124 @@
1
+ import * as React from 'react';
2
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
+ import { ChevronButton } from './ui/chevron-button';
4
+ import { cn } from "../utils/cn";
5
+
6
+ // --- SmoothAccordion -----------------------------------------------------------------
7
+ // Wrapper that re-exports AccordionPrimitive.Root for convenience
8
+ export const SmoothAccordion = AccordionPrimitive.Root;
9
+
10
+ // --- SmoothAccordionItem --------------------------------------------------------------
11
+ export const SmoothAccordionItem = React.forwardRef<
12
+ React.ElementRef<typeof AccordionPrimitive.Item>,
13
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
14
+ >(({ className, ...props }, ref) => (
15
+ <AccordionPrimitive.Item
16
+ ref={ref}
17
+ className={cn('border-0', className)}
18
+ {...props}
19
+ />
20
+ ));
21
+ SmoothAccordionItem.displayName = 'SmoothAccordionItem';
22
+
23
+ // --- SmoothAccordionTrigger -----------------------------------------------------------
24
+ interface SmoothAccordionTriggerProps
25
+ extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {
26
+ label: React.ReactNode;
27
+ className?: string;
28
+ }
29
+
30
+ export const SmoothAccordionTrigger = React.forwardRef<
31
+ HTMLButtonElement,
32
+ SmoothAccordionTriggerProps
33
+ >(({ label, className, ...props }, ref) => (
34
+ <AccordionPrimitive.Header className="flex">
35
+ <AccordionPrimitive.Trigger
36
+ ref={ref}
37
+ className={cn(
38
+ 'group flex w-full items-center justify-between px-6 md:px-8 py-6 text-left hover:no-underline focus:outline-none transition-colors duration-200 ease-in-out',
39
+ className,
40
+ )}
41
+ {...props}
42
+ >
43
+ <span className="text-h3 text-ods-text-primary">
44
+ {label}
45
+ </span>
46
+ <ChevronButton
47
+ size="md"
48
+ isExpanded={false}
49
+ backgroundColor="transparent"
50
+ borderColor="var(--color-border-default)"
51
+ className="transition-transform duration-300 ease-in-out group-data-[state=open]:rotate-180"
52
+ />
53
+ </AccordionPrimitive.Trigger>
54
+ </AccordionPrimitive.Header>
55
+ ));
56
+ SmoothAccordionTrigger.displayName = 'SmoothAccordionTrigger';
57
+
58
+ // --- SmoothAccordionContent -----------------------------------------------------------
59
+ // Uses dynamic height measurement with ResizeObserver for ultra-smooth animation.
60
+ export const SmoothAccordionContent = React.forwardRef<
61
+ HTMLDivElement,
62
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
63
+ >(({ className, children, ...props }, ref) => {
64
+ const [maxHeight, setMaxHeight] = React.useState<number>(0);
65
+ const contentInnerRef = React.useRef<HTMLDivElement | null>(null);
66
+
67
+ const composedRef = (node: HTMLDivElement) => {
68
+ // Allow Radix to receive ref as well
69
+ if (typeof ref === 'function') ref(node);
70
+ else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;
71
+ contentInnerRef.current = node;
72
+ };
73
+
74
+ const updateHeight = React.useCallback(() => {
75
+ if (contentInnerRef.current) {
76
+ setMaxHeight(contentInnerRef.current.scrollHeight);
77
+ }
78
+ }, []);
79
+
80
+ React.useEffect(() => {
81
+ updateHeight();
82
+ }, [updateHeight, children]);
83
+
84
+ // ResizeObserver for dynamic content
85
+ React.useEffect(() => {
86
+ if (!contentInnerRef.current) return;
87
+ const ro = new ResizeObserver(updateHeight);
88
+ ro.observe(contentInnerRef.current);
89
+ return () => ro.disconnect();
90
+ }, [updateHeight]);
91
+
92
+ const isOpen = (props as any)["data-state"] === "open";
93
+
94
+ return (
95
+ <AccordionPrimitive.Content
96
+ ref={composedRef}
97
+ // Radix provides data-state attribute for open/closed
98
+ className={cn('overflow-hidden', className)}
99
+ style={{
100
+ transition: 'max-height 0.35s ease-in-out, opacity 0.35s ease-in-out',
101
+ maxHeight: isOpen ? `${maxHeight}px` : '0px',
102
+ opacity: isOpen ? 1 : 0,
103
+ }}
104
+ {...props}
105
+ onTransitionEnd={() => {
106
+ // After closing, reset maxHeight to avoid lingering space
107
+ if (!isOpen) {
108
+ setMaxHeight(0);
109
+ }
110
+ }}
111
+ >
112
+ <div
113
+ // inner wrapper used for measurement
114
+ style={{
115
+ opacity: 1,
116
+ paddingBottom: '0.75rem', // keep default styling to match existing
117
+ }}
118
+ >
119
+ {children}
120
+ </div>
121
+ </AccordionPrimitive.Content>
122
+ );
123
+ });
124
+ SmoothAccordionContent.displayName = 'SmoothAccordionContent';