@mieweb/ui 0.2.2 → 0.3.0-dev.100

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 (420) hide show
  1. package/README.md +17 -0
  2. package/dist/ag-grid.cjs +37 -26
  3. package/dist/ag-grid.cjs.map +1 -1
  4. package/dist/ag-grid.js +33 -22
  5. package/dist/ag-grid.js.map +1 -1
  6. package/dist/brands/bluehive.cjs +3 -3
  7. package/dist/brands/bluehive.css +5 -5
  8. package/dist/brands/bluehive.js +1 -1
  9. package/dist/brands/index.cjs +29 -29
  10. package/dist/brands/index.js +8 -8
  11. package/dist/brands/mieweb.css +5 -5
  12. package/dist/brands/ozwell.cjs +2 -2
  13. package/dist/brands/ozwell.css +5 -5
  14. package/dist/brands/ozwell.js +1 -1
  15. package/dist/brands/types.cjs +4 -4
  16. package/dist/brands/types.d.cts +14 -8
  17. package/dist/brands/types.d.ts +14 -8
  18. package/dist/brands/types.js +1 -1
  19. package/dist/brands/waggleline.css +1 -1
  20. package/dist/brands/webchart.css +5 -5
  21. package/dist/{chunk-QDGZBDBI.cjs → chunk-2LF7PSSX.cjs} +3 -3
  22. package/dist/{chunk-QDGZBDBI.cjs.map → chunk-2LF7PSSX.cjs.map} +1 -1
  23. package/dist/{chunk-OWPWP46L.js → chunk-2NTYAALC.js} +3 -3
  24. package/dist/{chunk-OWPWP46L.js.map → chunk-2NTYAALC.js.map} +1 -1
  25. package/dist/{chunk-NAATBUHR.cjs → chunk-2VCAWAPC.cjs} +45 -20
  26. package/dist/chunk-2VCAWAPC.cjs.map +1 -0
  27. package/dist/{chunk-N3QTYHRZ.cjs → chunk-3GGET5LK.cjs} +40 -22
  28. package/dist/chunk-3GGET5LK.cjs.map +1 -0
  29. package/dist/{chunk-QL2YTVTR.js → chunk-43GBCUSQ.js} +8 -3
  30. package/dist/chunk-43GBCUSQ.js.map +1 -0
  31. package/dist/chunk-4DMZAVB2.js +334 -0
  32. package/dist/chunk-4DMZAVB2.js.map +1 -0
  33. package/dist/{chunk-EKIQE524.cjs → chunk-4FALCEJI.cjs} +3 -2
  34. package/dist/chunk-4FALCEJI.cjs.map +1 -0
  35. package/dist/chunk-4O3WJY4C.cjs +615 -0
  36. package/dist/chunk-4O3WJY4C.cjs.map +1 -0
  37. package/dist/{chunk-6OCIIIAI.js → chunk-4Z6ZZKIY.js} +40 -22
  38. package/dist/chunk-4Z6ZZKIY.js.map +1 -0
  39. package/dist/{chunk-QUA7WVHK.cjs → chunk-4ZU53GNR.cjs} +6 -14
  40. package/dist/{chunk-QUA7WVHK.cjs.map → chunk-4ZU53GNR.cjs.map} +1 -1
  41. package/dist/{chunk-S6UNPMAS.cjs → chunk-66S4PT6C.cjs} +3 -3
  42. package/dist/{chunk-S6UNPMAS.cjs.map → chunk-66S4PT6C.cjs.map} +1 -1
  43. package/dist/{chunk-4AWW5WPF.js → chunk-6LFG4JFF.js} +51 -24
  44. package/dist/chunk-6LFG4JFF.js.map +1 -0
  45. package/dist/chunk-7BARESXI.cjs +353 -0
  46. package/dist/chunk-7BARESXI.cjs.map +1 -0
  47. package/dist/{chunk-PEH4ZOEM.cjs → chunk-A2QVQF54.cjs} +12 -6
  48. package/dist/chunk-A2QVQF54.cjs.map +1 -0
  49. package/dist/{chunk-I7L6CQXR.cjs → chunk-AWUADXYI.cjs} +58 -31
  50. package/dist/chunk-AWUADXYI.cjs.map +1 -0
  51. package/dist/{chunk-PEFJAWNR.cjs → chunk-BWYYA3LQ.cjs} +26 -10
  52. package/dist/chunk-BWYYA3LQ.cjs.map +1 -0
  53. package/dist/chunk-C4QQAUYN.js +588 -0
  54. package/dist/chunk-C4QQAUYN.js.map +1 -0
  55. package/dist/chunk-CJQXWFIW.js +829 -0
  56. package/dist/chunk-CJQXWFIW.js.map +1 -0
  57. package/dist/{chunk-KWDTTGH2.js → chunk-CVF4HRWL.js} +5 -5
  58. package/dist/{chunk-KWDTTGH2.js.map → chunk-CVF4HRWL.js.map} +1 -1
  59. package/dist/{chunk-WH6I7CMP.cjs → chunk-CW75IKA6.cjs} +27 -2
  60. package/dist/chunk-CW75IKA6.cjs.map +1 -0
  61. package/dist/{chunk-3NJ72QU6.js → chunk-DCER2QQB.js} +3 -2
  62. package/dist/chunk-DCER2QQB.js.map +1 -0
  63. package/dist/{chunk-JYMQJ32S.cjs → chunk-DEZ7XSTG.cjs} +9 -5
  64. package/dist/chunk-DEZ7XSTG.cjs.map +1 -0
  65. package/dist/{chunk-QYJ7RQJ2.cjs → chunk-DFCZPVG4.cjs} +84 -38
  66. package/dist/chunk-DFCZPVG4.cjs.map +1 -0
  67. package/dist/{chunk-AWIULTJW.js → chunk-DNPRRYPQ.js} +18 -3
  68. package/dist/chunk-DNPRRYPQ.js.map +1 -0
  69. package/dist/{chunk-SSKI6VTW.cjs → chunk-E35GUUTC.cjs} +23 -4
  70. package/dist/chunk-E35GUUTC.cjs.map +1 -0
  71. package/dist/{chunk-B5364UWR.cjs → chunk-EAXY5X33.cjs} +6 -6
  72. package/dist/{chunk-B5364UWR.cjs.map → chunk-EAXY5X33.cjs.map} +1 -1
  73. package/dist/{chunk-53K3KWXQ.cjs → chunk-EUUQVDXX.cjs} +168 -138
  74. package/dist/chunk-EUUQVDXX.cjs.map +1 -0
  75. package/dist/{chunk-5UUL5EEO.cjs → chunk-FRT6RQND.cjs} +181 -128
  76. package/dist/chunk-FRT6RQND.cjs.map +1 -0
  77. package/dist/{chunk-R4DM4635.cjs → chunk-FSBFQBNE.cjs} +86 -2
  78. package/dist/chunk-FSBFQBNE.cjs.map +1 -0
  79. package/dist/{chunk-6Q4SU72T.js → chunk-FYEK4RZ3.js} +50 -11
  80. package/dist/chunk-FYEK4RZ3.js.map +1 -0
  81. package/dist/{chunk-UZUBLXVC.js → chunk-FZJBFJJR.js} +3 -2
  82. package/dist/chunk-FZJBFJJR.js.map +1 -0
  83. package/dist/{chunk-UHSPAFY6.js → chunk-GFZNSSSN.js} +3 -3
  84. package/dist/{chunk-UHSPAFY6.js.map → chunk-GFZNSSSN.js.map} +1 -1
  85. package/dist/chunk-GOKC4CCZ.cjs +384 -0
  86. package/dist/chunk-GOKC4CCZ.cjs.map +1 -0
  87. package/dist/{chunk-Z3TFPXVN.cjs → chunk-GXQFRLTN.cjs} +3 -3
  88. package/dist/{chunk-Z3TFPXVN.cjs.map → chunk-GXQFRLTN.cjs.map} +1 -1
  89. package/dist/{chunk-B3L43JGH.js → chunk-HEH3QXOQ.js} +26 -10
  90. package/dist/chunk-HEH3QXOQ.js.map +1 -0
  91. package/dist/{chunk-TA6FVVCM.js → chunk-I56VBDSC.js} +3 -3
  92. package/dist/{chunk-TA6FVVCM.js.map → chunk-I56VBDSC.js.map} +1 -1
  93. package/dist/{chunk-4DJNHPHB.js → chunk-IGWABMSM.js} +3 -3
  94. package/dist/{chunk-4DJNHPHB.js.map → chunk-IGWABMSM.js.map} +1 -1
  95. package/dist/{chunk-SWMRCGL4.cjs → chunk-IKMR2ADM.cjs} +5 -4
  96. package/dist/chunk-IKMR2ADM.cjs.map +1 -0
  97. package/dist/{chunk-HRA4FUO6.cjs → chunk-IWU7H3YS.cjs} +79 -52
  98. package/dist/chunk-IWU7H3YS.cjs.map +1 -0
  99. package/dist/{chunk-ONWOB76P.js → chunk-J3BU3JBX.js} +33 -14
  100. package/dist/chunk-J3BU3JBX.js.map +1 -0
  101. package/dist/{chunk-FFJVCQ5R.cjs → chunk-J644FU54.cjs} +49 -19
  102. package/dist/chunk-J644FU54.cjs.map +1 -0
  103. package/dist/chunk-JBB25LFB.js +359 -0
  104. package/dist/chunk-JBB25LFB.js.map +1 -0
  105. package/dist/{chunk-VDMQCSXT.cjs → chunk-JHPFOG2N.cjs} +4 -4
  106. package/dist/{chunk-VDMQCSXT.cjs.map → chunk-JHPFOG2N.cjs.map} +1 -1
  107. package/dist/{chunk-RYQ5NEKH.js → chunk-JV7UJGBM.js} +6 -6
  108. package/dist/{chunk-RYQ5NEKH.js.map → chunk-JV7UJGBM.js.map} +1 -1
  109. package/dist/{chunk-C6MDPPPL.js → chunk-JW5GWKV7.js} +3 -3
  110. package/dist/{chunk-C6MDPPPL.js.map → chunk-JW5GWKV7.js.map} +1 -1
  111. package/dist/{chunk-XXOBTAKA.js → chunk-JWUVVPKM.js} +79 -52
  112. package/dist/chunk-JWUVVPKM.js.map +1 -0
  113. package/dist/{chunk-EYH7OUX5.js → chunk-JYAWYBA3.js} +23 -4
  114. package/dist/chunk-JYAWYBA3.js.map +1 -0
  115. package/dist/{chunk-5T3AWNHG.cjs → chunk-K7IGBNZA.cjs} +70 -39
  116. package/dist/chunk-K7IGBNZA.cjs.map +1 -0
  117. package/dist/{chunk-BTJHYGPI.cjs → chunk-L7YQBSEL.cjs} +14 -4
  118. package/dist/chunk-L7YQBSEL.cjs.map +1 -0
  119. package/dist/chunk-LEMY57MI.js +3 -0
  120. package/dist/{chunk-Y22SOAJM.js.map → chunk-LEMY57MI.js.map} +1 -1
  121. package/dist/{chunk-AU5ADTYD.cjs → chunk-MIGLLTTD.cjs} +50 -11
  122. package/dist/chunk-MIGLLTTD.cjs.map +1 -0
  123. package/dist/{chunk-VV4N4WY6.cjs → chunk-MSRU3XBH.cjs} +61 -35
  124. package/dist/chunk-MSRU3XBH.cjs.map +1 -0
  125. package/dist/{chunk-JFAXLE2J.js → chunk-MUYTGWGE.js} +9 -5
  126. package/dist/chunk-MUYTGWGE.js.map +1 -0
  127. package/dist/{chunk-B26RIQ5R.js → chunk-MV3MTHWQ.js} +6 -2
  128. package/dist/chunk-MV3MTHWQ.js.map +1 -0
  129. package/dist/{chunk-VZUVYJFU.cjs → chunk-MXQNNKPX.cjs} +17 -17
  130. package/dist/{chunk-VZUVYJFU.cjs.map → chunk-MXQNNKPX.cjs.map} +1 -1
  131. package/dist/{chunk-PF3XWKE5.cjs → chunk-NIEIRA5A.cjs} +33 -14
  132. package/dist/chunk-NIEIRA5A.cjs.map +1 -0
  133. package/dist/{chunk-RRQGH7C5.cjs → chunk-NVHAQOHH.cjs} +8 -3
  134. package/dist/chunk-NVHAQOHH.cjs.map +1 -0
  135. package/dist/chunk-OGOFYY22.js +247 -0
  136. package/dist/chunk-OGOFYY22.js.map +1 -0
  137. package/dist/{chunk-OT36EMM5.js → chunk-OKBR6PX4.js} +5 -4
  138. package/dist/chunk-OKBR6PX4.js.map +1 -0
  139. package/dist/{chunk-LZEY55QZ.cjs → chunk-OYKS2JBB.cjs} +18 -3
  140. package/dist/chunk-OYKS2JBB.cjs.map +1 -0
  141. package/dist/{chunk-4LTN2LEN.js → chunk-PSTGFXQG.js} +3 -3
  142. package/dist/{chunk-4LTN2LEN.js.map → chunk-PSTGFXQG.js.map} +1 -1
  143. package/dist/{chunk-OW2BWGST.js → chunk-PU6ZC4GI.js} +48 -31
  144. package/dist/chunk-PU6ZC4GI.js.map +1 -0
  145. package/dist/chunk-PVUDXJAI.js +124 -0
  146. package/dist/chunk-PVUDXJAI.js.map +1 -0
  147. package/dist/{chunk-EF46XW4Z.cjs → chunk-Q2EWNXIB.cjs} +161 -67
  148. package/dist/chunk-Q2EWNXIB.cjs.map +1 -0
  149. package/dist/{chunk-CP7NPDQW.js → chunk-Q7NBJFEB.js} +87 -4
  150. package/dist/chunk-Q7NBJFEB.js.map +1 -0
  151. package/dist/{chunk-ORUPC5TV.cjs → chunk-QASIWBXU.cjs} +9 -5
  152. package/dist/chunk-QASIWBXU.cjs.map +1 -0
  153. package/dist/{chunk-4LNS5QDP.cjs → chunk-QITBJX4A.cjs} +3 -3
  154. package/dist/{chunk-4LNS5QDP.cjs.map → chunk-QITBJX4A.cjs.map} +1 -1
  155. package/dist/{chunk-KEIA2G6O.cjs → chunk-QO6U5VOT.cjs} +3 -3
  156. package/dist/{chunk-KEIA2G6O.cjs.map → chunk-QO6U5VOT.cjs.map} +1 -1
  157. package/dist/{chunk-XVZ4SLQB.js → chunk-QVJBUWJQ.js} +70 -39
  158. package/dist/chunk-QVJBUWJQ.js.map +1 -0
  159. package/dist/{chunk-QSMMFATL.js → chunk-R25H4N4Z.js} +181 -128
  160. package/dist/chunk-R25H4N4Z.js.map +1 -0
  161. package/dist/{chunk-TPGT236K.js → chunk-RC2YMOMS.js} +26 -3
  162. package/dist/chunk-RC2YMOMS.js.map +1 -0
  163. package/dist/{chunk-BXK5TNJE.cjs → chunk-RH43XBNV.cjs} +3 -2
  164. package/dist/chunk-RH43XBNV.cjs.map +1 -0
  165. package/dist/{chunk-4MHTSFPX.js → chunk-TGCY5FNL.js} +45 -20
  166. package/dist/chunk-TGCY5FNL.js.map +1 -0
  167. package/dist/{chunk-QZLRB3UG.js → chunk-TRZXK57D.js} +168 -138
  168. package/dist/chunk-TRZXK57D.js.map +1 -0
  169. package/dist/{chunk-B7YGVKTE.cjs → chunk-U3ABLVYH.cjs} +51 -24
  170. package/dist/chunk-U3ABLVYH.cjs.map +1 -0
  171. package/dist/chunk-VACI5SP7.cjs +270 -0
  172. package/dist/chunk-VACI5SP7.cjs.map +1 -0
  173. package/dist/{chunk-GV5JQBPX.js → chunk-VCO2IZOG.js} +9 -5
  174. package/dist/chunk-VCO2IZOG.js.map +1 -0
  175. package/dist/chunk-WFS6R2F5.js +328 -0
  176. package/dist/chunk-WFS6R2F5.js.map +1 -0
  177. package/dist/{chunk-IY7UQPDO.cjs → chunk-WGPMTW36.cjs} +6 -2
  178. package/dist/chunk-WGPMTW36.cjs.map +1 -0
  179. package/dist/chunk-WJU3KLVV.cjs +855 -0
  180. package/dist/chunk-WJU3KLVV.cjs.map +1 -0
  181. package/dist/{chunk-SOFX4T7M.js → chunk-WOYUQ4AT.js} +49 -19
  182. package/dist/chunk-WOYUQ4AT.js.map +1 -0
  183. package/dist/{chunk-SD44QJIP.js → chunk-WTDCNXZO.js} +58 -31
  184. package/dist/chunk-WTDCNXZO.js.map +1 -0
  185. package/dist/{chunk-2J2V4TMJ.cjs → chunk-WZBCK7KG.cjs} +42 -32
  186. package/dist/chunk-WZBCK7KG.cjs.map +1 -0
  187. package/dist/{chunk-O5HS7ZND.cjs → chunk-X7S76WB7.cjs} +3 -3
  188. package/dist/{chunk-O5HS7ZND.cjs.map → chunk-X7S76WB7.cjs.map} +1 -1
  189. package/dist/{chunk-ULOA7WBW.js → chunk-XB7QCKK7.js} +3 -3
  190. package/dist/{chunk-ULOA7WBW.js.map → chunk-XB7QCKK7.js.map} +1 -1
  191. package/dist/{chunk-G2DOD34H.js → chunk-XCLQZ4FV.js} +84 -38
  192. package/dist/chunk-XCLQZ4FV.js.map +1 -0
  193. package/dist/{chunk-NIHESA7O.js → chunk-YDJUUR4Y.js} +42 -32
  194. package/dist/chunk-YDJUUR4Y.js.map +1 -0
  195. package/dist/{chunk-RCMF6KZA.js → chunk-YTZPVEIO.js} +3 -3
  196. package/dist/{chunk-RCMF6KZA.js.map → chunk-YTZPVEIO.js.map} +1 -1
  197. package/dist/{chunk-SWV5E75F.cjs → chunk-Z5J4NTPL.cjs} +3 -3
  198. package/dist/{chunk-SWV5E75F.cjs.map → chunk-Z5J4NTPL.cjs.map} +1 -1
  199. package/dist/{chunk-XHJGYBYG.cjs → chunk-ZKFVGYBK.cjs} +48 -31
  200. package/dist/chunk-ZKFVGYBK.cjs.map +1 -0
  201. package/dist/{chunk-CEHWXAAI.js → chunk-ZVPJ2MH6.js} +14 -4
  202. package/dist/chunk-ZVPJ2MH6.js.map +1 -0
  203. package/dist/{chunk-VBHPXSCV.js → chunk-ZVSW2KS6.js} +12 -6
  204. package/dist/chunk-ZVSW2KS6.js.map +1 -0
  205. package/dist/components/Alert/index.cjs +5 -5
  206. package/dist/components/Alert/index.js +1 -1
  207. package/dist/components/AudioPlayer/index.cjs +6 -6
  208. package/dist/components/AudioPlayer/index.d.cts +5 -4
  209. package/dist/components/AudioPlayer/index.d.ts +5 -4
  210. package/dist/components/AudioPlayer/index.js +1 -1
  211. package/dist/components/AudioRecorder/index.cjs +6 -6
  212. package/dist/components/AudioRecorder/index.js +1 -1
  213. package/dist/components/Avatar/index.cjs +5 -5
  214. package/dist/components/Avatar/index.js +1 -1
  215. package/dist/components/Badge/index.cjs +3 -3
  216. package/dist/components/Badge/index.js +1 -1
  217. package/dist/components/Breadcrumb/index.cjs +3 -3
  218. package/dist/components/Breadcrumb/index.js +1 -1
  219. package/dist/components/Button/index.cjs +3 -3
  220. package/dist/components/Button/index.js +1 -1
  221. package/dist/components/Card/index.cjs +15 -15
  222. package/dist/components/Card/index.d.cts +6 -2
  223. package/dist/components/Card/index.d.ts +6 -2
  224. package/dist/components/Card/index.js +1 -1
  225. package/dist/components/Checkbox/index.cjs +4 -4
  226. package/dist/components/Checkbox/index.js +1 -1
  227. package/dist/components/CountryCodeDropdown/index.cjs +23 -0
  228. package/dist/components/CountryCodeDropdown/index.cjs.map +1 -0
  229. package/dist/components/CountryCodeDropdown/index.d.cts +69 -0
  230. package/dist/components/CountryCodeDropdown/index.d.ts +69 -0
  231. package/dist/components/CountryCodeDropdown/index.js +6 -0
  232. package/dist/components/CountryCodeDropdown/index.js.map +1 -0
  233. package/dist/components/DateInput/index.cjs +4 -4
  234. package/dist/components/DateInput/index.js +3 -3
  235. package/dist/components/Dropdown/index.cjs +9 -8
  236. package/dist/components/Dropdown/index.d.cts +29 -1
  237. package/dist/components/Dropdown/index.d.ts +29 -1
  238. package/dist/components/Dropdown/index.js +3 -2
  239. package/dist/components/Input/index.cjs +3 -3
  240. package/dist/components/Input/index.js +1 -1
  241. package/dist/components/Modal/index.cjs +9 -9
  242. package/dist/components/Modal/index.js +1 -1
  243. package/dist/components/Pagination/index.cjs +4 -4
  244. package/dist/components/Pagination/index.d.cts +6 -2
  245. package/dist/components/Pagination/index.d.ts +6 -2
  246. package/dist/components/Pagination/index.js +1 -1
  247. package/dist/components/PhoneInput/index.cjs +5 -5
  248. package/dist/components/PhoneInput/index.js +3 -3
  249. package/dist/components/Progress/index.cjs +6 -6
  250. package/dist/components/Progress/index.js +1 -1
  251. package/dist/components/QuickAction/index.cjs +6 -6
  252. package/dist/components/QuickAction/index.js +1 -1
  253. package/dist/components/Radio/index.cjs +4 -4
  254. package/dist/components/Radio/index.js +1 -1
  255. package/dist/components/RecordButton/index.cjs +4 -4
  256. package/dist/components/RecordButton/index.js +1 -1
  257. package/dist/components/SchedulePicker/index.cjs +10 -10
  258. package/dist/components/SchedulePicker/index.js +1 -1
  259. package/dist/components/Select/index.cjs +3 -3
  260. package/dist/components/Select/index.d.cts +3 -1
  261. package/dist/components/Select/index.d.ts +3 -1
  262. package/dist/components/Select/index.js +1 -1
  263. package/dist/components/Skeleton/index.cjs +6 -6
  264. package/dist/components/Skeleton/index.d.cts +1 -1
  265. package/dist/components/Skeleton/index.d.ts +1 -1
  266. package/dist/components/Skeleton/index.js +1 -1
  267. package/dist/components/Slider/index.cjs +5 -5
  268. package/dist/components/Slider/index.js +1 -1
  269. package/dist/components/Spinner/index.cjs +5 -5
  270. package/dist/components/Spinner/index.js +1 -1
  271. package/dist/components/Switch/index.cjs +4 -4
  272. package/dist/components/Switch/index.js +1 -1
  273. package/dist/components/Table/index.cjs +9 -9
  274. package/dist/components/Table/index.js +1 -1
  275. package/dist/components/Tabs/index.cjs +7 -7
  276. package/dist/components/Tabs/index.js +1 -1
  277. package/dist/components/Text/index.cjs +4 -4
  278. package/dist/components/Text/index.js +1 -1
  279. package/dist/components/Textarea/index.cjs +3 -3
  280. package/dist/components/Textarea/index.js +1 -1
  281. package/dist/components/ThemeProvider/index.cjs +8 -8
  282. package/dist/components/ThemeProvider/index.js +2 -2
  283. package/dist/components/Tooltip/index.cjs +2 -2
  284. package/dist/components/Tooltip/index.js +1 -1
  285. package/dist/datavis.cjs +251 -0
  286. package/dist/datavis.cjs.map +1 -0
  287. package/dist/datavis.d.cts +47 -0
  288. package/dist/datavis.d.ts +47 -0
  289. package/dist/datavis.js +247 -0
  290. package/dist/datavis.js.map +1 -0
  291. package/dist/default-BTEIFIZJ.cjs +18 -0
  292. package/dist/{default-ZGHKI5WF.cjs.map → default-BTEIFIZJ.cjs.map} +1 -1
  293. package/dist/default-ORBRVZRZ.js +3 -0
  294. package/dist/{default-LIRPABBK.js.map → default-ORBRVZRZ.js.map} +1 -1
  295. package/dist/hooks/index.cjs +19 -15
  296. package/dist/hooks/index.d.cts +39 -3
  297. package/dist/hooks/index.d.ts +39 -3
  298. package/dist/hooks/index.js +2 -2
  299. package/dist/index.cjs +13453 -9169
  300. package/dist/index.cjs.map +1 -1
  301. package/dist/index.d.cts +134 -55
  302. package/dist/index.d.ts +134 -55
  303. package/dist/index.js +12679 -8419
  304. package/dist/index.js.map +1 -1
  305. package/dist/mieweb-4XR6UKDQ.cjs +18 -0
  306. package/dist/{mieweb-UJABK5XX.cjs.map → mieweb-4XR6UKDQ.cjs.map} +1 -1
  307. package/dist/mieweb-N6UMH4MU.js +3 -0
  308. package/dist/{mieweb-PV2YKYO7.js.map → mieweb-N6UMH4MU.js.map} +1 -1
  309. package/dist/ozwell.cjs +385 -0
  310. package/dist/ozwell.cjs.map +1 -0
  311. package/dist/ozwell.d.cts +15 -0
  312. package/dist/ozwell.d.ts +15 -0
  313. package/dist/ozwell.js +360 -0
  314. package/dist/ozwell.js.map +1 -0
  315. package/dist/styles/init.css +339 -0
  316. package/dist/styles.css +1 -1
  317. package/dist/tailwind-preset.cjs +4 -4
  318. package/dist/tailwind-preset.d.cts +13 -2
  319. package/dist/tailwind-preset.d.ts +13 -2
  320. package/dist/tailwind-preset.js +1 -1
  321. package/dist/utils/index.cjs +31 -23
  322. package/dist/utils/index.d.cts +19 -2
  323. package/dist/utils/index.d.ts +19 -2
  324. package/dist/utils/index.js +2 -2
  325. package/dist/waggleline-2MLRNVCV.js +3 -0
  326. package/dist/{waggleline-BMUYAFJF.js.map → waggleline-2MLRNVCV.js.map} +1 -1
  327. package/dist/waggleline-I7QWD3YX.cjs +18 -0
  328. package/dist/{waggleline-6IGA66HR.cjs.map → waggleline-I7QWD3YX.cjs.map} +1 -1
  329. package/dist/webchart-F6EIMC3I.js +3 -0
  330. package/dist/{webchart-2SLO5ICI.js.map → webchart-F6EIMC3I.js.map} +1 -1
  331. package/dist/webchart-H3BHYNHB.cjs +18 -0
  332. package/dist/{webchart-EHVGP46N.cjs.map → webchart-H3BHYNHB.cjs.map} +1 -1
  333. package/package.json +42 -4
  334. package/dist/chunk-265CFCCX.js +0 -173
  335. package/dist/chunk-265CFCCX.js.map +0 -1
  336. package/dist/chunk-2J2V4TMJ.cjs.map +0 -1
  337. package/dist/chunk-3NJ72QU6.js.map +0 -1
  338. package/dist/chunk-4AWW5WPF.js.map +0 -1
  339. package/dist/chunk-4MHTSFPX.js.map +0 -1
  340. package/dist/chunk-4T2ZNPTC.js +0 -220
  341. package/dist/chunk-4T2ZNPTC.js.map +0 -1
  342. package/dist/chunk-4YRAEFYW.js +0 -233
  343. package/dist/chunk-4YRAEFYW.js.map +0 -1
  344. package/dist/chunk-53K3KWXQ.cjs.map +0 -1
  345. package/dist/chunk-5T3AWNHG.cjs.map +0 -1
  346. package/dist/chunk-5UUL5EEO.cjs.map +0 -1
  347. package/dist/chunk-6OCIIIAI.js.map +0 -1
  348. package/dist/chunk-6Q4SU72T.js.map +0 -1
  349. package/dist/chunk-AU5ADTYD.cjs.map +0 -1
  350. package/dist/chunk-AWIULTJW.js.map +0 -1
  351. package/dist/chunk-B26RIQ5R.js.map +0 -1
  352. package/dist/chunk-B3L43JGH.js.map +0 -1
  353. package/dist/chunk-B7YGVKTE.cjs.map +0 -1
  354. package/dist/chunk-BTJHYGPI.cjs.map +0 -1
  355. package/dist/chunk-BV75DAKO.cjs +0 -245
  356. package/dist/chunk-BV75DAKO.cjs.map +0 -1
  357. package/dist/chunk-BXK5TNJE.cjs.map +0 -1
  358. package/dist/chunk-CEHWXAAI.js.map +0 -1
  359. package/dist/chunk-CP7NPDQW.js.map +0 -1
  360. package/dist/chunk-CQCYXHCU.cjs +0 -256
  361. package/dist/chunk-CQCYXHCU.cjs.map +0 -1
  362. package/dist/chunk-DMA74PZ7.js +0 -240
  363. package/dist/chunk-DMA74PZ7.js.map +0 -1
  364. package/dist/chunk-EF46XW4Z.cjs.map +0 -1
  365. package/dist/chunk-EKIQE524.cjs.map +0 -1
  366. package/dist/chunk-EYH7OUX5.js.map +0 -1
  367. package/dist/chunk-FFJVCQ5R.cjs.map +0 -1
  368. package/dist/chunk-FIXAVBUA.cjs +0 -200
  369. package/dist/chunk-FIXAVBUA.cjs.map +0 -1
  370. package/dist/chunk-G2DOD34H.js.map +0 -1
  371. package/dist/chunk-GHRQ3ZJH.js +0 -764
  372. package/dist/chunk-GHRQ3ZJH.js.map +0 -1
  373. package/dist/chunk-GV5JQBPX.js.map +0 -1
  374. package/dist/chunk-HRA4FUO6.cjs.map +0 -1
  375. package/dist/chunk-I7L6CQXR.cjs.map +0 -1
  376. package/dist/chunk-INFSKLXE.cjs +0 -790
  377. package/dist/chunk-INFSKLXE.cjs.map +0 -1
  378. package/dist/chunk-IY7UQPDO.cjs.map +0 -1
  379. package/dist/chunk-JFAXLE2J.js.map +0 -1
  380. package/dist/chunk-JYMQJ32S.cjs.map +0 -1
  381. package/dist/chunk-LZEY55QZ.cjs.map +0 -1
  382. package/dist/chunk-N3QTYHRZ.cjs.map +0 -1
  383. package/dist/chunk-NAATBUHR.cjs.map +0 -1
  384. package/dist/chunk-NIHESA7O.js.map +0 -1
  385. package/dist/chunk-NXRLGHEC.js +0 -98
  386. package/dist/chunk-NXRLGHEC.js.map +0 -1
  387. package/dist/chunk-ONWOB76P.js.map +0 -1
  388. package/dist/chunk-ORUPC5TV.cjs.map +0 -1
  389. package/dist/chunk-OT36EMM5.js.map +0 -1
  390. package/dist/chunk-OW2BWGST.js.map +0 -1
  391. package/dist/chunk-PEFJAWNR.cjs.map +0 -1
  392. package/dist/chunk-PEH4ZOEM.cjs.map +0 -1
  393. package/dist/chunk-PF3XWKE5.cjs.map +0 -1
  394. package/dist/chunk-QL2YTVTR.js.map +0 -1
  395. package/dist/chunk-QSMMFATL.js.map +0 -1
  396. package/dist/chunk-QYJ7RQJ2.cjs.map +0 -1
  397. package/dist/chunk-QZLRB3UG.js.map +0 -1
  398. package/dist/chunk-R4DM4635.cjs.map +0 -1
  399. package/dist/chunk-RRQGH7C5.cjs.map +0 -1
  400. package/dist/chunk-SD44QJIP.js.map +0 -1
  401. package/dist/chunk-SOFX4T7M.js.map +0 -1
  402. package/dist/chunk-SSKI6VTW.cjs.map +0 -1
  403. package/dist/chunk-SWMRCGL4.cjs.map +0 -1
  404. package/dist/chunk-TPGT236K.js.map +0 -1
  405. package/dist/chunk-UZUBLXVC.js.map +0 -1
  406. package/dist/chunk-VBHPXSCV.js.map +0 -1
  407. package/dist/chunk-VV4N4WY6.cjs.map +0 -1
  408. package/dist/chunk-WH6I7CMP.cjs.map +0 -1
  409. package/dist/chunk-XHJGYBYG.cjs.map +0 -1
  410. package/dist/chunk-XVZ4SLQB.js.map +0 -1
  411. package/dist/chunk-XXOBTAKA.js.map +0 -1
  412. package/dist/chunk-Y22SOAJM.js +0 -3
  413. package/dist/default-LIRPABBK.js +0 -3
  414. package/dist/default-ZGHKI5WF.cjs +0 -18
  415. package/dist/mieweb-PV2YKYO7.js +0 -3
  416. package/dist/mieweb-UJABK5XX.cjs +0 -18
  417. package/dist/waggleline-6IGA66HR.cjs +0 -18
  418. package/dist/waggleline-BMUYAFJF.js +0 -3
  419. package/dist/webchart-2SLO5ICI.js +0 -3
  420. package/dist/webchart-EHVGP46N.cjs +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/RecordButton/RecordButton.tsx"],"names":["jsxs","jsx","cn","Fragment","cva","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAU,EAA2B;AACtD,EAAA,uBACEA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,GAAE,sDAAA,EAAuD,CAAA;AAAA,wBAC/DA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B,CAAA;AAAA,wBACrCA,cAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,GACxC;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAU,EAA2B;AACzD,EAAA,uBACED,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,MAAK,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,CAAA;AAAA,wBACpCA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAwC,CAAA;AAAA,wBAChDA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,wBAAA,EAAyB,CAAA;AAAA,wBACjCA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gCAAA,EAAiC,CAAA;AAAA,wBACzCA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B,CAAA;AAAA,wBACrCA,cAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,GACxC;AAEJ;AAEA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAU,EAA2B;AACvD,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,cAAA;AAAA,MACL,SAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI;AAAA;AAAA,GAClD;AAEJ;AAEA,SAAS,SAAA,CAAU,EAAE,SAAA,EAAU,EAA2B;AACxD,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,KAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,kBAAAA,cAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA,GACpC;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAU,EAA2B;AAC7D,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,SAAS,CAAA;AAAA,MACvC,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6BAAA,EAA8B;AAAA;AAAA,GACxC;AAEJ;AAMA,SAAS,UAAA,CAAW,EAAE,OAAA,EAAQ,EAAqC;AACjE,EAAA,MAAM,SAAA,GAAY,OAAA,KAAY,SAAA,GAAY,eAAA,GAAkB,eAAA;AAE5D,EAAA,uBACED,eAAA,CAAAG,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,qBAAA;AAAA,QACV,SAAA,EAAWC,oBAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,QACrE,KAAA,EAAO,EAAE,iBAAA,EAAmB,MAAA;AAAO;AAAA,KACrC;AAAA,oBACAD,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,qBAAA;AAAA,QACV,SAAA,EAAWC,oBAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,QACrE,KAAA,EAAO,EAAE,iBAAA,EAAmB,MAAA,EAAQ,gBAAgB,MAAA;AAAO;AAAA;AAC7D,GAAA,EACF,CAAA;AAEJ;AAMA,SAAS,YAAA,CAAa,EAAE,IAAA,EAAK,EAA+B;AAC1D,EAAA,MAAM,YAAY,IAAA,KAAS,IAAA,GAAO,KAAA,GAAQ,IAAA,KAAS,OAAO,KAAA,GAAQ,KAAA;AAElE,EAAA,uBACED,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACV,SAAA,EAAU,2BAAA;AAAA,MAET,QAAA,EAAA,CAAC,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,qBACpBA,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAWC,oBAAA;AAAA,YACT,gDAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,KAAA,EAAO;AAAA,YACL,cAAA,EAAgB,CAAA,EAAG,CAAA,GAAI,GAAG,CAAA,CAAA;AAAA;AAC5B,SAAA;AAAA,QAPK;AAAA,OASR;AAAA;AAAA,GACH;AAEJ;AAMA,IAAM,oBAAA,GAAuBE,0BAAA;AAAA,EAC3B;AAAA,IACE,+DAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,OAAA,EAAS,UAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,SAAA,GAA8C;AAAA,EAClD,EAAA,EAAI,QAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAMA,SAAS,cAAA,CACP,OACA,OAAA,EACQ;AACR,EAAA,MAAM,MAAA,GAGF;AAAA,IACF,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,gDAAA;AAAA,MACN,SAAA,EAAW,gDAAA;AAAA,MACX,UAAA,EAAY,wCAAA;AAAA,MACZ,QAAA,EAAU,8DAAA;AAAA,MACV,KAAA,EAAO,oCAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,wFAAA;AAAA,MACN,SAAA,EACE,wFAAA;AAAA,MACF,UAAA,EAAY,2DAAA;AAAA,MACZ,QAAA,EACE,iFAAA;AAAA,MACF,KAAA,EAAO,uDAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACX;AAAA,IACA,KAAA,EAAO;AAAA,MACL,IAAA,EAAM,kCAAA;AAAA,MACN,SAAA,EAAW,kCAAA;AAAA,MACX,UAAA,EAAY,uCAAA;AAAA,MACZ,QAAA,EAAU,qDAAA;AAAA,MACV,KAAA,EAAO,kBAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,oCAAA;AAAA,MACN,SAAA,EAAW,oCAAA;AAAA,MACX,UAAA,EAAY,0BAAA;AAAA,MACZ,QAAA,EAAU,6CAAA;AAAA,MACV,KAAA,EAAO,kBAAA;AAAA,MACP,OAAA,EAAS;AAAA;AACX,GACF;AAEA,EAAA,OAAO,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,CAAA;AAC9B;AAMA,SAAS,eAAe,OAAA,EAAyB;AAC/C,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACpC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACpC,EAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,UAAS,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AACpD;AA8CA,IAAM,YAAA,GAAqBC,gBAAA,CAAA,UAAA;AAAA,EACzB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,EAAO,eAAA;AAAA,IACP,YAAA,GAAe,KAAA;AAAA,IACf,SAAA,GAAY,IAAA;AAAA,IACZ,QAAA;AAAA,IACA,YAAA,GAAe,KAAA;AAAA,IACf,QAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,sBAAA,GAAyB,KAAA;AAAA,IACzB,mBAAA;AAAA,IACA,gBAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA,GAAc,CAAA;AAAA,IACd,QAAA,GAAW,YAAA;AAAA,IACX,OAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AAEH,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAC9BA,0BAA4B,MAAM,CAAA;AAC1C,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUA,0BAAS,CAAC,CAAA;AAEhD,IAAA,MAAM,gBAAA,GAAyBA,wBAA6B,IAAI,CAAA;AAChE,IAAA,MAAM,SAAA,GAAkBA,wBAA2B,IAAI,CAAA;AACvD,IAAA,MAAM,SAAA,GAAkBA,gBAAA,CAAA,MAAA,CAAe,EAAE,CAAA;AACzC,IAAA,MAAM,QAAA,GAAiBA,wBAA2B,MAAS,CAAA;AAC3D,IAAA,MAAM,YAAA,GAAqBA,wBAAe,CAAC,CAAA;AAC3C,IAAA,MAAM,WAAA,GAAoBA,gBAAA,CAAA,MAAA,CAAyB,EAAE,CAAA;AAGrD,IAAA,MAAM,UAAA,GAAa,CAAC,QAAA,EAAsB,KAAA,KAAkB;AAC1D,MAAA,MAAM,EAAA,GAAK,WAAW,MAAM;AAC1B,QAAA,QAAA,EAAS;AAET,QAAA,WAAA,CAAY,UAAU,WAAA,CAAY,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,MAAM,EAAE,CAAA;AAAA,MAClE,GAAG,KAAK,CAAA;AACR,MAAA,WAAA,CAAY,OAAA,CAAQ,KAAK,EAAE,CAAA;AAC3B,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,mBAAmB,MAAM;AAC7B,MAAA,WAAA,CAAY,OAAA,CAAQ,QAAQ,YAAY,CAAA;AACxC,MAAA,WAAA,CAAY,UAAU,EAAC;AAAA,IACzB,CAAA;AAGA,IAAA,MAAM,eAAe,eAAA,KAAoB,MAAA;AACzC,IAAA,MAAM,YAAA,GAAe,eAAe,eAAA,GAAkB,aAAA;AAItD,IAAA,MAAM,cAAA,GAAoC,QAAA,GACtC,UAAA,GACA,kBAAA,KAAuB,OAAA,GACrB,OAAA,GACA,kBAAA,KAAuB,cAAA,IACrB,kBAAA,KAAuB,WAAA,GACvB,YAAA,GACA,kBAAA,KAAuB,aACrB,SAAA,GACA,YAAA;AAGV,IAAMA,2BAAU,MAAM;AAEpB,MAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAGnC,MAAA,IACE,QAAA,KACE,eAAA,IAAmB,eAAA,KAAoB,UAAA,IACvC,kBAAA,CAAA,EACF;AACA,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN;AAAA,SAEF;AAAA,MACF;AAGA,MAAA,IAAI,eAAA,KAAoB,MAAA,IAAa,kBAAA,KAAuB,MAAA,EAAW;AACrE,QAAA,MAAM,wBAAA,GACJ,kBAAA,KAAuB,OAAA,GACnB,OAAA,GACA,kBAAA,KAAuB,cAAA,IACrB,kBAAA,KAAuB,WAAA,GACvB,YAAA,GACA,kBAAA,KAAuB,UAAA,GACrB,SAAA,GACA,MAAA;AAEV,QAAA,IACE,wBAAA,KAA6B,MAAA,IAC7B,wBAAA,KAA6B,eAAA,EAC7B;AACA,UAAA,OAAA,CAAQ,IAAA;AAAA,YACN,CAAA,wFAAA,EACqB,eAAe,CAAA,0BAAA,EAA6B,kBAAkB,CAAA,6CAAA;AAAA,WAErF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,QAAA,EAAU,eAAA,EAAiB,kBAAkB,CAAC,CAAA;AAElD,IAAA,MAAM,QAAA,GAAW,UAAU,IAAI,CAAA;AAC/B,IAAA,MAAM,cAAc,cAAA,KAAmB,WAAA;AACvC,IAAA,MAAM,UAAA,GACJ,cAAA,KAAmB,UAAA,IAAc,cAAA,KAAmB,YAAA;AAGtD,IAAMA,2BAAU,MAAM;AACpB,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,SAAS,OAAA,EAAS;AACpB,UAAA,aAAA,CAAc,SAAS,OAAO,CAAA;AAAA,QAChC;AACA,QAAA,gBAAA,EAAiB;AACjB,QAAA,IAAI,UAAU,OAAA,EAAS;AACrB,UAAA,SAAA,CAAU,OAAA,CAAQ,WAAU,CAAE,OAAA,CAAQ,CAAC,KAAA,KAAU,KAAA,CAAM,MAAM,CAAA;AAAA,QAC/D;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,aAAA,GAAsBA,6BAAY,MAAM;AAC5C,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,aAAA,CAAc,SAAS,OAAO,CAAA;AAAA,MAChC;AAEA,MAAA,IACE,gBAAA,CAAiB,OAAA,IACjB,gBAAA,CAAiB,OAAA,CAAQ,UAAU,UAAA,EACnC;AACA,QAAA,gBAAA,CAAiB,QAAQ,IAAA,EAAK;AAAA,MAChC;AAEA,MAAA,IAAI,UAAU,OAAA,EAAS;AACrB,QAAA,SAAA,CAAU,OAAA,CAAQ,WAAU,CAAE,OAAA,CAAQ,CAAC,KAAA,KAAU,KAAA,CAAM,MAAM,CAAA;AAAA,MAC/D;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,cAAA,GAAuBA,6BAAY,YAAY;AAEnD,MAAA,IACE,QAAA,IACA,cAAA,KAAmB,WAAA,IACnB,cAAA,KAAmB,YAAA;AAEnB,QAAA;AAEF,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,YAAA,CAAa,YAAA,CAAa;AAAA,UACvD,KAAA,EAAO;AAAA,SACR,CAAA;AACD,QAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AAEpB,QAAA,MAAM,OAAA,GAAU,EAAE,QAAA,EAAS;AAC3B,QAAA,IAAI,CAAC,aAAA,CAAc,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAC5C,UAAA,gBAAA,CAAiB,OAAA,GAAU,IAAI,aAAA,CAAc,MAAM,CAAA;AAAA,QACrD,CAAA,MAAO;AACL,UAAA,gBAAA,CAAiB,OAAA,GAAU,IAAI,aAAA,CAAc,MAAA,EAAQ,OAAO,CAAA;AAAA,QAC9D;AAEA,QAAA,SAAA,CAAU,UAAU,EAAC;AAErB,QAAA,gBAAA,CAAiB,OAAA,CAAQ,eAAA,GAAkB,CAAC,CAAA,KAAM;AAChD,UAAA,IAAI,CAAA,CAAE,IAAA,CAAK,IAAA,GAAO,CAAA,EAAG;AACnB,YAAA,SAAA,CAAU,OAAA,CAAQ,IAAA,CAAK,CAAA,CAAE,IAAI,CAAA;AAAA,UAC/B;AAAA,QACF,CAAA;AAEA,QAAA,gBAAA,CAAiB,OAAA,CAAQ,SAAS,MAAM;AACtC,UAAA,IAAI,CAAC,YAAA,EAAc;AACjB,YAAA,gBAAA,CAAiB,YAAY,CAAA;AAAA,UAC/B;AAEA,UAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,SAAA,CAAU,SAAS,EAAE,IAAA,EAAM,UAAU,CAAA;AAC3D,UAAA,MAAM,aAAA,GAAgB,QAAA;AAGtB,UAAA,UAAA,CAAW,MAAM;AACf,YAAA,mBAAA,GAAsB,MAAM,aAAa,CAAA;AACzC,YAAA,IAAI,CAAC,YAAA,EAAc;AACjB,cAAA,gBAAA,CAAiB,SAAS,CAAA;AAE1B,cAAA,UAAA,CAAW,MAAM;AACf,gBAAA,gBAAA,CAAiB,MAAM,CAAA;AAAA,cACzB,GAAG,IAAI,CAAA;AAAA,YACT;AACA,YAAA,WAAA,CAAY,CAAC,CAAA;AAAA,UACf,GAAG,GAAG,CAAA;AAAA,QACR,CAAA;AAEA,QAAA,gBAAA,CAAiB,OAAA,CAAQ,MAAM,GAAG,CAAA;AAClC,QAAA,YAAA,CAAa,OAAA,GAAU,KAAK,GAAA,EAAI;AAEhC,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,gBAAA,CAAiB,WAAW,CAAA;AAAA,QAC9B;AACA,QAAA,gBAAA,IAAmB;AAEnB,QAAA,QAAA,CAAS,OAAA,GAAU,MAAA,CAAO,WAAA,CAAY,MAAM;AAC1C,UAAA,MAAM,OAAA,GAAA,CAAW,IAAA,CAAK,GAAA,EAAI,GAAI,aAAa,OAAA,IAAW,GAAA;AACtD,UAAA,WAAA,CAAY,OAAO,CAAA;AAEnB,UAAA,IAAI,WAAA,GAAc,CAAA,IAAK,OAAA,IAAW,WAAA,EAAa;AAC7C,YAAA,aAAA,EAAc;AAAA,UAChB;AAAA,QACF,GAAG,GAAG,CAAA;AAAA,MACR,SAAS,KAAA,EAAO;AACd,QAAA,gBAAA,GAAmB,KAAc,CAAA;AACjC,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,gBAAA,CAAiB,OAAO,CAAA;AAExB,UAAA,UAAA,CAAW,MAAM;AACf,YAAA,gBAAA,CAAiB,MAAM,CAAA;AAAA,UACzB,GAAG,GAAI,CAAA;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAA,EAAG;AAAA,MACD,QAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,mBAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,WAAA,GAAoBA,gBAAA,CAAA,WAAA;AAAA,MACxB,CAAC,CAAA,KAA2C;AAE1C,QAAA,OAAA,GAAU,CAAC,CAAA;AAGX,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,IAAI,mBAAmB,WAAA,EAAa;AAClC,YAAA,aAAA,EAAc;AAAA,UAChB,CAAA,MAAA,IAAW,mBAAmB,MAAA,EAAQ;AACpC,YAAA,cAAA,EAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,CAAC,OAAA,EAAS,YAAA,EAAc,cAAA,EAAgB,gBAAgB,aAAa;AAAA,KACvE;AAGA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,QAAQ,cAAA;AAAgB,QACtB,KAAK,WAAA;AACH,UAAA,IAAI,YAAA,EAAc;AAChB,YAAA,uBAAOJ,cAAA,CAAC,gBAAa,IAAA,EAAY,CAAA;AAAA,UACnC;AACA,UAAA,OAAO,aAAA,oBAAiBA,cAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,QAAA,EAAU,CAAA;AAAA,QACzD,KAAK,YAAA;AACH,UAAA,uBAAOA,cAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAW,QAAA,EAAU,CAAA;AAAA,QAC9C,KAAK,UAAA;AAAA,QACL,KAAK,OAAA;AACH,UAAA,uBAAOA,cAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,QAAA,EAAU,CAAA;AAAA,QAC1C,KAAK,SAAA;AACH,UAAA,uBAAOA,cAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,QAAA,EAAU,CAAA;AAAA,QACzC;AACE,UAAA,OAAO,QAAA,oBAAYA,cAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,CAAA;AAAA;AACrD,IACF,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,QAAQ,cAAA;AAAgB,QACtB,KAAK,WAAA;AACH,UAAA,OAAO,gBAAA;AAAA,QACT,KAAK,YAAA;AACH,UAAA,OAAO,sBAAA;AAAA,QACT,KAAK,UAAA;AACH,UAAA,OAAO,uBAAA;AAAA,QACT,KAAK,OAAA;AACH,UAAA,OAAO,kBAAA;AAAA,QACT,KAAK,SAAA;AACH,UAAA,OAAO,oBAAA;AAAA,QACT;AACE,UAAA,OAAO,iBAAA;AAAA;AACX,IACF,CAAA;AAEA,IAAA,MAAM,wBAAwB,MAAM;AAClC,MAAA,IAAI,kBAAA,KAAuB,aAAa,OAAO,cAAA;AAC/C,MAAA,IAAI,kBAAA,KAAuB,gBAAgB,OAAO,iBAAA;AAClD,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAEA,IAAA,uBACED,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,eAAA;AAAA,QACV,SAAA,EAAU,yCAAA;AAAA,QAEV,QAAA,EAAA;AAAA,0BAAAA,eAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,IAAA,EAAK,QAAA;AAAA,cACL,QAAA,EAAU,UAAA;AAAA,cACV,OAAA,EAAS,WAAA;AAAA,cACR,GAAG,KAAA;AAAA,cACJ,WAAA,EAAU,uBAAA;AAAA,cACV,SAAA,EAAWE,oBAAA;AAAA,gBACT,oBAAA,CAAqB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,gBACtC,cAAA,CAAe,gBAAgB,OAAO,CAAA;AAAA,gBACtC;AAAA,eACF;AAAA,cACA,cAAY,YAAA,EAAa;AAAA,cACzB,cAAA,EAAc,cAAA,KAAmB,WAAA,GAAc,IAAA,GAAO,MAAA;AAAA,cACtD,WAAA,EAAW,cAAA,KAAmB,YAAA,GAAe,IAAA,GAAO,MAAA;AAAA,cAGnD,QAAA,EAAA;AAAA,gBAAA,cAAA,KAAmB,WAAA,IAAe,SAAA,oBACjCD,cAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAkB,CAAA;AAAA,+CAI/B,MAAA,EAAA,EAAK,WAAA,EAAU,sBAAqB,SAAA,EAAU,eAAA,EAC5C,sBAAW,EACd;AAAA;AAAA;AAAA,WACF;AAAA,UAGC,gBAAgB,WAAA,oBACfA,cAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,wBAAA;AAAA,cACV,SAAA,EAAU,iDAAA;AAAA,cAET,yBAAe,QAAQ;AAAA;AAAA,WAC1B;AAAA,UAID,sBAAA,IAA0B,uBAAsB,oBAC/CA,cAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,6BAAA;AAAA,cACV,SAAA,EAAU,kCAAA;AAAA,cAET,QAAA,EAAA,qBAAA;AAAsB;AAAA;AACzB;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-K7IGBNZA.cjs","sourcesContent":["import * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RecordButtonState =\n | 'idle'\n | 'recording'\n | 'processing'\n | 'disabled'\n | 'error'\n | 'success';\n\nexport type RecordButtonVariant = 'default' | 'outline' | 'ghost' | 'minimal';\nexport type RecordButtonSize = 'sm' | 'md' | 'lg';\n\n/** Transcription state for integration with transcription services */\nexport type TranscriptionState =\n | 'idle'\n | 'recording'\n | 'transcribing'\n | 'streaming'\n | 'complete'\n | 'error';\n\nexport interface TranscriptionResult {\n /** The transcribed text */\n text: string;\n /** Whether this is a partial (streaming) or final result */\n isFinal: boolean;\n /** Confidence score (0-1) if available */\n confidence?: number;\n}\n\nexport interface RecordButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'children'\n> {\n /** Current state of the button */\n state?: RecordButtonState;\n /** Size of the button */\n size?: RecordButtonSize;\n /** Visual style variant */\n variant?: RecordButtonVariant;\n /** Show waveform bars when recording (instead of stop icon) */\n showWaveform?: boolean;\n /** Show pulse rings when recording */\n showPulse?: boolean;\n /** Show recording duration while recording */\n showDuration?: boolean;\n /** Custom idle icon */\n idleIcon?: React.ReactNode;\n /** Custom recording icon */\n recordingIcon?: React.ReactNode;\n /** Current transcription state (for external control) */\n transcriptionState?: TranscriptionState;\n /** Show transcription state indicator */\n showTranscriptionState?: boolean;\n\n // Recording callbacks (for uncontrolled usage)\n /** Callback when recording is complete with the audio blob */\n onRecordingComplete?: (blob: Blob, duration: number) => void;\n /** Callback when recording starts */\n onRecordingStart?: () => void;\n /** Callback when a recording error occurs */\n onRecordingError?: (error: Error) => void;\n /** Maximum recording duration in seconds (0 for unlimited) */\n maxDuration?: number;\n /** Audio MIME type */\n mimeType?: string;\n}\n\n// ============================================================================\n// Icons\n// ============================================================================\n\nfunction MicIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\n <line x1=\"12\" x2=\"12\" y1=\"19\" y2=\"22\" />\n </svg>\n );\n}\n\nfunction MicOffIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <line x1=\"2\" x2=\"22\" y1=\"2\" y2=\"22\" />\n <path d=\"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2\" />\n <path d=\"M5 10v2a7 7 0 0 0 12 5\" />\n <path d=\"M15 9.34V5a3 3 0 0 0-5.68-1.33\" />\n <path d=\"M9 9v3a3 3 0 0 0 5.12 2.12\" />\n <line x1=\"12\" x2=\"12\" y1=\"19\" y2=\"22\" />\n </svg>\n );\n}\n\nfunction StopIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={className}\n aria-hidden=\"true\"\n >\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" />\n </svg>\n );\n}\n\nfunction CheckIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n );\n}\n\nfunction LoadingSpinner({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn('animate-spin', className)}\n aria-hidden=\"true\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n );\n}\n\n// ============================================================================\n// Pulse Ring Animation (for recording state)\n// ============================================================================\n\nfunction PulseRings({ variant }: { variant: RecordButtonVariant }) {\n const ringColor = variant === 'minimal' ? 'bg-red-500/30' : 'bg-red-400/40';\n\n return (\n <>\n <span\n data-slot=\"record-button-pulse\"\n className={cn('absolute inset-0 animate-ping rounded-full', ringColor)}\n style={{ animationDuration: '1.5s' }}\n />\n <span\n data-slot=\"record-button-pulse\"\n className={cn('absolute inset-0 animate-ping rounded-full', ringColor)}\n style={{ animationDuration: '1.5s', animationDelay: '0.5s' }}\n />\n </>\n );\n}\n\n// ============================================================================\n// Waveform Animation (for recording state)\n// ============================================================================\n\nfunction WaveformBars({ size }: { size: RecordButtonSize }) {\n const barHeight = size === 'sm' ? 'h-2' : size === 'md' ? 'h-3' : 'h-4';\n\n return (\n <div\n data-slot=\"record-button-waveform\"\n className=\"flex items-center gap-0.5\"\n >\n {[0, 1, 2, 3, 4].map((i) => (\n <span\n key={i}\n className={cn(\n 'animate-waveform w-0.5 rounded-full bg-current',\n barHeight\n )}\n style={{\n animationDelay: `${i * 0.1}s`,\n }}\n />\n ))}\n </div>\n );\n}\n\n// ============================================================================\n// Style Variants\n// ============================================================================\n\nconst recordButtonVariants = cva(\n [\n 'relative inline-flex items-center justify-center rounded-full',\n 'transition-all duration-200',\n 'outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n ],\n {\n variants: {\n variant: {\n default: '',\n outline: 'border-2',\n ghost: '',\n minimal: '',\n },\n size: {\n sm: 'size-10',\n md: 'size-12',\n lg: 'size-14',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nconst iconSizes: Record<RecordButtonSize, string> = {\n sm: 'size-4',\n md: 'size-5',\n lg: 'size-6',\n};\n\n// ============================================================================\n// State Styles\n// ============================================================================\n\nfunction getStateStyles(\n state: RecordButtonState,\n variant: RecordButtonVariant\n): string {\n const styles: Record<\n RecordButtonVariant,\n Record<RecordButtonState, string>\n > = {\n default: {\n idle: 'bg-primary/10 text-primary hover:bg-primary/20',\n recording: 'bg-red-500/10 text-red-500 hover:bg-red-500/20',\n processing: 'bg-primary/10 text-primary cursor-wait',\n disabled: 'bg-muted text-muted-foreground cursor-not-allowed opacity-50',\n error: 'bg-destructive/10 text-destructive',\n success: 'bg-success/10 text-success',\n },\n outline: {\n idle: 'border-primary/50 text-primary bg-transparent hover:bg-primary/10 hover:border-primary',\n recording:\n 'border-red-500/50 text-red-500 bg-transparent hover:bg-red-500/10 hover:border-red-500',\n processing: 'border-primary/50 text-primary bg-transparent cursor-wait',\n disabled:\n 'border-muted text-muted-foreground bg-transparent cursor-not-allowed opacity-50',\n error: 'border-destructive/50 text-destructive bg-transparent',\n success: 'border-success/50 text-success bg-transparent',\n },\n ghost: {\n idle: 'text-primary hover:bg-primary/10',\n recording: 'text-red-500 hover:bg-red-500/10',\n processing: 'text-primary bg-primary/5 cursor-wait',\n disabled: 'text-muted-foreground cursor-not-allowed opacity-50',\n error: 'text-destructive',\n success: 'text-success',\n },\n minimal: {\n idle: 'text-primary hover:text-primary/80',\n recording: 'text-red-500 hover:text-red-500/80',\n processing: 'text-primary cursor-wait',\n disabled: 'text-muted-foreground/40 cursor-not-allowed',\n error: 'text-destructive',\n success: 'text-success',\n },\n };\n\n return styles[variant][state];\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nfunction formatDuration(seconds: number): string {\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\n/**\n * A voice recording button with 6 states and 4 visual variants.\n * Supports pulse animations, waveform visualization, and transcription integration.\n *\n * ## Controlled vs Uncontrolled Mode\n *\n * **Uncontrolled mode** (default): The component manages its own recording state.\n * Use `onRecordingComplete`, `onRecordingStart`, and `onRecordingError` callbacks.\n *\n * **Controlled mode**: When the `state` prop is provided, the component becomes\n * controlled and you must manage state changes externally. Note: In controlled mode,\n * the internal MediaRecorder functionality is disabled - you must implement your own\n * recording logic.\n *\n * ## State Precedence\n *\n * When multiple state-controlling props are provided, they follow this precedence:\n * 1. `disabled` prop (highest priority)\n * 2. `transcriptionState` prop\n * 3. `state` prop\n * 4. Internal state (uncontrolled)\n *\n * @example\n * ```tsx\n * // Uncontrolled with recording callbacks\n * <RecordButton\n * onRecordingComplete={(blob, duration) => console.log('Recorded:', blob)}\n * onRecordingError={(error) => console.error('Recording failed:', error)}\n * />\n *\n * // Controlled state (requires external recording implementation)\n * <RecordButton state=\"idle\" onClick={handleClick} />\n *\n * // Different variants\n * <RecordButton variant=\"outline\" size=\"lg\" />\n *\n * // With waveform animation\n * <RecordButton state=\"recording\" showWaveform showPulse />\n * ```\n */\nconst RecordButton = React.forwardRef<HTMLButtonElement, RecordButtonProps>(\n (\n {\n className,\n variant = 'default',\n size = 'md',\n state: controlledState,\n showWaveform = false,\n showPulse = true,\n disabled,\n showDuration = false,\n idleIcon,\n recordingIcon,\n transcriptionState,\n showTranscriptionState = false,\n onRecordingComplete,\n onRecordingStart,\n onRecordingError,\n maxDuration = 0,\n mimeType = 'audio/webm',\n onClick,\n ...props\n },\n ref\n ) => {\n // Internal state for uncontrolled usage\n const [internalState, setInternalState] =\n React.useState<RecordButtonState>('idle');\n const [duration, setDuration] = React.useState(0);\n\n const mediaRecorderRef = React.useRef<MediaRecorder | null>(null);\n const streamRef = React.useRef<MediaStream | null>(null);\n const chunksRef = React.useRef<Blob[]>([]);\n const timerRef = React.useRef<number | undefined>(undefined);\n const startTimeRef = React.useRef<number>(0);\n const timeoutsRef = React.useRef<NodeJS.Timeout[]>([]);\n\n // Helper to track and manage timeouts\n const addTimeout = (callback: () => void, delay: number) => {\n const id = setTimeout(() => {\n callback();\n // Remove from tracking after execution\n timeoutsRef.current = timeoutsRef.current.filter((t) => t !== id);\n }, delay);\n timeoutsRef.current.push(id);\n return id;\n };\n\n const clearAllTimeouts = () => {\n timeoutsRef.current.forEach(clearTimeout);\n timeoutsRef.current = [];\n };\n\n // Use controlled state if provided, otherwise internal state\n const isControlled = controlledState !== undefined;\n const currentState = isControlled ? controlledState : internalState;\n\n // Map transcription state to button state if provided\n // Precedence: disabled prop → transcriptionState → state prop → internal state\n const effectiveState: RecordButtonState = disabled\n ? 'disabled'\n : transcriptionState === 'error'\n ? 'error'\n : transcriptionState === 'transcribing' ||\n transcriptionState === 'streaming'\n ? 'processing'\n : transcriptionState === 'complete'\n ? 'success'\n : currentState;\n\n // Dev mode warnings for conflicting states\n React.useEffect(() => {\n // Only warn in development\n if (typeof window === 'undefined') return;\n\n // Warn when disabled is true but other state props suggest a different visual state\n if (\n disabled &&\n ((controlledState && controlledState !== 'disabled') ||\n transcriptionState)\n ) {\n console.warn(\n '[RecordButton]: `disabled` prop takes precedence over both `state` and `transcriptionState`. ' +\n 'When `disabled` is true, the button will always appear disabled.'\n );\n }\n\n // Warn when both controlled state and transcriptionState are provided and conflict\n if (controlledState !== undefined && transcriptionState !== undefined) {\n const mappedTranscriptionState: RecordButtonState | undefined =\n transcriptionState === 'error'\n ? 'error'\n : transcriptionState === 'transcribing' ||\n transcriptionState === 'streaming'\n ? 'processing'\n : transcriptionState === 'complete'\n ? 'success'\n : undefined;\n\n if (\n mappedTranscriptionState !== undefined &&\n mappedTranscriptionState !== controlledState\n ) {\n console.warn(\n '[RecordButton]: `transcriptionState` takes precedence over `state`. ' +\n `Received state=\"${controlledState}\" and transcriptionState=\"${transcriptionState}\". ` +\n 'This may lead to unexpected visual states.'\n );\n }\n }\n }, [disabled, controlledState, transcriptionState]);\n\n const iconSize = iconSizes[size];\n const isRecording = effectiveState === 'recording';\n const isDisabled =\n effectiveState === 'disabled' || effectiveState === 'processing';\n\n // Cleanup on unmount\n React.useEffect(() => {\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n clearAllTimeouts();\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n }\n };\n }, []);\n\n const stopRecording = React.useCallback(() => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n\n if (\n mediaRecorderRef.current &&\n mediaRecorderRef.current.state !== 'inactive'\n ) {\n mediaRecorderRef.current.stop();\n }\n\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n }\n }, []);\n\n const startRecording = React.useCallback(async () => {\n // Guard: don't start if disabled, already recording, or processing\n if (\n disabled ||\n effectiveState === 'recording' ||\n effectiveState === 'processing'\n )\n return;\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n streamRef.current = stream;\n\n const options = { mimeType };\n if (!MediaRecorder.isTypeSupported(mimeType)) {\n mediaRecorderRef.current = new MediaRecorder(stream);\n } else {\n mediaRecorderRef.current = new MediaRecorder(stream, options);\n }\n\n chunksRef.current = [];\n\n mediaRecorderRef.current.ondataavailable = (e) => {\n if (e.data.size > 0) {\n chunksRef.current.push(e.data);\n }\n };\n\n mediaRecorderRef.current.onstop = () => {\n if (!isControlled) {\n setInternalState('processing');\n }\n\n const blob = new Blob(chunksRef.current, { type: mimeType });\n const finalDuration = duration;\n\n // Small delay to show processing state\n addTimeout(() => {\n onRecordingComplete?.(blob, finalDuration);\n if (!isControlled) {\n setInternalState('success');\n // Reset to idle after showing success\n addTimeout(() => {\n setInternalState('idle');\n }, 1500);\n }\n setDuration(0);\n }, 200);\n };\n\n mediaRecorderRef.current.start(100);\n startTimeRef.current = Date.now();\n\n if (!isControlled) {\n setInternalState('recording');\n }\n onRecordingStart?.();\n\n timerRef.current = window.setInterval(() => {\n const elapsed = (Date.now() - startTimeRef.current) / 1000;\n setDuration(elapsed);\n\n if (maxDuration > 0 && elapsed >= maxDuration) {\n stopRecording();\n }\n }, 100);\n } catch (error) {\n onRecordingError?.(error as Error);\n if (!isControlled) {\n setInternalState('error');\n // Reset to idle after showing error\n addTimeout(() => {\n setInternalState('idle');\n }, 2000);\n }\n }\n }, [\n disabled,\n effectiveState,\n isControlled,\n mimeType,\n maxDuration,\n duration,\n onRecordingComplete,\n onRecordingStart,\n onRecordingError,\n stopRecording,\n ]);\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n // Call external onClick if provided\n onClick?.(e);\n\n // Handle internal recording logic only if not fully controlled\n if (!isControlled) {\n if (effectiveState === 'recording') {\n stopRecording();\n } else if (effectiveState === 'idle') {\n startRecording();\n }\n }\n },\n [onClick, isControlled, effectiveState, startRecording, stopRecording]\n );\n\n // Determine which icon to show\n const renderIcon = () => {\n switch (effectiveState) {\n case 'recording':\n if (showWaveform) {\n return <WaveformBars size={size} />;\n }\n return recordingIcon || <StopIcon className={iconSize} />;\n case 'processing':\n return <LoadingSpinner className={iconSize} />;\n case 'disabled':\n case 'error':\n return <MicOffIcon className={iconSize} />;\n case 'success':\n return <CheckIcon className={iconSize} />;\n default:\n return idleIcon || <MicIcon className={iconSize} />;\n }\n };\n\n const getAriaLabel = () => {\n switch (effectiveState) {\n case 'recording':\n return 'Stop recording';\n case 'processing':\n return 'Processing recording';\n case 'disabled':\n return 'Recording unavailable';\n case 'error':\n return 'Recording failed';\n case 'success':\n return 'Recording complete';\n default:\n return 'Start recording';\n }\n };\n\n const getTranscriptionLabel = () => {\n if (transcriptionState === 'streaming') return 'Listening...';\n if (transcriptionState === 'transcribing') return 'Transcribing...';\n return null;\n };\n\n return (\n <div\n data-slot=\"record-button\"\n className=\"relative inline-flex items-center gap-2\"\n >\n <button\n ref={ref}\n type=\"button\"\n disabled={isDisabled}\n onClick={handleClick}\n {...props}\n data-slot=\"record-button-trigger\"\n className={cn(\n recordButtonVariants({ variant, size }),\n getStateStyles(effectiveState, variant),\n className\n )}\n aria-label={getAriaLabel()}\n aria-pressed={effectiveState === 'recording' ? true : undefined}\n aria-busy={effectiveState === 'processing' ? true : undefined}\n >\n {/* Pulse animation for recording state */}\n {effectiveState === 'recording' && showPulse && (\n <PulseRings variant={variant} />\n )}\n\n {/* Icon */}\n <span data-slot=\"record-button-icon\" className=\"relative z-10\">\n {renderIcon()}\n </span>\n </button>\n\n {/* Duration display */}\n {showDuration && isRecording && (\n <span\n data-slot=\"record-button-duration\"\n className=\"text-destructive font-mono text-xs tabular-nums\"\n >\n {formatDuration(duration)}\n </span>\n )}\n\n {/* Transcription state label */}\n {showTranscriptionState && getTranscriptionLabel() && (\n <span\n data-slot=\"record-button-transcription\"\n className=\"text-primary text-xs font-medium\"\n >\n {getTranscriptionLabel()}\n </span>\n )}\n </div>\n );\n }\n);\n\nRecordButton.displayName = 'RecordButton';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport { RecordButton, recordButtonVariants, formatDuration };\n"]}
@@ -2,8 +2,18 @@
2
2
 
3
3
  // src/utils/phone.ts
4
4
  function formatPhoneNumber(value) {
5
- const digits = value.replace(/\D/g, "").slice(0, 10);
6
- if (digits.length === 0) return "";
5
+ const allDigits = value.replace(/\D/g, "");
6
+ if (allDigits.length === 0) return "";
7
+ if (allDigits.length === 11 && allDigits.startsWith("1")) {
8
+ const rest = allDigits.slice(1);
9
+ return `+1 (${rest.slice(0, 3)}) ${rest.slice(3, 6)}-${rest.slice(6)}`;
10
+ }
11
+ if (allDigits.length > 11) {
12
+ const cc = allDigits.slice(0, allDigits.length - 10);
13
+ const nat = allDigits.slice(-10);
14
+ return `+${cc} (${nat.slice(0, 3)}) ${nat.slice(3, 6)}-${nat.slice(6)}`;
15
+ }
16
+ const digits = allDigits.slice(0, 10);
7
17
  if (digits.length <= 3) return `(${digits}`;
8
18
  if (digits.length <= 6) return `(${digits.slice(0, 3)}) ${digits.slice(3)}`;
9
19
  return `(${digits.slice(0, 3)}) ${digits.slice(3, 6)}-${digits.slice(6)}`;
@@ -23,5 +33,5 @@ exports.formatPhoneNumber = formatPhoneNumber;
23
33
  exports.isPhoneNumberEmpty = isPhoneNumberEmpty;
24
34
  exports.isValidPhoneNumber = isValidPhoneNumber;
25
35
  exports.unformatPhoneNumber = unformatPhoneNumber;
26
- //# sourceMappingURL=chunk-BTJHYGPI.cjs.map
27
- //# sourceMappingURL=chunk-BTJHYGPI.cjs.map
36
+ //# sourceMappingURL=chunk-L7YQBSEL.cjs.map
37
+ //# sourceMappingURL=chunk-L7YQBSEL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/phone.ts"],"names":[],"mappings":";;;AAaO,SAAS,kBAAkB,KAAA,EAAuB;AACvD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AACzC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAInC,EAAA,IAAI,UAAU,MAAA,KAAW,EAAA,IAAM,SAAA,CAAU,UAAA,CAAW,GAAG,CAAA,EAAG;AACxD,IAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,CAAC,CAAA;AAC9B,IAAA,OAAO,OAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,EAAA,EAAK,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,EACtE;AAKA,EAAA,IAAI,SAAA,CAAU,SAAS,EAAA,EAAI;AACzB,IAAA,MAAM,KAAK,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,SAAA,CAAU,SAAS,EAAE,CAAA;AACnD,IAAA,MAAM,GAAA,GAAM,SAAA,CAAU,KAAA,CAAM,GAAG,CAAA;AAC/B,IAAA,OAAO,IAAI,EAAE,CAAA,EAAA,EAAK,IAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,EAAA,EAAK,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAC,IAAI,GAAA,CAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,EACvE;AAGA,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACpC,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,CAAA,EAAG,OAAO,IAAI,MAAM,CAAA,CAAA;AACzC,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,CAAA,EAAG,OAAO,IAAI,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACzE,EAAA,OAAO,IAAI,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACzE;AAKO,SAAS,oBAAoB,KAAA,EAAuB;AACzD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAKO,SAAS,mBAAmB,KAAA,EAAwB;AACzD,EAAA,MAAM,MAAA,GAAS,oBAAoB,KAAK,CAAA;AACxC,EAAA,OAAO,OAAO,MAAA,KAAW,EAAA;AAC3B;AAKO,SAAS,mBAAmB,KAAA,EAAwB;AACzD,EAAA,OAAO,mBAAA,CAAoB,KAAK,CAAA,CAAE,MAAA,KAAW,CAAA;AAC/C","file":"chunk-L7YQBSEL.cjs","sourcesContent":["/**\n * Phone number formatting utilities\n */\n\n/**\n * Formats a phone number string to US format.\n *\n * Behavior:\n * - 10 digits → `(XXX) XXX-XXXX`\n * - 11 digits w/ `1` → `+1 (XXX) XXX-XXXX` (E.164 US/Canada)\n * - 12+ digits → `+CC (XXX) XXX-XXXX...` (best-effort intl)\n * - partial (typing) → progressive `(`, `(XXX`, `(XXX) X`, etc.\n */\nexport function formatPhoneNumber(value: string): string {\n const allDigits = value.replace(/\\D/g, '');\n if (allDigits.length === 0) return '';\n\n // E.164 with US/Canada country code (1XXXXXXXXXX). Show the country code\n // explicitly so phone numbers aren't shifted by one digit when displayed.\n if (allDigits.length === 11 && allDigits.startsWith('1')) {\n const rest = allDigits.slice(1);\n return `+1 (${rest.slice(0, 3)}) ${rest.slice(3, 6)}-${rest.slice(6)}`;\n }\n\n // Other international numbers: keep the country code prefix and format the\n // trailing 10 digits as a US-style block. This isn't locale-perfect but\n // it's better than silently dropping the country code.\n if (allDigits.length > 11) {\n const cc = allDigits.slice(0, allDigits.length - 10);\n const nat = allDigits.slice(-10);\n return `+${cc} (${nat.slice(0, 3)}) ${nat.slice(3, 6)}-${nat.slice(6)}`;\n }\n\n // Domestic / partial input — progressive formatting as the user types.\n const digits = allDigits.slice(0, 10);\n if (digits.length <= 3) return `(${digits}`;\n if (digits.length <= 6) return `(${digits.slice(0, 3)}) ${digits.slice(3)}`;\n return `(${digits.slice(0, 3)}) ${digits.slice(3, 6)}-${digits.slice(6)}`;\n}\n\n/**\n * Removes formatting from a phone number, returning only digits\n */\nexport function unformatPhoneNumber(value: string): string {\n return value.replace(/\\D/g, '');\n}\n\n/**\n * Validates if a phone number has exactly 10 digits\n */\nexport function isValidPhoneNumber(value: string): boolean {\n const digits = unformatPhoneNumber(value);\n return digits.length === 10;\n}\n\n/**\n * Checks if a phone number string is empty (no digits)\n */\nexport function isPhoneNumberEmpty(value: string): boolean {\n return unformatPhoneNumber(value).length === 0;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { AlertCircle, ArrowLeft, Bell, Calendar, Camera, Check, CheckCircle, ChevronDown, ClipboardCheck, ClipboardList, ClipboardPlus, Clock, Download, ExternalLink, Eye, FileCheck, FileHeart, FilePlus, FileText, Globe, HeartPulse, Image, Mail, MoreHorizontal, MoreVertical, Paperclip, Pencil, Phone, Pill, Plus, Printer, RefreshCw, Scan, ScanLine, Send, Share, Stethoscope, Trash2, Upload, User, Users, Wheat, X } from 'lucide-react';
2
+ //# sourceMappingURL=chunk-LEMY57MI.js.map
3
+ //# sourceMappingURL=chunk-LEMY57MI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-Y22SOAJM.js","sourcesContent":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-LEMY57MI.js","sourcesContent":[]}
@@ -30,7 +30,7 @@ var quickActionIconVariants = classVarianceAuthority.cva(
30
30
  {
31
31
  variants: {
32
32
  color: {
33
- primary: "bg-primary-100 text-primary-600 dark:bg-primary-900/50 dark:text-primary-400",
33
+ primary: "bg-primary-100 text-primary-800 dark:bg-primary-900/50 dark:text-primary-400",
34
34
  green: "bg-emerald-100 text-emerald-600 dark:bg-emerald-900/50 dark:text-emerald-400",
35
35
  purple: "bg-violet-100 text-violet-600 dark:bg-violet-900/50 dark:text-violet-400",
36
36
  orange: "bg-orange-100 text-orange-600 dark:bg-orange-900/50 dark:text-orange-400",
@@ -85,16 +85,38 @@ var QuickAction = React__namespace.forwardRef(
85
85
  ...props
86
86
  }, ref) => {
87
87
  const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
88
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkOR5DRJCW_cjs.cn(quickActionIconVariants({ color })), children: icon }),
89
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
90
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-neutral-900 dark:text-white", children: title }),
91
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-neutral-500 dark:text-neutral-400", children: subtitle })
88
+ /* @__PURE__ */ jsxRuntime.jsx(
89
+ "div",
90
+ {
91
+ "data-slot": "quick-action-icon",
92
+ className: chunkOR5DRJCW_cjs.cn(quickActionIconVariants({ color })),
93
+ children: icon
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "quick-action-content", children: [
97
+ /* @__PURE__ */ jsxRuntime.jsx(
98
+ "div",
99
+ {
100
+ "data-slot": "quick-action-title",
101
+ className: "font-medium text-neutral-900 dark:text-white",
102
+ children: title
103
+ }
104
+ ),
105
+ /* @__PURE__ */ jsxRuntime.jsx(
106
+ "div",
107
+ {
108
+ "data-slot": "quick-action-subtitle",
109
+ className: "text-muted-foreground text-xs",
110
+ children: subtitle
111
+ }
112
+ )
92
113
  ] })
93
114
  ] });
94
115
  if (as === "a" && href) {
95
116
  return /* @__PURE__ */ jsxRuntime.jsx(
96
117
  "a",
97
118
  {
119
+ "data-slot": "quick-action",
98
120
  href,
99
121
  className: chunkOR5DRJCW_cjs.cn(quickActionVariants({ disabled }), className),
100
122
  "aria-disabled": disabled,
@@ -106,6 +128,7 @@ var QuickAction = React__namespace.forwardRef(
106
128
  return /* @__PURE__ */ jsxRuntime.jsx(
107
129
  "button",
108
130
  {
131
+ "data-slot": "quick-action",
109
132
  ref,
110
133
  type: "button",
111
134
  disabled: disabled ?? void 0,
@@ -309,10 +332,26 @@ var QuickActionGroup = React__namespace.forwardRef(
309
332
  // Large screens
310
333
  columns.lg === 2 ? "lg:grid-cols-2" : columns.lg === 3 ? "lg:grid-cols-3" : "lg:grid-cols-4"
311
334
  );
312
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className, ...props, children: [
313
- title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "mb-4 text-lg font-semibold text-neutral-900 dark:text-white", children: title }),
314
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: gridCols, children })
315
- ] });
335
+ return /* @__PURE__ */ jsxRuntime.jsxs(
336
+ "div",
337
+ {
338
+ "data-slot": "quick-action-group",
339
+ ref,
340
+ className,
341
+ ...props,
342
+ children: [
343
+ title && /* @__PURE__ */ jsxRuntime.jsx(
344
+ "h2",
345
+ {
346
+ "data-slot": "quick-action-group-title",
347
+ className: "mb-4 text-lg font-semibold text-neutral-900 dark:text-white",
348
+ children: title
349
+ }
350
+ ),
351
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "quick-action-group-grid", className: gridCols, children })
352
+ ]
353
+ }
354
+ );
316
355
  }
