@mieweb/ui 0.1.0
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/LICENSE +21 -0
- package/README.md +696 -0
- package/dist/brands/bluehive.cjs +18 -0
- package/dist/brands/bluehive.cjs.map +1 -0
- package/dist/brands/bluehive.css +136 -0
- package/dist/brands/bluehive.d.cts +16 -0
- package/dist/brands/bluehive.d.ts +16 -0
- package/dist/brands/bluehive.js +3 -0
- package/dist/brands/bluehive.js.map +1 -0
- package/dist/brands/enterprise-health.css +260 -0
- package/dist/brands/index.cjs +55 -0
- package/dist/brands/index.cjs.map +1 -0
- package/dist/brands/index.d.cts +100 -0
- package/dist/brands/index.d.ts +100 -0
- package/dist/brands/index.js +10 -0
- package/dist/brands/index.js.map +1 -0
- package/dist/brands/mieweb.css +138 -0
- package/dist/brands/types.cjs +20 -0
- package/dist/brands/types.cjs.map +1 -0
- package/dist/brands/types.d.cts +188 -0
- package/dist/brands/types.d.ts +188 -0
- package/dist/brands/types.js +3 -0
- package/dist/brands/types.js.map +1 -0
- package/dist/brands/waggleline.css +164 -0
- package/dist/brands/webchart.css +138 -0
- package/dist/chunk-265CFCCX.js +173 -0
- package/dist/chunk-265CFCCX.js.map +1 -0
- package/dist/chunk-2J2V4TMJ.cjs +139 -0
- package/dist/chunk-2J2V4TMJ.cjs.map +1 -0
- package/dist/chunk-2O7D6F67.cjs +63 -0
- package/dist/chunk-2O7D6F67.cjs.map +1 -0
- package/dist/chunk-3NJ72QU6.js +55 -0
- package/dist/chunk-3NJ72QU6.js.map +1 -0
- package/dist/chunk-4AWW5WPF.js +161 -0
- package/dist/chunk-4AWW5WPF.js.map +1 -0
- package/dist/chunk-4LNS5QDP.cjs +84 -0
- package/dist/chunk-4LNS5QDP.cjs.map +1 -0
- package/dist/chunk-4LTN2LEN.js +79 -0
- package/dist/chunk-4LTN2LEN.js.map +1 -0
- package/dist/chunk-4MHTSFPX.js +205 -0
- package/dist/chunk-4MHTSFPX.js.map +1 -0
- package/dist/chunk-4YRAEFYW.js +233 -0
- package/dist/chunk-4YRAEFYW.js.map +1 -0
- package/dist/chunk-53K3KWXQ.cjs +753 -0
- package/dist/chunk-53K3KWXQ.cjs.map +1 -0
- package/dist/chunk-6DP6RKUA.cjs +15 -0
- package/dist/chunk-6DP6RKUA.cjs.map +1 -0
- package/dist/chunk-6HFFWEM3.cjs +22 -0
- package/dist/chunk-6HFFWEM3.cjs.map +1 -0
- package/dist/chunk-6OCIIIAI.js +128 -0
- package/dist/chunk-6OCIIIAI.js.map +1 -0
- package/dist/chunk-6Q4SU72T.js +300 -0
- package/dist/chunk-6Q4SU72T.js.map +1 -0
- package/dist/chunk-AU5ADTYD.cjs +326 -0
- package/dist/chunk-AU5ADTYD.cjs.map +1 -0
- package/dist/chunk-AWIULTJW.js +190 -0
- package/dist/chunk-AWIULTJW.js.map +1 -0
- package/dist/chunk-B26RIQ5R.js +97 -0
- package/dist/chunk-B26RIQ5R.js.map +1 -0
- package/dist/chunk-B3L43JGH.js +98 -0
- package/dist/chunk-B3L43JGH.js.map +1 -0
- package/dist/chunk-B7DA35BY.cjs +496 -0
- package/dist/chunk-B7DA35BY.cjs.map +1 -0
- package/dist/chunk-B7YGVKTE.cjs +184 -0
- package/dist/chunk-B7YGVKTE.cjs.map +1 -0
- package/dist/chunk-BR2XGATJ.cjs +40 -0
- package/dist/chunk-BR2XGATJ.cjs.map +1 -0
- package/dist/chunk-BTJHYGPI.cjs +27 -0
- package/dist/chunk-BTJHYGPI.cjs.map +1 -0
- package/dist/chunk-BXK5TNJE.cjs +329 -0
- package/dist/chunk-BXK5TNJE.cjs.map +1 -0
- package/dist/chunk-C6MDPPPL.js +82 -0
- package/dist/chunk-C6MDPPPL.js.map +1 -0
- package/dist/chunk-CEHWXAAI.js +22 -0
- package/dist/chunk-CEHWXAAI.js.map +1 -0
- package/dist/chunk-CLNOI5J7.js +38 -0
- package/dist/chunk-CLNOI5J7.js.map +1 -0
- package/dist/chunk-CP7NPDQW.js +99 -0
- package/dist/chunk-CP7NPDQW.js.map +1 -0
- package/dist/chunk-CQCYXHCU.cjs +256 -0
- package/dist/chunk-CQCYXHCU.cjs.map +1 -0
- package/dist/chunk-D5IBXXF2.js +243 -0
- package/dist/chunk-D5IBXXF2.js.map +1 -0
- package/dist/chunk-DMA74PZ7.js +240 -0
- package/dist/chunk-DMA74PZ7.js.map +1 -0
- package/dist/chunk-EF46XW4Z.cjs +270 -0
- package/dist/chunk-EF46XW4Z.cjs.map +1 -0
- package/dist/chunk-EKIQE524.cjs +78 -0
- package/dist/chunk-EKIQE524.cjs.map +1 -0
- package/dist/chunk-F3SOEIN2.js +11 -0
- package/dist/chunk-F3SOEIN2.js.map +1 -0
- package/dist/chunk-FFJVCQ5R.cjs +128 -0
- package/dist/chunk-FFJVCQ5R.cjs.map +1 -0
- package/dist/chunk-FHY3K6PL.cjs +24 -0
- package/dist/chunk-FHY3K6PL.cjs.map +1 -0
- package/dist/chunk-FIUNOH6W.js +13 -0
- package/dist/chunk-FIUNOH6W.js.map +1 -0
- package/dist/chunk-FIXAVBUA.cjs +200 -0
- package/dist/chunk-FIXAVBUA.cjs.map +1 -0
- package/dist/chunk-FQ5G7J24.js +297 -0
- package/dist/chunk-FQ5G7J24.js.map +1 -0
- package/dist/chunk-G2DOD34H.js +215 -0
- package/dist/chunk-G2DOD34H.js.map +1 -0
- package/dist/chunk-GV5JQBPX.js +110 -0
- package/dist/chunk-GV5JQBPX.js.map +1 -0
- package/dist/chunk-H2CIKJQI.js +32 -0
- package/dist/chunk-H2CIKJQI.js.map +1 -0
- package/dist/chunk-HB7C7NB5.js +20 -0
- package/dist/chunk-HB7C7NB5.js.map +1 -0
- package/dist/chunk-HLW3XD5R.cjs +322 -0
- package/dist/chunk-HLW3XD5R.cjs.map +1 -0
- package/dist/chunk-HRA4FUO6.cjs +425 -0
- package/dist/chunk-HRA4FUO6.cjs.map +1 -0
- package/dist/chunk-IY7UQPDO.cjs +122 -0
- package/dist/chunk-IY7UQPDO.cjs.map +1 -0
- package/dist/chunk-JFAXLE2J.js +217 -0
- package/dist/chunk-JFAXLE2J.js.map +1 -0
- package/dist/chunk-JYMQJ32S.cjs +115 -0
- package/dist/chunk-JYMQJ32S.cjs.map +1 -0
- package/dist/chunk-KJOFWJHV.js +406 -0
- package/dist/chunk-KJOFWJHV.js.map +1 -0
- package/dist/chunk-KJZNEVYM.js +61 -0
- package/dist/chunk-KJZNEVYM.js.map +1 -0
- package/dist/chunk-KMN7JX2X.cjs +67 -0
- package/dist/chunk-KMN7JX2X.cjs.map +1 -0
- package/dist/chunk-LEE3NMNP.cjs +429 -0
- package/dist/chunk-LEE3NMNP.cjs.map +1 -0
- package/dist/chunk-LZEY55QZ.cjs +219 -0
- package/dist/chunk-LZEY55QZ.cjs.map +1 -0
- package/dist/chunk-MKJDBXX4.cjs +171 -0
- package/dist/chunk-MKJDBXX4.cjs.map +1 -0
- package/dist/chunk-MTZPVOP6.js +99 -0
- package/dist/chunk-MTZPVOP6.js.map +1 -0
- package/dist/chunk-N3QTYHRZ.cjs +134 -0
- package/dist/chunk-N3QTYHRZ.cjs.map +1 -0
- package/dist/chunk-N5EKL4DH.js +148 -0
- package/dist/chunk-N5EKL4DH.js.map +1 -0
- package/dist/chunk-NAATBUHR.cjs +231 -0
- package/dist/chunk-NAATBUHR.cjs.map +1 -0
- package/dist/chunk-NH2JVQ6V.cjs +272 -0
- package/dist/chunk-NH2JVQ6V.cjs.map +1 -0
- package/dist/chunk-NIHESA7O.js +114 -0
- package/dist/chunk-NIHESA7O.js.map +1 -0
- package/dist/chunk-NXRLGHEC.js +98 -0
- package/dist/chunk-NXRLGHEC.js.map +1 -0
- package/dist/chunk-O5HS7ZND.cjs +81 -0
- package/dist/chunk-O5HS7ZND.cjs.map +1 -0
- package/dist/chunk-O7WRE2WX.js +195 -0
- package/dist/chunk-O7WRE2WX.js.map +1 -0
- package/dist/chunk-ONWOB76P.js +319 -0
- package/dist/chunk-ONWOB76P.js.map +1 -0
- package/dist/chunk-OR5DRJCW.cjs +13 -0
- package/dist/chunk-OR5DRJCW.cjs.map +1 -0
- package/dist/chunk-ORUPC5TV.cjs +244 -0
- package/dist/chunk-ORUPC5TV.cjs.map +1 -0
- package/dist/chunk-OT36EMM5.js +22 -0
- package/dist/chunk-OT36EMM5.js.map +1 -0
- package/dist/chunk-OW2BWGST.js +238 -0
- package/dist/chunk-OW2BWGST.js.map +1 -0
- package/dist/chunk-OWPWP46L.js +92 -0
- package/dist/chunk-OWPWP46L.js.map +1 -0
- package/dist/chunk-P52GA3GJ.cjs +101 -0
- package/dist/chunk-P52GA3GJ.cjs.map +1 -0
- package/dist/chunk-PEFJAWNR.cjs +121 -0
- package/dist/chunk-PEFJAWNR.cjs.map +1 -0
- package/dist/chunk-PF3XWKE5.cjs +343 -0
- package/dist/chunk-PF3XWKE5.cjs.map +1 -0
- package/dist/chunk-QBWVTJKF.js +548 -0
- package/dist/chunk-QBWVTJKF.js.map +1 -0
- package/dist/chunk-QDGZBDBI.cjs +99 -0
- package/dist/chunk-QDGZBDBI.cjs.map +1 -0
- package/dist/chunk-QL2YTVTR.js +163 -0
- package/dist/chunk-QL2YTVTR.js.map +1 -0
- package/dist/chunk-QYJ7RQJ2.cjs +239 -0
- package/dist/chunk-QYJ7RQJ2.cjs.map +1 -0
- package/dist/chunk-QZLRB3UG.js +727 -0
- package/dist/chunk-QZLRB3UG.js.map +1 -0
- package/dist/chunk-R4DM4635.cjs +109 -0
- package/dist/chunk-R4DM4635.cjs.map +1 -0
- package/dist/chunk-RCMF6KZA.js +75 -0
- package/dist/chunk-RCMF6KZA.js.map +1 -0
- package/dist/chunk-RRQGH7C5.cjs +187 -0
- package/dist/chunk-RRQGH7C5.cjs.map +1 -0
- package/dist/chunk-S6UNPMAS.cjs +84 -0
- package/dist/chunk-S6UNPMAS.cjs.map +1 -0
- package/dist/chunk-SJ3BF4BO.cjs +199 -0
- package/dist/chunk-SJ3BF4BO.cjs.map +1 -0
- package/dist/chunk-SN52QMRT.js +58 -0
- package/dist/chunk-SN52QMRT.js.map +1 -0
- package/dist/chunk-SOFX4T7M.js +124 -0
- package/dist/chunk-SOFX4T7M.js.map +1 -0
- package/dist/chunk-SWMRCGL4.cjs +24 -0
- package/dist/chunk-SWMRCGL4.cjs.map +1 -0
- package/dist/chunk-SWV5E75F.cjs +94 -0
- package/dist/chunk-SWV5E75F.cjs.map +1 -0
- package/dist/chunk-T4ME7QCT.js +22 -0
- package/dist/chunk-T4ME7QCT.js.map +1 -0
- package/dist/chunk-TA6FVVCM.js +207 -0
- package/dist/chunk-TA6FVVCM.js.map +1 -0
- package/dist/chunk-UHSPAFY6.js +82 -0
- package/dist/chunk-UHSPAFY6.js.map +1 -0
- package/dist/chunk-ULOA7WBW.js +82 -0
- package/dist/chunk-ULOA7WBW.js.map +1 -0
- package/dist/chunk-UZUBLXVC.js +307 -0
- package/dist/chunk-UZUBLXVC.js.map +1 -0
- package/dist/chunk-VDMQCSXT.cjs +234 -0
- package/dist/chunk-VDMQCSXT.cjs.map +1 -0
- package/dist/chunk-VV4N4WY6.cjs +121 -0
- package/dist/chunk-VV4N4WY6.cjs.map +1 -0
- package/dist/chunk-VWXGUNBR.cjs +574 -0
- package/dist/chunk-VWXGUNBR.cjs.map +1 -0
- package/dist/chunk-WN2FJE23.js +474 -0
- package/dist/chunk-WN2FJE23.js.map +1 -0
- package/dist/chunk-XHJGYBYG.cjs +262 -0
- package/dist/chunk-XHJGYBYG.cjs.map +1 -0
- package/dist/chunk-XXOBTAKA.js +390 -0
- package/dist/chunk-XXOBTAKA.js.map +1 -0
- package/dist/chunk-Z3TFPXVN.cjs +84 -0
- package/dist/chunk-Z3TFPXVN.cjs.map +1 -0
- package/dist/chunk-ZJCPW6MS.cjs +54 -0
- package/dist/chunk-ZJCPW6MS.cjs.map +1 -0
- package/dist/chunk-ZO46CFVN.cjs +4 -0
- package/dist/chunk-ZO46CFVN.cjs.map +1 -0
- package/dist/chunk-ZQ4XMJH7.js +3 -0
- package/dist/chunk-ZQ4XMJH7.js.map +1 -0
- package/dist/components/Alert/index.cjs +25 -0
- package/dist/components/Alert/index.cjs.map +1 -0
- package/dist/components/Alert/index.d.cts +39 -0
- package/dist/components/Alert/index.d.ts +39 -0
- package/dist/components/Alert/index.js +4 -0
- package/dist/components/Alert/index.js.map +1 -0
- package/dist/components/AudioPlayer/index.cjs +29 -0
- package/dist/components/AudioPlayer/index.cjs.map +1 -0
- package/dist/components/AudioPlayer/index.d.cts +83 -0
- package/dist/components/AudioPlayer/index.d.ts +83 -0
- package/dist/components/AudioPlayer/index.js +4 -0
- package/dist/components/AudioPlayer/index.js.map +1 -0
- package/dist/components/AudioRecorder/index.cjs +29 -0
- package/dist/components/AudioRecorder/index.cjs.map +1 -0
- package/dist/components/AudioRecorder/index.d.cts +106 -0
- package/dist/components/AudioRecorder/index.d.ts +106 -0
- package/dist/components/AudioRecorder/index.js +4 -0
- package/dist/components/AudioRecorder/index.js.map +1 -0
- package/dist/components/Avatar/index.cjs +25 -0
- package/dist/components/Avatar/index.cjs.map +1 -0
- package/dist/components/Avatar/index.d.cts +62 -0
- package/dist/components/Avatar/index.d.ts +62 -0
- package/dist/components/Avatar/index.js +4 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Badge/index.cjs +17 -0
- package/dist/components/Badge/index.cjs.map +1 -0
- package/dist/components/Badge/index.d.cts +25 -0
- package/dist/components/Badge/index.d.ts +25 -0
- package/dist/components/Badge/index.js +4 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Breadcrumb/index.cjs +17 -0
- package/dist/components/Breadcrumb/index.cjs.map +1 -0
- package/dist/components/Breadcrumb/index.d.cts +47 -0
- package/dist/components/Breadcrumb/index.d.ts +47 -0
- package/dist/components/Breadcrumb/index.js +4 -0
- package/dist/components/Breadcrumb/index.js.map +1 -0
- package/dist/components/Button/index.cjs +17 -0
- package/dist/components/Button/index.cjs.map +1 -0
- package/dist/components/Button/index.d.cts +32 -0
- package/dist/components/Button/index.d.ts +32 -0
- package/dist/components/Button/index.js +4 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Card/index.cjs +65 -0
- package/dist/components/Card/index.cjs.map +1 -0
- package/dist/components/Card/index.d.cts +119 -0
- package/dist/components/Card/index.d.ts +119 -0
- package/dist/components/Card/index.js +4 -0
- package/dist/components/Card/index.js.map +1 -0
- package/dist/components/Checkbox/index.cjs +21 -0
- package/dist/components/Checkbox/index.cjs.map +1 -0
- package/dist/components/Checkbox/index.d.cts +63 -0
- package/dist/components/Checkbox/index.d.ts +63 -0
- package/dist/components/Checkbox/index.js +4 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/DateInput/index.cjs +15 -0
- package/dist/components/DateInput/index.cjs.map +1 -0
- package/dist/components/DateInput/index.d.cts +55 -0
- package/dist/components/DateInput/index.d.ts +55 -0
- package/dist/components/DateInput/index.js +6 -0
- package/dist/components/DateInput/index.js.map +1 -0
- package/dist/components/Dropdown/index.cjs +35 -0
- package/dist/components/Dropdown/index.cjs.map +1 -0
- package/dist/components/Dropdown/index.d.cts +102 -0
- package/dist/components/Dropdown/index.d.ts +102 -0
- package/dist/components/Dropdown/index.js +6 -0
- package/dist/components/Dropdown/index.js.map +1 -0
- package/dist/components/Input/index.cjs +17 -0
- package/dist/components/Input/index.cjs.map +1 -0
- package/dist/components/Input/index.d.cts +32 -0
- package/dist/components/Input/index.d.ts +32 -0
- package/dist/components/Input/index.js +4 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Modal/index.cjs +43 -0
- package/dist/components/Modal/index.cjs.map +1 -0
- package/dist/components/Modal/index.d.cts +82 -0
- package/dist/components/Modal/index.d.ts +82 -0
- package/dist/components/Modal/index.js +6 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Pagination/index.cjs +21 -0
- package/dist/components/Pagination/index.cjs.map +1 -0
- package/dist/components/Pagination/index.d.cts +78 -0
- package/dist/components/Pagination/index.d.ts +78 -0
- package/dist/components/Pagination/index.js +4 -0
- package/dist/components/Pagination/index.js.map +1 -0
- package/dist/components/PhoneInput/index.cjs +19 -0
- package/dist/components/PhoneInput/index.cjs.map +1 -0
- package/dist/components/PhoneInput/index.d.cts +80 -0
- package/dist/components/PhoneInput/index.d.ts +80 -0
- package/dist/components/PhoneInput/index.js +6 -0
- package/dist/components/PhoneInput/index.js.map +1 -0
- package/dist/components/Progress/index.cjs +29 -0
- package/dist/components/Progress/index.cjs.map +1 -0
- package/dist/components/Progress/index.d.cts +76 -0
- package/dist/components/Progress/index.d.ts +76 -0
- package/dist/components/Progress/index.js +4 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/QuickAction/index.cjs +29 -0
- package/dist/components/QuickAction/index.cjs.map +1 -0
- package/dist/components/QuickAction/index.d.cts +78 -0
- package/dist/components/QuickAction/index.d.ts +78 -0
- package/dist/components/QuickAction/index.js +4 -0
- package/dist/components/QuickAction/index.js.map +1 -0
- package/dist/components/Radio/index.cjs +21 -0
- package/dist/components/Radio/index.cjs.map +1 -0
- package/dist/components/Radio/index.d.cts +72 -0
- package/dist/components/Radio/index.d.ts +72 -0
- package/dist/components/Radio/index.js +4 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/RecordButton/index.cjs +25 -0
- package/dist/components/RecordButton/index.cjs.map +1 -0
- package/dist/components/RecordButton/index.d.cts +83 -0
- package/dist/components/RecordButton/index.d.ts +83 -0
- package/dist/components/RecordButton/index.js +4 -0
- package/dist/components/RecordButton/index.js.map +1 -0
- package/dist/components/SchedulePicker/index.cjs +45 -0
- package/dist/components/SchedulePicker/index.cjs.map +1 -0
- package/dist/components/SchedulePicker/index.d.cts +111 -0
- package/dist/components/SchedulePicker/index.d.ts +111 -0
- package/dist/components/SchedulePicker/index.js +4 -0
- package/dist/components/SchedulePicker/index.js.map +1 -0
- package/dist/components/Select/index.cjs +19 -0
- package/dist/components/Select/index.cjs.map +1 -0
- package/dist/components/Select/index.d.cts +79 -0
- package/dist/components/Select/index.d.ts +79 -0
- package/dist/components/Select/index.js +6 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Skeleton/index.cjs +29 -0
- package/dist/components/Skeleton/index.cjs.map +1 -0
- package/dist/components/Skeleton/index.d.cts +96 -0
- package/dist/components/Skeleton/index.d.ts +96 -0
- package/dist/components/Skeleton/index.js +4 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Spinner/index.cjs +25 -0
- package/dist/components/Spinner/index.cjs.map +1 -0
- package/dist/components/Spinner/index.d.cts +67 -0
- package/dist/components/Spinner/index.d.ts +67 -0
- package/dist/components/Spinner/index.js +4 -0
- package/dist/components/Spinner/index.js.map +1 -0
- package/dist/components/Switch/index.cjs +21 -0
- package/dist/components/Switch/index.cjs.map +1 -0
- package/dist/components/Switch/index.d.cts +41 -0
- package/dist/components/Switch/index.d.ts +41 -0
- package/dist/components/Switch/index.js +4 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Table/index.cjs +41 -0
- package/dist/components/Table/index.cjs.map +1 -0
- package/dist/components/Table/index.d.cts +54 -0
- package/dist/components/Table/index.d.ts +54 -0
- package/dist/components/Table/index.js +4 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Tabs/index.cjs +33 -0
- package/dist/components/Tabs/index.cjs.map +1 -0
- package/dist/components/Tabs/index.d.cts +70 -0
- package/dist/components/Tabs/index.d.ts +70 -0
- package/dist/components/Tabs/index.js +4 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Text/index.cjs +21 -0
- package/dist/components/Text/index.cjs.map +1 -0
- package/dist/components/Text/index.d.cts +35 -0
- package/dist/components/Text/index.d.ts +35 -0
- package/dist/components/Text/index.js +4 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Textarea/index.cjs +17 -0
- package/dist/components/Textarea/index.cjs.map +1 -0
- package/dist/components/Textarea/index.d.cts +42 -0
- package/dist/components/Textarea/index.d.ts +42 -0
- package/dist/components/Textarea/index.js +4 -0
- package/dist/components/Textarea/index.js.map +1 -0
- package/dist/components/ThemeProvider/index.cjs +36 -0
- package/dist/components/ThemeProvider/index.cjs.map +1 -0
- package/dist/components/ThemeProvider/index.d.cts +121 -0
- package/dist/components/ThemeProvider/index.d.ts +121 -0
- package/dist/components/ThemeProvider/index.js +7 -0
- package/dist/components/ThemeProvider/index.js.map +1 -0
- package/dist/components/Tooltip/index.cjs +14 -0
- package/dist/components/Tooltip/index.cjs.map +1 -0
- package/dist/components/Tooltip/index.d.cts +55 -0
- package/dist/components/Tooltip/index.d.ts +55 -0
- package/dist/components/Tooltip/index.js +5 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/VisuallyHidden/index.cjs +12 -0
- package/dist/components/VisuallyHidden/index.cjs.map +1 -0
- package/dist/components/VisuallyHidden/index.d.cts +20 -0
- package/dist/components/VisuallyHidden/index.d.ts +20 -0
- package/dist/components/VisuallyHidden/index.js +3 -0
- package/dist/components/VisuallyHidden/index.js.map +1 -0
- package/dist/default-LIRPABBK.js +3 -0
- package/dist/default-LIRPABBK.js.map +1 -0
- package/dist/default-ZGHKI5WF.cjs +18 -0
- package/dist/default-ZGHKI5WF.cjs.map +1 -0
- package/dist/enterprise-health-ORQQOLM3.js +3 -0
- package/dist/enterprise-health-ORQQOLM3.js.map +1 -0
- package/dist/enterprise-health-UDI25OCV.cjs +18 -0
- package/dist/enterprise-health-UDI25OCV.cjs.map +1 -0
- package/dist/hooks/index.cjs +69 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.cts +179 -0
- package/dist/hooks/index.d.ts +179 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.cjs +33153 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +8188 -0
- package/dist/index.d.ts +8188 -0
- package/dist/index.js +32162 -0
- package/dist/index.js.map +1 -0
- package/dist/mieweb-PV2YKYO7.js +3 -0
- package/dist/mieweb-PV2YKYO7.js.map +1 -0
- package/dist/mieweb-UJABK5XX.cjs +18 -0
- package/dist/mieweb-UJABK5XX.cjs.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/tailwind-preset.cjs +22 -0
- package/dist/tailwind-preset.cjs.map +1 -0
- package/dist/tailwind-preset.d.cts +39 -0
- package/dist/tailwind-preset.d.ts +39 -0
- package/dist/tailwind-preset.js +3 -0
- package/dist/tailwind-preset.js.map +1 -0
- package/dist/useTheme-B9SWu6ui.d.cts +24 -0
- package/dist/useTheme-B9SWu6ui.d.ts +24 -0
- package/dist/utils/index.cjs +63 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +73 -0
- package/dist/utils/index.d.ts +73 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/waggleline-6IGA66HR.cjs +18 -0
- package/dist/waggleline-6IGA66HR.cjs.map +1 -0
- package/dist/waggleline-BMUYAFJF.js +3 -0
- package/dist/waggleline-BMUYAFJF.js.map +1 -0
- package/dist/webchart-2SLO5ICI.js +3 -0
- package/dist/webchart-2SLO5ICI.js.map +1 -0
- package/dist/webchart-EHVGP46N.cjs +18 -0
- package/dist/webchart-EHVGP46N.cjs.map +1 -0
- package/package.json +212 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AudioRecorder/AudioRecorder.tsx"],"names":[],"mappings":"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","file":"chunk-QZLRB3UG.js","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-600 text-white',\n 'hover:bg-primary-700',\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 className=\"flex items-center gap-2\">\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-sm font-medium text-neutral-600 dark:text-neutral-400\">\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 className=\"flex items-center gap-1 font-mono text-sm text-neutral-600 dark:text-neutral-400\">\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 role=\"group\"\n aria-label={ariaLabel}\n >\n {/* Waveform / Visualizer */}\n {showWaveform && (\n <div\n className={cn(waveformContainerVariants({ state }))}\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 className=\"flex items-center justify-between\">\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 className=\"flex items-center justify-center gap-3\">\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"]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
// src/hooks/useKeyboardShortcut.ts
|
|
6
|
+
function useKeyboardShortcut(key, callback, options = {}) {
|
|
7
|
+
const {
|
|
8
|
+
enabled = true,
|
|
9
|
+
modifiers = {},
|
|
10
|
+
preventDefault = true,
|
|
11
|
+
stopPropagation = false,
|
|
12
|
+
ignoreInputs = true
|
|
13
|
+
} = options;
|
|
14
|
+
const handleKeyDown = react.useCallback(
|
|
15
|
+
(event) => {
|
|
16
|
+
if (ignoreInputs) {
|
|
17
|
+
const target = event.target;
|
|
18
|
+
const tagName = target.tagName.toUpperCase();
|
|
19
|
+
if (tagName === "INPUT" || tagName === "TEXTAREA" || tagName === "SELECT" || target.isContentEditable) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const { ctrl, shift, alt, meta } = modifiers;
|
|
24
|
+
const metaOrCtrl = meta || ctrl;
|
|
25
|
+
if (metaOrCtrl) {
|
|
26
|
+
if (!(event.metaKey || event.ctrlKey)) return;
|
|
27
|
+
} else {
|
|
28
|
+
if (event.metaKey || event.ctrlKey) return;
|
|
29
|
+
}
|
|
30
|
+
if (shift && !event.shiftKey) return;
|
|
31
|
+
if (alt && !event.altKey) return;
|
|
32
|
+
const eventKey = event.key.length === 1 ? event.key.toLowerCase() : event.key;
|
|
33
|
+
const targetKey = key.length === 1 ? key.toLowerCase() : key;
|
|
34
|
+
if (eventKey !== targetKey) return;
|
|
35
|
+
if (preventDefault) {
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
}
|
|
38
|
+
if (stopPropagation) {
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
}
|
|
41
|
+
callback(event);
|
|
42
|
+
},
|
|
43
|
+
[key, callback, modifiers, preventDefault, stopPropagation, ignoreInputs]
|
|
44
|
+
);
|
|
45
|
+
react.useEffect(() => {
|
|
46
|
+
if (!enabled) return;
|
|
47
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
48
|
+
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
49
|
+
}, [handleKeyDown, enabled]);
|
|
50
|
+
}
|
|
51
|
+
function useCommandK(callback, enabled = true) {
|
|
52
|
+
useKeyboardShortcut("k", callback, {
|
|
53
|
+
enabled,
|
|
54
|
+
modifiers: { meta: true, ctrl: true },
|
|
55
|
+
ignoreInputs: false
|
|
56
|
+
// Cmd+K should work even in inputs
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function useMediaQuery(query) {
|
|
60
|
+
const [matches, setMatches] = react.useState(() => {
|
|
61
|
+
if (typeof window === "undefined") return false;
|
|
62
|
+
return window.matchMedia(query).matches;
|
|
63
|
+
});
|
|
64
|
+
react.useEffect(() => {
|
|
65
|
+
if (typeof window === "undefined") return;
|
|
66
|
+
const mediaQuery = window.matchMedia(query);
|
|
67
|
+
setMatches(mediaQuery.matches);
|
|
68
|
+
const handler = (event) => {
|
|
69
|
+
setMatches(event.matches);
|
|
70
|
+
};
|
|
71
|
+
if (mediaQuery.addEventListener) {
|
|
72
|
+
mediaQuery.addEventListener("change", handler);
|
|
73
|
+
return () => mediaQuery.removeEventListener("change", handler);
|
|
74
|
+
}
|
|
75
|
+
mediaQuery.addListener(handler);
|
|
76
|
+
return () => mediaQuery.removeListener(handler);
|
|
77
|
+
}, [query]);
|
|
78
|
+
return matches;
|
|
79
|
+
}
|
|
80
|
+
function useIsMobile() {
|
|
81
|
+
return useMediaQuery("(max-width: 639px)");
|
|
82
|
+
}
|
|
83
|
+
function useIsSmallTablet() {
|
|
84
|
+
return useMediaQuery("(min-width: 640px) and (max-width: 767px)");
|
|
85
|
+
}
|
|
86
|
+
function useIsTablet() {
|
|
87
|
+
return useMediaQuery("(min-width: 768px) and (max-width: 1023px)");
|
|
88
|
+
}
|
|
89
|
+
function useIsDesktop() {
|
|
90
|
+
return useMediaQuery("(min-width: 1024px)");
|
|
91
|
+
}
|
|
92
|
+
function useIsLargeDesktop() {
|
|
93
|
+
return useMediaQuery("(min-width: 1280px)");
|
|
94
|
+
}
|
|
95
|
+
function useIsMobileOrTablet() {
|
|
96
|
+
return useMediaQuery("(max-width: 1023px)");
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
exports.useCommandK = useCommandK;
|
|
100
|
+
exports.useIsDesktop = useIsDesktop;
|
|
101
|
+
exports.useIsLargeDesktop = useIsLargeDesktop;
|
|
102
|
+
exports.useIsMobile = useIsMobile;
|
|
103
|
+
exports.useIsMobileOrTablet = useIsMobileOrTablet;
|
|
104
|
+
exports.useIsSmallTablet = useIsSmallTablet;
|
|
105
|
+
exports.useIsTablet = useIsTablet;
|
|
106
|
+
exports.useKeyboardShortcut = useKeyboardShortcut;
|
|
107
|
+
exports.useMediaQuery = useMediaQuery;
|
|
108
|
+
//# sourceMappingURL=chunk-R4DM4635.cjs.map
|
|
109
|
+
//# sourceMappingURL=chunk-R4DM4635.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useKeyboardShortcut.ts","../src/hooks/useMediaQuery.ts"],"names":["useCallback","useEffect","useState"],"mappings":"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","file":"chunk-R4DM4635.cjs","sourcesContent":["import { useEffect, useCallback } from 'react';\n\n/**\n * Options for keyboard shortcut hook\n */\nexport interface KeyboardShortcutOptions {\n /** Whether the shortcut is currently enabled (default: true) */\n enabled?: boolean;\n /** Modifier keys required (default: none) */\n modifiers?: {\n ctrl?: boolean;\n shift?: boolean;\n alt?: boolean;\n meta?: boolean;\n };\n /** Whether to prevent default browser behavior (default: true) */\n preventDefault?: boolean;\n /** Whether to stop event propagation (default: false) */\n stopPropagation?: boolean;\n /** Element types to ignore when the shortcut is pressed (default: ['INPUT', 'TEXTAREA', 'SELECT']) */\n ignoreInputs?: boolean;\n}\n\n/**\n * Hook that triggers a callback when a specific keyboard shortcut is pressed.\n * Supports modifier keys (Ctrl, Shift, Alt, Meta) and ignores input fields by default.\n *\n * @param key - The key to listen for (e.g., 'k', 'Enter', 'Escape', '/')\n * @param callback - Function to call when the shortcut is pressed\n * @param options - Configuration options\n *\n * @example\n * ```tsx\n * // Cmd/Ctrl+K to open search\n * useKeyboardShortcut('k', openSearch, { modifiers: { meta: true, ctrl: true } });\n *\n * // Forward slash to focus search (ignoring when typing)\n * useKeyboardShortcut('/', focusSearch);\n *\n * // Escape to close modal\n * useKeyboardShortcut('Escape', closeModal);\n * ```\n */\nexport function useKeyboardShortcut(\n key: string,\n callback: (event: KeyboardEvent) => void,\n options: KeyboardShortcutOptions = {}\n): void {\n const {\n enabled = true,\n modifiers = {},\n preventDefault = true,\n stopPropagation = false,\n ignoreInputs = true,\n } = options;\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // Check if we should ignore input fields\n if (ignoreInputs) {\n const target = event.target as HTMLElement;\n const tagName = target.tagName.toUpperCase();\n if (\n tagName === 'INPUT' ||\n tagName === 'TEXTAREA' ||\n tagName === 'SELECT' ||\n target.isContentEditable\n ) {\n return;\n }\n }\n\n // Check modifiers\n const { ctrl, shift, alt, meta } = modifiers;\n\n // For Cmd+K style shortcuts, allow either meta (Mac) or ctrl (Windows/Linux)\n const metaOrCtrl = meta || ctrl;\n if (metaOrCtrl) {\n if (!(event.metaKey || event.ctrlKey)) return;\n } else {\n // If no meta/ctrl modifier specified, ensure neither is pressed\n if (event.metaKey || event.ctrlKey) return;\n }\n\n if (shift && !event.shiftKey) return;\n if (alt && !event.altKey) return;\n\n // Check key match (case-insensitive for letters)\n const eventKey =\n event.key.length === 1 ? event.key.toLowerCase() : event.key;\n const targetKey = key.length === 1 ? key.toLowerCase() : key;\n if (eventKey !== targetKey) return;\n\n if (preventDefault) {\n event.preventDefault();\n }\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n callback(event);\n },\n [key, callback, modifiers, preventDefault, stopPropagation, ignoreInputs]\n );\n\n useEffect(() => {\n if (!enabled) return;\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [handleKeyDown, enabled]);\n}\n\n/**\n * Hook for the common Cmd/Ctrl+K shortcut pattern (command palette, search, etc.)\n *\n * @param callback - Function to call when Cmd/Ctrl+K is pressed\n * @param enabled - Whether the shortcut is active (default: true)\n *\n * @example\n * ```tsx\n * useCommandK(() => setIsOpen(true));\n * ```\n */\nexport function useCommandK(callback: () => void, enabled = true): void {\n useKeyboardShortcut('k', callback, {\n enabled,\n modifiers: { meta: true, ctrl: true },\n ignoreInputs: false, // Cmd+K should work even in inputs\n });\n}\n","import { useState, useEffect } from 'react';\n\n/**\n * Hook that tracks whether a media query matches.\n * Uses the native `matchMedia` API for efficient media query tracking.\n *\n * @param query - CSS media query string (e.g., '(min-width: 768px)')\n * @returns Boolean indicating whether the media query matches\n *\n * @example\n * ```tsx\n * function ResponsiveComponent() {\n * const isMobile = useMediaQuery('(max-width: 767px)');\n * const isTablet = useMediaQuery('(min-width: 768px) and (max-width: 1023px)');\n * const isDesktop = useMediaQuery('(min-width: 1024px)');\n *\n * return (\n * <div>\n * {isMobile && <MobileLayout />}\n * {isTablet && <TabletLayout />}\n * {isDesktop && <DesktopLayout />}\n * </div>\n * );\n * }\n * ```\n */\nexport function useMediaQuery(query: string): boolean {\n // Initialize with null to indicate SSR/initial state\n const [matches, setMatches] = useState<boolean>(() => {\n // Check if we're in a browser environment\n if (typeof window === 'undefined') return false;\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia(query);\n\n // Set initial value\n setMatches(mediaQuery.matches);\n\n // Handler for media query changes\n const handler = (event: MediaQueryListEvent) => {\n setMatches(event.matches);\n };\n\n // Modern browsers use addEventListener\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }\n\n // Fallback for older browsers\n mediaQuery.addListener(handler);\n return () => mediaQuery.removeListener(handler);\n }, [query]);\n\n return matches;\n}\n\n/**\n * Preset breakpoint hooks following common responsive design patterns\n */\n\n/** Returns true when viewport is smaller than 640px (mobile) */\nexport function useIsMobile(): boolean {\n return useMediaQuery('(max-width: 639px)');\n}\n\n/** Returns true when viewport is 640px-767px (large mobile / small tablet) */\nexport function useIsSmallTablet(): boolean {\n return useMediaQuery('(min-width: 640px) and (max-width: 767px)');\n}\n\n/** Returns true when viewport is 768px-1023px (tablet) */\nexport function useIsTablet(): boolean {\n return useMediaQuery('(min-width: 768px) and (max-width: 1023px)');\n}\n\n/** Returns true when viewport is 1024px or larger (desktop) */\nexport function useIsDesktop(): boolean {\n return useMediaQuery('(min-width: 1024px)');\n}\n\n/** Returns true when viewport is 1280px or larger (large desktop) */\nexport function useIsLargeDesktop(): boolean {\n return useMediaQuery('(min-width: 1280px)');\n}\n\n/** Returns true when viewport is smaller than 1024px (mobile/tablet) */\nexport function useIsMobileOrTablet(): boolean {\n return useMediaQuery('(max-width: 1023px)');\n}\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { cn } from './chunk-F3SOEIN2.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var textVariants = cva("", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "text-foreground",
|
|
10
|
+
muted: "text-muted-foreground",
|
|
11
|
+
primary: "text-primary-600 dark:text-primary-400",
|
|
12
|
+
destructive: "text-destructive",
|
|
13
|
+
success: "text-success",
|
|
14
|
+
warning: "text-warning"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
xs: "text-xs",
|
|
18
|
+
sm: "text-sm",
|
|
19
|
+
base: "text-base",
|
|
20
|
+
lg: "text-lg",
|
|
21
|
+
xl: "text-xl",
|
|
22
|
+
"2xl": "text-2xl",
|
|
23
|
+
"3xl": "text-3xl"
|
|
24
|
+
},
|
|
25
|
+
weight: {
|
|
26
|
+
normal: "font-normal",
|
|
27
|
+
medium: "font-medium",
|
|
28
|
+
semibold: "font-semibold",
|
|
29
|
+
bold: "font-bold"
|
|
30
|
+
},
|
|
31
|
+
align: {
|
|
32
|
+
left: "text-left",
|
|
33
|
+
center: "text-center",
|
|
34
|
+
right: "text-right"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
variant: "default",
|
|
39
|
+
size: "base",
|
|
40
|
+
weight: "normal",
|
|
41
|
+
align: "left"
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
var Text = React.forwardRef(
|
|
45
|
+
({
|
|
46
|
+
className,
|
|
47
|
+
variant,
|
|
48
|
+
size,
|
|
49
|
+
weight,
|
|
50
|
+
align,
|
|
51
|
+
as: Component = "p",
|
|
52
|
+
truncate,
|
|
53
|
+
...props
|
|
54
|
+
}, ref) => {
|
|
55
|
+
return /* @__PURE__ */ jsx(
|
|
56
|
+
Component,
|
|
57
|
+
{
|
|
58
|
+
ref,
|
|
59
|
+
className: cn(
|
|
60
|
+
textVariants({ variant, size, weight, align }),
|
|
61
|
+
truncate && "truncate",
|
|
62
|
+
className
|
|
63
|
+
),
|
|
64
|
+
...props
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
Text.displayName = "Text";
|
|
70
|
+
var SmallMuted = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Text, { ref, variant: "muted", size: "sm", className, ...props }));
|
|
71
|
+
SmallMuted.displayName = "SmallMuted";
|
|
72
|
+
|
|
73
|
+
export { SmallMuted, Text, textVariants };
|
|
74
|
+
//# sourceMappingURL=chunk-RCMF6KZA.js.map
|
|
75
|
+
//# sourceMappingURL=chunk-RCMF6KZA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Text/Text.tsx"],"names":[],"mappings":";;;;;AAIA,IAAM,YAAA,GAAe,IAAI,EAAA,EAAI;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,uBAAA;AAAA,MACP,OAAA,EAAS,wCAAA;AAAA,MACT,WAAA,EAAa,kBAAA;AAAA,MACb,OAAA,EAAS,cAAA;AAAA,MACT,OAAA,EAAS;AAAA,KACX;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,IAAA,EAAM,WAAA;AAAA,MACN,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,KAAA,EAAO,UAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,aAAA;AAAA,MACR,MAAA,EAAQ,aAAA;AAAA,MACR,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAAA,IACA,KAAA,EAAO;AAAA,MACL,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ,aAAA;AAAA,MACR,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,SAAA;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,KAAA,EAAO;AAAA;AAEX,CAAC;AAgCD,IAAM,IAAA,GAAa,KAAA,CAAA,UAAA;AAAA,EACjB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAI,SAAA,GAAY,GAAA;AAAA,IAChB,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,aAAa,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,CAAA;AAAA,UAC7C,QAAA,IAAY,UAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAMnB,IAAM,aAAmB,KAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACzB,IAAA,EAAA,EAAK,GAAA,EAAU,SAAQ,OAAA,EAAQ,IAAA,EAAK,MAAK,SAAA,EAAuB,GAAG,OAAO,CAC5E;AAED,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-RCMF6KZA.js","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst textVariants = cva('', {\n variants: {\n variant: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n primary: 'text-primary-600 dark:text-primary-400',\n destructive: 'text-destructive',\n success: 'text-success',\n warning: 'text-warning',\n },\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n base: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n '3xl': 'text-3xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'base',\n weight: 'normal',\n align: 'left',\n },\n});\n\ntype TextElement =\n | 'p'\n | 'span'\n | 'div'\n | 'label'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6';\n\nexport interface TextProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants> {\n /** HTML element to render as */\n as?: TextElement;\n /** Truncate text with ellipsis */\n truncate?: boolean;\n}\n\n/**\n * A flexible text component for consistent typography.\n *\n * @example\n * ```tsx\n * <Text variant=\"muted\" size=\"sm\">Helper text</Text>\n * <Text as=\"h1\" size=\"3xl\" weight=\"bold\">Page Title</Text>\n * <Text variant=\"destructive\">Error message</Text>\n * ```\n */\nconst Text = React.forwardRef<HTMLElement, TextProps>(\n (\n {\n className,\n variant,\n size,\n weight,\n align,\n as: Component = 'p',\n truncate,\n ...props\n },\n ref\n ) => {\n return (\n <Component\n // @ts-expect-error - ref type is complex due to polymorphic component\n ref={ref}\n className={cn(\n textVariants({ variant, size, weight, align }),\n truncate && 'truncate',\n className\n )}\n {...props}\n />\n );\n }\n);\n\nText.displayName = 'Text';\n\n/**\n * Small muted text, useful for helper text and descriptions.\n * This is a convenience component equivalent to <Text variant=\"muted\" size=\"sm\">\n */\nconst SmallMuted = React.forwardRef<\n HTMLElement,\n Omit<TextProps, 'variant' | 'size'>\n>(({ className, ...props }, ref) => (\n <Text ref={ref} variant=\"muted\" size=\"sm\" className={className} {...props} />\n));\n\nSmallMuted.displayName = 'SmallMuted';\n\nexport { Text, SmallMuted, textVariants };\n"]}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkOR5DRJCW_cjs = require('./chunk-OR5DRJCW.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
|
|
28
|
+
var switchTrackVariants = classVarianceAuthority.cva(
|
|
29
|
+
[
|
|
30
|
+
"relative inline-flex shrink-0",
|
|
31
|
+
"cursor-pointer rounded-full",
|
|
32
|
+
"transition-colors duration-200 ease-in-out",
|
|
33
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
34
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
35
|
+
"bg-neutral-200 dark:bg-neutral-700",
|
|
36
|
+
"data-[state=checked]:bg-primary-500"
|
|
37
|
+
],
|
|
38
|
+
{
|
|
39
|
+
variants: {
|
|
40
|
+
size: {
|
|
41
|
+
sm: "h-5 w-9",
|
|
42
|
+
md: "h-6 w-11",
|
|
43
|
+
lg: "h-7 w-14"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: {
|
|
47
|
+
size: "md"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
var switchThumbVariants = classVarianceAuthority.cva(
|
|
52
|
+
[
|
|
53
|
+
"pointer-events-none inline-block rounded-full",
|
|
54
|
+
"bg-white shadow-lg",
|
|
55
|
+
"ring-0 transition-transform duration-200 ease-in-out"
|
|
56
|
+
],
|
|
57
|
+
{
|
|
58
|
+
variants: {
|
|
59
|
+
size: {
|
|
60
|
+
sm: "h-4 w-4 data-[state=checked]:translate-x-4 translate-x-0.5",
|
|
61
|
+
md: "h-5 w-5 data-[state=checked]:translate-x-5 translate-x-0.5",
|
|
62
|
+
lg: "h-6 w-6 data-[state=checked]:translate-x-7 translate-x-0.5"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
defaultVariants: {
|
|
66
|
+
size: "md"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
var Switch = React__namespace.forwardRef(
|
|
71
|
+
({
|
|
72
|
+
className,
|
|
73
|
+
size,
|
|
74
|
+
checked: controlledChecked,
|
|
75
|
+
defaultChecked = false,
|
|
76
|
+
onCheckedChange,
|
|
77
|
+
label,
|
|
78
|
+
description,
|
|
79
|
+
labelPosition = "right",
|
|
80
|
+
disabled,
|
|
81
|
+
id,
|
|
82
|
+
...props
|
|
83
|
+
}, ref) => {
|
|
84
|
+
const [uncontrolledChecked, setUncontrolledChecked] = React__namespace.useState(defaultChecked);
|
|
85
|
+
const generatedId = React__namespace.useId();
|
|
86
|
+
const switchId = id || generatedId;
|
|
87
|
+
const descriptionId = `${switchId}-description`;
|
|
88
|
+
const isControlled = controlledChecked !== void 0;
|
|
89
|
+
const isChecked = isControlled ? controlledChecked : uncontrolledChecked;
|
|
90
|
+
const handleToggle = React__namespace.useCallback(() => {
|
|
91
|
+
if (disabled) return;
|
|
92
|
+
const newValue = !isChecked;
|
|
93
|
+
if (!isControlled) {
|
|
94
|
+
setUncontrolledChecked(newValue);
|
|
95
|
+
}
|
|
96
|
+
onCheckedChange?.(newValue);
|
|
97
|
+
}, [disabled, isChecked, isControlled, onCheckedChange]);
|
|
98
|
+
const handleKeyDown = React__namespace.useCallback(
|
|
99
|
+
(e) => {
|
|
100
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
handleToggle();
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
[handleToggle]
|
|
106
|
+
);
|
|
107
|
+
const switchElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
+
"button",
|
|
109
|
+
{
|
|
110
|
+
ref,
|
|
111
|
+
id: switchId,
|
|
112
|
+
type: "button",
|
|
113
|
+
role: "switch",
|
|
114
|
+
"aria-checked": isChecked,
|
|
115
|
+
"aria-describedby": description ? descriptionId : void 0,
|
|
116
|
+
"data-state": isChecked ? "checked" : "unchecked",
|
|
117
|
+
disabled,
|
|
118
|
+
onClick: handleToggle,
|
|
119
|
+
onKeyDown: handleKeyDown,
|
|
120
|
+
className: chunkOR5DRJCW_cjs.cn(switchTrackVariants({ size }), "items-center", className),
|
|
121
|
+
...props,
|
|
122
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
123
|
+
"span",
|
|
124
|
+
{
|
|
125
|
+
"data-state": isChecked ? "checked" : "unchecked",
|
|
126
|
+
className: switchThumbVariants({ size })
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
const labelSizeClasses = {
|
|
132
|
+
sm: "text-xs",
|
|
133
|
+
md: "text-sm",
|
|
134
|
+
lg: "text-base"
|
|
135
|
+
};
|
|
136
|
+
const descriptionSizeClasses = {
|
|
137
|
+
sm: "text-[10px]",
|
|
138
|
+
md: "text-xs",
|
|
139
|
+
lg: "text-sm"
|
|
140
|
+
};
|
|
141
|
+
const labelElement = label && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
143
|
+
"label",
|
|
144
|
+
{
|
|
145
|
+
htmlFor: switchId,
|
|
146
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
147
|
+
"text-foreground cursor-pointer font-medium select-none",
|
|
148
|
+
labelSizeClasses[size || "md"],
|
|
149
|
+
disabled && "cursor-not-allowed opacity-50"
|
|
150
|
+
),
|
|
151
|
+
children: label
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
"p",
|
|
156
|
+
{
|
|
157
|
+
id: descriptionId,
|
|
158
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
159
|
+
"text-muted-foreground",
|
|
160
|
+
descriptionSizeClasses[size || "md"]
|
|
161
|
+
),
|
|
162
|
+
children: description
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] });
|
|
166
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
167
|
+
"div",
|
|
168
|
+
{
|
|
169
|
+
className: chunkOR5DRJCW_cjs.cn(
|
|
170
|
+
"flex items-center gap-3",
|
|
171
|
+
labelPosition === "left" && "flex-row-reverse"
|
|
172
|
+
),
|
|
173
|
+
children: [
|
|
174
|
+
switchElement,
|
|
175
|
+
labelElement
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
Switch.displayName = "Switch";
|
|
182
|
+
|
|
183
|
+
exports.Switch = Switch;
|
|
184
|
+
exports.switchThumbVariants = switchThumbVariants;
|
|
185
|
+
exports.switchTrackVariants = switchTrackVariants;
|
|
186
|
+
//# sourceMappingURL=chunk-RRQGH7C5.cjs.map
|
|
187
|
+
//# sourceMappingURL=chunk-RRQGH7C5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Switch/Switch.tsx"],"names":["cva","React","jsx","cn","jsxs"],"mappings":"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","file":"chunk-RRQGH7C5.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst switchTrackVariants = cva(\n [\n 'relative inline-flex shrink-0',\n 'cursor-pointer rounded-full',\n 'transition-colors duration-200 ease-in-out',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'bg-neutral-200 dark:bg-neutral-700',\n 'data-[state=checked]:bg-primary-500',\n ],\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst switchThumbVariants = cva(\n [\n 'pointer-events-none inline-block rounded-full',\n 'bg-white shadow-lg',\n 'ring-0 transition-transform duration-200 ease-in-out',\n ],\n {\n variants: {\n size: {\n sm: 'h-4 w-4 data-[state=checked]:translate-x-4 translate-x-0.5',\n md: 'h-5 w-5 data-[state=checked]:translate-x-5 translate-x-0.5',\n lg: 'h-6 w-6 data-[state=checked]:translate-x-7 translate-x-0.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface SwitchProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>,\n VariantProps<typeof switchTrackVariants> {\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Callback when checked state changes */\n onCheckedChange?: (checked: boolean) => void;\n /** Label for the switch */\n label?: string;\n /** Description text */\n description?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n /** ID for the switch */\n id?: string;\n}\n\n/**\n * An accessible toggle switch component.\n *\n * @example\n * ```tsx\n * <Switch label=\"Enable notifications\" />\n * <Switch\n * label=\"Dark mode\"\n * description=\"Toggle between light and dark theme\"\n * />\n * ```\n */\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n className,\n size,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n label,\n description,\n labelPosition = 'right',\n disabled,\n id,\n ...props\n },\n ref\n ) => {\n const [uncontrolledChecked, setUncontrolledChecked] =\n React.useState(defaultChecked);\n\n const generatedId = React.useId();\n const switchId = id || generatedId;\n const descriptionId = `${switchId}-description`;\n\n const isControlled = controlledChecked !== undefined;\n const isChecked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const handleToggle = React.useCallback(() => {\n if (disabled) return;\n\n const newValue = !isChecked;\n if (!isControlled) {\n setUncontrolledChecked(newValue);\n }\n onCheckedChange?.(newValue);\n }, [disabled, isChecked, isControlled, onCheckedChange]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleToggle();\n }\n },\n [handleToggle]\n );\n\n const switchElement = (\n <button\n ref={ref}\n id={switchId}\n type=\"button\"\n role=\"switch\"\n aria-checked={isChecked}\n aria-describedby={description ? descriptionId : undefined}\n data-state={isChecked ? 'checked' : 'unchecked'}\n disabled={disabled}\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n className={cn(switchTrackVariants({ size }), 'items-center', className)}\n {...props}\n >\n <span\n data-state={isChecked ? 'checked' : 'unchecked'}\n className={switchThumbVariants({ size })}\n />\n </button>\n );\n\n const labelSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n };\n\n const descriptionSizeClasses = {\n sm: 'text-[10px]',\n md: 'text-xs',\n lg: 'text-sm',\n };\n\n const labelElement = label && (\n <div className=\"flex flex-col gap-0.5\">\n <label\n htmlFor={switchId}\n className={cn(\n 'text-foreground cursor-pointer font-medium select-none',\n labelSizeClasses[size || 'md'],\n disabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {label}\n </label>\n {description && (\n <p\n id={descriptionId}\n className={cn(\n 'text-muted-foreground',\n descriptionSizeClasses[size || 'md']\n )}\n >\n {description}\n </p>\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n 'flex items-center gap-3',\n labelPosition === 'left' && 'flex-row-reverse'\n )}\n >\n {switchElement}\n {labelElement}\n </div>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport { Switch, switchTrackVariants, switchThumbVariants };\n"]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/brands/mieweb.ts
|
|
4
|
+
var miewebBrand = {
|
|
5
|
+
name: "mieweb",
|
|
6
|
+
displayName: "Medical Informatics Engineering",
|
|
7
|
+
description: "Healthcare software and services company",
|
|
8
|
+
colors: {
|
|
9
|
+
// Primary color scale - MIE Green (#27ae60)
|
|
10
|
+
primary: {
|
|
11
|
+
50: "#e8f8ef",
|
|
12
|
+
100: "#c5edd6",
|
|
13
|
+
200: "#9fe2bb",
|
|
14
|
+
300: "#79d7a0",
|
|
15
|
+
400: "#53cc85",
|
|
16
|
+
500: "#27ae60",
|
|
17
|
+
600: "#219c55",
|
|
18
|
+
700: "#1b894a",
|
|
19
|
+
800: "#15773e",
|
|
20
|
+
900: "#0f6533",
|
|
21
|
+
950: "#094d26"
|
|
22
|
+
},
|
|
23
|
+
// Light mode semantic colors
|
|
24
|
+
light: {
|
|
25
|
+
background: "#ffffff",
|
|
26
|
+
foreground: "#171717",
|
|
27
|
+
card: "#ffffff",
|
|
28
|
+
cardForeground: "#171717",
|
|
29
|
+
muted: "#f5f5f5",
|
|
30
|
+
mutedForeground: "#737373",
|
|
31
|
+
border: "#e5e7eb",
|
|
32
|
+
input: "#e5e7eb",
|
|
33
|
+
ring: "#27ae60",
|
|
34
|
+
destructive: "#ef4444",
|
|
35
|
+
destructiveForeground: "#ffffff",
|
|
36
|
+
success: "#22c55e",
|
|
37
|
+
successForeground: "#ffffff",
|
|
38
|
+
warning: "#f59e0b",
|
|
39
|
+
warningForeground: "#ffffff"
|
|
40
|
+
},
|
|
41
|
+
// Dark mode semantic colors
|
|
42
|
+
dark: {
|
|
43
|
+
background: "#171717",
|
|
44
|
+
foreground: "#fafafa",
|
|
45
|
+
card: "#262626",
|
|
46
|
+
cardForeground: "#fafafa",
|
|
47
|
+
muted: "#404040",
|
|
48
|
+
mutedForeground: "#a1a1aa",
|
|
49
|
+
border: "#404040",
|
|
50
|
+
input: "#404040",
|
|
51
|
+
ring: "#27ae60",
|
|
52
|
+
destructive: "#dc2626",
|
|
53
|
+
destructiveForeground: "#fafafa",
|
|
54
|
+
success: "#16a34a",
|
|
55
|
+
successForeground: "#fafafa",
|
|
56
|
+
warning: "#d97706",
|
|
57
|
+
warningForeground: "#fafafa"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
typography: {
|
|
61
|
+
fontFamily: {
|
|
62
|
+
sans: ["Inter", "ui-sans-serif", "system-ui", "sans-serif"],
|
|
63
|
+
mono: ["ui-monospace", "SFMono-Regular", "Menlo", "monospace"]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
borderRadius: {
|
|
67
|
+
none: "0",
|
|
68
|
+
sm: "0.25rem",
|
|
69
|
+
md: "0.5rem",
|
|
70
|
+
lg: "0.75rem",
|
|
71
|
+
xl: "1rem",
|
|
72
|
+
"2xl": "1.5rem",
|
|
73
|
+
full: "9999px"
|
|
74
|
+
},
|
|
75
|
+
boxShadow: {
|
|
76
|
+
card: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
|
|
77
|
+
dropdown: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
|
|
78
|
+
modal: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.miewebBrand = miewebBrand;
|
|
83
|
+
//# sourceMappingURL=chunk-S6UNPMAS.cjs.map
|
|
84
|
+
//# sourceMappingURL=chunk-S6UNPMAS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/brands/mieweb.ts"],"names":[],"mappings":";;;AAaO,IAAM,WAAA,GAA2B;AAAA,EACtC,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,EAAa,iCAAA;AAAA,EACb,WAAA,EAAa,0CAAA;AAAA,EAEb,MAAA,EAAQ;AAAA;AAAA,IAEN,OAAA,EAAS;AAAA,MACP,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK,SAAA;AAAA,MACL,GAAA,EAAK;AAAA,KACP;AAAA;AAAA,IAGA,KAAA,EAAO;AAAA,MACL,UAAA,EAAY,SAAA;AAAA,MACZ,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM,SAAA;AAAA,MACN,cAAA,EAAgB,SAAA;AAAA,MAChB,KAAA,EAAO,SAAA;AAAA,MACP,eAAA,EAAiB,SAAA;AAAA,MACjB,MAAA,EAAQ,SAAA;AAAA,MACR,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,SAAA;AAAA,MACb,qBAAA,EAAuB,SAAA;AAAA,MACvB,OAAA,EAAS,SAAA;AAAA,MACT,iBAAA,EAAmB,SAAA;AAAA,MACnB,OAAA,EAAS,SAAA;AAAA,MACT,iBAAA,EAAmB;AAAA,KACrB;AAAA;AAAA,IAGA,IAAA,EAAM;AAAA,MACJ,UAAA,EAAY,SAAA;AAAA,MACZ,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM,SAAA;AAAA,MACN,cAAA,EAAgB,SAAA;AAAA,MAChB,KAAA,EAAO,SAAA;AAAA,MACP,eAAA,EAAiB,SAAA;AAAA,MACjB,MAAA,EAAQ,SAAA;AAAA,MACR,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,SAAA;AAAA,MACb,qBAAA,EAAuB,SAAA;AAAA,MACvB,OAAA,EAAS,SAAA;AAAA,MACT,iBAAA,EAAmB,SAAA;AAAA,MACnB,OAAA,EAAS,SAAA;AAAA,MACT,iBAAA,EAAmB;AAAA;AACrB,GACF;AAAA,EAEA,UAAA,EAAY;AAAA,IACV,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,CAAC,OAAA,EAAS,eAAA,EAAiB,aAAa,YAAY,CAAA;AAAA,MAC1D,IAAA,EAAM,CAAC,cAAA,EAAgB,gBAAA,EAAkB,SAAS,WAAW;AAAA;AAC/D,GACF;AAAA,EAEA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,KAAA,EAAO,QAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EAEA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,+DAAA;AAAA,IACN,QAAA,EACE,kEAAA;AAAA,IACF,KAAA,EAAO;AAAA;AAEX","file":"chunk-S6UNPMAS.cjs","sourcesContent":["/**\n * MIE Web Brand Configuration\n *\n * The official brand theme for Medical Informatics Engineering (MIE).\n * Primary color: #27ae60 (MIE Green)\n */\n\nimport type { BrandConfig } from './types';\n\n/**\n * MIE Web brand configuration.\n * This defines all the design tokens used in MIE Web applications.\n */\nexport const miewebBrand: BrandConfig = {\n name: 'mieweb',\n displayName: 'Medical Informatics Engineering',\n description: 'Healthcare software and services company',\n\n colors: {\n // Primary color scale - MIE Green (#27ae60)\n primary: {\n 50: '#e8f8ef',\n 100: '#c5edd6',\n 200: '#9fe2bb',\n 300: '#79d7a0',\n 400: '#53cc85',\n 500: '#27ae60',\n 600: '#219c55',\n 700: '#1b894a',\n 800: '#15773e',\n 900: '#0f6533',\n 950: '#094d26',\n },\n\n // Light mode semantic colors\n light: {\n background: '#ffffff',\n foreground: '#171717',\n card: '#ffffff',\n cardForeground: '#171717',\n muted: '#f5f5f5',\n mutedForeground: '#737373',\n border: '#e5e7eb',\n input: '#e5e7eb',\n ring: '#27ae60',\n destructive: '#ef4444',\n destructiveForeground: '#ffffff',\n success: '#22c55e',\n successForeground: '#ffffff',\n warning: '#f59e0b',\n warningForeground: '#ffffff',\n },\n\n // Dark mode semantic colors\n dark: {\n background: '#171717',\n foreground: '#fafafa',\n card: '#262626',\n cardForeground: '#fafafa',\n muted: '#404040',\n mutedForeground: '#a1a1aa',\n border: '#404040',\n input: '#404040',\n ring: '#27ae60',\n destructive: '#dc2626',\n destructiveForeground: '#fafafa',\n success: '#16a34a',\n successForeground: '#fafafa',\n warning: '#d97706',\n warningForeground: '#fafafa',\n },\n },\n\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'monospace'],\n },\n },\n\n borderRadius: {\n none: '0',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n\n boxShadow: {\n card: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n dropdown:\n '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n modal: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n },\n};\n\nexport { miewebBrand as default };\n"]}
|