@mdigital_ui/ui 0.2.4 → 0.2.6
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/dist/accordion/index.js +3 -3
- package/dist/badge/index.js +3 -3
- package/dist/breadcrumbs/index.js +5 -5
- package/dist/button/index.js +4 -4
- package/dist/button-group/index.js +2 -2
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.js +2 -1
- package/dist/cascader/index.js +2 -2
- package/dist/chart/index.js +2 -2
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox-group/index.js +2 -2
- package/dist/chunk-22FIGRGO.js +312 -0
- package/dist/chunk-22FIGRGO.js.map +1 -0
- package/dist/{chunk-GEWR5ROK.js → chunk-23BPDLT4.js} +9 -16
- package/dist/chunk-23BPDLT4.js.map +1 -0
- package/dist/{chunk-YNNAOXU5.js → chunk-2OGZENFC.js} +3 -4
- package/dist/chunk-2OGZENFC.js.map +1 -0
- package/dist/{chunk-SOV4PE3P.js → chunk-35K7N4JT.js} +11 -4
- package/dist/chunk-35K7N4JT.js.map +1 -0
- package/dist/chunk-3QKPSJTV.js +120 -0
- package/dist/chunk-3QKPSJTV.js.map +1 -0
- package/dist/chunk-3WVJE5MF.js +735 -0
- package/dist/chunk-3WVJE5MF.js.map +1 -0
- package/dist/chunk-555KXZRK.js +73 -0
- package/dist/chunk-555KXZRK.js.map +1 -0
- package/dist/{chunk-FYHQDFKE.js → chunk-6IPISGTP.js} +31 -9
- package/dist/chunk-6IPISGTP.js.map +1 -0
- package/dist/chunk-6MYKJE6A.js +312 -0
- package/dist/chunk-6MYKJE6A.js.map +1 -0
- package/dist/{chunk-6V5I5HJ2.js → chunk-6PFBSVLK.js} +4 -4
- package/dist/{chunk-6V5I5HJ2.js.map → chunk-6PFBSVLK.js.map} +1 -1
- package/dist/{chunk-267WNY3E.js → chunk-77YTCM7G.js} +53 -60
- package/dist/chunk-77YTCM7G.js.map +1 -0
- package/dist/{chunk-XMAH5PDW.js → chunk-7BUNJYZO.js} +11 -10
- package/dist/chunk-7BUNJYZO.js.map +1 -0
- package/dist/chunk-7ODPSHIQ.js +78 -0
- package/dist/chunk-7ODPSHIQ.js.map +1 -0
- package/dist/{chunk-ZNJ7M5QK.js → chunk-7TN4PGYF.js} +29 -22
- package/dist/chunk-7TN4PGYF.js.map +1 -0
- package/dist/{chunk-RPAQAZTI.js → chunk-7YPX6NJK.js} +3 -3
- package/dist/{chunk-RPAQAZTI.js.map → chunk-7YPX6NJK.js.map} +1 -1
- package/dist/{chunk-LEKLQR4I.js → chunk-ARK3EROZ.js} +55 -38
- package/dist/chunk-ARK3EROZ.js.map +1 -0
- package/dist/chunk-AVPPV5OM.js +203 -0
- package/dist/chunk-AVPPV5OM.js.map +1 -0
- package/dist/{chunk-NNSS366W.js → chunk-BYWYC7RC.js} +38 -5
- package/dist/chunk-BYWYC7RC.js.map +1 -0
- package/dist/{chunk-R225A5II.js → chunk-C2MZL644.js} +3 -3
- package/dist/{chunk-R225A5II.js.map → chunk-C2MZL644.js.map} +1 -1
- package/dist/{chunk-7PKVBUGL.js → chunk-CPPFXCNB.js} +3 -3
- package/dist/{chunk-7PKVBUGL.js.map → chunk-CPPFXCNB.js.map} +1 -1
- package/dist/chunk-DP6AWUH5.js +93 -0
- package/dist/chunk-DP6AWUH5.js.map +1 -0
- package/dist/{chunk-D3JWPGCA.js → chunk-DV5J5NLI.js} +6 -55
- package/dist/chunk-DV5J5NLI.js.map +1 -0
- package/dist/chunk-EFMKUCGX.js +104 -0
- package/dist/chunk-EFMKUCGX.js.map +1 -0
- package/dist/chunk-GFQXGLFD.js +256 -0
- package/dist/chunk-GFQXGLFD.js.map +1 -0
- package/dist/{chunk-SK5ECBBK.js → chunk-GGREAJO5.js} +8 -4
- package/dist/chunk-GGREAJO5.js.map +1 -0
- package/dist/{chunk-S5XJXU52.js → chunk-GH3CNX5N.js} +3 -3
- package/dist/{chunk-S5XJXU52.js.map → chunk-GH3CNX5N.js.map} +1 -1
- package/dist/{chunk-FCMVKFVV.js → chunk-HBEJ4S2Y.js} +11 -11
- package/dist/chunk-HBEJ4S2Y.js.map +1 -0
- package/dist/{chunk-SAVE5ACL.js → chunk-HWSLJGT7.js} +3 -3
- package/dist/{chunk-SAVE5ACL.js.map → chunk-HWSLJGT7.js.map} +1 -1
- package/dist/{chunk-BNILRB4T.js → chunk-IHKPZOE5.js} +10 -7
- package/dist/chunk-IHKPZOE5.js.map +1 -0
- package/dist/{chunk-I5ANSIDK.js → chunk-INH7KYCK.js} +17 -17
- package/dist/chunk-INH7KYCK.js.map +1 -0
- package/dist/{chunk-Y5A26EGR.js → chunk-IRNJZ754.js} +9 -9
- package/dist/{chunk-Y5A26EGR.js.map → chunk-IRNJZ754.js.map} +1 -1
- package/dist/{chunk-MLDX3Z67.js → chunk-IUUEYOMN.js} +3 -3
- package/dist/{chunk-MLDX3Z67.js.map → chunk-IUUEYOMN.js.map} +1 -1
- package/dist/chunk-JFGLDCAK.js +225 -0
- package/dist/chunk-JFGLDCAK.js.map +1 -0
- package/dist/{chunk-C7SXY3ZV.js → chunk-JGQOEAWL.js} +3 -3
- package/dist/{chunk-C7SXY3ZV.js.map → chunk-JGQOEAWL.js.map} +1 -1
- package/dist/{chunk-75XESYGN.js → chunk-L6EVOPWH.js} +5 -13
- package/dist/chunk-L6EVOPWH.js.map +1 -0
- package/dist/{chunk-XMKNYG7I.js → chunk-LSQLUYTD.js} +35 -24
- package/dist/chunk-LSQLUYTD.js.map +1 -0
- package/dist/{chunk-QPJL66S7.js → chunk-MDY3HCRC.js} +80 -41
- package/dist/chunk-MDY3HCRC.js.map +1 -0
- package/dist/chunk-MLNIKNLI.js +150 -0
- package/dist/chunk-MLNIKNLI.js.map +1 -0
- package/dist/{chunk-J3G5WWGR.js → chunk-NQB4V5P7.js} +6 -14
- package/dist/chunk-NQB4V5P7.js.map +1 -0
- package/dist/chunk-NZA526GC.js +106 -0
- package/dist/chunk-NZA526GC.js.map +1 -0
- package/dist/{chunk-FGWSUPVW.js → chunk-O2VJ6KP4.js} +8 -3
- package/dist/chunk-O2VJ6KP4.js.map +1 -0
- package/dist/{chunk-OALOWWO7.js → chunk-PQZB43VJ.js} +32 -36
- package/dist/chunk-PQZB43VJ.js.map +1 -0
- package/dist/{chunk-UAMFKX6L.js → chunk-QVCGNOBE.js} +34 -20
- package/dist/chunk-QVCGNOBE.js.map +1 -0
- package/dist/{chunk-ASW7TEAN.js → chunk-R2FZO7AM.js} +14 -14
- package/dist/chunk-R2FZO7AM.js.map +1 -0
- package/dist/{chunk-HUVXKOJC.js → chunk-SGMIDNPI.js} +13 -9
- package/dist/chunk-SGMIDNPI.js.map +1 -0
- package/dist/{chunk-DOKTHDG3.js → chunk-SMVVCZNM.js} +3 -3
- package/dist/{chunk-DOKTHDG3.js.map → chunk-SMVVCZNM.js.map} +1 -1
- package/dist/{chunk-FPOXTCYV.js → chunk-SOIF4SHB.js} +8 -8
- package/dist/chunk-SOIF4SHB.js.map +1 -0
- package/dist/{chunk-RMGIO27V.js → chunk-SYDNDYZJ.js} +20 -4
- package/dist/chunk-SYDNDYZJ.js.map +1 -0
- package/dist/chunk-TG2AECIN.js +446 -0
- package/dist/chunk-TG2AECIN.js.map +1 -0
- package/dist/{chunk-JLTDJ3VZ.js → chunk-TIMRHEKH.js} +4 -4
- package/dist/{chunk-JLTDJ3VZ.js.map → chunk-TIMRHEKH.js.map} +1 -1
- package/dist/chunk-TUTOU4X6.js +574 -0
- package/dist/chunk-TUTOU4X6.js.map +1 -0
- package/dist/chunk-TWZ5LXLL.js +254 -0
- package/dist/chunk-TWZ5LXLL.js.map +1 -0
- package/dist/{chunk-DPOSWW22.js → chunk-XG3KLPPS.js} +5 -3
- package/dist/chunk-XG3KLPPS.js.map +1 -0
- package/dist/{chunk-BP434VYV.js → chunk-Y2CXG3PT.js} +12 -12
- package/dist/chunk-Y2CXG3PT.js.map +1 -0
- package/dist/{chunk-ROR4E6IE.js → chunk-YII4K64U.js} +5 -5
- package/dist/{chunk-ROR4E6IE.js.map → chunk-YII4K64U.js.map} +1 -1
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/command/index.js +3 -3
- package/dist/date-picker/index.js +4 -3
- package/dist/descriptions/index.js +2 -2
- package/dist/drawer/index.js +2 -2
- package/dist/dropdown/index.js +4 -3
- package/dist/empty/index.js +2 -2
- package/dist/fetching-overlay/index.js +4 -3
- package/dist/grid/index.js +2 -2
- package/dist/image/index.js +2 -2
- package/dist/index.d.ts +1358 -156
- package/dist/index.js +762 -65
- package/dist/index.js.map +1 -1
- package/dist/input/index.js +4 -3
- package/dist/input-group/index.js +2 -2
- package/dist/input-otp/index.js +2 -2
- package/dist/input-password/index.js +5 -4
- package/dist/kbd/index.js +3 -2
- package/dist/modal/index.js +2 -2
- package/dist/multi-select/index.js +4 -3
- package/dist/notification/index.js +3 -2
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.js +3 -2
- package/dist/progress/index.js +2 -2
- package/dist/radio/index.js +3 -2
- package/dist/radio-group/index.js +2 -2
- package/dist/rating/index.js +2 -2
- package/dist/ribbon/index.js +2 -2
- package/dist/select/index.js +5 -4
- package/dist/skeleton/index.js +3 -2
- package/dist/slider/index.js +2 -2
- package/dist/spinner/index.js +3 -2
- package/dist/stepper/index.js +2 -2
- package/dist/styles/base.css +2033 -1313
- package/dist/styles/global.css +1242 -459
- package/dist/switch/index.js +3 -2
- package/dist/table/index.js +10 -10
- package/dist/tabs/index.js +3 -3
- package/dist/textarea/index.js +2 -2
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.js +2 -2
- package/dist/tooltip/index.js +3 -2
- package/dist/transfer/index.js +4 -4
- package/dist/tree/index.js +2 -2
- package/dist/tree-select/index.js +5 -4
- package/dist/upload/index.js +2 -2
- package/package.json +4 -1
- package/dist/chunk-267WNY3E.js.map +0 -1
- package/dist/chunk-2EKAF6EJ.js +0 -128
- package/dist/chunk-2EKAF6EJ.js.map +0 -1
- package/dist/chunk-3PFA3YG6.js +0 -228
- package/dist/chunk-3PFA3YG6.js.map +0 -1
- package/dist/chunk-56IXGP5C.js +0 -56
- package/dist/chunk-56IXGP5C.js.map +0 -1
- package/dist/chunk-5UEWVFF6.js +0 -212
- package/dist/chunk-5UEWVFF6.js.map +0 -1
- package/dist/chunk-75XESYGN.js.map +0 -1
- package/dist/chunk-ASW7TEAN.js.map +0 -1
- package/dist/chunk-AWPKZYHT.js +0 -152
- package/dist/chunk-AWPKZYHT.js.map +0 -1
- package/dist/chunk-BFO3ARVJ.js +0 -104
- package/dist/chunk-BFO3ARVJ.js.map +0 -1
- package/dist/chunk-BNILRB4T.js.map +0 -1
- package/dist/chunk-BP434VYV.js.map +0 -1
- package/dist/chunk-C3MX5EXL.js +0 -95
- package/dist/chunk-C3MX5EXL.js.map +0 -1
- package/dist/chunk-D3JWPGCA.js.map +0 -1
- package/dist/chunk-DPOSWW22.js.map +0 -1
- package/dist/chunk-FCMVKFVV.js.map +0 -1
- package/dist/chunk-FGWSUPVW.js.map +0 -1
- package/dist/chunk-FPOXTCYV.js.map +0 -1
- package/dist/chunk-FYHQDFKE.js.map +0 -1
- package/dist/chunk-G6TAVRTJ.js +0 -640
- package/dist/chunk-G6TAVRTJ.js.map +0 -1
- package/dist/chunk-GEWR5ROK.js.map +0 -1
- package/dist/chunk-HUVXKOJC.js.map +0 -1
- package/dist/chunk-I5ANSIDK.js.map +0 -1
- package/dist/chunk-J3G5WWGR.js.map +0 -1
- package/dist/chunk-KBCBVH7B.js +0 -51
- package/dist/chunk-KBCBVH7B.js.map +0 -1
- package/dist/chunk-KNQ7UQ2W.js +0 -143
- package/dist/chunk-KNQ7UQ2W.js.map +0 -1
- package/dist/chunk-KTAIRCOL.js +0 -100
- package/dist/chunk-KTAIRCOL.js.map +0 -1
- package/dist/chunk-LEKLQR4I.js.map +0 -1
- package/dist/chunk-NNSS366W.js.map +0 -1
- package/dist/chunk-OALOWWO7.js.map +0 -1
- package/dist/chunk-OOS3B7YZ.js +0 -94
- package/dist/chunk-OOS3B7YZ.js.map +0 -1
- package/dist/chunk-OQANRZPV.js +0 -197
- package/dist/chunk-OQANRZPV.js.map +0 -1
- package/dist/chunk-OW5A5IIF.js +0 -175
- package/dist/chunk-OW5A5IIF.js.map +0 -1
- package/dist/chunk-QPJL66S7.js.map +0 -1
- package/dist/chunk-RMGIO27V.js.map +0 -1
- package/dist/chunk-SK5ECBBK.js.map +0 -1
- package/dist/chunk-SOV4PE3P.js.map +0 -1
- package/dist/chunk-UAMFKX6L.js.map +0 -1
- package/dist/chunk-XMAH5PDW.js.map +0 -1
- package/dist/chunk-XMKNYG7I.js.map +0 -1
- package/dist/chunk-YNNAOXU5.js.map +0 -1
- package/dist/chunk-YZ6V6BQ7.js +0 -134
- package/dist/chunk-YZ6V6BQ7.js.map +0 -1
- package/dist/chunk-YZVSDRJD.js +0 -253
- package/dist/chunk-YZVSDRJD.js.map +0 -1
- package/dist/chunk-ZNJ7M5QK.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-2OGZENFC.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -51,5 +51,5 @@ RadioGroup.displayName = "RadioGroup";
|
|
|
51
51
|
var radio_group_default = RadioGroup;
|
|
52
52
|
|
|
53
53
|
export { RadioGroup, radio_group_default };
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-SMVVCZNM.js.map
|
|
55
|
+
//# sourceMappingURL=chunk-SMVVCZNM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/radio-group/index.tsx"],"names":[],"mappings":";;;;AAKO,IAAM,aAAa,KAAA,CAAM,IAAA;AAAA,EAC9B,CAAC;AAAA,IACC,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,GAAc,UAAA;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA;AAAA,QACjC,IAAA,EAAK,YAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,SAAI,SAAA,EAAU,MAAA,EACb,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA;AAAA,gBACA,WAAA,KAAgB,aACZ,gBAAA,GACA;AAAA,eACN;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,UAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,cAAA;AAAA,gBACA,QAAQ,YAAA,GAAe;AAAA,eACzB;AAAA,cAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAGzB,IAAO,mBAAA,GAAQ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/radio-group/index.tsx"],"names":[],"mappings":";;;;AAKO,IAAM,aAAa,KAAA,CAAM,IAAA;AAAA,EAC9B,CAAC;AAAA,IACC,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,GAAc,UAAA;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA;AAAA,QACjC,IAAA,EAAK,YAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,SAAI,SAAA,EAAU,MAAA,EACb,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA;AAAA,gBACA,WAAA,KAAgB,aACZ,gBAAA,GACA;AAAA,eACN;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,UAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,cAAA;AAAA,gBACA,QAAQ,YAAA,GAAe;AAAA,eACzB;AAAA,cAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAGzB,IAAO,mBAAA,GAAQ","file":"chunk-SMVVCZNM.js","sourcesContent":["import React from 'react'\n\nimport { cn } from '../utils'\nimport type { RadioGroupProps } from './types'\n\nexport const RadioGroup = React.memo<RadioGroupProps>(\n ({\n label,\n helperText,\n error,\n orientation = 'vertical',\n className,\n children,\n ref,\n ...props\n }) => {\n return (\n <div\n ref={ref}\n className={cn('w-full', className)}\n role=\"radiogroup\"\n {...props}\n >\n {label && (\n <div className=\"mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">\n {label}\n </span>\n </div>\n )}\n <div\n className={cn(\n 'flex',\n orientation === 'vertical'\n ? 'flex-col gap-2'\n : 'flex-row flex-wrap gap-4',\n )}\n >\n {children}\n </div>\n {(helperText || error) && (\n <p\n className={cn(\n 'mt-2 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nRadioGroup.displayName = 'RadioGroup'\n\nexport type * from './types'\nexport default RadioGroup\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { getValidationStatus, cn, statusMessageVariants } from './chunk-
|
|
1
|
+
import { getValidationStatus, cn, statusMessageVariants } from './chunk-2OGZENFC.js';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
var textareaVariants = cva(
|
|
7
|
-
"w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-
|
|
7
|
+
"w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-secondary/50 disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
@@ -19,10 +19,10 @@ var textareaVariants = cva(
|
|
|
19
19
|
success: "!border-success focus:!border-success"
|
|
20
20
|
},
|
|
21
21
|
size: {
|
|
22
|
-
xs: "min-h-
|
|
23
|
-
sm: "min-h-
|
|
24
|
-
md: "min-h-
|
|
25
|
-
lg: "min-h-
|
|
22
|
+
xs: "min-h-(--textarea-min-height-xs) p-(--textarea-padding-xs) text-xs",
|
|
23
|
+
sm: "min-h-(--textarea-min-height-sm) p-(--textarea-padding-sm) text-sm",
|
|
24
|
+
md: "min-h-(--textarea-min-height-md) p-(--textarea-padding-md) text-base",
|
|
25
|
+
lg: "min-h-(--textarea-min-height-lg) p-(--textarea-padding-lg) text-lg"
|
|
26
26
|
},
|
|
27
27
|
resize: {
|
|
28
28
|
none: "resize-none",
|
|
@@ -162,5 +162,5 @@ Textarea.displayName = "Textarea";
|
|
|
162
162
|
var textarea_default = Textarea;
|
|
163
163
|
|
|
164
164
|
export { textarea_default };
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
166
|
-
//# sourceMappingURL=chunk-
|
|
165
|
+
//# sourceMappingURL=chunk-SOIF4SHB.js.map
|
|
166
|
+
//# sourceMappingURL=chunk-SOIF4SHB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/textarea/index.tsx"],"names":[],"mappings":"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","file":"chunk-SOIF4SHB.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn, getValidationStatus, statusMessageVariants } from '../utils'\nimport type { TextareaProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-secondary/50 disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: '!border-error focus:!border-error',\n warning: '!border-warning focus:!border-warning',\n info: '!border-info focus:!border-info',\n success: '!border-success focus:!border-success',\n },\n size: {\n xs: 'min-h-(--textarea-min-height-xs) p-(--textarea-padding-xs) text-xs',\n sm: 'min-h-(--textarea-min-height-sm) p-(--textarea-padding-sm) text-sm',\n md: 'min-h-(--textarea-min-height-md) p-(--textarea-padding-md) text-base',\n lg: 'min-h-(--textarea-min-height-lg) p-(--textarea-padding-lg) text-lg',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n resize: 'vertical',\n fullWidth: true,\n },\n },\n)\n\nconst Textarea = React.memo<TextareaProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n helperText,\n messagePosition = 'bottom',\n error,\n warning,\n info,\n success,\n resize = 'vertical',\n showCount = false,\n maxLength,\n autoResize = false,\n fullWidth = true,\n className,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const internalRef = React.useRef<HTMLTextAreaElement>(null)\n const textareaRef =\n (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\n const [internalValue, setInternalValue] = React.useState(value || '')\n const currentValue = value !== undefined ? value : internalValue\n const currentLength = String(currentValue).length\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n },\n [value, onChange],\n )\n\n React.useEffect(() => {\n if (autoResize && textareaRef.current) {\n textareaRef.current.style.height = 'auto'\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`\n }\n }, [currentValue, autoResize, textareaRef])\n\n const textareaElement = (\n <textarea\n ref={textareaRef}\n className={cn(\n textareaVariants({\n variant,\n status,\n size,\n resize: autoResize ? 'none' : resize,\n fullWidth,\n }),\n autoResize && 'overflow-hidden',\n className,\n )}\n maxLength={maxLength}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error'}\n aria-describedby={\n helperMessage ? `textarea-helper-${status}` : undefined\n }\n {...props}\n />\n )\n\n if (!label && !helperMessage && !showCount) return textareaElement\n\n return (\n <div\n className={cn(\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n )}\n >\n <div className=\"flex gap-2 items-center relative mb-0.5\">\n {label && (\n <p className=\"text-sm font-medium text-text-secondary\">\n {label}\n {props.required && <span className=\"text-error ml-1\">*</span>}\n </p>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={`textarea-helper-${status}`}\n className={statusMessageVariants({ status })}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className=\"text-xs text-text-secondary absolute right-0\">\n {currentLength}/{maxLength}\n </span>\n )}\n </div>\n {textareaElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={`textarea-helper-${status}`}\n className={cn(statusMessageVariants({ status }), 'mt-0.5')}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n\nexport type * from './types'\nexport default Textarea\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn, iconSizes } from './chunk-
|
|
1
|
+
import { cn, iconSizes } from './chunk-2OGZENFC.js';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { Check, Copy } from 'lucide-react';
|
|
4
4
|
import React, { useState } from 'react';
|
|
@@ -70,11 +70,14 @@ var Clipboard = React.memo(
|
|
|
70
70
|
variant = "default",
|
|
71
71
|
showValue = true,
|
|
72
72
|
successDuration = 2e3,
|
|
73
|
+
disabled = false,
|
|
73
74
|
onCopy,
|
|
74
|
-
className
|
|
75
|
+
className,
|
|
76
|
+
ref
|
|
75
77
|
}) => {
|
|
76
78
|
const [copied, setCopied] = useState(false);
|
|
77
79
|
const handleCopy = async () => {
|
|
80
|
+
if (disabled) return;
|
|
78
81
|
try {
|
|
79
82
|
await navigator.clipboard.writeText(value);
|
|
80
83
|
setCopied(true);
|
|
@@ -86,13 +89,26 @@ var Clipboard = React.memo(
|
|
|
86
89
|
console.error("Failed to copy:", err);
|
|
87
90
|
}
|
|
88
91
|
};
|
|
92
|
+
const handleKeyDown = (e) => {
|
|
93
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
handleCopy();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
89
98
|
return /* @__PURE__ */ jsxs(
|
|
90
99
|
"div",
|
|
91
100
|
{
|
|
101
|
+
ref,
|
|
102
|
+
role: "button",
|
|
103
|
+
tabIndex: disabled ? -1 : 0,
|
|
92
104
|
onClick: handleCopy,
|
|
105
|
+
onKeyDown: handleKeyDown,
|
|
106
|
+
"aria-label": copied ? "Copied to clipboard" : `Copy ${showValue ? value : "to clipboard"}`,
|
|
107
|
+
"aria-disabled": disabled,
|
|
93
108
|
className: cn(
|
|
94
109
|
clipboardVariants({ size }),
|
|
95
110
|
colorStyles[color][variant],
|
|
111
|
+
disabled && "opacity-50 cursor-not-allowed",
|
|
96
112
|
className
|
|
97
113
|
),
|
|
98
114
|
children: [
|
|
@@ -107,5 +123,5 @@ Clipboard.displayName = "Clipboard";
|
|
|
107
123
|
var clipboard_default = Clipboard;
|
|
108
124
|
|
|
109
125
|
export { clipboard_default };
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
111
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-SYDNDYZJ.js.map
|
|
127
|
+
//# sourceMappingURL=chunk-SYDNDYZJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":"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","file":"chunk-SYDNDYZJ.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Check, Copy } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport type { ClipboardProps } from './types'\n\nconst clipboardVariants = cva(\n 'inline-flex items-center justify-between gap-2 rounded-md font-medium transition-all cursor-pointer border',\n {\n variants: {\n size: {\n xs: 'px-2 py-1 text-xs',\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-5 py-2.5 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst colorStyles = {\n default: {\n default: 'bg-background border-border text-text-primary hover:bg-surface',\n solid: 'bg-surface border-border text-text-primary hover:bg-surface/80',\n soft: 'bg-surface/50 border-border text-text-primary hover:bg-surface',\n },\n primary: {\n default: 'bg-background border-primary text-primary hover:bg-primary/10',\n solid: 'bg-primary border-primary text-background hover:bg-primary/90',\n soft: 'bg-primary/10 border-primary/30 text-primary hover:bg-primary/20',\n },\n secondary: {\n default:\n 'bg-background border-secondary text-secondary hover:bg-secondary/10',\n solid:\n 'bg-secondary border-secondary text-background hover:bg-secondary/90',\n soft: 'bg-secondary/10 border-secondary/30 text-secondary hover:bg-secondary/20',\n },\n accent: {\n default: 'bg-background border-accent text-accent hover:bg-accent/10',\n solid: 'bg-accent border-accent text-background hover:bg-accent/90',\n soft: 'bg-accent/10 border-accent/30 text-accent hover:bg-accent/20',\n },\n success: {\n default: 'bg-background border-success text-success hover:bg-success/10',\n solid: 'bg-success border-success text-background hover:bg-success/90',\n soft: 'bg-success/10 border-success/30 text-success hover:bg-success/20',\n },\n error: {\n default: 'bg-background border-error text-error hover:bg-error/10',\n solid: 'bg-error border-error text-background hover:bg-error/90',\n soft: 'bg-error/10 border-error/30 text-error hover:bg-error/20',\n },\n warning: {\n default: 'bg-background border-warning text-warning hover:bg-warning/10',\n solid: 'bg-warning border-warning text-background hover:bg-warning/90',\n soft: 'bg-warning/10 border-warning/30 text-warning hover:bg-warning/20',\n },\n info: {\n default: 'bg-background border-info text-info hover:bg-info/10',\n solid: 'bg-info border-info text-background hover:bg-info/90',\n soft: 'bg-info/10 border-info/30 text-info hover:bg-info/20',\n },\n}\n\nconst Clipboard = React.memo<ClipboardProps>(\n ({\n value,\n color = 'default',\n size = 'md',\n variant = 'default',\n showValue = true,\n successDuration = 2000,\n disabled = false,\n onCopy,\n className,\n ref,\n }) => {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = async () => {\n if (disabled) return\n\n try {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n onCopy?.()\n\n setTimeout(() => {\n setCopied(false)\n }, successDuration)\n } catch (err) {\n console.error('Failed to copy:', err)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleCopy()\n }\n }\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleCopy}\n onKeyDown={handleKeyDown}\n aria-label={copied ? 'Copied to clipboard' : `Copy ${showValue ? value : 'to clipboard'}`}\n aria-disabled={disabled}\n className={cn(\n clipboardVariants({ size }),\n colorStyles[color][variant],\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n )}\n >\n {showValue && <span className=\"font-mono truncate\">{value}</span>}\n {copied ? (\n <Check className={cn(iconSizes[size], 'flex-shrink-0')} />\n ) : (\n <Copy className={cn(iconSizes[size], 'flex-shrink-0')} />\n )}\n </div>\n )\n },\n)\n\nClipboard.displayName = 'Clipboard'\n\nexport type * from './types'\nexport default Clipboard\n"]}
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
import { cn } from './chunk-2OGZENFC.js';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var cardVariants = cva("rounded-lg transition-all", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "bg-card text-card-foreground border",
|
|
10
|
+
solid: "border",
|
|
11
|
+
outline: "bg-transparent border",
|
|
12
|
+
soft: "border-transparent",
|
|
13
|
+
ghost: "border-transparent bg-transparent",
|
|
14
|
+
elevated: "bg-card text-card-foreground border-transparent shadow-md"
|
|
15
|
+
},
|
|
16
|
+
color: {
|
|
17
|
+
default: "border-border",
|
|
18
|
+
primary: "border-primary",
|
|
19
|
+
secondary: "border-secondary",
|
|
20
|
+
accent: "border-accent",
|
|
21
|
+
success: "border-success",
|
|
22
|
+
error: "border-error",
|
|
23
|
+
warning: "border-warning",
|
|
24
|
+
info: "border-info"
|
|
25
|
+
},
|
|
26
|
+
shadow: {
|
|
27
|
+
none: "",
|
|
28
|
+
sm: "shadow-sm",
|
|
29
|
+
md: "shadow-md",
|
|
30
|
+
lg: "shadow-lg"
|
|
31
|
+
},
|
|
32
|
+
hoverable: {
|
|
33
|
+
true: "hover:shadow-lg hover:-translate-y-0.5 cursor-pointer",
|
|
34
|
+
false: ""
|
|
35
|
+
},
|
|
36
|
+
clickable: {
|
|
37
|
+
true: "cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
|
|
38
|
+
false: ""
|
|
39
|
+
},
|
|
40
|
+
bordered: {
|
|
41
|
+
true: "",
|
|
42
|
+
false: "border-transparent"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
compoundVariants: [
|
|
46
|
+
// Default variant with colors - just border color
|
|
47
|
+
{
|
|
48
|
+
variant: "default",
|
|
49
|
+
color: "default",
|
|
50
|
+
class: "bg-card text-card-foreground border-border"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
variant: "default",
|
|
54
|
+
color: "primary",
|
|
55
|
+
class: "bg-card text-card-foreground border-primary"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
variant: "default",
|
|
59
|
+
color: "secondary",
|
|
60
|
+
class: "bg-card text-card-foreground border-secondary"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
variant: "default",
|
|
64
|
+
color: "accent",
|
|
65
|
+
class: "bg-card text-card-foreground border-accent"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
variant: "default",
|
|
69
|
+
color: "success",
|
|
70
|
+
class: "bg-card text-card-foreground border-success"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
variant: "default",
|
|
74
|
+
color: "error",
|
|
75
|
+
class: "bg-card text-card-foreground border-error"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
variant: "default",
|
|
79
|
+
color: "warning",
|
|
80
|
+
class: "bg-card text-card-foreground border-warning"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
variant: "default",
|
|
84
|
+
color: "info",
|
|
85
|
+
class: "bg-card text-card-foreground border-info"
|
|
86
|
+
},
|
|
87
|
+
// Solid variant - full background color
|
|
88
|
+
{
|
|
89
|
+
variant: "solid",
|
|
90
|
+
color: "default",
|
|
91
|
+
class: "bg-surface border-border text-text-primary"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
variant: "solid",
|
|
95
|
+
color: "primary",
|
|
96
|
+
class: "bg-primary border-primary text-background"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
variant: "solid",
|
|
100
|
+
color: "secondary",
|
|
101
|
+
class: "bg-secondary border-secondary text-background"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
variant: "solid",
|
|
105
|
+
color: "accent",
|
|
106
|
+
class: "bg-accent border-accent text-background"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
variant: "solid",
|
|
110
|
+
color: "success",
|
|
111
|
+
class: "bg-success border-success text-background"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
variant: "solid",
|
|
115
|
+
color: "error",
|
|
116
|
+
class: "bg-error border-error text-background"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
variant: "solid",
|
|
120
|
+
color: "warning",
|
|
121
|
+
class: "bg-warning border-warning text-background"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
variant: "solid",
|
|
125
|
+
color: "info",
|
|
126
|
+
class: "bg-info border-info text-background"
|
|
127
|
+
},
|
|
128
|
+
// Outline variant - colored border, transparent bg
|
|
129
|
+
{
|
|
130
|
+
variant: "outline",
|
|
131
|
+
color: "default",
|
|
132
|
+
class: "border-border text-text-primary"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
variant: "outline",
|
|
136
|
+
color: "primary",
|
|
137
|
+
class: "border-primary text-text-primary"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
variant: "outline",
|
|
141
|
+
color: "secondary",
|
|
142
|
+
class: "border-secondary text-text-primary"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
variant: "outline",
|
|
146
|
+
color: "accent",
|
|
147
|
+
class: "border-accent text-text-primary"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
variant: "outline",
|
|
151
|
+
color: "success",
|
|
152
|
+
class: "border-success text-text-primary"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
variant: "outline",
|
|
156
|
+
color: "error",
|
|
157
|
+
class: "border-error text-text-primary"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
variant: "outline",
|
|
161
|
+
color: "warning",
|
|
162
|
+
class: "border-warning text-text-primary"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
variant: "outline",
|
|
166
|
+
color: "info",
|
|
167
|
+
class: "border-info text-text-primary"
|
|
168
|
+
},
|
|
169
|
+
// Soft variant - subtle background color (like button soft)
|
|
170
|
+
{
|
|
171
|
+
variant: "soft",
|
|
172
|
+
color: "default",
|
|
173
|
+
class: "bg-surface text-text-primary"
|
|
174
|
+
},
|
|
175
|
+
{ variant: "soft", color: "primary", class: "bg-primary/10 text-primary" },
|
|
176
|
+
{
|
|
177
|
+
variant: "soft",
|
|
178
|
+
color: "secondary",
|
|
179
|
+
class: "bg-secondary/10 text-secondary"
|
|
180
|
+
},
|
|
181
|
+
{ variant: "soft", color: "accent", class: "bg-accent/10 text-accent" },
|
|
182
|
+
{ variant: "soft", color: "success", class: "bg-success/10 text-success" },
|
|
183
|
+
{ variant: "soft", color: "error", class: "bg-error/10 text-error" },
|
|
184
|
+
{ variant: "soft", color: "warning", class: "bg-warning/10 text-warning" },
|
|
185
|
+
{ variant: "soft", color: "info", class: "bg-info/10 text-info" },
|
|
186
|
+
// Ghost variant - no bg, no border
|
|
187
|
+
{ variant: "ghost", color: "default", class: "text-text-primary" },
|
|
188
|
+
{ variant: "ghost", color: "primary", class: "text-primary" },
|
|
189
|
+
{ variant: "ghost", color: "secondary", class: "text-secondary" },
|
|
190
|
+
{ variant: "ghost", color: "accent", class: "text-accent" },
|
|
191
|
+
{ variant: "ghost", color: "success", class: "text-success" },
|
|
192
|
+
{ variant: "ghost", color: "error", class: "text-error" },
|
|
193
|
+
{ variant: "ghost", color: "warning", class: "text-warning" },
|
|
194
|
+
{ variant: "ghost", color: "info", class: "text-info" },
|
|
195
|
+
// Elevated - shadow, no border
|
|
196
|
+
{
|
|
197
|
+
variant: "elevated",
|
|
198
|
+
color: "default",
|
|
199
|
+
class: "bg-card text-card-foreground"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
variant: "elevated",
|
|
203
|
+
color: "primary",
|
|
204
|
+
class: "bg-card text-card-foreground ring-1 ring-primary/20"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
variant: "elevated",
|
|
208
|
+
color: "secondary",
|
|
209
|
+
class: "bg-card text-card-foreground ring-1 ring-secondary/20"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
variant: "elevated",
|
|
213
|
+
color: "accent",
|
|
214
|
+
class: "bg-card text-card-foreground ring-1 ring-accent/20"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
variant: "elevated",
|
|
218
|
+
color: "success",
|
|
219
|
+
class: "bg-card text-card-foreground ring-1 ring-success/20"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
variant: "elevated",
|
|
223
|
+
color: "error",
|
|
224
|
+
class: "bg-card text-card-foreground ring-1 ring-error/20"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
variant: "elevated",
|
|
228
|
+
color: "warning",
|
|
229
|
+
class: "bg-card text-card-foreground ring-1 ring-warning/20"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
variant: "elevated",
|
|
233
|
+
color: "info",
|
|
234
|
+
class: "bg-card text-card-foreground ring-1 ring-info/20"
|
|
235
|
+
}
|
|
236
|
+
],
|
|
237
|
+
defaultVariants: {
|
|
238
|
+
variant: "default",
|
|
239
|
+
color: "default",
|
|
240
|
+
shadow: "none",
|
|
241
|
+
hoverable: false,
|
|
242
|
+
clickable: false,
|
|
243
|
+
bordered: true
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
var sizeClasses = {
|
|
247
|
+
xs: "[--card-padding:0.5rem] [--card-content-padding:0.5rem] [--card-footer-padding:0.5rem]",
|
|
248
|
+
sm: "[--card-padding:1rem] [--card-content-padding:1rem] [--card-footer-padding:1rem]",
|
|
249
|
+
md: "[--card-padding:1.5rem] [--card-content-padding:1.5rem] [--card-footer-padding:1.5rem]",
|
|
250
|
+
lg: "[--card-padding:2rem] [--card-content-padding:2rem] [--card-footer-padding:2rem]"
|
|
251
|
+
};
|
|
252
|
+
var Card = React.memo(
|
|
253
|
+
({
|
|
254
|
+
className,
|
|
255
|
+
variant = "default",
|
|
256
|
+
color = "default",
|
|
257
|
+
size = "md",
|
|
258
|
+
shadow = "none",
|
|
259
|
+
hoverable = false,
|
|
260
|
+
clickable = false,
|
|
261
|
+
bordered = true,
|
|
262
|
+
loading = false,
|
|
263
|
+
onClick,
|
|
264
|
+
ref,
|
|
265
|
+
children,
|
|
266
|
+
...props
|
|
267
|
+
}) => {
|
|
268
|
+
const cardContent = loading ? /* @__PURE__ */ jsxs("div", { className: "animate-pulse", children: [
|
|
269
|
+
/* @__PURE__ */ jsxs("div", { className: "p-(--card-padding)", children: [
|
|
270
|
+
/* @__PURE__ */ jsx("div", { className: "h-4 bg-surface rounded w-3/4 mb-2" }),
|
|
271
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 bg-surface rounded w-1/2" })
|
|
272
|
+
] }),
|
|
273
|
+
/* @__PURE__ */ jsxs("div", { className: "p-(--card-content-padding) pt-0", children: [
|
|
274
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 bg-surface rounded w-full mb-2" }),
|
|
275
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 bg-surface rounded w-full mb-2" }),
|
|
276
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 bg-surface rounded w-2/3" })
|
|
277
|
+
] })
|
|
278
|
+
] }) : children;
|
|
279
|
+
const cardClassName = cn(
|
|
280
|
+
cardVariants({
|
|
281
|
+
variant,
|
|
282
|
+
color,
|
|
283
|
+
shadow,
|
|
284
|
+
hoverable,
|
|
285
|
+
clickable,
|
|
286
|
+
bordered
|
|
287
|
+
}),
|
|
288
|
+
sizeClasses[size],
|
|
289
|
+
className
|
|
290
|
+
);
|
|
291
|
+
if (clickable) {
|
|
292
|
+
return /* @__PURE__ */ jsx(
|
|
293
|
+
"div",
|
|
294
|
+
{
|
|
295
|
+
ref,
|
|
296
|
+
role: "button",
|
|
297
|
+
tabIndex: 0,
|
|
298
|
+
className: cardClassName,
|
|
299
|
+
onClick,
|
|
300
|
+
onKeyDown: (e) => {
|
|
301
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
302
|
+
e.preventDefault();
|
|
303
|
+
onClick?.(e);
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
...props,
|
|
307
|
+
children: cardContent
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cardClassName, onClick, ...props, children: cardContent });
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
Card.displayName = "Card";
|
|
315
|
+
var CardHeader = React.memo(
|
|
316
|
+
({ className, ref, ...props }) => /* @__PURE__ */ jsx(
|
|
317
|
+
"div",
|
|
318
|
+
{
|
|
319
|
+
ref,
|
|
320
|
+
className: cn("flex flex-col gap-1.5 p-(--card-padding)", className),
|
|
321
|
+
...props
|
|
322
|
+
}
|
|
323
|
+
)
|
|
324
|
+
);
|
|
325
|
+
CardHeader.displayName = "CardHeader";
|
|
326
|
+
var CardTitle = React.memo(
|
|
327
|
+
({ className, as: Tag = "h3", ref, ...props }) => /* @__PURE__ */ jsx(
|
|
328
|
+
Tag,
|
|
329
|
+
{
|
|
330
|
+
ref,
|
|
331
|
+
className: cn(
|
|
332
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
333
|
+
className
|
|
334
|
+
),
|
|
335
|
+
...props
|
|
336
|
+
}
|
|
337
|
+
)
|
|
338
|
+
);
|
|
339
|
+
CardTitle.displayName = "CardTitle";
|
|
340
|
+
var CardDescription = React.memo(
|
|
341
|
+
({ className, ref, ...props }) => /* @__PURE__ */ jsx(
|
|
342
|
+
"p",
|
|
343
|
+
{
|
|
344
|
+
ref,
|
|
345
|
+
className: cn("text-sm text-text-secondary", className),
|
|
346
|
+
...props
|
|
347
|
+
}
|
|
348
|
+
)
|
|
349
|
+
);
|
|
350
|
+
CardDescription.displayName = "CardDescription";
|
|
351
|
+
var CardContent = React.memo(
|
|
352
|
+
({ className, ref, ...props }) => /* @__PURE__ */ jsx(
|
|
353
|
+
"div",
|
|
354
|
+
{
|
|
355
|
+
ref,
|
|
356
|
+
className: cn("p-(--card-content-padding) pt-0", className),
|
|
357
|
+
...props
|
|
358
|
+
}
|
|
359
|
+
)
|
|
360
|
+
);
|
|
361
|
+
CardContent.displayName = "CardContent";
|
|
362
|
+
var CardFooter = React.memo(
|
|
363
|
+
({ className, ref, ...props }) => /* @__PURE__ */ jsx(
|
|
364
|
+
"div",
|
|
365
|
+
{
|
|
366
|
+
ref,
|
|
367
|
+
className: cn(
|
|
368
|
+
"flex items-center p-(--card-footer-padding) pt-0",
|
|
369
|
+
className
|
|
370
|
+
),
|
|
371
|
+
...props
|
|
372
|
+
}
|
|
373
|
+
)
|
|
374
|
+
);
|
|
375
|
+
CardFooter.displayName = "CardFooter";
|
|
376
|
+
var CardAction = React.memo(
|
|
377
|
+
({ className, ref, ...props }) => /* @__PURE__ */ jsx(
|
|
378
|
+
"div",
|
|
379
|
+
{
|
|
380
|
+
ref,
|
|
381
|
+
className: cn("ml-auto flex items-center gap-2", className),
|
|
382
|
+
...props
|
|
383
|
+
}
|
|
384
|
+
)
|
|
385
|
+
);
|
|
386
|
+
CardAction.displayName = "CardAction";
|
|
387
|
+
var aspectRatioClasses = {
|
|
388
|
+
square: "aspect-square",
|
|
389
|
+
video: "aspect-video",
|
|
390
|
+
wide: "aspect-[21/9]",
|
|
391
|
+
auto: ""
|
|
392
|
+
};
|
|
393
|
+
var objectFitClasses = {
|
|
394
|
+
cover: "object-cover",
|
|
395
|
+
contain: "object-contain",
|
|
396
|
+
fill: "object-fill",
|
|
397
|
+
none: "object-none"
|
|
398
|
+
};
|
|
399
|
+
var CardImage = React.memo(
|
|
400
|
+
({
|
|
401
|
+
src,
|
|
402
|
+
alt,
|
|
403
|
+
position = "top",
|
|
404
|
+
aspectRatio = "video",
|
|
405
|
+
objectFit = "cover",
|
|
406
|
+
className,
|
|
407
|
+
ref,
|
|
408
|
+
...props
|
|
409
|
+
}) => /* @__PURE__ */ jsx(
|
|
410
|
+
"div",
|
|
411
|
+
{
|
|
412
|
+
className: cn(
|
|
413
|
+
"overflow-hidden",
|
|
414
|
+
position === "top" && "rounded-t-lg",
|
|
415
|
+
position === "bottom" && "rounded-b-lg",
|
|
416
|
+
aspectRatio !== "auto" && aspectRatioClasses[aspectRatio]
|
|
417
|
+
),
|
|
418
|
+
children: /* @__PURE__ */ jsx(
|
|
419
|
+
"img",
|
|
420
|
+
{
|
|
421
|
+
ref,
|
|
422
|
+
src,
|
|
423
|
+
alt,
|
|
424
|
+
className: cn("w-full h-full", objectFitClasses[objectFit], className),
|
|
425
|
+
loading: "lazy",
|
|
426
|
+
...props
|
|
427
|
+
}
|
|
428
|
+
)
|
|
429
|
+
}
|
|
430
|
+
)
|
|
431
|
+
);
|
|
432
|
+
CardImage.displayName = "CardImage";
|
|
433
|
+
var CardWithSubComponents = Object.assign(Card, {
|
|
434
|
+
Header: CardHeader,
|
|
435
|
+
Footer: CardFooter,
|
|
436
|
+
Title: CardTitle,
|
|
437
|
+
Description: CardDescription,
|
|
438
|
+
Content: CardContent,
|
|
439
|
+
Action: CardAction,
|
|
440
|
+
Image: CardImage
|
|
441
|
+
});
|
|
442
|
+
var card_default = CardWithSubComponents;
|
|
443
|
+
|
|
444
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants, card_default };
|
|
445
|
+
//# sourceMappingURL=chunk-TG2AECIN.js.map
|
|
446
|
+
//# sourceMappingURL=chunk-TG2AECIN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/card/index.tsx"],"names":[],"mappings":"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","file":"chunk-TG2AECIN.js","sourcesContent":["import { cva } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { cn } from \"../utils\";\nimport type {\n CardActionProps,\n CardContentProps,\n CardDescriptionProps,\n CardFooterProps,\n CardHeaderProps,\n CardImageProps,\n CardProps,\n CardSize,\n CardTitleProps,\n} from \"./types\";\n\nconst cardVariants = cva(\"rounded-lg transition-all\", {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground border\",\n solid: \"border\",\n outline: \"bg-transparent border\",\n soft: \"border-transparent\",\n ghost: \"border-transparent bg-transparent\",\n elevated: \"bg-card text-card-foreground border-transparent shadow-md\",\n },\n color: {\n default: \"border-border\",\n primary: \"border-primary\",\n secondary: \"border-secondary\",\n accent: \"border-accent\",\n success: \"border-success\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n },\n shadow: {\n none: \"\",\n sm: \"shadow-sm\",\n md: \"shadow-md\",\n lg: \"shadow-lg\",\n },\n hoverable: {\n true: \"hover:shadow-lg hover:-translate-y-0.5 cursor-pointer\",\n false: \"\",\n },\n clickable: {\n true: \"cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\",\n false: \"\",\n },\n bordered: {\n true: \"\",\n false: \"border-transparent\",\n },\n },\n compoundVariants: [\n // Default variant with colors - just border color\n {\n variant: \"default\",\n color: \"default\",\n class: \"bg-card text-card-foreground border-border\",\n },\n {\n variant: \"default\",\n color: \"primary\",\n class: \"bg-card text-card-foreground border-primary\",\n },\n {\n variant: \"default\",\n color: \"secondary\",\n class: \"bg-card text-card-foreground border-secondary\",\n },\n {\n variant: \"default\",\n color: \"accent\",\n class: \"bg-card text-card-foreground border-accent\",\n },\n {\n variant: \"default\",\n color: \"success\",\n class: \"bg-card text-card-foreground border-success\",\n },\n {\n variant: \"default\",\n color: \"error\",\n class: \"bg-card text-card-foreground border-error\",\n },\n {\n variant: \"default\",\n color: \"warning\",\n class: \"bg-card text-card-foreground border-warning\",\n },\n {\n variant: \"default\",\n color: \"info\",\n class: \"bg-card text-card-foreground border-info\",\n },\n // Solid variant - full background color\n {\n variant: \"solid\",\n color: \"default\",\n class: \"bg-surface border-border text-text-primary\",\n },\n {\n variant: \"solid\",\n color: \"primary\",\n class: \"bg-primary border-primary text-background\",\n },\n {\n variant: \"solid\",\n color: \"secondary\",\n class: \"bg-secondary border-secondary text-background\",\n },\n {\n variant: \"solid\",\n color: \"accent\",\n class: \"bg-accent border-accent text-background\",\n },\n {\n variant: \"solid\",\n color: \"success\",\n class: \"bg-success border-success text-background\",\n },\n {\n variant: \"solid\",\n color: \"error\",\n class: \"bg-error border-error text-background\",\n },\n {\n variant: \"solid\",\n color: \"warning\",\n class: \"bg-warning border-warning text-background\",\n },\n {\n variant: \"solid\",\n color: \"info\",\n class: \"bg-info border-info text-background\",\n },\n // Outline variant - colored border, transparent bg\n {\n variant: \"outline\",\n color: \"default\",\n class: \"border-border text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"primary\",\n class: \"border-primary text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"secondary\",\n class: \"border-secondary text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"accent\",\n class: \"border-accent text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"success\",\n class: \"border-success text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"error\",\n class: \"border-error text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"warning\",\n class: \"border-warning text-text-primary\",\n },\n {\n variant: \"outline\",\n color: \"info\",\n class: \"border-info text-text-primary\",\n },\n // Soft variant - subtle background color (like button soft)\n {\n variant: \"soft\",\n color: \"default\",\n class: \"bg-surface text-text-primary\",\n },\n { variant: \"soft\", color: \"primary\", class: \"bg-primary/10 text-primary\" },\n {\n variant: \"soft\",\n color: \"secondary\",\n class: \"bg-secondary/10 text-secondary\",\n },\n { variant: \"soft\", color: \"accent\", class: \"bg-accent/10 text-accent\" },\n { variant: \"soft\", color: \"success\", class: \"bg-success/10 text-success\" },\n { variant: \"soft\", color: \"error\", class: \"bg-error/10 text-error\" },\n { variant: \"soft\", color: \"warning\", class: \"bg-warning/10 text-warning\" },\n { variant: \"soft\", color: \"info\", class: \"bg-info/10 text-info\" },\n // Ghost variant - no bg, no border\n { variant: \"ghost\", color: \"default\", class: \"text-text-primary\" },\n { variant: \"ghost\", color: \"primary\", class: \"text-primary\" },\n { variant: \"ghost\", color: \"secondary\", class: \"text-secondary\" },\n { variant: \"ghost\", color: \"accent\", class: \"text-accent\" },\n { variant: \"ghost\", color: \"success\", class: \"text-success\" },\n { variant: \"ghost\", color: \"error\", class: \"text-error\" },\n { variant: \"ghost\", color: \"warning\", class: \"text-warning\" },\n { variant: \"ghost\", color: \"info\", class: \"text-info\" },\n // Elevated - shadow, no border\n {\n variant: \"elevated\",\n color: \"default\",\n class: \"bg-card text-card-foreground\",\n },\n {\n variant: \"elevated\",\n color: \"primary\",\n class: \"bg-card text-card-foreground ring-1 ring-primary/20\",\n },\n {\n variant: \"elevated\",\n color: \"secondary\",\n class: \"bg-card text-card-foreground ring-1 ring-secondary/20\",\n },\n {\n variant: \"elevated\",\n color: \"accent\",\n class: \"bg-card text-card-foreground ring-1 ring-accent/20\",\n },\n {\n variant: \"elevated\",\n color: \"success\",\n class: \"bg-card text-card-foreground ring-1 ring-success/20\",\n },\n {\n variant: \"elevated\",\n color: \"error\",\n class: \"bg-card text-card-foreground ring-1 ring-error/20\",\n },\n {\n variant: \"elevated\",\n color: \"warning\",\n class: \"bg-card text-card-foreground ring-1 ring-warning/20\",\n },\n {\n variant: \"elevated\",\n color: \"info\",\n class: \"bg-card text-card-foreground ring-1 ring-info/20\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n color: \"default\",\n shadow: \"none\",\n hoverable: false,\n clickable: false,\n bordered: true,\n },\n});\n\n/**\n * Size-based padding classes\n */\nconst sizeClasses: Record<CardSize, string> = {\n xs: \"[--card-padding:0.5rem] [--card-content-padding:0.5rem] [--card-footer-padding:0.5rem]\",\n sm: \"[--card-padding:1rem] [--card-content-padding:1rem] [--card-footer-padding:1rem]\",\n md: \"[--card-padding:1.5rem] [--card-content-padding:1.5rem] [--card-footer-padding:1.5rem]\",\n lg: \"[--card-padding:2rem] [--card-content-padding:2rem] [--card-footer-padding:2rem]\",\n};\n\n/**\n * Card Component\n *\n * A versatile container component for grouping related content and actions.\n *\n * @example\n * <Card>\n * <CardHeader>\n * <CardTitle>Title</CardTitle>\n * <CardDescription>Description</CardDescription>\n * </CardHeader>\n * <CardContent>Content here</CardContent>\n * <CardFooter>\n * <Button>Action</Button>\n * </CardFooter>\n * </Card>\n */\nconst Card = React.memo<CardProps>(\n ({\n className,\n variant = \"default\",\n color = \"default\",\n size = \"md\",\n shadow = \"none\",\n hoverable = false,\n clickable = false,\n bordered = true,\n loading = false,\n onClick,\n ref,\n children,\n ...props\n }) => {\n const cardContent = loading ? (\n <div className=\"animate-pulse\">\n <div className=\"p-(--card-padding)\">\n <div className=\"h-4 bg-surface rounded w-3/4 mb-2\" />\n <div className=\"h-3 bg-surface rounded w-1/2\" />\n </div>\n <div className=\"p-(--card-content-padding) pt-0\">\n <div className=\"h-3 bg-surface rounded w-full mb-2\" />\n <div className=\"h-3 bg-surface rounded w-full mb-2\" />\n <div className=\"h-3 bg-surface rounded w-2/3\" />\n </div>\n </div>\n ) : (\n children\n );\n\n const cardClassName = cn(\n cardVariants({\n variant,\n color,\n shadow,\n hoverable,\n clickable,\n bordered,\n }),\n sizeClasses[size],\n className,\n );\n\n if (clickable) {\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={cardClassName}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}\n {...props}\n >\n {cardContent}\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cardClassName} onClick={onClick} {...props}>\n {cardContent}\n </div>\n );\n },\n);\nCard.displayName = \"Card\";\n\n/**\n * CardHeader Component\n */\nconst CardHeader = React.memo<CardHeaderProps>(\n ({ className, ref, ...props }) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-1.5 p-(--card-padding)\", className)}\n {...props}\n />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\n/**\n * CardTitle Component\n */\nconst CardTitle = React.memo<CardTitleProps>(\n ({ className, as: Tag = \"h3\", ref, ...props }) => (\n <Tag\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\n/**\n * CardDescription Component\n */\nconst CardDescription = React.memo<CardDescriptionProps>(\n ({ className, ref, ...props }) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-text-secondary\", className)}\n {...props}\n />\n ),\n);\nCardDescription.displayName = \"CardDescription\";\n\n/**\n * CardContent Component\n */\nconst CardContent = React.memo<CardContentProps>(\n ({ className, ref, ...props }) => (\n <div\n ref={ref}\n className={cn(\"p-(--card-content-padding) pt-0\", className)}\n {...props}\n />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\n/**\n * CardFooter Component\n */\nconst CardFooter = React.memo<CardFooterProps>(\n ({ className, ref, ...props }) => (\n <div\n ref={ref}\n className={cn(\n \"flex items-center p-(--card-footer-padding) pt-0\",\n className,\n )}\n {...props}\n />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\n/**\n * CardAction Component - for buttons/actions in the header\n */\nconst CardAction = React.memo<CardActionProps>(\n ({ className, ref, ...props }) => (\n <div\n ref={ref}\n className={cn(\"ml-auto flex items-center gap-2\", className)}\n {...props}\n />\n ),\n);\nCardAction.displayName = \"CardAction\";\n\n/**\n * Aspect ratio classes for CardImage\n */\nconst aspectRatioClasses = {\n square: \"aspect-square\",\n video: \"aspect-video\",\n wide: \"aspect-[21/9]\",\n auto: \"\",\n};\n\n/**\n * Object fit classes for CardImage\n */\nconst objectFitClasses = {\n cover: \"object-cover\",\n contain: \"object-contain\",\n fill: \"object-fill\",\n none: \"object-none\",\n};\n\n/**\n * CardImage Component - for displaying images in cards\n */\nconst CardImage = React.memo<CardImageProps>(\n ({\n src,\n alt,\n position = \"top\",\n aspectRatio = \"video\",\n objectFit = \"cover\",\n className,\n ref,\n ...props\n }) => (\n <div\n className={cn(\n \"overflow-hidden\",\n position === \"top\" && \"rounded-t-lg\",\n position === \"bottom\" && \"rounded-b-lg\",\n aspectRatio !== \"auto\" && aspectRatioClasses[aspectRatio],\n )}\n >\n <img\n ref={ref}\n src={src}\n alt={alt}\n className={cn(\"w-full h-full\", objectFitClasses[objectFit], className)}\n loading=\"lazy\"\n {...props}\n />\n </div>\n ),\n);\nCardImage.displayName = \"CardImage\";\n\n// Attach sub-components to Card\nconst CardWithSubComponents = Object.assign(Card, {\n Header: CardHeader,\n Footer: CardFooter,\n Title: CardTitle,\n Description: CardDescription,\n Content: CardContent,\n Action: CardAction,\n Image: CardImage,\n});\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n CardAction,\n CardImage,\n cardVariants,\n};\n\nexport type * from \"./types\";\nexport default CardWithSubComponents;\n"]}
|