317
356
  );
318
357
  QuickActionGroup.displayName = "QuickActionGroup";
@@ -322,5 +361,5 @@ exports.QuickActionGroup = QuickActionGroup;
322
361
  exports.QuickActionIcons = QuickActionIcons;
323
362
  exports.quickActionIconVariants = quickActionIconVariants;
324
363
  exports.quickActionVariants = quickActionVariants;
325
- //# sourceMappingURL=chunk-AU5ADTYD.cjs.map
326
- //# sourceMappingURL=chunk-AU5ADTYD.cjs.map
364
+ //# sourceMappingURL=chunk-MIGLLTTD.cjs.map
365
+ //# sourceMappingURL=chunk-MIGLLTTD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/QuickAction/QuickAction.tsx"],"names":["cva","React","jsxs","Fragment","jsx","cn"],"mappings":"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","file":"chunk-MIGLLTTD.cjs","sourcesContent":["import * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst quickActionIconVariants = cva(\n ['flex items-center justify-center rounded-xl', 'h-10 w-10'],\n {\n variants: {\n color: {\n primary:\n 'bg-primary-100 text-primary-800 dark:bg-primary-900/50 dark:text-primary-400',\n green:\n 'bg-emerald-100 text-emerald-600 dark:bg-emerald-900/50 dark:text-emerald-400',\n purple:\n 'bg-violet-100 text-violet-600 dark:bg-violet-900/50 dark:text-violet-400',\n orange:\n 'bg-orange-100 text-orange-600 dark:bg-orange-900/50 dark:text-orange-400',\n blue: 'bg-sky-100 text-sky-600 dark:bg-sky-900/50 dark:text-sky-400',\n red: 'bg-rose-100 text-rose-600 dark:bg-rose-900/50 dark:text-rose-400',\n amber:\n 'bg-amber-100 text-amber-600 dark:bg-amber-900/50 dark:text-amber-400',\n neutral:\n 'bg-neutral-100 text-neutral-600 dark:bg-neutral-800 dark:text-neutral-400',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst quickActionVariants = cva(\n [\n 'flex items-center gap-3 rounded-xl border p-4 text-left',\n 'transition-colors duration-200',\n 'border-neutral-200 bg-white',\n 'hover:border-primary-300 hover:bg-primary-50',\n 'dark:border-neutral-700 dark:bg-neutral-800',\n 'dark:hover:border-primary-700 dark:hover:bg-primary-900/20',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2',\n 'dark:focus-visible:ring-offset-neutral-900',\n ],\n {\n variants: {\n disabled: {\n true: [\n 'opacity-50 cursor-not-allowed',\n 'hover:border-neutral-200 hover:bg-white',\n 'dark:hover:border-neutral-700 dark:hover:bg-neutral-800',\n ],\n false: 'cursor-pointer',\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n);\n\nexport type QuickActionColor =\n | 'primary'\n | 'green'\n | 'purple'\n | 'orange'\n | 'blue'\n | 'red'\n | 'amber'\n | 'neutral';\n\nexport interface QuickActionProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'color' | 'disabled'\n> {\n /** The main title text */\n title: string;\n /** The subtitle/description text */\n subtitle: string;\n /** Icon to display in the colored background */\n icon: React.ReactNode;\n /** Color theme for the icon background */\n color?: QuickActionColor;\n /** Render as a different element (e.g., 'a' for links) */\n as?: 'button' | 'a';\n /** URL when rendered as a link */\n href?: string;\n /** Whether the action is disabled */\n disabled?: boolean;\n}\n\n/**\n * A quick action card component for dashboard navigation.\n * Displays an icon, title, and subtitle in a compact, clickable card.\n *\n * @example\n * ```tsx\n * <QuickAction\n * title=\"Schedule Exam\"\n * subtitle=\"Find providers nearby\"\n * color=\"primary\"\n * icon={<CalendarIcon className=\"h-5 w-5\" />}\n * onClick={() => navigate('/schedule')}\n * />\n * ```\n */\nconst QuickAction = React.forwardRef<HTMLButtonElement, QuickActionProps>(\n (\n {\n className,\n title,\n subtitle,\n icon,\n color = 'primary',\n disabled,\n as = 'button',\n href,\n ...props\n },\n ref\n ) => {\n const content = (\n <>\n <div\n data-slot=\"quick-action-icon\"\n className={cn(quickActionIconVariants({ color }))}\n >\n {icon}\n </div>\n <div data-slot=\"quick-action-content\">\n <div\n data-slot=\"quick-action-title\"\n className=\"font-medium text-neutral-900 dark:text-white\"\n >\n {title}\n </div>\n <div\n data-slot=\"quick-action-subtitle\"\n className=\"text-muted-foreground text-xs\"\n >\n {subtitle}\n </div>\n </div>\n </>\n );\n\n if (as === 'a' && href) {\n return (\n <a\n data-slot=\"quick-action\"\n href={href}\n className={cn(quickActionVariants({ disabled }), className)}\n aria-disabled={disabled}\n {...(props as React.AnchorHTMLAttributes<globalThis.HTMLAnchorElement>)}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n data-slot=\"quick-action\"\n ref={ref}\n type=\"button\"\n disabled={disabled ?? undefined}\n className={cn(quickActionVariants({ disabled }), className)}\n {...props}\n >\n {content}\n </button>\n );\n }\n);\n\nQuickAction.displayName = 'QuickAction';\n\n// Predefined icons for common quick actions\nexport const QuickActionIcons = {\n Calendar: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n ),\n Clipboard: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"\n />\n </svg>\n ),\n User: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"\n />\n </svg>\n ),\n Document: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n ),\n Settings: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n />\n </svg>\n ),\n Help: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n Search: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n ),\n Bell: (props: React.SVGProps<globalThis.SVGSVGElement>) => (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\"\n />\n </svg>\n ),\n};\n\n/**\n * A group/container component for displaying multiple QuickAction cards in a grid.\n *\n * @example\n * ```tsx\n * <QuickActionGroup title=\"Quick Actions\">\n * <QuickAction title=\"Action 1\" ... />\n * <QuickAction title=\"Action 2\" ... />\n * </QuickActionGroup>\n * ```\n */\nexport interface QuickActionGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Optional title to display above the quick actions */\n title?: string;\n /** Number of columns on different screen sizes */\n columns?: {\n base?: 1 | 2;\n sm?: 1 | 2;\n md?: 2 | 3 | 4;\n lg?: 2 | 3 | 4;\n };\n}\n\nconst QuickActionGroup = React.forwardRef<\n HTMLDivElement,\n QuickActionGroupProps\n>(\n (\n {\n className,\n title,\n columns = { base: 1, sm: 2, md: 2, lg: 4 },\n children,\n ...props\n },\n ref\n ) => {\n const gridCols = cn(\n 'grid gap-4',\n // Base (mobile)\n columns.base === 1 ? 'grid-cols-1' : 'grid-cols-2',\n // Small screens\n columns.sm === 1 ? 'sm:grid-cols-1' : 'sm:grid-cols-2',\n // Medium screens\n columns.md === 2\n ? 'md:grid-cols-2'\n : columns.md === 3\n ? 'md:grid-cols-3'\n : columns.md === 4\n ? 'md:grid-cols-4'\n : '',\n // Large screens\n columns.lg === 2\n ? 'lg:grid-cols-2'\n : columns.lg === 3\n ? 'lg:grid-cols-3'\n : 'lg:grid-cols-4'\n );\n\n return (\n <div\n data-slot=\"quick-action-group\"\n ref={ref}\n className={className}\n {...props}\n >\n {title && (\n <h2\n data-slot=\"quick-action-group-title\"\n className=\"mb-4 text-lg font-semibold text-neutral-900 dark:text-white\"\n >\n {title}\n </h2>\n )}\n <div data-slot=\"quick-action-group-grid\" className={gridCols}>\n {children}\n </div>\n </div>\n );\n }\n);\n\nQuickActionGroup.displayName = 'QuickActionGroup';\n\nexport {\n QuickAction,\n QuickActionGroup,\n quickActionVariants,\n quickActionIconVariants,\n};\n"]}
@@ -74,48 +74,74 @@ var Input = React__namespace.forwardRef(
74
74
  const helperId = `${inputId}-helper`;
75
75
  const describedByIds = [
76
76
  error ? errorId : null,
77
- helperText ? helperId : null,
77
+ helperText && !error ? helperId : null,
78
78
  ariaDescribedBy
79
79
  ].filter(Boolean).join(" ");
80
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOR5DRJCW_cjs.cn("flex flex-col gap-1.5", disabled && "opacity-50"), children: [
81
- label && /* @__PURE__ */ jsxRuntime.jsxs(
82
- "label",
83
- {
84
- htmlFor: inputId,
85
- className: chunkOR5DRJCW_cjs.cn(
86
- "text-foreground text-sm font-medium",
87
- hideLabel && "sr-only"
80
+ return /* @__PURE__ */ jsxRuntime.jsxs(
81
+ "div",
82
+ {
83
+ "data-slot": "input-wrapper",
84
+ className: chunkOR5DRJCW_cjs.cn("flex flex-col gap-1.5", disabled && "opacity-50"),
85
+ children: [
86
+ label && /* @__PURE__ */ jsxRuntime.jsxs(
87
+ "label",
88
+ {
89
+ "data-slot": "input-label",
90
+ htmlFor: inputId,
91
+ className: chunkOR5DRJCW_cjs.cn(
92
+ "text-foreground text-sm font-medium",
93
+ hideLabel && "sr-only"
94
+ ),
95
+ children: [
96
+ label,
97
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", "aria-hidden": "true", children: "*" })
98
+ ]
99
+ }
88
100
  ),
89
- children: [
90
- label,
91
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", "aria-hidden": "true", children: "*" })
92
- ]
93
- }
94
- ),
95
- /* @__PURE__ */ jsxRuntime.jsx(
96
- "input",
97
- {
98
- id: inputId,
99
- ref,
100
- className: chunkOR5DRJCW_cjs.cn(
101
- inputVariants({ size, hasError: hasError || !!error }),
102
- className
101
+ /* @__PURE__ */ jsxRuntime.jsx(
102
+ "input",
103
+ {
104
+ "data-slot": "input",
105
+ id: inputId,
106
+ ref,
107
+ className: chunkOR5DRJCW_cjs.cn(
108
+ inputVariants({ size, hasError: hasError || !!error }),
109
+ className
110
+ ),
111
+ "aria-invalid": hasError || !!error,
112
+ "aria-describedby": describedByIds || void 0,
113
+ required,
114
+ disabled,
115
+ ...props
116
+ }
103
117
  ),
104
- "aria-invalid": hasError || !!error,
105
- "aria-describedby": describedByIds || void 0,
106
- required,
107
- disabled,
108
- ...props
109
- }
110
- ),
111
- error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: "text-destructive text-sm", role: "alert", children: error }),
112
- helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: helperId, className: "text-muted-foreground text-sm", children: helperText })
113
- ] });
118
+ error && /* @__PURE__ */ jsxRuntime.jsx(
119
+ "p",
120
+ {
121
+ id: errorId,
122
+ "data-slot": "input-error",
123
+ className: "text-destructive-700 dark:text-destructive-400 text-sm",
124
+ role: "alert",
125
+ children: error
126
+ }
127
+ ),
128
+ helperText && !error && /* @__PURE__ */ jsxRuntime.jsx(
129
+ "p",
130
+ {
131
+ id: helperId,
132
+ "data-slot": "input-helper",
133
+ className: "text-muted-foreground text-sm",
134
+ children: helperText
135
+ }
136
+ )
137
+ ]
138
+ }
139
+ );
114
140
  }
