@mieweb/ui 0.2.4 → 0.3.0-dev.101
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.
- package/README.md +17 -0
- package/dist/ag-grid.cjs +37 -26
- package/dist/ag-grid.cjs.map +1 -1
- package/dist/ag-grid.js +33 -22
- package/dist/ag-grid.js.map +1 -1
- package/dist/brands/bluehive.cjs +3 -3
- package/dist/brands/bluehive.css +5 -5
- package/dist/brands/bluehive.js +1 -1
- package/dist/brands/index.cjs +29 -29
- package/dist/brands/index.js +8 -8
- package/dist/brands/mieweb.css +5 -5
- package/dist/brands/ozwell.cjs +2 -2
- package/dist/brands/ozwell.css +5 -5
- package/dist/brands/ozwell.js +1 -1
- package/dist/brands/types.cjs +4 -4
- package/dist/brands/types.d.cts +14 -8
- package/dist/brands/types.d.ts +14 -8
- package/dist/brands/types.js +1 -1
- package/dist/brands/waggleline.css +1 -1
- package/dist/brands/webchart.css +5 -5
- package/dist/{chunk-QDGZBDBI.cjs → chunk-2LF7PSSX.cjs} +3 -3
- package/dist/{chunk-QDGZBDBI.cjs.map → chunk-2LF7PSSX.cjs.map} +1 -1
- package/dist/{chunk-OWPWP46L.js → chunk-2NTYAALC.js} +3 -3
- package/dist/{chunk-OWPWP46L.js.map → chunk-2NTYAALC.js.map} +1 -1
- package/dist/{chunk-6Q4SU72T.js → chunk-3CJBUAJ4.js} +58 -11
- package/dist/chunk-3CJBUAJ4.js.map +1 -0
- package/dist/{chunk-N3QTYHRZ.cjs → chunk-3GGET5LK.cjs} +40 -22
- package/dist/chunk-3GGET5LK.cjs.map +1 -0
- package/dist/{chunk-QL2YTVTR.js → chunk-43GBCUSQ.js} +8 -3
- package/dist/chunk-43GBCUSQ.js.map +1 -0
- package/dist/chunk-4DMZAVB2.js +334 -0
- package/dist/chunk-4DMZAVB2.js.map +1 -0
- package/dist/{chunk-EKIQE524.cjs → chunk-4FALCEJI.cjs} +3 -2
- package/dist/chunk-4FALCEJI.cjs.map +1 -0
- package/dist/{chunk-6OCIIIAI.js → chunk-4Z6ZZKIY.js} +40 -22
- package/dist/chunk-4Z6ZZKIY.js.map +1 -0
- package/dist/{chunk-QIOM5ZV2.cjs → chunk-4ZU53GNR.cjs} +6 -2
- package/dist/{chunk-QIOM5ZV2.cjs.map → chunk-4ZU53GNR.cjs.map} +1 -1
- package/dist/chunk-5MAGWW5X.cjs +272 -0
- package/dist/chunk-5MAGWW5X.cjs.map +1 -0
- package/dist/{chunk-S6UNPMAS.cjs → chunk-66S4PT6C.cjs} +3 -3
- package/dist/{chunk-S6UNPMAS.cjs.map → chunk-66S4PT6C.cjs.map} +1 -1
- package/dist/{chunk-4AWW5WPF.js → chunk-6LFG4JFF.js} +51 -24
- package/dist/chunk-6LFG4JFF.js.map +1 -0
- package/dist/chunk-7BARESXI.cjs +353 -0
- package/dist/chunk-7BARESXI.cjs.map +1 -0
- package/dist/{chunk-PEH4ZOEM.cjs → chunk-A2QVQF54.cjs} +12 -6
- package/dist/chunk-A2QVQF54.cjs.map +1 -0
- package/dist/{chunk-377KAB4C.cjs → chunk-AWUADXYI.cjs} +8 -2
- package/dist/chunk-AWUADXYI.cjs.map +1 -0
- package/dist/{chunk-PEFJAWNR.cjs → chunk-BWYYA3LQ.cjs} +26 -10
- package/dist/chunk-BWYYA3LQ.cjs.map +1 -0
- package/dist/chunk-CJQXWFIW.js +829 -0
- package/dist/chunk-CJQXWFIW.js.map +1 -0
- package/dist/chunk-CV4CVGLO.cjs +617 -0
- package/dist/chunk-CV4CVGLO.cjs.map +1 -0
- package/dist/{chunk-WH6I7CMP.cjs → chunk-CW75IKA6.cjs} +27 -2
- package/dist/chunk-CW75IKA6.cjs.map +1 -0
- package/dist/{chunk-3NJ72QU6.js → chunk-DCER2QQB.js} +3 -2
- package/dist/chunk-DCER2QQB.js.map +1 -0
- package/dist/{chunk-JYMQJ32S.cjs → chunk-DEZ7XSTG.cjs} +9 -5
- package/dist/chunk-DEZ7XSTG.cjs.map +1 -0
- package/dist/{chunk-QYJ7RQJ2.cjs → chunk-DFCZPVG4.cjs} +84 -38
- package/dist/chunk-DFCZPVG4.cjs.map +1 -0
- package/dist/{chunk-AWIULTJW.js → chunk-DNPRRYPQ.js} +18 -3
- package/dist/chunk-DNPRRYPQ.js.map +1 -0
- package/dist/{chunk-SSKI6VTW.cjs → chunk-E35GUUTC.cjs} +23 -4
- package/dist/chunk-E35GUUTC.cjs.map +1 -0
- package/dist/{chunk-B5364UWR.cjs → chunk-EAXY5X33.cjs} +6 -6
- package/dist/{chunk-B5364UWR.cjs.map → chunk-EAXY5X33.cjs.map} +1 -1
- package/dist/{chunk-53K3KWXQ.cjs → chunk-EUUQVDXX.cjs} +168 -138
- package/dist/chunk-EUUQVDXX.cjs.map +1 -0
- package/dist/{chunk-2J2V4TMJ.cjs → chunk-FQ3UCZUX.cjs} +43 -32
- package/dist/chunk-FQ3UCZUX.cjs.map +1 -0
- package/dist/{chunk-5UUL5EEO.cjs → chunk-FRT6RQND.cjs} +181 -128
- package/dist/chunk-FRT6RQND.cjs.map +1 -0
- package/dist/{chunk-R4DM4635.cjs → chunk-FSBFQBNE.cjs} +86 -2
- package/dist/chunk-FSBFQBNE.cjs.map +1 -0
- package/dist/{chunk-UZUBLXVC.js → chunk-FZJBFJJR.js} +3 -2
- package/dist/chunk-FZJBFJJR.js.map +1 -0
- package/dist/{chunk-UHSPAFY6.js → chunk-GFZNSSSN.js} +3 -3
- package/dist/{chunk-UHSPAFY6.js.map → chunk-GFZNSSSN.js.map} +1 -1
- package/dist/chunk-GOKC4CCZ.cjs +384 -0
- package/dist/chunk-GOKC4CCZ.cjs.map +1 -0
- package/dist/{chunk-Z3TFPXVN.cjs → chunk-GXQFRLTN.cjs} +3 -3
- package/dist/{chunk-Z3TFPXVN.cjs.map → chunk-GXQFRLTN.cjs.map} +1 -1
- package/dist/{chunk-B3L43JGH.js → chunk-HEH3QXOQ.js} +26 -10
- package/dist/chunk-HEH3QXOQ.js.map +1 -0
- package/dist/{chunk-KWDTTGH2.js → chunk-HYEJLKXI.js} +7 -5
- package/dist/chunk-HYEJLKXI.js.map +1 -0
- package/dist/{chunk-TA6FVVCM.js → chunk-I56VBDSC.js} +3 -3
- package/dist/{chunk-TA6FVVCM.js.map → chunk-I56VBDSC.js.map} +1 -1
- package/dist/{chunk-4DJNHPHB.js → chunk-IGWABMSM.js} +3 -3
- package/dist/{chunk-4DJNHPHB.js.map → chunk-IGWABMSM.js.map} +1 -1
- package/dist/{chunk-SWMRCGL4.cjs → chunk-IKMR2ADM.cjs} +5 -4
- package/dist/chunk-IKMR2ADM.cjs.map +1 -0
- package/dist/{chunk-4MHTSFPX.js → chunk-IYIYL2SQ.js} +46 -20
- package/dist/chunk-IYIYL2SQ.js.map +1 -0
- package/dist/{chunk-ONWOB76P.js → chunk-J3BU3JBX.js} +33 -14
- package/dist/chunk-J3BU3JBX.js.map +1 -0
- package/dist/{chunk-FFJVCQ5R.cjs → chunk-J644FU54.cjs} +49 -19
- package/dist/chunk-J644FU54.cjs.map +1 -0
- package/dist/chunk-JBB25LFB.js +359 -0
- package/dist/chunk-JBB25LFB.js.map +1 -0
- package/dist/{chunk-VDMQCSXT.cjs → chunk-JHPFOG2N.cjs} +4 -4
- package/dist/{chunk-VDMQCSXT.cjs.map → chunk-JHPFOG2N.cjs.map} +1 -1
- package/dist/{chunk-RYQ5NEKH.js → chunk-JV7UJGBM.js} +6 -6
- package/dist/{chunk-RYQ5NEKH.js.map → chunk-JV7UJGBM.js.map} +1 -1
- package/dist/{chunk-C6MDPPPL.js → chunk-JW5GWKV7.js} +3 -3
- package/dist/{chunk-C6MDPPPL.js.map → chunk-JW5GWKV7.js.map} +1 -1
- package/dist/{chunk-EYH7OUX5.js → chunk-JYAWYBA3.js} +23 -4
- package/dist/chunk-JYAWYBA3.js.map +1 -0
- package/dist/{chunk-5T3AWNHG.cjs → chunk-K7IGBNZA.cjs} +70 -39
- package/dist/chunk-K7IGBNZA.cjs.map +1 -0
- package/dist/{chunk-AU5ADTYD.cjs → chunk-KQAXXJ4G.cjs} +58 -11
- package/dist/chunk-KQAXXJ4G.cjs.map +1 -0
- package/dist/{chunk-BTJHYGPI.cjs → chunk-L7YQBSEL.cjs} +14 -4
- package/dist/chunk-L7YQBSEL.cjs.map +1 -0
- package/dist/chunk-LEMY57MI.js +3 -0
- package/dist/{chunk-3K7QCDSV.js.map → chunk-LEMY57MI.js.map} +1 -1
- package/dist/chunk-MPOWJVV4.js +590 -0
- package/dist/chunk-MPOWJVV4.js.map +1 -0
- package/dist/{chunk-VV4N4WY6.cjs → chunk-MSRU3XBH.cjs} +61 -35
- package/dist/chunk-MSRU3XBH.cjs.map +1 -0
- package/dist/{chunk-JFAXLE2J.js → chunk-MUYTGWGE.js} +9 -5
- package/dist/chunk-MUYTGWGE.js.map +1 -0
- package/dist/{chunk-B26RIQ5R.js → chunk-MV3MTHWQ.js} +6 -2
- package/dist/chunk-MV3MTHWQ.js.map +1 -0
- package/dist/{chunk-PF3XWKE5.cjs → chunk-NIEIRA5A.cjs} +33 -14
- package/dist/chunk-NIEIRA5A.cjs.map +1 -0
- package/dist/{chunk-VZUVYJFU.cjs → chunk-NINI4WVS.cjs} +19 -17
- package/dist/chunk-NINI4WVS.cjs.map +1 -0
- package/dist/{chunk-RRQGH7C5.cjs → chunk-NVHAQOHH.cjs} +8 -3
- package/dist/chunk-NVHAQOHH.cjs.map +1 -0
- package/dist/{chunk-OT36EMM5.js → chunk-OKBR6PX4.js} +5 -4
- package/dist/chunk-OKBR6PX4.js.map +1 -0
- package/dist/chunk-OX2RIVN7.js +249 -0
- package/dist/chunk-OX2RIVN7.js.map +1 -0
- package/dist/{chunk-LZEY55QZ.cjs → chunk-OYKS2JBB.cjs} +18 -3
- package/dist/chunk-OYKS2JBB.cjs.map +1 -0
- package/dist/{chunk-4LTN2LEN.js → chunk-PSTGFXQG.js} +3 -3
- package/dist/{chunk-4LTN2LEN.js.map → chunk-PSTGFXQG.js.map} +1 -1
- package/dist/{chunk-OW2BWGST.js → chunk-PU6ZC4GI.js} +48 -31
- package/dist/chunk-PU6ZC4GI.js.map +1 -0
- package/dist/chunk-PVUDXJAI.js +124 -0
- package/dist/chunk-PVUDXJAI.js.map +1 -0
- package/dist/{chunk-EF46XW4Z.cjs → chunk-Q2EWNXIB.cjs} +161 -67
- package/dist/chunk-Q2EWNXIB.cjs.map +1 -0
- package/dist/{chunk-CP7NPDQW.js → chunk-Q7NBJFEB.js} +87 -4
- package/dist/chunk-Q7NBJFEB.js.map +1 -0
- package/dist/{chunk-ORUPC5TV.cjs → chunk-QASIWBXU.cjs} +9 -5
- package/dist/chunk-QASIWBXU.cjs.map +1 -0
- package/dist/{chunk-4LNS5QDP.cjs → chunk-QITBJX4A.cjs} +3 -3
- package/dist/{chunk-4LNS5QDP.cjs.map → chunk-QITBJX4A.cjs.map} +1 -1
- package/dist/{chunk-KEIA2G6O.cjs → chunk-QO6U5VOT.cjs} +3 -3
- package/dist/{chunk-KEIA2G6O.cjs.map → chunk-QO6U5VOT.cjs.map} +1 -1
- package/dist/{chunk-XVZ4SLQB.js → chunk-QVJBUWJQ.js} +70 -39
- package/dist/chunk-QVJBUWJQ.js.map +1 -0
- package/dist/{chunk-QSMMFATL.js → chunk-R25H4N4Z.js} +181 -128
- package/dist/chunk-R25H4N4Z.js.map +1 -0
- package/dist/{chunk-TPGT236K.js → chunk-RC2YMOMS.js} +26 -3
- package/dist/chunk-RC2YMOMS.js.map +1 -0
- package/dist/{chunk-XXOBTAKA.js → chunk-RGTM53RS.js} +81 -52
- package/dist/chunk-RGTM53RS.js.map +1 -0
- package/dist/{chunk-BXK5TNJE.cjs → chunk-RH43XBNV.cjs} +3 -2
- package/dist/chunk-RH43XBNV.cjs.map +1 -0
- package/dist/{chunk-QZLRB3UG.js → chunk-TRZXK57D.js} +168 -138
- package/dist/chunk-TRZXK57D.js.map +1 -0
- package/dist/{chunk-B7YGVKTE.cjs → chunk-U3ABLVYH.cjs} +51 -24
- package/dist/chunk-U3ABLVYH.cjs.map +1 -0
- package/dist/{chunk-GV5JQBPX.js → chunk-VCO2IZOG.js} +9 -5
- package/dist/chunk-VCO2IZOG.js.map +1 -0
- package/dist/chunk-WFS6R2F5.js +328 -0
- package/dist/chunk-WFS6R2F5.js.map +1 -0
- package/dist/{chunk-IY7UQPDO.cjs → chunk-WGPMTW36.cjs} +6 -2
- package/dist/chunk-WGPMTW36.cjs.map +1 -0
- package/dist/chunk-WJU3KLVV.cjs +855 -0
- package/dist/chunk-WJU3KLVV.cjs.map +1 -0
- package/dist/{chunk-NIHESA7O.js → chunk-WO5CAOAN.js} +43 -32
- package/dist/chunk-WO5CAOAN.js.map +1 -0
- package/dist/{chunk-SOFX4T7M.js → chunk-WOYUQ4AT.js} +49 -19
- package/dist/chunk-WOYUQ4AT.js.map +1 -0
- package/dist/{chunk-TCQ27C5M.js → chunk-WTDCNXZO.js} +8 -2
- package/dist/chunk-WTDCNXZO.js.map +1 -0
- package/dist/{chunk-O5HS7ZND.cjs → chunk-X7S76WB7.cjs} +3 -3
- package/dist/{chunk-O5HS7ZND.cjs.map → chunk-X7S76WB7.cjs.map} +1 -1
- package/dist/{chunk-ULOA7WBW.js → chunk-XB7QCKK7.js} +3 -3
- package/dist/{chunk-ULOA7WBW.js.map → chunk-XB7QCKK7.js.map} +1 -1
- package/dist/{chunk-G2DOD34H.js → chunk-XCLQZ4FV.js} +84 -38
- package/dist/chunk-XCLQZ4FV.js.map +1 -0
- package/dist/{chunk-HRA4FUO6.cjs → chunk-YDWWG4A2.cjs} +81 -52
- package/dist/chunk-YDWWG4A2.cjs.map +1 -0
- package/dist/{chunk-RCMF6KZA.js → chunk-YTZPVEIO.js} +3 -3
- package/dist/{chunk-RCMF6KZA.js.map → chunk-YTZPVEIO.js.map} +1 -1
- package/dist/{chunk-SWV5E75F.cjs → chunk-Z5J4NTPL.cjs} +3 -3
- package/dist/{chunk-SWV5E75F.cjs.map → chunk-Z5J4NTPL.cjs.map} +1 -1
- package/dist/{chunk-XHJGYBYG.cjs → chunk-ZKFVGYBK.cjs} +48 -31
- package/dist/chunk-ZKFVGYBK.cjs.map +1 -0
- package/dist/{chunk-NAATBUHR.cjs → chunk-ZNZZCB2M.cjs} +46 -20
- package/dist/chunk-ZNZZCB2M.cjs.map +1 -0
- package/dist/{chunk-CEHWXAAI.js → chunk-ZVPJ2MH6.js} +14 -4
- package/dist/chunk-ZVPJ2MH6.js.map +1 -0
- package/dist/{chunk-VBHPXSCV.js → chunk-ZVSW2KS6.js} +12 -6
- package/dist/chunk-ZVSW2KS6.js.map +1 -0
- package/dist/components/Alert/index.cjs +5 -5
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/AudioPlayer/index.cjs +6 -6
- package/dist/components/AudioPlayer/index.d.cts +5 -4
- package/dist/components/AudioPlayer/index.d.ts +5 -4
- package/dist/components/AudioPlayer/index.js +1 -1
- package/dist/components/AudioRecorder/index.cjs +6 -6
- package/dist/components/AudioRecorder/index.js +1 -1
- package/dist/components/Avatar/index.cjs +5 -5
- package/dist/components/Avatar/index.js +1 -1
- package/dist/components/Badge/index.cjs +3 -3
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Breadcrumb/index.cjs +3 -3
- package/dist/components/Breadcrumb/index.js +1 -1
- package/dist/components/Button/index.cjs +3 -3
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Card/index.cjs +15 -15
- package/dist/components/Card/index.d.cts +6 -2
- package/dist/components/Card/index.d.ts +6 -2
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Checkbox/index.cjs +4 -4
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/CountryCodeDropdown/index.cjs +23 -0
- package/dist/components/CountryCodeDropdown/index.cjs.map +1 -0
- package/dist/components/CountryCodeDropdown/index.d.cts +69 -0
- package/dist/components/CountryCodeDropdown/index.d.ts +69 -0
- package/dist/components/CountryCodeDropdown/index.js +6 -0
- package/dist/components/CountryCodeDropdown/index.js.map +1 -0
- package/dist/components/DateInput/index.cjs +4 -4
- package/dist/components/DateInput/index.js +3 -3
- package/dist/components/Dropdown/index.cjs +9 -8
- package/dist/components/Dropdown/index.d.cts +29 -1
- package/dist/components/Dropdown/index.d.ts +29 -1
- package/dist/components/Dropdown/index.js +3 -2
- package/dist/components/Input/index.cjs +3 -3
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Modal/index.cjs +9 -9
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/Pagination/index.cjs +4 -4
- package/dist/components/Pagination/index.d.cts +6 -2
- package/dist/components/Pagination/index.d.ts +6 -2
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/PhoneInput/index.cjs +5 -5
- package/dist/components/PhoneInput/index.js +3 -3
- package/dist/components/Progress/index.cjs +6 -6
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/QuickAction/index.cjs +6 -6
- package/dist/components/QuickAction/index.js +1 -1
- package/dist/components/Radio/index.cjs +4 -4
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/RecordButton/index.cjs +4 -4
- package/dist/components/RecordButton/index.js +1 -1
- package/dist/components/SchedulePicker/index.cjs +10 -10
- package/dist/components/SchedulePicker/index.js +1 -1
- package/dist/components/Select/index.cjs +3 -3
- package/dist/components/Select/index.d.cts +3 -1
- package/dist/components/Select/index.d.ts +3 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Skeleton/index.cjs +6 -6
- package/dist/components/Skeleton/index.d.cts +1 -1
- package/dist/components/Skeleton/index.d.ts +1 -1
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Slider/index.cjs +5 -5
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/Spinner/index.cjs +5 -5
- package/dist/components/Spinner/index.js +1 -1
- package/dist/components/Switch/index.cjs +4 -4
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/index.cjs +9 -9
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.cjs +7 -7
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Text/index.cjs +4 -4
- package/dist/components/Text/index.js +1 -1
- package/dist/components/Textarea/index.cjs +3 -3
- package/dist/components/Textarea/index.js +1 -1
- package/dist/components/ThemeProvider/index.cjs +8 -8
- package/dist/components/ThemeProvider/index.js +2 -2
- package/dist/components/Tooltip/index.cjs +2 -2
- package/dist/components/Tooltip/index.js +1 -1
- package/dist/datavis.cjs +251 -0
- package/dist/datavis.cjs.map +1 -0
- package/dist/datavis.d.cts +47 -0
- package/dist/datavis.d.ts +47 -0
- package/dist/datavis.js +247 -0
- package/dist/datavis.js.map +1 -0
- package/dist/default-BTEIFIZJ.cjs +18 -0
- package/dist/{default-ZGHKI5WF.cjs.map → default-BTEIFIZJ.cjs.map} +1 -1
- package/dist/default-ORBRVZRZ.js +3 -0
- package/dist/{default-LIRPABBK.js.map → default-ORBRVZRZ.js.map} +1 -1
- package/dist/hooks/index.cjs +19 -15
- package/dist/hooks/index.d.cts +39 -3
- package/dist/hooks/index.d.ts +39 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +13666 -8954
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +126 -49
- package/dist/index.d.ts +126 -49
- package/dist/index.js +13035 -8347
- package/dist/index.js.map +1 -1
- package/dist/mieweb-4XR6UKDQ.cjs +18 -0
- package/dist/{mieweb-UJABK5XX.cjs.map → mieweb-4XR6UKDQ.cjs.map} +1 -1
- package/dist/mieweb-N6UMH4MU.js +3 -0
- package/dist/{mieweb-PV2YKYO7.js.map → mieweb-N6UMH4MU.js.map} +1 -1
- package/dist/ozwell.cjs +385 -0
- package/dist/ozwell.cjs.map +1 -0
- package/dist/ozwell.d.cts +15 -0
- package/dist/ozwell.d.ts +15 -0
- package/dist/ozwell.js +360 -0
- package/dist/ozwell.js.map +1 -0
- package/dist/styles/init.css +339 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.d.cts +13 -2
- package/dist/tailwind-preset.d.ts +13 -2
- package/dist/tailwind-preset.js +1 -1
- package/dist/utils/index.cjs +31 -23
- package/dist/utils/index.d.cts +19 -2
- package/dist/utils/index.d.ts +19 -2
- package/dist/utils/index.js +2 -2
- package/dist/waggleline-2MLRNVCV.js +3 -0
- package/dist/{waggleline-BMUYAFJF.js.map → waggleline-2MLRNVCV.js.map} +1 -1
- package/dist/waggleline-I7QWD3YX.cjs +18 -0
- package/dist/{waggleline-6IGA66HR.cjs.map → waggleline-I7QWD3YX.cjs.map} +1 -1
- package/dist/webchart-F6EIMC3I.js +3 -0
- package/dist/{webchart-2SLO5ICI.js.map → webchart-F6EIMC3I.js.map} +1 -1
- package/dist/webchart-H3BHYNHB.cjs +18 -0
- package/dist/{webchart-EHVGP46N.cjs.map → webchart-H3BHYNHB.cjs.map} +1 -1
- package/package.json +42 -4
- package/dist/chunk-265CFCCX.js +0 -173
- package/dist/chunk-265CFCCX.js.map +0 -1
- package/dist/chunk-2J2V4TMJ.cjs.map +0 -1
- package/dist/chunk-377KAB4C.cjs.map +0 -1
- package/dist/chunk-3K7QCDSV.js +0 -3
- package/dist/chunk-3NJ72QU6.js.map +0 -1
- package/dist/chunk-4AWW5WPF.js.map +0 -1
- package/dist/chunk-4MHTSFPX.js.map +0 -1
- package/dist/chunk-4T2ZNPTC.js +0 -220
- package/dist/chunk-4T2ZNPTC.js.map +0 -1
- package/dist/chunk-4YRAEFYW.js +0 -233
- package/dist/chunk-4YRAEFYW.js.map +0 -1
- package/dist/chunk-53K3KWXQ.cjs.map +0 -1
- package/dist/chunk-5T3AWNHG.cjs.map +0 -1
- package/dist/chunk-5UUL5EEO.cjs.map +0 -1
- package/dist/chunk-6OCIIIAI.js.map +0 -1
- package/dist/chunk-6Q4SU72T.js.map +0 -1
- package/dist/chunk-AU5ADTYD.cjs.map +0 -1
- package/dist/chunk-AWIULTJW.js.map +0 -1
- package/dist/chunk-B26RIQ5R.js.map +0 -1
- package/dist/chunk-B3L43JGH.js.map +0 -1
- package/dist/chunk-B7YGVKTE.cjs.map +0 -1
- package/dist/chunk-BTJHYGPI.cjs.map +0 -1
- package/dist/chunk-BV75DAKO.cjs +0 -245
- package/dist/chunk-BV75DAKO.cjs.map +0 -1
- package/dist/chunk-BXK5TNJE.cjs.map +0 -1
- package/dist/chunk-CEHWXAAI.js.map +0 -1
- package/dist/chunk-CP7NPDQW.js.map +0 -1
- package/dist/chunk-CQCYXHCU.cjs +0 -256
- package/dist/chunk-CQCYXHCU.cjs.map +0 -1
- package/dist/chunk-DMA74PZ7.js +0 -240
- package/dist/chunk-DMA74PZ7.js.map +0 -1
- package/dist/chunk-EF46XW4Z.cjs.map +0 -1
- package/dist/chunk-EKIQE524.cjs.map +0 -1
- package/dist/chunk-EYH7OUX5.js.map +0 -1
- package/dist/chunk-FFJVCQ5R.cjs.map +0 -1
- package/dist/chunk-FIXAVBUA.cjs +0 -200
- package/dist/chunk-FIXAVBUA.cjs.map +0 -1
- package/dist/chunk-G2DOD34H.js.map +0 -1
- package/dist/chunk-GHRQ3ZJH.js +0 -764
- package/dist/chunk-GHRQ3ZJH.js.map +0 -1
- package/dist/chunk-GV5JQBPX.js.map +0 -1
- package/dist/chunk-HRA4FUO6.cjs.map +0 -1
- package/dist/chunk-INFSKLXE.cjs +0 -790
- package/dist/chunk-INFSKLXE.cjs.map +0 -1
- package/dist/chunk-IY7UQPDO.cjs.map +0 -1
- package/dist/chunk-JFAXLE2J.js.map +0 -1
- package/dist/chunk-JYMQJ32S.cjs.map +0 -1
- package/dist/chunk-KWDTTGH2.js.map +0 -1
- package/dist/chunk-LZEY55QZ.cjs.map +0 -1
- package/dist/chunk-N3QTYHRZ.cjs.map +0 -1
- package/dist/chunk-NAATBUHR.cjs.map +0 -1
- package/dist/chunk-NIHESA7O.js.map +0 -1
- package/dist/chunk-NXRLGHEC.js +0 -98
- package/dist/chunk-NXRLGHEC.js.map +0 -1
- package/dist/chunk-ONWOB76P.js.map +0 -1
- package/dist/chunk-ORUPC5TV.cjs.map +0 -1
- package/dist/chunk-OT36EMM5.js.map +0 -1
- package/dist/chunk-OW2BWGST.js.map +0 -1
- package/dist/chunk-PEFJAWNR.cjs.map +0 -1
- package/dist/chunk-PEH4ZOEM.cjs.map +0 -1
- package/dist/chunk-PF3XWKE5.cjs.map +0 -1
- package/dist/chunk-QL2YTVTR.js.map +0 -1
- package/dist/chunk-QSMMFATL.js.map +0 -1
- package/dist/chunk-QYJ7RQJ2.cjs.map +0 -1
- package/dist/chunk-QZLRB3UG.js.map +0 -1
- package/dist/chunk-R4DM4635.cjs.map +0 -1
- package/dist/chunk-RRQGH7C5.cjs.map +0 -1
- package/dist/chunk-SOFX4T7M.js.map +0 -1
- package/dist/chunk-SSKI6VTW.cjs.map +0 -1
- package/dist/chunk-SWMRCGL4.cjs.map +0 -1
- package/dist/chunk-TCQ27C5M.js.map +0 -1
- package/dist/chunk-TPGT236K.js.map +0 -1
- package/dist/chunk-UZUBLXVC.js.map +0 -1
- package/dist/chunk-VBHPXSCV.js.map +0 -1
- package/dist/chunk-VV4N4WY6.cjs.map +0 -1
- package/dist/chunk-VZUVYJFU.cjs.map +0 -1
- package/dist/chunk-WH6I7CMP.cjs.map +0 -1
- package/dist/chunk-XHJGYBYG.cjs.map +0 -1
- package/dist/chunk-XVZ4SLQB.js.map +0 -1
- package/dist/chunk-XXOBTAKA.js.map +0 -1
- package/dist/default-LIRPABBK.js +0 -3
- package/dist/default-ZGHKI5WF.cjs +0 -18
- package/dist/mieweb-PV2YKYO7.js +0 -3
- package/dist/mieweb-UJABK5XX.cjs +0 -18
- package/dist/waggleline-6IGA66HR.cjs +0 -18
- package/dist/waggleline-BMUYAFJF.js +0 -3
- package/dist/webchart-2SLO5ICI.js +0 -3
- package/dist/webchart-EHVGP46N.cjs +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AudioRecorder/AudioRecorder.tsx"],"names":["cva","jsx","jsxs","cn","React","Fragment"],"mappings":"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","file":"chunk-EUUQVDXX.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\n\nexport type AudioRecorderState =\n | 'idle'\n | 'listening'\n | 'recording'\n | 'paused'\n | 'stopped'\n | 'playback';\n\nexport interface AudioRecorderProps extends VariantProps<\n typeof audioRecorderVariants\n> {\n /** Current state of the recorder */\n state?: AudioRecorderState;\n /** Callback when state changes */\n onStateChange?: (state: AudioRecorderState) => void;\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 an error occurs */\n onError?: (error: Error) => void;\n /** Maximum recording duration in seconds (0 for unlimited) */\n maxDuration?: number;\n /** Audio MIME type */\n mimeType?: string;\n /** Waveform color (uses theme primary by default) */\n waveColor?: string;\n /** Progress/recorded waveform color */\n progressColor?: string;\n /** Cursor color */\n cursorColor?: string;\n /** Height of the waveform display */\n waveformHeight?: number;\n /** Show time display */\n showTime?: boolean;\n /** Show waveform visualization */\n showWaveform?: boolean;\n /** Additional class name */\n className?: string;\n /** Accessible label */\n 'aria-label'?: string;\n /** Pre-loaded audio URL for playback mode */\n audioUrl?: string;\n /** Whether the component is disabled */\n disabled?: boolean;\n /** Custom controls render function */\n renderControls?: (props: AudioRecorderControlsRenderProps) => React.ReactNode;\n}\n\nexport interface AudioRecorderControlsRenderProps {\n state: AudioRecorderState;\n currentTime: number;\n duration: number;\n isRecording: boolean;\n isPaused: boolean;\n isPlaying: boolean;\n onRecord: () => void;\n onPause: () => void;\n onResume: () => void;\n onStop: () => void;\n onPlay: () => void;\n onSeek: (time: number) => void;\n formatTime: (seconds: number) => string;\n}\n\n// ============================================================================\n// Variants\n// ============================================================================\n\nconst audioRecorderVariants = cva(\n [\n 'relative flex flex-col gap-3',\n 'rounded-xl border border-border',\n 'bg-card text-card-foreground',\n 'transition-all duration-200',\n ],\n {\n variants: {\n size: {\n sm: 'p-3',\n md: 'p-4',\n lg: 'p-5',\n },\n variant: {\n default: '',\n minimal: 'border-none bg-transparent shadow-none',\n elevated: 'shadow-lg border-0',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\nconst waveformContainerVariants = cva(\n [\n 'relative w-full overflow-hidden rounded-lg',\n 'bg-neutral-100 dark:bg-neutral-800',\n 'transition-all duration-200',\n ],\n {\n variants: {\n state: {\n idle: 'opacity-50',\n listening: 'opacity-75',\n recording: '',\n paused: 'opacity-90',\n stopped: '',\n playback: '',\n },\n },\n defaultVariants: {\n state: 'idle',\n },\n }\n);\n\nconst controlButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-full transition-all duration-200',\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 'active:scale-95',\n ],\n {\n variants: {\n variant: {\n primary: [\n 'bg-primary-800 text-white',\n 'hover:bg-primary-900',\n 'active:bg-primary-800',\n ],\n secondary: [\n 'bg-neutral-200 text-neutral-700',\n 'hover:bg-neutral-300',\n 'dark:bg-neutral-700 dark:text-neutral-200',\n 'dark:hover:bg-neutral-600',\n ],\n danger: [\n 'bg-red-600 text-white',\n 'hover:bg-red-700',\n 'active:bg-red-800',\n ],\n ghost: [\n 'bg-transparent text-neutral-600',\n 'hover:bg-neutral-100',\n 'dark:text-neutral-400 dark:hover:bg-neutral-800',\n ],\n },\n size: {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n);\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nfunction formatTime(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// Icons\n// ============================================================================\n\nfunction MicrophoneIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12 18.75a6 6 0 006-6v-1.5m-6 7.5a6 6 0 01-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 01-3-3V4.5a3 3 0 116 0v8.25a3 3 0 01-3 3z\"\n />\n </svg>\n );\n}\n\nfunction StopIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" />\n </svg>\n );\n}\n\nfunction PlayIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 5.14v14l11-7-11-7z\" />\n </svg>\n );\n}\n\nfunction PauseIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\" />\n </svg>\n );\n}\n\nfunction TrashIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\"\n />\n </svg>\n );\n}\n\n// ============================================================================\n// Recording Indicator\n// ============================================================================\n\ninterface RecordingIndicatorProps {\n isRecording: boolean;\n isPaused: boolean;\n}\n\nfunction RecordingIndicator({\n isRecording,\n isPaused,\n}: RecordingIndicatorProps) {\n if (!isRecording && !isPaused) return null;\n\n return (\n <div\n className=\"flex items-center gap-2\"\n data-slot=\"audio-recorder-indicator\"\n >\n <div\n className={cn(\n 'h-3 w-3 rounded-full',\n isRecording && !isPaused\n ? 'animate-pulse bg-red-500'\n : 'bg-yellow-500'\n )}\n aria-hidden=\"true\"\n />\n <span className=\"text-muted-foreground text-sm font-medium\">\n {isPaused ? 'Paused' : 'Recording'}\n </span>\n </div>\n );\n}\n\n// ============================================================================\n// Time Display\n// ============================================================================\n\ninterface TimeDisplayProps {\n currentTime: number;\n duration: number;\n maxDuration?: number;\n showMax?: boolean;\n}\n\nfunction TimeDisplay({\n currentTime,\n duration,\n maxDuration,\n showMax,\n}: TimeDisplayProps) {\n return (\n <div\n className=\"text-muted-foreground flex items-center gap-1 font-mono text-sm\"\n data-slot=\"audio-recorder-time\"\n >\n <span>{formatTime(currentTime)}</span>\n <span>/</span>\n <span>{formatTime(showMax && maxDuration ? maxDuration : duration)}</span>\n </div>\n );\n}\n\n// ============================================================================\n// Live Visualizer (for recording mode without WaveSurfer)\n// ============================================================================\n\ninterface LiveVisualizerProps {\n analyser: AnalyserNode | null;\n isActive: boolean;\n height: number;\n barColor?: string;\n}\n\nfunction LiveVisualizer({\n analyser,\n isActive,\n height,\n barColor,\n}: LiveVisualizerProps) {\n const canvasRef = React.useRef<HTMLCanvasElement>(null);\n const animationRef = React.useRef<number | undefined>(undefined);\n\n React.useEffect(() => {\n if (!analyser || !canvasRef.current || !isActive) return;\n\n const canvas = canvasRef.current;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n\n const draw = () => {\n if (!isActive) return;\n\n analyser.getByteFrequencyData(dataArray);\n\n ctx.fillStyle = 'transparent';\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const barWidth = (canvas.width / bufferLength) * 2.5;\n let x = 0;\n\n for (let i = 0; i < bufferLength; i++) {\n const barHeight = (dataArray[i] / 255) * canvas.height;\n\n // Use CSS variable for primary color or fallback\n ctx.fillStyle =\n barColor ||\n getComputedStyle(document.documentElement).getPropertyValue(\n '--color-primary-500'\n ) ||\n '#3b82f6';\n\n ctx.fillRect(x, canvas.height - barHeight, barWidth, barHeight);\n\n x += barWidth + 1;\n }\n\n animationRef.current = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, [analyser, isActive, barColor]);\n\n return (\n <canvas\n ref={canvasRef}\n width={600}\n height={height}\n className=\"w-full\"\n style={{ height }}\n />\n );\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\n/**\n * An audio recorder component with waveform visualization and custom controls.\n * Uses the Web Audio API and WaveSurfer.js for visualization.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <AudioRecorder\n * onRecordingComplete={(blob, duration) => {\n * console.log('Recording complete:', blob, duration);\n * }}\n * />\n *\n * // With max duration and custom styling\n * <AudioRecorder\n * maxDuration={60}\n * variant=\"elevated\"\n * size=\"lg\"\n * waveColor=\"#3b82f6\"\n * progressColor=\"#1d4ed8\"\n * />\n *\n * // Playback mode with pre-loaded audio\n * <AudioRecorder\n * audioUrl=\"/audio/message.wav\"\n * state=\"stopped\"\n * />\n * ```\n */\nfunction AudioRecorder({\n state: controlledState,\n onStateChange,\n onRecordingComplete,\n onRecordingStart,\n onError,\n maxDuration = 0,\n mimeType = 'audio/webm',\n waveColor,\n progressColor,\n cursorColor,\n waveformHeight = 80,\n showTime = true,\n showWaveform = true,\n size,\n variant,\n className,\n 'aria-label': ariaLabel = 'Audio recorder',\n audioUrl,\n disabled = false,\n renderControls,\n}: AudioRecorderProps) {\n // State\n const [internalState, setInternalState] =\n React.useState<AudioRecorderState>('idle');\n const state = controlledState ?? internalState;\n\n const [currentTime, setCurrentTime] = React.useState(0);\n const [duration, setDuration] = React.useState(0);\n const [audioBlob, setAudioBlob] = React.useState<Blob | null>(null);\n const [audioObjectUrl, setAudioObjectUrl] = React.useState<string | null>(\n null\n );\n const [pendingBlob, setPendingBlob] = React.useState<Blob | null>(null);\n\n // Refs\n const waveformRef = React.useRef<HTMLDivElement>(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const wavesurferRef = React.useRef<any>(null);\n const mediaRecorderRef = React.useRef<MediaRecorder | null>(null);\n const audioContextRef = React.useRef<AudioContext | null>(null);\n const analyserRef = React.useRef<AnalyserNode | 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 handleStopRef = React.useRef<() => void>(() => {});\n\n // Update state\n const updateState = React.useCallback(\n (newState: AudioRecorderState) => {\n if (!controlledState) {\n setInternalState(newState);\n }\n onStateChange?.(newState);\n },\n [controlledState, onStateChange]\n );\n\n // Initialize WaveSurfer for playback\n const initWaveSurfer = React.useCallback(async () => {\n if (!waveformRef.current || !showWaveform) return;\n\n // Dynamically import WaveSurfer\n const WaveSurferModule = await import('wavesurfer.js');\n const WaveSurfer = WaveSurferModule.default;\n\n // Destroy existing instance\n if (wavesurferRef.current) {\n wavesurferRef.current.destroy();\n }\n\n // Get computed styles for theming\n const computedStyle = getComputedStyle(document.documentElement);\n const defaultWaveColor =\n computedStyle.getPropertyValue('--color-primary-400').trim() || '#60a5fa';\n const defaultProgressColor =\n computedStyle.getPropertyValue('--color-primary-600').trim() || '#2563eb';\n const defaultCursorColor =\n computedStyle.getPropertyValue('--color-primary-800').trim() || '#1e40af';\n\n wavesurferRef.current = WaveSurfer.create({\n container: waveformRef.current,\n waveColor: waveColor || defaultWaveColor,\n progressColor: progressColor || defaultProgressColor,\n cursorColor: cursorColor || defaultCursorColor,\n cursorWidth: 2,\n height: waveformHeight,\n barWidth: 2,\n barGap: 1,\n barRadius: 2,\n normalize: true,\n hideScrollbar: true,\n });\n\n const ws = wavesurferRef.current;\n\n ws.on('timeupdate', (time: number) => {\n setCurrentTime(time);\n });\n\n ws.on('ready', () => {\n if (wavesurferRef.current) {\n setDuration(wavesurferRef.current.getDuration());\n }\n });\n\n ws.on('finish', () => {\n updateState('stopped');\n });\n }, [\n showWaveform,\n waveColor,\n progressColor,\n cursorColor,\n waveformHeight,\n updateState,\n ]);\n\n // Load audio URL if provided\n React.useEffect(() => {\n if (audioUrl && wavesurferRef.current) {\n wavesurferRef.current.load(audioUrl);\n updateState('stopped');\n }\n }, [audioUrl, updateState]);\n\n // Load pending blob into WaveSurfer after the waveform container becomes available\n React.useEffect(() => {\n if (pendingBlob && waveformRef.current && state === 'stopped') {\n const loadBlob = async () => {\n // Initialize WaveSurfer if needed\n if (!wavesurferRef.current) {\n await initWaveSurfer();\n }\n // Load the blob\n if (wavesurferRef.current && pendingBlob) {\n wavesurferRef.current.loadBlob(pendingBlob);\n setPendingBlob(null);\n }\n };\n // Small delay to ensure the DOM is ready\n const timer = setTimeout(loadBlob, 50);\n return () => clearTimeout(timer);\n }\n }, [pendingBlob, state, initWaveSurfer]);\n\n // Initialize on mount\n React.useEffect(() => {\n initWaveSurfer();\n\n return () => {\n if (wavesurferRef.current) {\n wavesurferRef.current.destroy();\n }\n if (audioContextRef.current) {\n audioContextRef.current.close();\n }\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n }\n if (audioObjectUrl) {\n URL.revokeObjectURL(audioObjectUrl);\n }\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n };\n }, [initWaveSurfer, audioObjectUrl]);\n\n // Start recording\n const handleRecord = React.useCallback(async () => {\n if (disabled) return;\n\n try {\n // Request microphone access\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n streamRef.current = stream;\n\n // Create audio context for visualization\n audioContextRef.current = new AudioContext();\n const source = audioContextRef.current.createMediaStreamSource(stream);\n analyserRef.current = audioContextRef.current.createAnalyser();\n analyserRef.current.fftSize = 256;\n source.connect(analyserRef.current);\n\n // Create media recorder\n const options = { mimeType };\n if (!MediaRecorder.isTypeSupported(mimeType)) {\n // Fallback to default\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 = async () => {\n const blob = new Blob(chunksRef.current, { type: mimeType });\n setAudioBlob(blob);\n\n // Clean up old URL\n if (audioObjectUrl) {\n URL.revokeObjectURL(audioObjectUrl);\n }\n\n const url = URL.createObjectURL(blob);\n setAudioObjectUrl(url);\n\n // Store the blob to load after the waveform container is rendered\n setPendingBlob(blob);\n\n onRecordingComplete?.(blob, duration);\n updateState('stopped');\n };\n\n // Start recording\n mediaRecorderRef.current.start(100);\n startTimeRef.current = Date.now();\n updateState('recording');\n onRecordingStart?.();\n\n // Start timer\n timerRef.current = window.setInterval(() => {\n const elapsed = (Date.now() - startTimeRef.current) / 1000;\n setCurrentTime(elapsed);\n setDuration(elapsed);\n\n // Check max duration\n if (maxDuration > 0 && elapsed >= maxDuration) {\n handleStopRef.current();\n }\n }, 100);\n } catch (error) {\n onError?.(error as Error);\n updateState('idle');\n }\n }, [\n disabled,\n mimeType,\n maxDuration,\n audioObjectUrl,\n duration,\n onRecordingComplete,\n onRecordingStart,\n onError,\n updateState,\n ]);\n\n // Pause recording\n const handlePause = React.useCallback(() => {\n if (\n mediaRecorderRef.current &&\n mediaRecorderRef.current.state === 'recording'\n ) {\n mediaRecorderRef.current.pause();\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n updateState('paused');\n } else if (\n wavesurferRef.current &&\n (state === 'playback' || state === 'stopped')\n ) {\n wavesurferRef.current.pause();\n updateState('paused');\n }\n }, [state, updateState]);\n\n // Resume recording\n const handleResume = React.useCallback(() => {\n if (\n mediaRecorderRef.current &&\n mediaRecorderRef.current.state === 'paused'\n ) {\n mediaRecorderRef.current.resume();\n const pausedTime = currentTime;\n startTimeRef.current = Date.now() - pausedTime * 1000;\n timerRef.current = window.setInterval(() => {\n const elapsed = (Date.now() - startTimeRef.current) / 1000;\n setCurrentTime(elapsed);\n setDuration(elapsed);\n\n if (maxDuration > 0 && elapsed >= maxDuration) {\n handleStopRef.current();\n }\n }, 100);\n updateState('recording');\n } else if (wavesurferRef.current && state === 'paused') {\n wavesurferRef.current.play();\n updateState('playback');\n }\n }, [currentTime, maxDuration, state, updateState]);\n\n // Stop recording\n const handleStop = React.useCallback(() => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n\n if (\n mediaRecorderRef.current &&\n (mediaRecorderRef.current.state === 'recording' ||\n mediaRecorderRef.current.state === 'paused')\n ) {\n mediaRecorderRef.current.stop();\n }\n\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n }\n\n if (audioContextRef.current) {\n audioContextRef.current.close();\n audioContextRef.current = null;\n }\n\n analyserRef.current = null;\n // State will be updated in onstop handler\n }, []);\n\n // Keep ref updated for use inside intervals\n handleStopRef.current = handleStop;\n\n // Play recording\n const handlePlay = React.useCallback(() => {\n if (wavesurferRef.current) {\n wavesurferRef.current.play();\n updateState('playback');\n }\n }, [updateState]);\n\n // Seek\n const handleSeek = React.useCallback((time: number) => {\n if (wavesurferRef.current) {\n const progress = time / wavesurferRef.current.getDuration();\n wavesurferRef.current.seekTo(progress);\n setCurrentTime(time);\n }\n }, []);\n\n // Delete recording\n const handleDelete = React.useCallback(() => {\n setAudioBlob(null);\n if (audioObjectUrl) {\n URL.revokeObjectURL(audioObjectUrl);\n setAudioObjectUrl(null);\n }\n setCurrentTime(0);\n setDuration(0);\n updateState('idle');\n }, [audioObjectUrl, updateState]);\n\n // Computed values\n const isRecording = state === 'recording';\n const isPaused = state === 'paused';\n const isPlaying = state === 'playback';\n const hasRecording = audioBlob !== null || audioUrl !== undefined;\n\n // Control render props\n const controlRenderProps: AudioRecorderControlsRenderProps = {\n state,\n currentTime,\n duration,\n isRecording,\n isPaused,\n isPlaying,\n onRecord: handleRecord,\n onPause: handlePause,\n onResume: handleResume,\n onStop: handleStop,\n onPlay: handlePlay,\n onSeek: handleSeek,\n formatTime,\n };\n\n return (\n <div\n className={cn(audioRecorderVariants({ size, variant }), className)}\n data-slot=\"audio-recorder\"\n role=\"group\"\n aria-label={ariaLabel}\n >\n {/* Waveform / Visualizer */}\n {showWaveform && (\n <div\n className={cn(waveformContainerVariants({ state }))}\n data-slot=\"audio-recorder-waveform\"\n style={{ height: waveformHeight }}\n >\n {(state === 'recording' || state === 'listening') && !hasRecording ? (\n <LiveVisualizer\n analyser={analyserRef.current}\n isActive={isRecording}\n height={waveformHeight}\n barColor={waveColor}\n />\n ) : (\n <div ref={waveformRef} className=\"w-full\" />\n )}\n </div>\n )}\n\n {/* Status and Time */}\n {showTime && (\n <div\n className=\"flex items-center justify-between\"\n data-slot=\"audio-recorder-status\"\n >\n <RecordingIndicator isRecording={isRecording} isPaused={isPaused} />\n <TimeDisplay\n currentTime={currentTime}\n duration={duration}\n maxDuration={maxDuration}\n showMax={isRecording || isPaused}\n />\n </div>\n )}\n\n {/* Controls */}\n {renderControls ? (\n renderControls(controlRenderProps)\n ) : (\n <DefaultControls\n {...controlRenderProps}\n disabled={disabled}\n hasRecording={hasRecording}\n onDelete={handleDelete}\n />\n )}\n </div>\n );\n}\n\nAudioRecorder.displayName = 'AudioRecorder';\n\n// ============================================================================\n// Default Controls\n// ============================================================================\n\ninterface DefaultControlsProps extends AudioRecorderControlsRenderProps {\n disabled?: boolean;\n hasRecording: boolean;\n onDelete: () => void;\n}\n\nfunction DefaultControls({\n state,\n isRecording,\n isPaused,\n isPlaying,\n hasRecording,\n disabled,\n onRecord,\n onPause,\n onResume,\n onStop,\n onPlay,\n onDelete,\n}: DefaultControlsProps) {\n return (\n <div\n className=\"flex items-center justify-center gap-3\"\n data-slot=\"audio-recorder-controls\"\n >\n {/* Delete button - only when we have a recording */}\n {hasRecording && !isRecording && (\n <button\n type=\"button\"\n onClick={onDelete}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'ghost', size: 'md' })\n )}\n aria-label=\"Delete recording\"\n >\n <TrashIcon className=\"h-5 w-5\" />\n </button>\n )}\n\n {/* Main control button */}\n {state === 'idle' && (\n <button\n type=\"button\"\n onClick={onRecord}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'danger', size: 'lg' })\n )}\n aria-label=\"Start recording\"\n >\n <MicrophoneIcon className=\"h-6 w-6\" />\n </button>\n )}\n\n {isRecording && (\n <>\n <button\n type=\"button\"\n onClick={onPause}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'secondary', size: 'md' })\n )}\n aria-label=\"Pause recording\"\n >\n <PauseIcon className=\"h-5 w-5\" />\n </button>\n <button\n type=\"button\"\n onClick={onStop}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'danger', size: 'lg' })\n )}\n aria-label=\"Stop recording\"\n >\n <StopIcon className=\"h-6 w-6\" />\n </button>\n </>\n )}\n\n {isPaused && !hasRecording && (\n <>\n <button\n type=\"button\"\n onClick={onResume}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'danger', size: 'lg' })\n )}\n aria-label=\"Resume recording\"\n >\n <MicrophoneIcon className=\"h-6 w-6\" />\n </button>\n <button\n type=\"button\"\n onClick={onStop}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'secondary', size: 'md' })\n )}\n aria-label=\"Stop recording\"\n >\n <StopIcon className=\"h-5 w-5\" />\n </button>\n </>\n )}\n\n {(state === 'stopped' || (isPaused && hasRecording)) && hasRecording && (\n <button\n type=\"button\"\n onClick={isPlaying || isPaused ? onPause : onPlay}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'primary', size: 'lg' })\n )}\n aria-label={\n isPaused\n ? 'Resume playback'\n : isPlaying\n ? 'Pause playback'\n : 'Play recording'\n }\n >\n {isPaused || !isPlaying ? (\n <PlayIcon className=\"h-6 w-6\" />\n ) : (\n <PauseIcon className=\"h-6 w-6\" />\n )}\n </button>\n )}\n\n {isPlaying && (\n <button\n type=\"button\"\n onClick={onPause}\n disabled={disabled}\n className={cn(\n controlButtonVariants({ variant: 'primary', size: 'lg' })\n )}\n aria-label=\"Pause playback\"\n >\n <PauseIcon className=\"h-6 w-6\" />\n </button>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport {\n AudioRecorder,\n audioRecorderVariants,\n waveformContainerVariants,\n controlButtonVariants,\n formatTime,\n};\n"]}
|
|
@@ -66,19 +66,21 @@ var Avatar = React__namespace.forwardRef(
|
|
|
66
66
|
"div",
|
|
67
67
|
{
|
|
68
68
|
ref,
|
|
69
|
+
"data-slot": "avatar",
|
|
69
70
|
className: chunkOR5DRJCW_cjs.cn(avatarVariants({ size, ring }), className),
|
|
70
71
|
...props,
|
|
71
72
|
children: showImage ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
72
73
|
"img",
|
|
73
74
|
{
|
|
74
75
|
src,
|
|
75
|
-
alt: alt
|
|
76
|
+
alt: alt !== void 0 ? alt : name || "Avatar",
|
|
76
77
|
className: "h-full w-full object-cover",
|
|
77
78
|
onError: () => setImageError(true)
|
|
78
79
|
}
|
|
79
80
|
) : React__namespace.isValidElement(fallback) ? fallback : initials ? initials : /* @__PURE__ */ jsxRuntime.jsx(
|
|
80
81
|
"svg",
|
|
81
82
|
{
|
|
83
|
+
"aria-hidden": "true",
|
|
82
84
|
className: "h-[60%] w-[60%] text-white/80",
|
|
83
85
|
fill: "currentColor",
|
|
84
86
|
viewBox: "0 0 24 24",
|
|
@@ -95,38 +97,47 @@ var AvatarGroup = React__namespace.forwardRef(
|
|
|
95
97
|
const childrenArray = React__namespace.Children.toArray(children);
|
|
96
98
|
const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;
|
|
97
99
|
const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;
|
|
98
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
101
|
+
"div",
|
|
102
|
+
{
|
|
103
|
+
ref,
|
|
104
|
+
"data-slot": "avatar-group",
|
|
105
|
+
className: chunkOR5DRJCW_cjs.cn("flex -space-x-2", className),
|
|
106
|
+
...props,
|
|
107
|
+
children: [
|
|
108
|
+
visibleChildren.map((child, index) => {
|
|
109
|
+
if (React__namespace.isValidElement(child)) {
|
|
110
|
+
return React__namespace.cloneElement(
|
|
111
|
+
child,
|
|
112
|
+
{
|
|
113
|
+
key: index,
|
|
114
|
+
size,
|
|
115
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
116
|
+
"ring-2 ring-white dark:ring-neutral-900",
|
|
117
|
+
child.props.className
|
|
118
|
+
)
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
return child;
|
|
123
|
+
}),
|
|
124
|
+
remainingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
125
|
+
"div",
|
|
103
126
|
{
|
|
104
|
-
key: index,
|
|
105
|
-
size,
|
|
106
127
|
className: chunkOR5DRJCW_cjs.cn(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
128
|
+
avatarVariants({ size }),
|
|
129
|
+
"bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300",
|
|
130
|
+
"ring-2 ring-white dark:ring-neutral-900"
|
|
131
|
+
),
|
|
132
|
+
children: [
|
|
133
|
+
"+",
|
|
134
|
+
remainingCount
|
|
135
|
+
]
|
|
110
136
|
}
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
remainingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
116
|
-
"div",
|
|
117
|
-
{
|
|
118
|
-
className: chunkOR5DRJCW_cjs.cn(
|
|
119
|
-
avatarVariants({ size }),
|
|
120
|
-
"bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300",
|
|
121
|
-
"ring-2 ring-white dark:ring-neutral-900"
|
|
122
|
-
),
|
|
123
|
-
children: [
|
|
124
|
-
"+",
|
|
125
|
-
remainingCount
|
|
126
|
-
]
|
|
127
|
-
}
|
|
128
|
-
)
|
|
129
|
-
] });
|
|
137
|
+
)
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
);
|
|
130
141
|
}
|
|
131
142
|
);
|
|
132
143
|
AvatarGroup.displayName = "AvatarGroup";
|
|
@@ -135,5 +146,5 @@ exports.Avatar = Avatar;
|
|
|
135
146
|
exports.AvatarGroup = AvatarGroup;
|
|
136
147
|
exports.avatarVariants = avatarVariants;
|
|
137
148
|
exports.getInitials = getInitials;
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-FQ3UCZUX.cjs.map
|
|
150
|
+
//# sourceMappingURL=chunk-FQ3UCZUX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["cva","React","jsx","cn","jsxs"],"mappings":"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","file":"chunk-FQ3UCZUX.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Avatar Component\n// ============================================================================\n\nconst avatarVariants = cva(\n [\n 'relative inline-flex items-center justify-center',\n 'rounded-full overflow-hidden',\n 'bg-primary-800 text-white font-semibold',\n ],\n {\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n ring: {\n true: 'ring-2 ring-primary-400/30',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n ring: false,\n },\n }\n);\n\nexport interface AvatarProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof avatarVariants> {\n /** Image URL for the avatar */\n src?: string | null;\n /** Alt text for the avatar image */\n alt?: string;\n /** Name to generate initials from (used as fallback when no src) */\n name?: string;\n /** Custom fallback content (overrides name initials) */\n fallback?: React.ReactElement | null;\n}\n\n/**\n * Get initials from a name string.\n */\nfunction getInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n}\n\n/**\n * An avatar component for displaying user profile images with fallback to initials.\n *\n * @example\n * ```tsx\n * // With image\n * <Avatar src=\"/user.jpg\" alt=\"John Doe\" />\n *\n * // With initials fallback\n * <Avatar name=\"John Doe\" />\n *\n * // With custom fallback\n * <Avatar fallback={<UserIcon />} />\n * ```\n */\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, src, alt, name, fallback, size, ring, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n\n // Reset error state when src changes\n React.useEffect(() => {\n setImageError(false);\n }, [src]);\n\n const showImage = src && !imageError;\n const initials = name ? getInitials(name) : null;\n\n return (\n <div\n ref={ref}\n data-slot=\"avatar\"\n className={cn(avatarVariants({ size, ring }), className)}\n {...props}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt !== undefined ? alt : name || 'Avatar'}\n className=\"h-full w-full object-cover\"\n onError={() => setImageError(true)}\n />\n ) : React.isValidElement(fallback) ? (\n fallback\n ) : initials ? (\n initials\n ) : (\n <svg\n aria-hidden=\"true\"\n className=\"h-[60%] w-[60%] text-white/80\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\n// ============================================================================\n// Avatar Group Component\n// ============================================================================\n\nexport interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Maximum number of avatars to show before +N indicator */\n max?: number;\n /** Size of avatars in the group */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** Children should be Avatar components */\n children: React.ReactNode;\n}\n\n/**\n * A component for displaying a group of overlapping avatars.\n *\n * @example\n * ```tsx\n * <AvatarGroup max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Wilson\" />\n * <Avatar name=\"Alice Brown\" />\n * </AvatarGroup>\n * ```\n */\nconst AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, max, size = 'md', children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;\n const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;\n\n return (\n <div\n ref={ref}\n data-slot=\"avatar-group\"\n className={cn('flex -space-x-2', className)}\n {...props}\n >\n {visibleChildren.map((child, index) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(\n child as React.ReactElement<AvatarProps>,\n {\n key: index,\n size,\n className: cn(\n 'ring-2 ring-white dark:ring-neutral-900',\n (child as React.ReactElement<AvatarProps>).props.className\n ),\n }\n );\n }\n return child;\n })}\n {remainingCount > 0 && (\n <div\n className={cn(\n avatarVariants({ size }),\n 'bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300',\n 'ring-2 ring-white dark:ring-neutral-900'\n )}\n >\n +{remainingCount}\n </div>\n )}\n </div>\n );\n }\n);\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport { Avatar, AvatarGroup, avatarVariants, getInitials };\n"]}
|
|
@@ -67,6 +67,7 @@ function Select({
|
|
|
67
67
|
helperText,
|
|
68
68
|
size,
|
|
69
69
|
hasError,
|
|
70
|
+
"aria-label": ariaLabel,
|
|
70
71
|
searchable = false,
|
|
71
72
|
searchPlaceholder = "Search...",
|
|
72
73
|
noResultsText = "No results found",
|
|
@@ -159,7 +160,12 @@ function Select({
|
|
|
159
160
|
const rect = triggerRef.current.getBoundingClientRect();
|
|
160
161
|
const spaceBelow = window.innerHeight - rect.bottom;
|
|
161
162
|
const spaceAbove = rect.top;
|
|
162
|
-
const
|
|
163
|
+
const isCondensed = document.body.classList.contains("condensed");
|
|
164
|
+
const optionHeight = isCondensed ? 28 : 40;
|
|
165
|
+
const estimatedDropdownHeight = Math.min(
|
|
166
|
+
flatOptions.length * optionHeight + 16,
|
|
167
|
+
300
|
|
168
|
+
);
|
|
163
169
|
const openAbove = spaceBelow < estimatedDropdownHeight && spaceAbove > spaceBelow;
|
|
164
170
|
setDropdownStyle({
|
|
165
171
|
position: "fixed",
|
|
@@ -250,147 +256,193 @@ function Select({
|
|
|
250
256
|
React__namespace.useEffect(() => {
|
|
251
257
|
setHighlightedIndex(filteredFlatOptions.length > 0 ? 0 : -1);
|
|
252
258
|
}, [searchQuery, filteredFlatOptions.length]);
|
|
253
|
-
const describedByIds = [
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
259
|
+
const describedByIds = [
|
|
260
|
+
error ? errorId : null,
|
|
261
|
+
helperText && !error ? helperId : null
|
|
262
|
+
].filter(Boolean).join(" ");
|
|
263
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
264
|
+
"div",
|
|
265
|
+
{
|
|
266
|
+
"data-slot": "select-wrapper",
|
|
267
|
+
className: chunkOR5DRJCW_cjs.cn("flex flex-col gap-1.5", className),
|
|
268
|
+
children: [
|
|
269
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
270
|
+
"label",
|
|
271
|
+
{
|
|
272
|
+
"data-slot": "select-label",
|
|
273
|
+
htmlFor: selectId,
|
|
274
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
275
|
+
"text-foreground text-sm font-medium",
|
|
276
|
+
hideLabel && "sr-only"
|
|
277
|
+
),
|
|
278
|
+
children: label
|
|
279
|
+
}
|
|
262
280
|
),
|
|
263
|
-
children:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: "relative", children: [
|
|
282
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
283
|
+
"button",
|
|
284
|
+
{
|
|
285
|
+
"data-slot": "select-trigger",
|
|
286
|
+
ref: triggerRef,
|
|
287
|
+
id: selectId,
|
|
288
|
+
type: "button",
|
|
289
|
+
role: "combobox",
|
|
290
|
+
"aria-haspopup": "listbox",
|
|
291
|
+
"aria-expanded": isOpen,
|
|
292
|
+
"aria-controls": listboxId,
|
|
293
|
+
"aria-invalid": hasError || !!error,
|
|
294
|
+
"aria-label": !label ? ariaLabel : void 0,
|
|
295
|
+
"aria-describedby": describedByIds || void 0,
|
|
296
|
+
disabled,
|
|
297
|
+
onClick: () => setIsOpen(!isOpen),
|
|
298
|
+
onKeyDown: handleKeyDown,
|
|
299
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
300
|
+
selectTriggerVariants({ size, hasError: hasError || !!error })
|
|
301
|
+
),
|
|
302
|
+
children: [
|
|
303
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
304
|
+
"span",
|
|
305
|
+
{
|
|
306
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
307
|
+
"truncate",
|
|
308
|
+
!selectedOption && "text-muted-foreground"
|
|
309
|
+
),
|
|
310
|
+
children: selectedOption?.label || placeholder
|
|
311
|
+
}
|
|
312
|
+
),
|
|
313
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
314
|
+
ChevronDownIcon,
|
|
315
|
+
{
|
|
316
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
317
|
+
"text-muted-foreground h-4 w-4 shrink-0 transition-transform",
|
|
318
|
+
isOpen && "rotate-180"
|
|
319
|
+
)
|
|
320
|
+
}
|
|
321
|
+
)
|
|
322
|
+
]
|
|
323
|
+
}
|
|
284
324
|
),
|
|
285
|
-
|
|
286
|
-
/* @__PURE__ */ jsxRuntime.
|
|
287
|
-
"
|
|
325
|
+
isOpen && reactDom.createPortal(
|
|
326
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
327
|
+
"div",
|
|
288
328
|
{
|
|
329
|
+
"data-slot": "select-dropdown",
|
|
330
|
+
ref: dropdownRef,
|
|
331
|
+
style: dropdownStyle,
|
|
289
332
|
className: chunkOR5DRJCW_cjs.cn(
|
|
290
|
-
"
|
|
291
|
-
|
|
333
|
+
"border-border bg-card rounded-lg border shadow-lg",
|
|
334
|
+
"animate-in fade-in zoom-in-95 duration-100"
|
|
292
335
|
),
|
|
293
|
-
children:
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
),
|
|
318
|
-
children: [
|
|
319
|
-
searchable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-border border-b p-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
320
|
-
"input",
|
|
321
|
-
{
|
|
322
|
-
ref: searchInputRef,
|
|
323
|
-
type: "text",
|
|
324
|
-
value: searchQuery,
|
|
325
|
-
onChange: (e) => setSearchQuery(e.target.value),
|
|
326
|
-
onKeyDown: handleKeyDown,
|
|
327
|
-
placeholder: searchPlaceholder,
|
|
328
|
-
className: chunkOR5DRJCW_cjs.cn(
|
|
329
|
-
"border-input bg-background w-full rounded-md border px-3 py-2 text-sm",
|
|
330
|
-
"placeholder:text-muted-foreground",
|
|
331
|
-
"focus:ring-ring focus:ring-2 focus:outline-none"
|
|
336
|
+
children: [
|
|
337
|
+
searchable && /* @__PURE__ */ jsxRuntime.jsx(
|
|
338
|
+
"div",
|
|
339
|
+
{
|
|
340
|
+
"data-slot": "select-search",
|
|
341
|
+
className: "border-border border-b p-2",
|
|
342
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
343
|
+
"input",
|
|
344
|
+
{
|
|
345
|
+
ref: searchInputRef,
|
|
346
|
+
type: "text",
|
|
347
|
+
value: searchQuery,
|
|
348
|
+
onChange: (e) => setSearchQuery(e.target.value),
|
|
349
|
+
onKeyDown: handleKeyDown,
|
|
350
|
+
placeholder: searchPlaceholder,
|
|
351
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
352
|
+
"border-input bg-background w-full rounded-md border px-3 py-2 text-sm",
|
|
353
|
+
"placeholder:text-muted-foreground",
|
|
354
|
+
"focus:ring-ring focus:ring-2 focus:outline-none"
|
|
355
|
+
),
|
|
356
|
+
"aria-label": "Search options"
|
|
357
|
+
}
|
|
358
|
+
)
|
|
359
|
+
}
|
|
332
360
|
),
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
361
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
362
|
+
"ul",
|
|
363
|
+
{
|
|
364
|
+
ref: listRef,
|
|
365
|
+
id: listboxId,
|
|
366
|
+
role: "listbox",
|
|
367
|
+
"aria-label": label || "Options",
|
|
368
|
+
"data-slot": "select-listbox",
|
|
369
|
+
className: "flex-1 overflow-auto p-1",
|
|
370
|
+
children: filteredFlatOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-muted-foreground px-3 py-2 text-center text-sm", children: noResultsText }) : filteredOptions.map((item) => {
|
|
371
|
+
if ("options" in item) {
|
|
372
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("li", { role: "presentation", children: [
|
|
373
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
374
|
+
"div",
|
|
375
|
+
{
|
|
376
|
+
"data-slot": "select-group-label",
|
|
377
|
+
className: "text-muted-foreground px-3 py-1.5 text-xs font-semibold tracking-wider uppercase",
|
|
378
|
+
children: item.label
|
|
379
|
+
}
|
|
380
|
+
),
|
|
381
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { role: "group", "aria-label": item.label, children: item.options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
382
|
+
SelectOptionItem,
|
|
383
|
+
{
|
|
384
|
+
option,
|
|
385
|
+
isSelected: option.value === value,
|
|
386
|
+
isHighlighted: filteredFlatOptions[highlightedIndex]?.value === option.value,
|
|
387
|
+
onSelect: () => handleValueChange(option.value),
|
|
388
|
+
onMouseEnter: () => {
|
|
389
|
+
const idx = filteredFlatOptions.findIndex(
|
|
390
|
+
(o) => o.value === option.value
|
|
391
|
+
);
|
|
392
|
+
setHighlightedIndex(idx);
|
|
393
|
+
}
|
|
394
|
+
},
|
|
395
|
+
option.value
|
|
396
|
+
)) })
|
|
397
|
+
] }, `group-${item.label}`);
|
|
398
|
+
}
|
|
399
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
400
|
SelectOptionItem,
|
|
350
401
|
{
|
|
351
|
-
option,
|
|
352
|
-
isSelected:
|
|
353
|
-
isHighlighted: filteredFlatOptions[highlightedIndex]?.value ===
|
|
354
|
-
onSelect: () => handleValueChange(
|
|
402
|
+
option: item,
|
|
403
|
+
isSelected: item.value === value,
|
|
404
|
+
isHighlighted: filteredFlatOptions[highlightedIndex]?.value === item.value,
|
|
405
|
+
onSelect: () => handleValueChange(item.value),
|
|
355
406
|
onMouseEnter: () => {
|
|
356
407
|
const idx = filteredFlatOptions.findIndex(
|
|
357
|
-
(o) => o.value ===
|
|
408
|
+
(o) => o.value === item.value
|
|
358
409
|
);
|
|
359
410
|
setHighlightedIndex(idx);
|
|
360
411
|
}
|
|
361
412
|
},
|
|
362
|
-
|
|
363
|
-
)
|
|
364
|
-
|
|
413
|
+
item.value
|
|
414
|
+
);
|
|
415
|
+
})
|
|
365
416
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
);
|
|
382
|
-
})
|
|
383
|
-
}
|
|
384
|
-
)
|
|
385
|
-
]
|
|
417
|
+
)
|
|
418
|
+
]
|
|
419
|
+
}
|
|
420
|
+
),
|
|
421
|
+
document.body
|
|
422
|
+
)
|
|
423
|
+
] }),
|
|
424
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
425
|
+
"p",
|
|
426
|
+
{
|
|
427
|
+
id: errorId,
|
|
428
|
+
"data-slot": "select-error",
|
|
429
|
+
className: "text-destructive-700 dark:text-destructive-400 text-sm",
|
|
430
|
+
role: "alert",
|
|
431
|
+
children: error
|
|
386
432
|
}
|
|
387
433
|
),
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
434
|
+
helperText && !error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
435
|
+
"p",
|
|
436
|
+
{
|
|
437
|
+
id: helperId,
|
|
438
|
+
"data-slot": "select-helper",
|
|
439
|
+
className: "text-muted-foreground text-sm",
|
|
440
|
+
children: helperText
|
|
441
|
+
}
|
|
442
|
+
)
|
|
443
|
+
]
|
|
444
|
+
}
|
|
445
|
+
);
|
|
394
446
|
}
|
|
395
447
|
Select.displayName = "Select";
|
|
396
448
|
function SelectOptionItem({
|
|
@@ -411,6 +463,7 @@ function SelectOptionItem({
|
|
|
411
463
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
412
464
|
"li",
|
|
413
465
|
{
|
|
466
|
+
"data-slot": "select-option",
|
|
414
467
|
role: "option",
|
|
415
468
|
"aria-selected": isSelected,
|
|
416
469
|
"aria-disabled": option.disabled,
|
|
@@ -429,7 +482,7 @@ function SelectOptionItem({
|
|
|
429
482
|
),
|
|
430
483
|
children: [
|
|
431
484
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children: option.label }),
|
|
432
|
-
isSelected && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "text-primary-
|
|
485
|
+
isSelected && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "text-primary-800 h-4 w-4 shrink-0" })
|
|
433
486
|
]
|
|
434
487
|
}
|
|
435
488
|
);
|
|
@@ -475,5 +528,5 @@ function CheckIcon({ className }) {
|
|
|
475
528
|
|
|
476
529
|
exports.Select = Select;
|
|
477
530
|
exports.selectTriggerVariants = selectTriggerVariants;
|
|
478
|
-
//# sourceMappingURL=chunk-
|
|
479
|
-
//# sourceMappingURL=chunk-
|
|
531
|
+
//# sourceMappingURL=chunk-FRT6RQND.cjs.map
|
|
532
|
+
//# sourceMappingURL=chunk-FRT6RQND.cjs.map
|