@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
package/dist/accordion/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { accordion_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { accordion_default as default } from '../chunk-22FIGRGO.js';
|
|
2
|
+
import '../chunk-TUTOU4X6.js';
|
|
3
|
+
import '../chunk-2OGZENFC.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/badge/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { badge_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { badge_default as default } from '../chunk-AVPPV5OM.js';
|
|
2
|
+
import '../chunk-TUTOU4X6.js';
|
|
3
|
+
import '../chunk-2OGZENFC.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
1
|
+
export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-SGMIDNPI.js';
|
|
2
|
+
import '../chunk-TWZ5LXLL.js';
|
|
3
|
+
import '../chunk-EFMKUCGX.js';
|
|
4
|
+
import '../chunk-TUTOU4X6.js';
|
|
5
|
+
import '../chunk-2OGZENFC.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/button/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { button_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { button_default as default } from '../chunk-MLNIKNLI.js';
|
|
2
|
+
import '../chunk-NQB4V5P7.js';
|
|
3
|
+
import '../chunk-TUTOU4X6.js';
|
|
4
|
+
import '../chunk-2OGZENFC.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { button_group_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { button_group_default as default } from '../chunk-7ODPSHIQ.js';
|
|
2
|
+
import '../chunk-2OGZENFC.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/card/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants, card_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants, card_default as default } from '../chunk-TG2AECIN.js';
|
|
2
|
+
import '../chunk-2OGZENFC.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/carousel/index.js
CHANGED
package/dist/cascader/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { cascader_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { cascader_default as default } from '../chunk-3WVJE5MF.js';
|
|
2
|
+
import '../chunk-2OGZENFC.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/chart/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AreaChart, BarChart, ComposedChart, LineChart, PieChart, axisLineStyle, axisTickStyle, chartContainerVariants, cursorStyle, getChartColor, gridStyle, legendStyle, tooltipStyle } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { AreaChart, BarChart, ComposedChart, LineChart, PieChart, axisLineStyle, axisTickStyle, chartContainerVariants, cursorStyle, getChartColor, gridStyle, legendStyle, tooltipStyle } from '../chunk-Y2CXG3PT.js';
|
|
2
|
+
import '../chunk-2OGZENFC.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/checkbox/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { checkbox_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { checkbox_default as default } from '../chunk-PQZB43VJ.js';
|
|
2
|
+
import '../chunk-TUTOU4X6.js';
|
|
3
|
+
import '../chunk-2OGZENFC.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { checkbox_group_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { checkbox_group_default as default } from '../chunk-7YPX6NJK.js';
|
|
2
|
+
import '../chunk-2OGZENFC.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { focusRingColorClasses, textColorClasses } from './chunk-TUTOU4X6.js';
|
|
2
|
+
import { cn, iconSizes } from './chunk-2OGZENFC.js';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { ChevronDown } from 'lucide-react';
|
|
5
|
+
import React, { useId, useState } from 'react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var accordionContainerVariants = cva("w-full", {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
default: "space-y-0 divide-y divide-border rounded-lg overflow-hidden",
|
|
12
|
+
solid: "space-y-0 divide-y divide-border/50 rounded-lg overflow-hidden",
|
|
13
|
+
soft: "space-y-0 divide-y divide-border/30 rounded-lg overflow-hidden",
|
|
14
|
+
bordered: "space-y-0 divide-y divide-border border border-border rounded-lg overflow-hidden",
|
|
15
|
+
splitted: "space-y-2"
|
|
16
|
+
},
|
|
17
|
+
showDivider: {
|
|
18
|
+
true: "",
|
|
19
|
+
false: ""
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
compoundVariants: [
|
|
23
|
+
{ variant: "default", showDivider: false, class: "divide-y-0" },
|
|
24
|
+
{ variant: "solid", showDivider: false, class: "divide-y-0" },
|
|
25
|
+
{ variant: "soft", showDivider: false, class: "divide-y-0" },
|
|
26
|
+
{ variant: "bordered", showDivider: false, class: "divide-y-0" }
|
|
27
|
+
],
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "default",
|
|
30
|
+
showDivider: true
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
var accordionItemVariants = cva("transition-colors", {
|
|
34
|
+
variants: {
|
|
35
|
+
variant: {
|
|
36
|
+
default: "bg-transparent hover:bg-surface/50",
|
|
37
|
+
solid: "bg-surface",
|
|
38
|
+
soft: "",
|
|
39
|
+
bordered: "bg-transparent",
|
|
40
|
+
splitted: "border border-border rounded-lg overflow-hidden"
|
|
41
|
+
},
|
|
42
|
+
color: {
|
|
43
|
+
default: "",
|
|
44
|
+
primary: "",
|
|
45
|
+
secondary: "",
|
|
46
|
+
accent: "",
|
|
47
|
+
success: "",
|
|
48
|
+
error: "",
|
|
49
|
+
warning: "",
|
|
50
|
+
info: ""
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
compoundVariants: [
|
|
54
|
+
// Soft variant with colors
|
|
55
|
+
{ variant: "soft", color: "default", class: "bg-surface/50" },
|
|
56
|
+
{
|
|
57
|
+
variant: "soft",
|
|
58
|
+
color: "primary",
|
|
59
|
+
class: "bg-primary/5 hover:bg-primary/10"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
variant: "soft",
|
|
63
|
+
color: "secondary",
|
|
64
|
+
class: "bg-secondary/5 hover:bg-secondary/10"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
variant: "soft",
|
|
68
|
+
color: "accent",
|
|
69
|
+
class: "bg-accent/5 hover:bg-accent/10"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
variant: "soft",
|
|
73
|
+
color: "success",
|
|
74
|
+
class: "bg-success/5 hover:bg-success/10"
|
|
75
|
+
},
|
|
76
|
+
{ variant: "soft", color: "error", class: "bg-error/5 hover:bg-error/10" },
|
|
77
|
+
{
|
|
78
|
+
variant: "soft",
|
|
79
|
+
color: "warning",
|
|
80
|
+
class: "bg-warning/5 hover:bg-warning/10"
|
|
81
|
+
},
|
|
82
|
+
{ variant: "soft", color: "info", class: "bg-info/5 hover:bg-info/10" },
|
|
83
|
+
// Splitted variant with colors
|
|
84
|
+
{ variant: "splitted", color: "primary", class: "border-primary/30" },
|
|
85
|
+
{ variant: "splitted", color: "secondary", class: "border-secondary/30" },
|
|
86
|
+
{ variant: "splitted", color: "accent", class: "border-accent/30" },
|
|
87
|
+
{ variant: "splitted", color: "success", class: "border-success/30" },
|
|
88
|
+
{ variant: "splitted", color: "error", class: "border-error/30" },
|
|
89
|
+
{ variant: "splitted", color: "warning", class: "border-warning/30" },
|
|
90
|
+
{ variant: "splitted", color: "info", class: "border-info/30" }
|
|
91
|
+
],
|
|
92
|
+
defaultVariants: {
|
|
93
|
+
variant: "default",
|
|
94
|
+
color: "default"
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
var accordionHeaderVariants = cva(
|
|
98
|
+
[
|
|
99
|
+
"flex items-center w-full text-left font-medium transition-all",
|
|
100
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
101
|
+
"disabled:opacity-50 disabled:cursor-not-allowed"
|
|
102
|
+
],
|
|
103
|
+
{
|
|
104
|
+
variants: {
|
|
105
|
+
size: {
|
|
106
|
+
xs: "px-(--accordion-padding-x-xs) py-(--accordion-padding-y-xs) text-xs gap-2",
|
|
107
|
+
sm: "px-(--accordion-padding-x-sm) py-(--accordion-padding-y-sm) text-sm gap-2",
|
|
108
|
+
md: "px-(--accordion-padding-x-md) py-(--accordion-padding-y-md) text-base gap-3",
|
|
109
|
+
lg: "px-(--accordion-padding-x-lg) py-(--accordion-padding-y-lg) text-lg gap-3"
|
|
110
|
+
},
|
|
111
|
+
color: focusRingColorClasses,
|
|
112
|
+
disabled: {
|
|
113
|
+
true: "cursor-not-allowed",
|
|
114
|
+
false: "cursor-pointer"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
defaultVariants: {
|
|
118
|
+
size: "md",
|
|
119
|
+
color: "default",
|
|
120
|
+
disabled: false
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
var accordionContentVariants = cva("text-text-secondary", {
|
|
125
|
+
variants: {
|
|
126
|
+
size: {
|
|
127
|
+
xs: "px-(--accordion-padding-x-xs) pb-(--accordion-padding-y-xs) text-xs",
|
|
128
|
+
sm: "px-(--accordion-padding-x-sm) pb-(--accordion-padding-y-sm) text-sm",
|
|
129
|
+
md: "px-(--accordion-padding-x-md) pb-(--accordion-padding-y-md) text-base",
|
|
130
|
+
lg: "px-(--accordion-padding-x-lg) pb-(--accordion-padding-y-lg) text-lg"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
defaultVariants: {
|
|
134
|
+
size: "md"
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
var getIconColor = (color, isExpanded) => {
|
|
138
|
+
if (!isExpanded) return "text-text-secondary";
|
|
139
|
+
return textColorClasses[color || "default"];
|
|
140
|
+
};
|
|
141
|
+
var Accordion = React.memo(
|
|
142
|
+
({
|
|
143
|
+
items,
|
|
144
|
+
color = "default",
|
|
145
|
+
size = "md",
|
|
146
|
+
variant = "default",
|
|
147
|
+
defaultActiveKey,
|
|
148
|
+
activeKey: controlledActiveKey,
|
|
149
|
+
onChange,
|
|
150
|
+
multiple = false,
|
|
151
|
+
expandIcon,
|
|
152
|
+
expandIconPosition = "right",
|
|
153
|
+
collapsible = false,
|
|
154
|
+
destroyOnClose = false,
|
|
155
|
+
showDivider = true,
|
|
156
|
+
className,
|
|
157
|
+
itemClassName,
|
|
158
|
+
ref
|
|
159
|
+
}) => {
|
|
160
|
+
const baseId = useId();
|
|
161
|
+
const [internalActiveKey, setInternalActiveKey] = useState(defaultActiveKey || (multiple ? [] : ""));
|
|
162
|
+
const activeKey = controlledActiveKey !== void 0 ? controlledActiveKey : internalActiveKey;
|
|
163
|
+
const isActive = (key) => {
|
|
164
|
+
if (Array.isArray(activeKey)) {
|
|
165
|
+
return activeKey.includes(key);
|
|
166
|
+
}
|
|
167
|
+
return activeKey === key;
|
|
168
|
+
};
|
|
169
|
+
const handleToggle = (key, disabled) => {
|
|
170
|
+
if (disabled) return;
|
|
171
|
+
let newActiveKey;
|
|
172
|
+
if (multiple) {
|
|
173
|
+
const currentKeys = Array.isArray(activeKey) ? activeKey : [];
|
|
174
|
+
newActiveKey = currentKeys.includes(key) ? currentKeys.filter((k) => k !== key) : [...currentKeys, key];
|
|
175
|
+
} else {
|
|
176
|
+
if (collapsible && activeKey === key) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
newActiveKey = activeKey === key ? "" : key;
|
|
180
|
+
}
|
|
181
|
+
if (controlledActiveKey === void 0) {
|
|
182
|
+
setInternalActiveKey(newActiveKey);
|
|
183
|
+
}
|
|
184
|
+
onChange?.(newActiveKey);
|
|
185
|
+
};
|
|
186
|
+
const renderExpandIcon = (isExpanded) => {
|
|
187
|
+
if (expandIcon === false) return null;
|
|
188
|
+
if (typeof expandIcon === "function") {
|
|
189
|
+
return expandIcon(isExpanded);
|
|
190
|
+
}
|
|
191
|
+
if (expandIcon) {
|
|
192
|
+
return /* @__PURE__ */ jsx(
|
|
193
|
+
"span",
|
|
194
|
+
{
|
|
195
|
+
className: cn(
|
|
196
|
+
"shrink-0 transition-transform duration-300",
|
|
197
|
+
isExpanded && "rotate-180"
|
|
198
|
+
),
|
|
199
|
+
children: expandIcon
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
return /* @__PURE__ */ jsx(
|
|
204
|
+
ChevronDown,
|
|
205
|
+
{
|
|
206
|
+
className: cn(
|
|
207
|
+
"shrink-0 transition-transform duration-300",
|
|
208
|
+
isExpanded && "rotate-180",
|
|
209
|
+
getIconColor(color, isExpanded),
|
|
210
|
+
iconSizes[size]
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
};
|
|
215
|
+
return /* @__PURE__ */ jsx(
|
|
216
|
+
"div",
|
|
217
|
+
{
|
|
218
|
+
ref,
|
|
219
|
+
className: cn(
|
|
220
|
+
accordionContainerVariants({
|
|
221
|
+
variant,
|
|
222
|
+
showDivider: showDivider && variant !== "splitted"
|
|
223
|
+
}),
|
|
224
|
+
className
|
|
225
|
+
),
|
|
226
|
+
children: items.map((item) => {
|
|
227
|
+
const isItemActive = isActive(item.key);
|
|
228
|
+
const headerId = `${baseId}-header-${item.key}`;
|
|
229
|
+
const panelId = `${baseId}-panel-${item.key}`;
|
|
230
|
+
return /* @__PURE__ */ jsxs(
|
|
231
|
+
"div",
|
|
232
|
+
{
|
|
233
|
+
className: cn(
|
|
234
|
+
accordionItemVariants({ variant, color }),
|
|
235
|
+
item.disabled && "opacity-50",
|
|
236
|
+
itemClassName
|
|
237
|
+
),
|
|
238
|
+
children: [
|
|
239
|
+
/* @__PURE__ */ jsxs(
|
|
240
|
+
"button",
|
|
241
|
+
{
|
|
242
|
+
type: "button",
|
|
243
|
+
id: headerId,
|
|
244
|
+
"aria-expanded": isItemActive,
|
|
245
|
+
"aria-controls": panelId,
|
|
246
|
+
"aria-disabled": item.disabled,
|
|
247
|
+
disabled: item.disabled,
|
|
248
|
+
onClick: () => handleToggle(item.key, item.disabled),
|
|
249
|
+
className: cn(
|
|
250
|
+
accordionHeaderVariants({
|
|
251
|
+
size,
|
|
252
|
+
color,
|
|
253
|
+
disabled: item.disabled
|
|
254
|
+
})
|
|
255
|
+
),
|
|
256
|
+
children: [
|
|
257
|
+
expandIconPosition === "left" && renderExpandIcon(isItemActive),
|
|
258
|
+
item.icon && /* @__PURE__ */ jsx(
|
|
259
|
+
"span",
|
|
260
|
+
{
|
|
261
|
+
className: cn(
|
|
262
|
+
"shrink-0",
|
|
263
|
+
getIconColor(color, isItemActive)
|
|
264
|
+
),
|
|
265
|
+
children: item.icon
|
|
266
|
+
}
|
|
267
|
+
),
|
|
268
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
269
|
+
/* @__PURE__ */ jsx(
|
|
270
|
+
"div",
|
|
271
|
+
{
|
|
272
|
+
className: cn(
|
|
273
|
+
isItemActive && color !== "default" && textColorClasses[color || "default"]
|
|
274
|
+
),
|
|
275
|
+
children: item.title
|
|
276
|
+
}
|
|
277
|
+
),
|
|
278
|
+
item.subtitle && /* @__PURE__ */ jsx("div", { className: "text-text-secondary font-normal mt-0.5", children: item.subtitle })
|
|
279
|
+
] }),
|
|
280
|
+
item.extra && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-text-secondary", children: item.extra }),
|
|
281
|
+
expandIconPosition === "right" && renderExpandIcon(isItemActive)
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
),
|
|
285
|
+
/* @__PURE__ */ jsx(
|
|
286
|
+
"div",
|
|
287
|
+
{
|
|
288
|
+
id: panelId,
|
|
289
|
+
role: "region",
|
|
290
|
+
"aria-labelledby": headerId,
|
|
291
|
+
className: cn(
|
|
292
|
+
"grid transition-[grid-template-rows] duration-300 ease-out",
|
|
293
|
+
isItemActive ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
294
|
+
),
|
|
295
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: (!destroyOnClose || isItemActive) && /* @__PURE__ */ jsx("div", { className: cn(accordionContentVariants({ size })), children: item.content }) })
|
|
296
|
+
}
|
|
297
|
+
)
|
|
298
|
+
]
|
|
299
|
+
},
|
|
300
|
+
item.key
|
|
301
|
+
);
|
|
302
|
+
})
|
|
303
|
+
}
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
);
|
|
307
|
+
Accordion.displayName = "Accordion";
|
|
308
|
+
var accordion_default = Accordion;
|
|
309
|
+
|
|
310
|
+
export { accordion_default };
|
|
311
|
+
//# sourceMappingURL=chunk-22FIGRGO.js.map
|
|
312
|
+
//# sourceMappingURL=chunk-22FIGRGO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/accordion/index.tsx"],"names":[],"mappings":"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","file":"chunk-22FIGRGO.js","sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport React, { useId, useState } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport { focusRingColorClasses, textColorClasses } from \"../variants\";\nimport type { AccordionProps, AccordionSize } from \"./types\";\n\n// Variant styles for accordion container\nconst accordionContainerVariants = cva(\"w-full\", {\n variants: {\n variant: {\n default: \"space-y-0 divide-y divide-border rounded-lg overflow-hidden\",\n solid: \"space-y-0 divide-y divide-border/50 rounded-lg overflow-hidden\",\n soft: \"space-y-0 divide-y divide-border/30 rounded-lg overflow-hidden\",\n bordered:\n \"space-y-0 divide-y divide-border border border-border rounded-lg overflow-hidden\",\n splitted: \"space-y-2\",\n },\n showDivider: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n { variant: \"default\", showDivider: false, class: \"divide-y-0\" },\n { variant: \"solid\", showDivider: false, class: \"divide-y-0\" },\n { variant: \"soft\", showDivider: false, class: \"divide-y-0\" },\n { variant: \"bordered\", showDivider: false, class: \"divide-y-0\" },\n ],\n defaultVariants: {\n variant: \"default\",\n showDivider: true,\n },\n});\n\n// Variant styles for each accordion item\nconst accordionItemVariants = cva(\"transition-colors\", {\n variants: {\n variant: {\n default: \"bg-transparent hover:bg-surface/50\",\n solid: \"bg-surface\",\n soft: \"\",\n bordered: \"bg-transparent\",\n splitted: \"border border-border rounded-lg overflow-hidden\",\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n accent: \"\",\n success: \"\",\n error: \"\",\n warning: \"\",\n info: \"\",\n },\n },\n compoundVariants: [\n // Soft variant with colors\n { variant: \"soft\", color: \"default\", class: \"bg-surface/50\" },\n {\n variant: \"soft\",\n color: \"primary\",\n class: \"bg-primary/5 hover:bg-primary/10\",\n },\n {\n variant: \"soft\",\n color: \"secondary\",\n class: \"bg-secondary/5 hover:bg-secondary/10\",\n },\n {\n variant: \"soft\",\n color: \"accent\",\n class: \"bg-accent/5 hover:bg-accent/10\",\n },\n {\n variant: \"soft\",\n color: \"success\",\n class: \"bg-success/5 hover:bg-success/10\",\n },\n { variant: \"soft\", color: \"error\", class: \"bg-error/5 hover:bg-error/10\" },\n {\n variant: \"soft\",\n color: \"warning\",\n class: \"bg-warning/5 hover:bg-warning/10\",\n },\n { variant: \"soft\", color: \"info\", class: \"bg-info/5 hover:bg-info/10\" },\n // Splitted variant with colors\n { variant: \"splitted\", color: \"primary\", class: \"border-primary/30\" },\n { variant: \"splitted\", color: \"secondary\", class: \"border-secondary/30\" },\n { variant: \"splitted\", color: \"accent\", class: \"border-accent/30\" },\n { variant: \"splitted\", color: \"success\", class: \"border-success/30\" },\n { variant: \"splitted\", color: \"error\", class: \"border-error/30\" },\n { variant: \"splitted\", color: \"warning\", class: \"border-warning/30\" },\n { variant: \"splitted\", color: \"info\", class: \"border-info/30\" },\n ],\n defaultVariants: {\n variant: \"default\",\n color: \"default\",\n },\n});\n\n// Header button variants\nconst accordionHeaderVariants = cva(\n [\n \"flex items-center w-full text-left font-medium transition-all\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n xs: \"px-(--accordion-padding-x-xs) py-(--accordion-padding-y-xs) text-xs gap-2\",\n sm: \"px-(--accordion-padding-x-sm) py-(--accordion-padding-y-sm) text-sm gap-2\",\n md: \"px-(--accordion-padding-x-md) py-(--accordion-padding-y-md) text-base gap-3\",\n lg: \"px-(--accordion-padding-x-lg) py-(--accordion-padding-y-lg) text-lg gap-3\",\n },\n color: focusRingColorClasses,\n disabled: {\n true: \"cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n size: \"md\",\n color: \"default\",\n disabled: false,\n },\n },\n);\n\n// Content variants\nconst accordionContentVariants = cva(\"text-text-secondary\", {\n variants: {\n size: {\n xs: \"px-(--accordion-padding-x-xs) pb-(--accordion-padding-y-xs) text-xs\",\n sm: \"px-(--accordion-padding-x-sm) pb-(--accordion-padding-y-sm) text-sm\",\n md: \"px-(--accordion-padding-x-md) pb-(--accordion-padding-y-md) text-base\",\n lg: \"px-(--accordion-padding-x-lg) pb-(--accordion-padding-y-lg) text-lg\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\n// Icon color based on color prop\nconst getIconColor = (color: AccordionProps[\"color\"], isExpanded: boolean) => {\n if (!isExpanded) return \"text-text-secondary\";\n return textColorClasses[color || \"default\"];\n};\n\nconst Accordion = React.memo<AccordionProps>(\n ({\n items,\n color = \"default\",\n size = \"md\",\n variant = \"default\",\n defaultActiveKey,\n activeKey: controlledActiveKey,\n onChange,\n multiple = false,\n expandIcon,\n expandIconPosition = \"right\",\n collapsible = false,\n destroyOnClose = false,\n showDivider = true,\n className,\n itemClassName,\n ref,\n }) => {\n const baseId = useId();\n const [internalActiveKey, setInternalActiveKey] = useState<\n string | string[]\n >(defaultActiveKey || (multiple ? [] : \"\"));\n\n const activeKey =\n controlledActiveKey !== undefined\n ? controlledActiveKey\n : internalActiveKey;\n\n const isActive = (key: string) => {\n if (Array.isArray(activeKey)) {\n return activeKey.includes(key);\n }\n return activeKey === key;\n };\n\n const handleToggle = (key: string, disabled?: boolean) => {\n if (disabled) return;\n\n let newActiveKey: string | string[];\n\n if (multiple) {\n const currentKeys = Array.isArray(activeKey) ? activeKey : [];\n newActiveKey = currentKeys.includes(key)\n ? currentKeys.filter((k) => k !== key)\n : [...currentKeys, key];\n } else {\n // Handle collapsible: prevent closing if it's the only open panel\n if (collapsible && activeKey === key) {\n return;\n }\n newActiveKey = activeKey === key ? \"\" : key;\n }\n\n if (controlledActiveKey === undefined) {\n setInternalActiveKey(newActiveKey);\n }\n onChange?.(newActiveKey);\n };\n\n // Render expand icon\n const renderExpandIcon = (isExpanded: boolean) => {\n if (expandIcon === false) return null;\n\n if (typeof expandIcon === \"function\") {\n return expandIcon(isExpanded);\n }\n\n if (expandIcon) {\n return (\n <span\n className={cn(\n \"shrink-0 transition-transform duration-300\",\n isExpanded && \"rotate-180\",\n )}\n >\n {expandIcon}\n </span>\n );\n }\n\n return (\n <ChevronDown\n className={cn(\n \"shrink-0 transition-transform duration-300\",\n isExpanded && \"rotate-180\",\n getIconColor(color, isExpanded),\n iconSizes[size as AccordionSize],\n )}\n />\n );\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n accordionContainerVariants({\n variant,\n showDivider: showDivider && variant !== \"splitted\",\n }),\n className,\n )}\n >\n {items.map((item) => {\n const isItemActive = isActive(item.key);\n const headerId = `${baseId}-header-${item.key}`;\n const panelId = `${baseId}-panel-${item.key}`;\n\n return (\n <div\n key={item.key}\n className={cn(\n accordionItemVariants({ variant, color }),\n item.disabled && \"opacity-50\",\n itemClassName,\n )}\n >\n <button\n type=\"button\"\n id={headerId}\n aria-expanded={isItemActive}\n aria-controls={panelId}\n aria-disabled={item.disabled}\n disabled={item.disabled}\n onClick={() => handleToggle(item.key, item.disabled)}\n className={cn(\n accordionHeaderVariants({\n size,\n color,\n disabled: item.disabled,\n }),\n )}\n >\n {/* Left expand icon */}\n {expandIconPosition === \"left\" &&\n renderExpandIcon(isItemActive)}\n\n {/* Item icon */}\n {item.icon && (\n <span\n className={cn(\n \"shrink-0\",\n getIconColor(color, isItemActive),\n )}\n >\n {item.icon}\n </span>\n )}\n\n {/* Title and subtitle */}\n <div className=\"flex-1 min-w-0\">\n <div\n className={cn(\n isItemActive &&\n color !== \"default\" &&\n textColorClasses[color || \"default\"],\n )}\n >\n {item.title}\n </div>\n {item.subtitle && (\n <div className=\"text-text-secondary font-normal mt-0.5\">\n {item.subtitle}\n </div>\n )}\n </div>\n\n {/* Extra content */}\n {item.extra && (\n <span className=\"shrink-0 text-text-secondary\">\n {item.extra}\n </span>\n )}\n\n {/* Right expand icon */}\n {expandIconPosition === \"right\" &&\n renderExpandIcon(isItemActive)}\n </button>\n\n {/* Content panel */}\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={headerId}\n className={cn(\n \"grid transition-[grid-template-rows] duration-300 ease-out\",\n isItemActive ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\",\n )}\n >\n <div className=\"overflow-hidden\">\n {(!destroyOnClose || isItemActive) && (\n <div className={cn(accordionContentVariants({ size }))}>\n {item.content}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n );\n },\n);\n\nAccordion.displayName = \"Accordion\";\n\nexport type * from \"./types\";\nexport default Accordion;\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { radioCheckedColorClasses } from './chunk-TUTOU4X6.js';
|
|
2
|
+
import { cn } from './chunk-2OGZENFC.js';
|
|
2
3
|
import { cva } from 'class-variance-authority';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -7,20 +8,12 @@ var radioVariants = cva(
|
|
|
7
8
|
"appearance-none rounded-full border-border border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none",
|
|
8
9
|
{
|
|
9
10
|
variants: {
|
|
10
|
-
color:
|
|
11
|
-
primary: "checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]",
|
|
12
|
-
secondary: "checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]",
|
|
13
|
-
accent: "checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]",
|
|
14
|
-
success: "checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]",
|
|
15
|
-
error: "checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]",
|
|
16
|
-
warning: "checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]",
|
|
17
|
-
info: "checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]"
|
|
18
|
-
},
|
|
11
|
+
color: radioCheckedColorClasses,
|
|
19
12
|
size: {
|
|
20
|
-
xs: "w-
|
|
21
|
-
sm: "w-
|
|
22
|
-
md: "w-
|
|
23
|
-
lg: "w-
|
|
13
|
+
xs: "w-(--checkbox-size-xs) h-(--checkbox-size-xs)",
|
|
14
|
+
sm: "w-(--checkbox-size-sm) h-(--checkbox-size-sm)",
|
|
15
|
+
md: "w-(--checkbox-size-md) h-(--checkbox-size-md)",
|
|
16
|
+
lg: "w-(--checkbox-size-lg) h-(--checkbox-size-lg)"
|
|
24
17
|
},
|
|
25
18
|
error: {
|
|
26
19
|
true: "border-error checked:border-error",
|
|
@@ -98,5 +91,5 @@ Radio.displayName = "Radio";
|
|
|
98
91
|
var radio_default = Radio;
|
|
99
92
|
|
|
100
93
|
export { radio_default };
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-23BPDLT4.js.map
|
|
95
|
+
//# sourceMappingURL=chunk-23BPDLT4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/radio/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,6IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO,wBAAA;AAAA,MACP,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,mCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,EAClB,CAAC;AAAA,IACC,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,aAAA,CAAc,EAAE,KAAA,EAAO,IAAA,EAAM,OAAO,CAAC,CAAC,OAAO,CAAA;AAAA,UAC7C;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,UAAA,IAAc,CAAC,OAAO,OAAO,YAAA;AAE5C,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA;AAAA,YACA,CAAC,MAAM,QAAA,IAAY;AAAA,WACrB;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YACA,KAAA,oBACC,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,yCAAA;AAAA,kBACA,KAAA,IAAS,YAAA;AAAA,kBACT,MAAM,QAAA,IAAY;AAAA,iBACpB;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,OAEJ;AAAA,MAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,mBAAA;AAAA,YACA,QAAQ,YAAA,GAAe;AAAA,WACzB;AAAA,UAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-23BPDLT4.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { radioCheckedColorClasses } from '../variants'\nimport type { RadioProps } from './types'\n\nconst radioVariants = cva(\n 'appearance-none rounded-full border-border border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none',\n {\n variants: {\n color: radioCheckedColorClasses,\n size: {\n xs: 'w-(--checkbox-size-xs) h-(--checkbox-size-xs)',\n sm: 'w-(--checkbox-size-sm) h-(--checkbox-size-sm)',\n md: 'w-(--checkbox-size-md) h-(--checkbox-size-md)',\n lg: 'w-(--checkbox-size-lg) h-(--checkbox-size-lg)',\n },\n error: {\n true: 'border-error checked:border-error',\n false: '',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nconst Radio = React.memo<RadioProps>(\n ({\n color = 'primary',\n size = 'md',\n label,\n helperText,\n error,\n className,\n ref,\n ...props\n }) => {\n const radioElement = (\n <input\n ref={ref}\n type=\"radio\"\n className={cn(\n radioVariants({ color, size, error: !!error }),\n className,\n )}\n {...props}\n />\n )\n\n if (!label && !helperText && !error) return radioElement\n\n return (\n <div className=\"w-full\">\n <label\n className={cn(\n 'flex items-center gap-2',\n !props.disabled && 'cursor-pointer',\n )}\n >\n {radioElement}\n {label && (\n <span\n className={cn(\n 'text-sm text-text-secondary select-none',\n error && 'text-error',\n props.disabled && 'opacity-50',\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n className={cn(\n 'mt-1 ml-0 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nRadio.displayName = 'Radio'\n\nexport type * from './types'\nexport default Radio\n"]}
|
|
@@ -10,8 +10,7 @@ var iconSizes = {
|
|
|
10
10
|
xs: "h-3 w-3",
|
|
11
11
|
sm: "h-3.5 w-3.5",
|
|
12
12
|
md: "h-4 w-4",
|
|
13
|
-
lg: "h-5 w-5"
|
|
14
|
-
xl: "h-6 w-6"
|
|
13
|
+
lg: "h-5 w-5"
|
|
15
14
|
};
|
|
16
15
|
function getValidationStatus(messages) {
|
|
17
16
|
const { error, warning, info, success, helperText } = messages;
|
|
@@ -53,5 +52,5 @@ cva("", {
|
|
|
53
52
|
});
|
|
54
53
|
|
|
55
54
|
export { cn, getValidationStatus, iconSizes, statusMessageVariants };
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-2OGZENFC.js.map
|
|
56
|
+
//# sourceMappingURL=chunk-2OGZENFC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"names":[],"mappings":";;;;;AAaO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAOO,IAAM,SAAA,GAAY;AAAA,EACvB,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAoCO,SAAS,oBAAoB,QAAA,EAGlC;AACA,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,YAAW,GAAI,QAAA;AACtD,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,OAAA,IAAW,IAAA,IAAQ,OAAA,IAAW,UAAA;AAEvD,EAAA,IAAI,MAAA,GAA2B,SAAA;AAC/B,EAAA,IAAI,OAAO,MAAA,GAAS,OAAA;AAAA,OAAA,IACX,SAAS,MAAA,GAAS,SAAA;AAAA,OAAA,IAClB,SAAS,MAAA,GAAS,SAAA;AAAA,OAAA,IAClB,MAAM,MAAA,GAAS,MAAA;AAExB,EAAA,OAAO,EAAE,QAAQ,OAAA,EAAQ;AAC3B;AAWO,IAAM,qBAAA,GAAwB,IAAI,SAAA,EAAW;AAAA,EAClD,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,qBAAA;AAAA,MACT,KAAA,EAAO,YAAA;AAAA,MACP,OAAA,EAAS,cAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ;AAAA;AAEZ,CAAC;AAqEmC,IAAI,EAAA,EAAI;AAAA,EAC1C,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,uCAAA;AAAA,MACT,KAAA,EAAO,cAAA;AAAA,MACP,OAAA,EAAS,gBAAA;AAAA,MACT,IAAA,EAAM,aAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ;AAAA;AAEZ,CAAC","file":"chunk-2OGZENFC.js","sourcesContent":["/**\n * Global UI Utilities\n * Shared utilities for all components\n */\n\nimport { cva } from 'class-variance-authority'\nimport { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\n/**\n * Merge class names with Tailwind CSS conflict resolution\n * Combines clsx for conditional classes with tailwind-merge for deduplication\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs))\n}\n\n/**\n * Shared icon sizes for consistent sizing across components\n * Used in Button, Input, Checkbox, Select, MultiSelect, DatePicker, TimePicker, etc.\n * Standardized to 4-size scale: xs, sm, md, lg\n */\nexport const iconSizes = {\n xs: 'h-3 w-3',\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const\n\nexport type IconSize = keyof typeof iconSizes\n\n/**\n * Validation status types for form components\n */\nexport type ValidationStatus =\n | 'default'\n | 'error'\n | 'warning'\n | 'info'\n | 'success'\n\n/**\n * Status message props interface\n */\nexport interface StatusMessages {\n error?: string | boolean\n warning?: string | boolean\n info?: string | boolean\n success?: string | boolean\n helperText?: string\n}\n\n/**\n * Resolves validation status and message from status props\n * Used in Input, Textarea, Select, MultiSelect, DatePicker, TimePicker, etc.\n *\n * @param messages - Object containing possible status messages\n * @returns Object with resolved status and message\n *\n * @example\n * const { status, message } = getValidationStatus({ error: \"Invalid email\", helperText: \"Enter your email\" });\n * // Returns: { status: \"error\", message: \"Invalid email\" }\n */\nexport function getValidationStatus(messages: StatusMessages): {\n status: ValidationStatus\n message?: string | boolean\n} {\n const { error, warning, info, success, helperText } = messages\n const message = error || warning || info || success || helperText\n\n let status: ValidationStatus = 'default'\n if (error) status = 'error'\n else if (warning) status = 'warning'\n else if (success) status = 'success'\n else if (info) status = 'info'\n\n return { status, message }\n}\n\n/**\n * Status message styling variants using cva\n * Provides consistent styling for helper/error/warning/info/success messages\n *\n * @example\n * <p className={statusMessageVariants({ status: \"error\" })}>\n * {message}\n * </p>\n */\nexport const statusMessageVariants = cva('text-xs', {\n variants: {\n status: {\n default: 'text-text-secondary',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n success: 'text-success',\n },\n },\n defaultVariants: {\n status: 'default',\n },\n})\n\n// ============================================================================\n// Shared Size Variant Patterns\n// ============================================================================\n\n/**\n * Input size variants\n * Used by: Input, Select, DatePicker, TimePicker, RangePicker\n * Provides consistent height and padding across form inputs\n * Standardized to 4-size scale: xs, sm, md, lg\n */\nexport const inputSizeVariants = {\n xs: 'h-(--input-height-xs) px-2 text-xs',\n sm: 'h-(--input-height-sm) px-3 text-sm',\n md: 'h-(--input-height-md) px-4 text-base',\n lg: 'h-(--input-height-lg) px-5 text-lg',\n} as const\n\n/**\n * Textarea size variants\n * Used by: Textarea\n * Different from input sizes due to multiline nature\n * Standardized to 4-size scale: xs, sm, md, lg\n */\nexport const textareaSizeVariants = {\n xs: 'min-h-(--textarea-min-height) p-(--textarea-padding-xs) text-xs',\n sm: 'min-h-(--textarea-min-height) p-(--textarea-padding-sm) text-sm',\n md: 'min-h-(--textarea-min-height) p-(--textarea-padding-md) text-base',\n lg: 'min-h-(--textarea-min-height) p-(--textarea-padding-lg) text-lg',\n} as const\n\n// ============================================================================\n// Shared Size Variant Patterns\n// ============================================================================\n\n/**\n * Button size variants\n * Used by: Button, IconButton, and button-like components\n */\nexport const buttonSizeVariants = {\n xs: 'h-8 px-3 text-xs gap-1.5',\n sm: 'h-9 px-3 text-sm gap-2',\n md: 'h-10 px-4 text-base gap-2',\n lg: 'h-11 px-5 text-lg gap-2.5',\n} as const\n\n/**\n * Badge/Tag size variants\n * Used by: Badge, Tag, Chip, and similar small components\n */\nexport const badgeSizeVariants = {\n xs: 'text-[10px] px-1 py-0 min-h-[14px]',\n sm: 'text-xs px-1.5 py-0.5 min-h-[16px]',\n md: 'text-xs px-2 py-0.5 min-h-[18px]',\n lg: 'text-sm px-2.5 py-1 min-h-[20px]',\n} as const\n\n// ============================================================================\n// Shared Status/Border Variant Patterns\n// ============================================================================\n\n/**\n * Border status variants for form components\n * Provides consistent border styling based on validation status\n *\n * @example\n * <input className={cn(borderStatusVariants({ status: \"error\" }))} />\n */\nexport const borderStatusVariants = cva('', {\n variants: {\n status: {\n default: 'border-border hover:border-primary/50',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n },\n },\n defaultVariants: {\n status: 'default',\n },\n})\n\n// ============================================================================\n// Shared State Utilities\n// ============================================================================\n\n/**\n * Focus ring utility for interactive components\n */\nexport const focusRing = 'focus:ring-2 focus:ring-primary/20 focus:outline-none'\n\n/**\n * Hover brightness for buttons and interactive elements\n */\nexport const hoverBrightness = 'hover:brightness-110 transition-all'\n\n/**\n * Disabled state styling\n */\nexport const disabledState =\n 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none'\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 { ChevronDown } from 'lucide-react';
|
|
4
4
|
import React, { useState } from 'react';
|
|
@@ -149,10 +149,12 @@ var Collapse = React.memo(
|
|
|
149
149
|
open: controlledOpen,
|
|
150
150
|
onChange,
|
|
151
151
|
disabled = false,
|
|
152
|
-
className
|
|
152
|
+
className,
|
|
153
|
+
ref
|
|
153
154
|
}) => {
|
|
154
155
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
155
156
|
const isOpen = controlledOpen !== void 0 ? controlledOpen : internalOpen;
|
|
157
|
+
const contentId = React.useId();
|
|
156
158
|
const handleToggle = () => {
|
|
157
159
|
if (disabled) return;
|
|
158
160
|
const newOpen = !isOpen;
|
|
@@ -164,6 +166,7 @@ var Collapse = React.memo(
|
|
|
164
166
|
return /* @__PURE__ */ jsxs(
|
|
165
167
|
"div",
|
|
166
168
|
{
|
|
169
|
+
ref,
|
|
167
170
|
className: cn(
|
|
168
171
|
collapseVariants({ size }),
|
|
169
172
|
colorStyles[color][variant],
|
|
@@ -176,6 +179,8 @@ var Collapse = React.memo(
|
|
|
176
179
|
type: "button",
|
|
177
180
|
onClick: handleToggle,
|
|
178
181
|
disabled,
|
|
182
|
+
"aria-expanded": isOpen,
|
|
183
|
+
"aria-controls": contentId,
|
|
179
184
|
className: cn(
|
|
180
185
|
collapseHeaderVariants({ size, disabled }),
|
|
181
186
|
headerColorStyles[color][variant]
|
|
@@ -198,6 +203,8 @@ var Collapse = React.memo(
|
|
|
198
203
|
/* @__PURE__ */ jsx(
|
|
199
204
|
"div",
|
|
200
205
|
{
|
|
206
|
+
id: contentId,
|
|
207
|
+
role: "region",
|
|
201
208
|
className: cn(
|
|
202
209
|
"grid transition-[grid-template-rows] duration-300 ease-out",
|
|
203
210
|
isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
@@ -214,5 +221,5 @@ Collapse.displayName = "Collapse";
|
|
|
214
221
|
var collapse_default = Collapse;
|
|
215
222
|
|
|
216
223
|
export { collapse_default };
|
|
217
|
-
//# sourceMappingURL=chunk-
|
|
218
|
-
//# sourceMappingURL=chunk-
|
|
224
|
+
//# sourceMappingURL=chunk-35K7N4JT.js.map
|
|
225
|
+
//# sourceMappingURL=chunk-35K7N4JT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/collapse/index.tsx"],"names":[],"mappings":"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","file":"chunk-35K7N4JT.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { ChevronDown } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport type { CollapseProps } from './types'\n\nconst collapseVariants = cva(\n 'w-full border rounded-md transition-all overflow-hidden',\n {\n variants: {\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst collapseHeaderVariants = cva(\n 'w-full flex items-center justify-between cursor-pointer transition-colors font-medium',\n {\n variants: {\n size: {\n xs: 'px-2 py-1.5 text-xs',\n sm: 'px-3 py-2 text-sm',\n md: 'px-4 py-3 text-base',\n lg: 'px-5 py-4 text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n },\n },\n)\n\nconst collapseContentVariants = cva('transition-all', {\n variants: {\n size: {\n xs: 'px-2 pb-2 text-xs',\n sm: 'px-3 pb-3 text-sm',\n md: 'px-4 pb-4 text-base',\n lg: 'px-5 pb-5 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst colorStyles = {\n default: {\n default: 'border-border bg-background text-text-primary',\n solid: 'border-border bg-surface text-text-primary',\n soft: 'border-border bg-surface/50 text-text-primary',\n },\n primary: {\n default: 'border-primary bg-background text-text-primary',\n solid: 'border-primary bg-primary text-background',\n soft: 'border-primary/30 bg-primary/10 text-text-primary',\n },\n secondary: {\n default: 'border-secondary bg-background text-text-primary',\n solid: 'border-secondary bg-secondary text-background',\n soft: 'border-secondary/30 bg-secondary/10 text-text-primary',\n },\n accent: {\n default: 'border-accent bg-background text-text-primary',\n solid: 'border-accent bg-accent text-background',\n soft: 'border-accent/30 bg-accent/10 text-text-primary',\n },\n success: {\n default: 'border-success bg-background text-text-primary',\n solid: 'border-success bg-success text-background',\n soft: 'border-success/30 bg-success/10 text-text-primary',\n },\n error: {\n default: 'border-error bg-background text-text-primary',\n solid: 'border-error bg-error text-background',\n soft: 'border-error/30 bg-error/10 text-text-primary',\n },\n warning: {\n default: 'border-warning bg-background text-text-primary',\n solid: 'border-warning bg-warning text-background',\n soft: 'border-warning/30 bg-warning/10 text-text-primary',\n },\n info: {\n default: 'border-info bg-background text-text-primary',\n solid: 'border-info bg-info text-background',\n soft: 'border-info/30 bg-info/10 text-text-primary',\n },\n}\n\nconst headerColorStyles = {\n default: {\n default: 'text-text-primary hover:bg-surface',\n solid: 'text-text-primary hover:bg-surface/80',\n soft: 'text-text-primary hover:bg-surface/80',\n },\n primary: {\n default: 'text-primary hover:bg-primary/10',\n solid: 'hover:bg-primary/90',\n soft: 'text-primary hover:bg-primary/20',\n },\n secondary: {\n default: 'text-secondary hover:bg-secondary/10',\n solid: 'hover:bg-secondary/90',\n soft: 'text-secondary hover:bg-secondary/20',\n },\n accent: {\n default: 'text-accent hover:bg-accent/10',\n solid: 'hover:bg-accent/90',\n soft: 'text-accent hover:bg-accent/20',\n },\n success: {\n default: 'text-success hover:bg-success/10',\n solid: 'hover:bg-success/90',\n soft: 'text-success hover:bg-success/20',\n },\n error: {\n default: 'text-error hover:bg-error/10',\n solid: 'hover:bg-error/90',\n soft: 'text-error hover:bg-error/20',\n },\n warning: {\n default: 'text-warning hover:bg-warning/10',\n solid: 'hover:bg-warning/90',\n soft: 'text-warning hover:bg-warning/20',\n },\n info: {\n default: 'text-info hover:bg-info/10',\n solid: 'hover:bg-info/90',\n soft: 'text-info hover:bg-info/20',\n },\n}\n\nconst Collapse = React.memo<CollapseProps>(\n ({\n title,\n children,\n color = 'default',\n size = 'md',\n variant = 'default',\n defaultOpen = false,\n open: controlledOpen,\n onChange,\n disabled = false,\n className,\n ref,\n }) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen\n const contentId = React.useId()\n\n const handleToggle = () => {\n if (disabled) return\n\n const newOpen = !isOpen\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onChange?.(newOpen)\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n collapseVariants({ size }),\n colorStyles[color][variant],\n className,\n )}\n >\n <button\n type=\"button\"\n onClick={handleToggle}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-controls={contentId}\n className={cn(\n collapseHeaderVariants({ size, disabled }),\n headerColorStyles[color][variant],\n )}\n >\n <span>{title}</span>\n <ChevronDown\n className={cn(\n iconSizes[size],\n 'transition-transform duration-300 ease-out flex-shrink-0',\n isOpen && 'rotate-180',\n )}\n />\n </button>\n <div\n id={contentId}\n role=\"region\"\n className={cn(\n 'grid transition-[grid-template-rows] duration-300 ease-out',\n isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div className={collapseContentVariants({ size })}>{children}</div>\n </div>\n </div>\n </div>\n )\n },\n)\n\nCollapse.displayName = 'Collapse'\n\nexport type * from './types'\nexport default Collapse\n"]}
|