115
141
  );
116
142
  Input.displayName = "Input";
117
143
 
118
144
  exports.Input = Input;
119
145
  exports.inputVariants = inputVariants;
120
- //# sourceMappingURL=chunk-VV4N4WY6.cjs.map
121
- //# sourceMappingURL=chunk-VV4N4WY6.cjs.map
146
+ //# sourceMappingURL=chunk-MSRU3XBH.cjs.map
147
+ //# sourceMappingURL=chunk-MSRU3XBH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input/Input.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-MSRU3XBH.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst inputVariants = cva(\n [\n 'w-full px-3 py-2',\n 'border border-input rounded-lg',\n 'bg-background text-foreground',\n 'placeholder:text-muted-foreground',\n 'transition-colors duration-200',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-8 text-sm',\n md: 'h-10 text-base',\n lg: 'h-12 text-lg',\n },\n hasError: {\n true: 'border-destructive focus:ring-destructive',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n hasError: false,\n },\n }\n);\n\nexport interface InputProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n /** Error message to display below the input */\n error?: string;\n /** Helper text to display below the input */\n helperText?: string;\n /** Label for the input */\n label?: string;\n /** Whether the label should be visually hidden (still accessible) */\n hideLabel?: boolean;\n /** Whether the input is required */\n required?: boolean;\n}\n\n/**\n * A styled input component with support for labels, errors, and helper text.\n *\n * @example\n * ```tsx\n * <Input label=\"Email\" type=\"email\" placeholder=\"you@example.com\" />\n * <Input label=\"Password\" type=\"password\" error=\"Password is required\" hasError />\n * ```\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n size,\n hasError,\n error,\n helperText,\n label,\n hideLabel,\n required,\n disabled,\n id,\n 'aria-describedby': ariaDescribedBy,\n ...props\n },\n ref\n ) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n const errorId = `${inputId}-error`;\n const helperId = `${inputId}-helper`;\n\n const describedByIds = [\n error ? errorId : null,\n helperText && !error ? helperId : null,\n ariaDescribedBy,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n data-slot=\"input-wrapper\"\n className={cn('flex flex-col gap-1.5', disabled && 'opacity-50')}\n >\n {label && (\n <label\n data-slot=\"input-label\"\n htmlFor={inputId}\n className={cn(\n 'text-foreground text-sm font-medium',\n hideLabel && 'sr-only'\n )}\n >\n {label}\n {required && (\n <span className=\"text-destructive ml-1\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <input\n data-slot=\"input\"\n id={inputId}\n ref={ref}\n className={cn(\n inputVariants({ size, hasError: hasError || !!error }),\n className\n )}\n aria-invalid={hasError || !!error}\n aria-describedby={describedByIds || undefined}\n required={required}\n disabled={disabled}\n {...props}\n />\n {error && (\n <p\n id={errorId}\n data-slot=\"input-error\"\n className=\"text-destructive-700 dark:text-destructive-400 text-sm\"\n role=\"alert\"\n >\n {error}\n </p>\n )}\n {helperText && !error && (\n <p\n id={helperId}\n data-slot=\"input-helper\"\n className=\"text-muted-foreground text-sm\"\n >\n {helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n"]}
@@ -39,7 +39,7 @@ function Tabs({
39
39
  TabsContext.Provider,
40
40
  {
41
41
  value: { value, onValueChange: handleValueChange, variant },
42
- children: /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children })
42
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "tabs", className: cn("w-full", className), children })
43
43
  }
44
44
  );
45
45
  }
@@ -110,6 +110,7 @@ var TabsList = React.forwardRef(
110
110
  }
111
111
  },
112
112
  role: "tablist",
113
+ "data-slot": "tabs-list",
113
114
  tabIndex: 0,
114
115
  onKeyDown: handleKeyDown,
115
116
  className: cn(tabsListVariants({ variant }), className),
@@ -134,7 +135,8 @@ var tabsTriggerVariants = cva(
134
135
  "px-4 py-2 -mb-px",
135
136
  "border-b-2 border-transparent",
136
137
  "text-muted-foreground hover:text-foreground",
137
- "data-[state=active]:border-primary-700 data-[state=active]:text-primary-800"
138
+ "data-[state=active]:border-primary-700 data-[state=active]:text-primary-800",
139
+ "dark:data-[state=active]:border-primary-400 dark:data-[state=active]:text-primary-400"
138
140
  ],
139
141
  pills: [
140
142
  "px-3 py-1.5 rounded-md text-sm",
@@ -164,6 +166,7 @@ var TabsTrigger = React.forwardRef(
164
166
  ref,
165
167
  type: "button",
166
168
  role: "tab",
169
+ "data-slot": "tabs-trigger",
167
170
  "aria-selected": isSelected,
168
171
  "aria-controls": `tabpanel-${value}`,
169
172
  id: `tab-${value}`,
@@ -174,7 +177,7 @@ var TabsTrigger = React.forwardRef(
174
177
  className: cn(tabsTriggerVariants({ variant }), className),
175
178
  ...props,
176
179
  children: [
177
- icon && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: icon }),
180
+ icon && /* @__PURE__ */ jsx("span", { "data-slot": "tabs-trigger-icon", className: "shrink-0", children: icon }),
178
181
  children
179
182
  ]
180
183
  }
@@ -194,6 +197,7 @@ var TabsContent = React.forwardRef(
194
197
  {
195
198
  ref,
196
199
  role: "tabpanel",
200
+ "data-slot": "tabs-content",
197
201
  id: `tabpanel-${value}`,
198
202
  "aria-labelledby": `tab-${value}`,
199
203
  tabIndex: 0,
@@ -213,5 +217,5 @@ var TabsContent = React.forwardRef(
213
217
  TabsContent.displayName = "TabsContent";
214
218
 
215
219
  export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };
216
- //# sourceMappingURL=chunk-JFAXLE2J.js.map
217
- //# sourceMappingURL=chunk-JFAXLE2J.js.map
220
+ //# sourceMappingURL=chunk-MUYTGWGE.js.map
221
+ //# sourceMappingURL=chunk-MUYTGWGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","file":"chunk-MUYTGWGE.js","sourcesContent":["import * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Tabs Context\n// ============================================================================\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n variant: 'underline' | 'pills' | 'enclosed';\n}\n\nconst TabsContext = React.createContext<TabsContextValue | undefined>(\n undefined\n);\n\nfunction useTabsContext() {\n const context = React.useContext(TabsContext);\n if (!context) {\n throw new Error('Tabs components must be used within a Tabs provider');\n }\n return context;\n}\n\n// ============================================================================\n// Tabs Root\n// ============================================================================\n\nexport interface TabsProps {\n /** The controlled value of the selected tab */\n value?: string;\n /** The default value of the selected tab (uncontrolled) */\n defaultValue?: string;\n /** Callback when the selected tab changes */\n onValueChange?: (value: string) => void;\n /** Visual variant of the tabs */\n variant?: 'underline' | 'pills' | 'enclosed';\n /** Tab content */\n children: React.ReactNode;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * Accessible tabs component with keyboard navigation.\n *\n * @example\n * ```tsx\n * <Tabs defaultValue=\"tab1\">\n * <TabsList>\n * <TabsTrigger value=\"tab1\">Tab 1</TabsTrigger>\n * <TabsTrigger value=\"tab2\">Tab 2</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"tab1\">Content 1</TabsContent>\n * <TabsContent value=\"tab2\">Content 2</TabsContent>\n * </Tabs>\n * ```\n */\nfunction Tabs({\n value: controlledValue,\n defaultValue,\n onValueChange,\n variant = 'underline',\n children,\n className,\n}: TabsProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(\n defaultValue || ''\n );\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <TabsContext.Provider\n value={{ value, onValueChange: handleValueChange, variant }}\n >\n <div data-slot=\"tabs\" className={cn('w-full', className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nTabs.displayName = 'Tabs';\n\n// ============================================================================\n// Tabs List\n// ============================================================================\n\nconst tabsListVariants = cva(['flex items-center'], {\n variants: {\n variant: {\n underline: 'border-b border-border gap-0',\n pills: 'gap-1 p-1 rounded-lg bg-muted',\n enclosed: 'gap-0 border-b border-border',\n },\n },\n defaultVariants: {\n variant: 'underline',\n },\n});\n\nexport type TabsListProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Container for tab triggers.\n */\nconst TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const { variant } = useTabsContext();\n const listRef = React.useRef<HTMLDivElement>(null);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const list = listRef.current;\n if (!list) return;\n\n const triggers = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\n '[role=\"tab\"]:not([disabled])'\n )\n );\n const currentIndex = triggers.findIndex(\n (trigger) => trigger === document.activeElement\n );\n\n let nextIndex: number;\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n e.preventDefault();\n nextIndex =\n currentIndex === triggers.length - 1 ? 0 : currentIndex + 1;\n triggers[nextIndex]?.focus();\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n e.preventDefault();\n nextIndex =\n currentIndex === 0 ? triggers.length - 1 : currentIndex - 1;\n triggers[nextIndex]?.focus();\n break;\n case 'Home':\n e.preventDefault();\n triggers[0]?.focus();\n break;\n case 'End':\n e.preventDefault();\n triggers[triggers.length - 1]?.focus();\n break;\n }\n },\n []\n );\n\n return (\n <div\n ref={(node) => {\n // Combine refs\n (listRef as React.MutableRefObject<HTMLDivElement | null>).current =\n node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n role=\"tablist\"\n data-slot=\"tabs-list\"\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\n\nTabsList.displayName = 'TabsList';\n\n// ============================================================================\n// Tabs Trigger\n// ============================================================================\n\nconst tabsTriggerVariants = cva(\n [\n 'inline-flex items-center justify-center gap-2',\n 'font-medium transition-all duration-200',\n 'whitespace-nowrap',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n variant: {\n underline: [\n 'px-4 py-2 -mb-px',\n 'border-b-2 border-transparent',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:border-primary-700 data-[state=active]:text-primary-800',\n 'dark:data-[state=active]:border-primary-400 dark:data-[state=active]:text-primary-400',\n ],\n pills: [\n 'px-3 py-1.5 rounded-md text-sm',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',\n ],\n enclosed: [\n 'px-4 py-2 -mb-px',\n 'border border-transparent rounded-t-lg',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:border-border data-[state=active]:border-b-background data-[state=active]:bg-background data-[state=active]:text-foreground',\n ],\n },\n },\n defaultVariants: {\n variant: 'underline',\n },\n }\n);\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value that identifies this tab */\n value: string;\n /** Icon to show before the label */\n icon?: React.ReactNode;\n}\n\n/**\n * A tab trigger button.\n */\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, icon, children, disabled, ...props }, ref) => {\n const { value: selectedValue, onValueChange, variant } = useTabsContext();\n const isSelected = selectedValue === value;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"tab\"\n data-slot=\"tabs-trigger\"\n aria-selected={isSelected}\n aria-controls={`tabpanel-${value}`}\n id={`tab-${value}`}\n tabIndex={isSelected ? 0 : -1}\n data-state={isSelected ? 'active' : 'inactive'}\n disabled={disabled}\n onClick={() => onValueChange(value)}\n className={cn(tabsTriggerVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <span data-slot=\"tabs-trigger-icon\" className=\"shrink-0\">\n {icon}\n </span>\n )}\n {children}\n </button>\n );\n }\n);\n\nTabsTrigger.displayName = 'TabsTrigger';\n\n// ============================================================================\n// Tabs Content\n// ============================================================================\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The value that identifies this content panel */\n value: string;\n /** Force mount the content (useful for animations) */\n forceMount?: boolean;\n}\n\n/**\n * Content panel for a tab.\n */\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, forceMount = false, children, ...props }, ref) => {\n const { value: selectedValue } = useTabsContext();\n const isSelected = selectedValue === value;\n\n if (!isSelected && !forceMount) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n data-slot=\"tabs-content\"\n id={`tabpanel-${value}`}\n aria-labelledby={`tab-${value}`}\n tabIndex={0}\n hidden={!isSelected}\n data-state={isSelected ? 'active' : 'inactive'}\n className={cn(\n 'focus-visible:ring-ring mt-4 rounded-lg focus-visible:ring-2 focus-visible:outline-none',\n !isSelected && 'hidden',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nTabsContent.displayName = 'TabsContent';\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n tabsListVariants,\n tabsTriggerVariants,\n};\n"]}
@@ -41,6 +41,7 @@ var Alert = React.forwardRef(
41
41
  {
42
42
  ref,
43
43
  role: "alert",
44
+ "data-slot": "alert",
44
45
  className: cn(
45
46
  alertVariants({ variant }),
46
47
  React.isValidElement(icon) && "pl-11",
@@ -55,6 +56,7 @@ var Alert = React.forwardRef(
55
56
  "button",
56
57
  {
57
58
  type: "button",
59
+ "data-slot": "alert-dismiss",
58
60
  onClick: onDismiss,
59
61
  className: cn(
60
62
  "absolute top-2 right-2 rounded-md p-1",
@@ -76,6 +78,7 @@ var AlertTitle = React.forwardRef(({ className, children, ...props }, ref) => /*
76
78
  "h5",
77
79
  {
78
80
  ref,
81
+ "data-slot": "alert-title",
79
82
  className: cn("mb-1 leading-none font-semibold tracking-tight", className),
80
83
  ...props,
81
84
  children
@@ -86,6 +89,7 @@ var AlertDescription = React.forwardRef(({ className, ...props }, ref) => /* @__
86
89
  "p",
87
90
  {
88
91
  ref,
92
+ "data-slot": "alert-description",
89
93
  className: cn("text-sm [&_p]:leading-relaxed", className),
90
94
  ...props
91
95
  }
@@ -93,5 +97,5 @@ var AlertDescription = React.forwardRef(({ className, ...props }, ref) => /* @__
93
97
  AlertDescription.displayName = "AlertDescription";
94
98
 
95
99
  export { Alert, AlertDescription, AlertTitle, alertVariants };
96
- //# sourceMappingURL=chunk-B26RIQ5R.js.map
97
- //# sourceMappingURL=chunk-B26RIQ5R.js.map
100
+ //# sourceMappingURL=chunk-MV3MTHWQ.js.map
101
+ //# sourceMappingURL=chunk-MV3MTHWQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":[],"mappings":";;;;;;AAKA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB;AAAA,IACE,uCAAA;AAAA,IACA,oEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,IAAA,EAAM,qHAAA;AAAA,QACN,OAAA,EACE,yGAAA;AAAA,QACF,OAAA,EACE,+GAAA;AAAA,QACF,MAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AA2BA,IAAM,KAAA,GAAc,KAAA,CAAA,UAAA;AAAA,EAClB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,eAAA;AAAA,IACf,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,OAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA;AAAA,UACnB,KAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,OAAA;AAAA,UAC9B,WAAA,IAAe,OAAA;AAAA,UACf;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAM,KAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA;AAAA,0BAC/B,GAAA,CAAC,SAAK,QAAA,EAAS,CAAA;AAAA,UACd,WAAA,oBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,WAAA,EAAU,eAAA;AAAA,cACV,OAAA,EAAS,SAAA;AAAA,cACT,SAAA,EAAW,EAAA;AAAA,gBACT,uCAAA;AAAA,gBACA,8BAAA;AAAA,gBACA,qGAAA;AAAA,gBACA;AAAA,eACF;AAAA,cACA,YAAA,EAAY,YAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO;AAAA;AAAA;AAClC;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAKpB,IAAM,UAAA,GAAmB,iBAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC,GAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,aAAA;AAAA,IACV,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD;AAED,UAAA,CAAW,WAAA,GAAc,YAAA;AAKzB,IAAM,gBAAA,GAAyB,iBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,mBAAA;AAAA,IACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"chunk-MV3MTHWQ.js","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nconst alertVariants = cva(\n [\n 'relative w-full rounded-lg border p-4',\n '[&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-current',\n '[&>svg+div]:translate-y-[-3px]',\n ],\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground border-border',\n info: 'bg-primary-50 text-primary-900 border-primary-200 dark:bg-primary-950 dark:text-primary-100 dark:border-primary-800',\n success:\n 'bg-green-50 text-green-900 border-green-200 dark:bg-green-950 dark:text-green-100 dark:border-green-800',\n warning:\n 'bg-yellow-50 text-yellow-900 border-yellow-200 dark:bg-yellow-950 dark:text-yellow-100 dark:border-yellow-800',\n danger:\n 'bg-red-50 text-red-900 border-red-200 dark:bg-red-950 dark:text-red-100 dark:border-red-800',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface AlertProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n /** Icon to display in the alert */\n icon?: React.ReactElement | null;\n /** Whether the alert can be dismissed */\n dismissible?: boolean;\n /** Callback when the alert is dismissed */\n onDismiss?: () => void;\n /** Accessible label for the dismiss button */\n dismissLabel?: string;\n}\n\n/**\n * An alert component for displaying important messages.\n *\n * @example\n * ```tsx\n * <Alert variant=\"success\">\n * <AlertTitle>Success!</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n className,\n variant,\n icon,\n dismissible,\n onDismiss,\n dismissLabel = 'Dismiss alert',\n children,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(\n alertVariants({ variant }),\n React.isValidElement(icon) && 'pl-11',\n dismissible && 'pr-10',\n className\n )}\n {...props}\n >\n {React.isValidElement(icon) && icon}\n <div>{children}</div>\n {dismissible && (\n <button\n type=\"button\"\n data-slot=\"alert-dismiss\"\n onClick={onDismiss}\n className={cn(\n 'absolute top-2 right-2 rounded-md p-1',\n 'opacity-70 hover:opacity-100',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n 'transition-opacity'\n )}\n aria-label={dismissLabel}\n >\n <X size={16} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\n/**\n * Title for an Alert component.\n */\nconst AlertTitle = React.forwardRef<\n globalThis.HTMLHeadingElement,\n React.HTMLAttributes<globalThis.HTMLHeadingElement>\n>(({ className, children, ...props }, ref) => (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn('mb-1 leading-none font-semibold tracking-tight', className)}\n {...props}\n >\n {children}\n </h5>\n));\n\nAlertTitle.displayName = 'AlertTitle';\n\n/**\n * Description text for an Alert component.\n */\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"alert-description\"\n className={cn('text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\n\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n"]}