@etus/ui 0.4.0-beta.7 → 0.4.0-beta.8
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/{chunk-2Y7PQ6ZL.js → chunk-237TQKWH.js} +4 -4
- package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-237TQKWH.js.map} +1 -1
- package/dist/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
- package/dist/chunk-2FJJOHHH.js.map +1 -0
- package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
- package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
- package/dist/chunk-2Z722V5K.js +231 -0
- package/dist/chunk-2Z722V5K.js.map +1 -0
- package/dist/chunk-37IIHQP4.js +233 -0
- package/dist/chunk-37IIHQP4.js.map +1 -0
- package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
- package/dist/chunk-3JCV72FO.js.map +1 -0
- package/dist/{chunk-FCT6FEEZ.js → chunk-43BS3PPX.js} +5 -5
- package/dist/{chunk-FCT6FEEZ.js.map → chunk-43BS3PPX.js.map} +1 -1
- package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
- package/dist/chunk-45D4O7RK.js.map +1 -0
- package/dist/{chunk-OTSK2KAI.js → chunk-4EYYCHLD.js} +5 -5
- package/dist/{chunk-OTSK2KAI.js.map → chunk-4EYYCHLD.js.map} +1 -1
- package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
- package/dist/chunk-5I7AXWJU.js.map +1 -0
- package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
- package/dist/chunk-5SUD32RK.js.map +1 -0
- package/dist/{chunk-23BHD62H.js → chunk-5TZDEGZN.js} +4 -4
- package/dist/chunk-5TZDEGZN.js.map +1 -0
- package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
- package/dist/chunk-6DN2UAIR.js.map +1 -0
- package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
- package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
- package/dist/{chunk-36XTKR3B.js → chunk-BMNCNBPA.js} +3 -3
- package/dist/{chunk-36XTKR3B.js.map → chunk-BMNCNBPA.js.map} +1 -1
- package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
- package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
- package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
- package/dist/chunk-DCUFQJYP.js.map +1 -0
- package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
- package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
- package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
- package/dist/chunk-G2MAGZHQ.js.map +1 -0
- package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
- package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
- package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
- package/dist/chunk-HI3T55XK.js.map +1 -0
- package/dist/chunk-HJ4E6YPW.js +236 -0
- package/dist/chunk-HJ4E6YPW.js.map +1 -0
- package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
- package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
- package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
- package/dist/chunk-IOWHM7ZY.js.map +1 -0
- package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
- package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
- package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
- package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
- package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
- package/dist/chunk-KVJOKWP4.js.map +1 -0
- package/dist/{chunk-KC6CHPT3.js → chunk-KZRTQF64.js} +3 -3
- package/dist/{chunk-KC6CHPT3.js.map → chunk-KZRTQF64.js.map} +1 -1
- package/dist/{chunk-QIETN4UU.js → chunk-LEAK22ZP.js} +3 -3
- package/dist/{chunk-QIETN4UU.js.map → chunk-LEAK22ZP.js.map} +1 -1
- package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
- package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
- package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
- package/dist/chunk-M7TPROVH.js.map +1 -0
- package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
- package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
- package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
- package/dist/chunk-O7AUE5GP.js.map +1 -0
- package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
- package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
- package/dist/{chunk-V7XHE25E.js → chunk-ON7WFRYH.js} +3 -3
- package/dist/{chunk-V7XHE25E.js.map → chunk-ON7WFRYH.js.map} +1 -1
- package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
- package/dist/chunk-OXDWUKGP.js.map +1 -0
- package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
- package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
- package/dist/{chunk-6ELVWWIA.js → chunk-QZWKXUZP.js} +3 -3
- package/dist/{chunk-6ELVWWIA.js.map → chunk-QZWKXUZP.js.map} +1 -1
- package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
- package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
- package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
- package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
- package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
- package/dist/chunk-S7TVRVRU.js.map +1 -0
- package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
- package/dist/chunk-UDY3IDCY.js.map +1 -0
- package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
- package/dist/chunk-UPYT2XM5.js.map +1 -0
- package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
- package/dist/chunk-VAVE4ZJF.js.map +1 -0
- package/dist/chunk-WKWLKGNI.js +643 -0
- package/dist/chunk-WKWLKGNI.js.map +1 -0
- package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
- package/dist/chunk-X253YD45.js.map +1 -0
- package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
- package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
- package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
- package/dist/chunk-XAIUZJOJ.js.map +1 -0
- package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
- package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
- package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
- package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
- package/dist/chunk-XYYOV5GW.js +186 -0
- package/dist/chunk-XYYOV5GW.js.map +1 -0
- package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
- package/dist/chunk-YACIRNVP.js.map +1 -0
- package/dist/{chunk-JKYB5QAP.js → chunk-YDZBLZVZ.js} +3 -3
- package/dist/{chunk-JKYB5QAP.js.map → chunk-YDZBLZVZ.js.map} +1 -1
- package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
- package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
- package/dist/{chunk-AUCDXPWH.js → chunk-YQX7XZES.js} +4 -4
- package/dist/{chunk-AUCDXPWH.js.map → chunk-YQX7XZES.js.map} +1 -1
- package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
- package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
- package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
- package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +4 -4
- package/dist/components/advanced/Command/index.js +1 -1
- package/dist/components/advanced/EventCalendar/index.js +4 -4
- package/dist/components/advanced/FileDropzone/index.js +1 -1
- package/dist/components/advanced/FilterBuilder/index.js +4 -4
- package/dist/components/advanced/MarkdownEditor/index.js +2 -2
- package/dist/components/advanced/RichTextEditor/index.js +2 -2
- package/dist/components/advanced/index.js +16 -16
- package/dist/components/data-display/AreaChart/index.js +1 -1
- package/dist/components/data-display/BarChart/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +4 -4
- package/dist/components/data-display/ChartCard/index.js +2 -2
- package/dist/components/data-display/DashboardFilterbar/index.js +5 -5
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +4 -4
- package/dist/components/data-display/DataTable/index.js +7 -7
- package/dist/components/data-display/ImageGallery/index.js +7 -7
- package/dist/components/data-display/KPICard/index.js +4 -4
- package/dist/components/data-display/Lightbox/index.js +1 -1
- package/dist/components/data-display/LineChart/index.js +1 -1
- package/dist/components/data-display/List/index.js +2 -2
- package/dist/components/data-display/Table/index.js +1 -1
- package/dist/components/data-display/VirtualTable/index.js +2 -2
- package/dist/components/data-display/index.js +35 -35
- package/dist/components/feedback/Alert/index.js +1 -1
- package/dist/components/feedback/AlertDialog/index.js +4 -4
- package/dist/components/feedback/ConfirmModal/index.js +5 -5
- package/dist/components/feedback/Modal/index.js +1 -1
- package/dist/components/feedback/index.js +9 -9
- package/dist/components/forms/ColorPicker/index.js +1 -1
- package/dist/components/forms/DatePicker/index.js +5 -5
- package/dist/components/forms/DateRangePicker/index.js +5 -5
- package/dist/components/forms/IftaLabel/index.js +1 -1
- package/dist/components/forms/InputGroup/index.js +4 -4
- package/dist/components/forms/InputOTPField/index.js +2 -2
- package/dist/components/forms/MultiSelect/index.js +2 -1
- package/dist/components/forms/RadioButton/index.js +1 -1
- package/dist/components/forms/Rating/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +2 -2
- package/dist/components/forms/ToggleGroup/index.js +1 -1
- package/dist/components/forms/index.js +28 -28
- package/dist/components/index.js +138 -138
- package/dist/components/layout/index.js +3 -3
- package/dist/components/navigation/AccountSwitch/index.js +3 -3
- package/dist/components/navigation/Drawer/index.js +1 -1
- package/dist/components/navigation/DropdownMenu/index.js +1 -1
- package/dist/components/navigation/Header/index.js +1 -1
- package/dist/components/navigation/MobileSidebar/index.js +4 -4
- package/dist/components/navigation/Pagination/index.js +4 -4
- package/dist/components/navigation/Sidebar/index.js +5 -5
- package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
- package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
- package/dist/components/navigation/index.js +15 -15
- package/dist/components/primitives/AspectRatio/index.js +1 -1
- package/dist/components/primitives/Badge/index.js +1 -1
- package/dist/components/primitives/Button/index.js +3 -3
- package/dist/components/primitives/ConfirmButton/index.js +5 -5
- package/dist/components/primitives/ProgressBar/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +2 -2
- package/dist/components/primitives/StatusIndicator/index.js +1 -1
- package/dist/components/primitives/Tag/index.js +1 -1
- package/dist/components/primitives/Toggle/index.js +1 -1
- package/dist/components/primitives/index.js +18 -18
- package/dist/components/workflow/ApprovalFlow/index.js +4 -4
- package/dist/components/workflow/CommentSystem/index.js +4 -4
- package/dist/components/workflow/Dashboard/index.js +4 -4
- package/dist/components/workflow/DashboardBuilder/index.js +4 -4
- package/dist/components/workflow/KanbanBoard/index.js +4 -4
- package/dist/components/workflow/ReportGenerator/index.js +4 -4
- package/dist/components/workflow/TaskStatus/index.js +2 -2
- package/dist/components/workflow/Wizard/index.js +4 -4
- package/dist/components/workflow/index.js +15 -15
- package/dist/index.d.ts +156 -50
- package/dist/index.js +140 -140
- package/dist/styles.css +23 -0
- package/package.json +2 -2
- package/dist/chunk-23BHD62H.js.map +0 -1
- package/dist/chunk-2UGDLAYC.js.map +0 -1
- package/dist/chunk-33JGPMUW.js.map +0 -1
- package/dist/chunk-3WOGOTOV.js.map +0 -1
- package/dist/chunk-4MQNDQ4O.js.map +0 -1
- package/dist/chunk-65YSTUD2.js.map +0 -1
- package/dist/chunk-FSMHI7DW.js.map +0 -1
- package/dist/chunk-GAP3OZR7.js +0 -223
- package/dist/chunk-GAP3OZR7.js.map +0 -1
- package/dist/chunk-HKXQLWGR.js.map +0 -1
- package/dist/chunk-IBVCSZCH.js.map +0 -1
- package/dist/chunk-ICAQYWCX.js +0 -153
- package/dist/chunk-ICAQYWCX.js.map +0 -1
- package/dist/chunk-IRKDMISK.js.map +0 -1
- package/dist/chunk-J62TFQHR.js.map +0 -1
- package/dist/chunk-KPNNSUXM.js.map +0 -1
- package/dist/chunk-KR3IVNQH.js.map +0 -1
- package/dist/chunk-OWIFNJXZ.js.map +0 -1
- package/dist/chunk-PLLJNHWU.js.map +0 -1
- package/dist/chunk-R4UOT76L.js.map +0 -1
- package/dist/chunk-SHS6EGWS.js +0 -226
- package/dist/chunk-SHS6EGWS.js.map +0 -1
- package/dist/chunk-TNROOKX3.js.map +0 -1
- package/dist/chunk-UFRMZ3M6.js.map +0 -1
- package/dist/chunk-VFALJSXB.js.map +0 -1
- package/dist/chunk-VPNFYQBL.js.map +0 -1
- package/dist/chunk-XD5LE64P.js +0 -311
- package/dist/chunk-XD5LE64P.js.map +0 -1
- package/dist/chunk-XV6NXXXP.js +0 -206
- package/dist/chunk-XV6NXXXP.js.map +0 -1
- package/dist/chunk-YWA63YN3.js.map +0 -1
- package/dist/chunk-Z3FL7LEK.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuShortcut } from './chunk-
|
|
1
|
+
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuShortcut } from './chunk-OXDWUKGP.js';
|
|
2
2
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
3
3
|
import { ChevronDown, LoaderCircle } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
@@ -6,14 +6,14 @@ import { cva } from 'class-variance-authority';
|
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
var splitButtonVariants = cva(
|
|
9
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:
|
|
9
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
10
10
|
{
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
13
|
-
default: "bg-primary text-primary-foreground hover:bg-primary
|
|
14
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary
|
|
15
|
-
destructive: "bg-destructive text-white hover:bg-destructive
|
|
16
|
-
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
13
|
+
default: "bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]",
|
|
14
|
+
primary: "bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]",
|
|
15
|
+
destructive: "bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
16
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
17
17
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
18
18
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
19
19
|
},
|
|
@@ -30,14 +30,14 @@ var splitButtonVariants = cva(
|
|
|
30
30
|
}
|
|
31
31
|
);
|
|
32
32
|
var splitButtonTriggerVariants = cva(
|
|
33
|
-
"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:
|
|
33
|
+
"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
34
34
|
{
|
|
35
35
|
variants: {
|
|
36
36
|
variant: {
|
|
37
|
-
default: "bg-primary text-primary-foreground hover:bg-primary
|
|
38
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary
|
|
39
|
-
destructive: "bg-destructive text-white hover:bg-destructive
|
|
40
|
-
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
37
|
+
default: "bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]",
|
|
38
|
+
primary: "bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]",
|
|
39
|
+
destructive: "bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
40
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-muted disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
41
41
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
42
42
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
43
43
|
},
|
|
@@ -170,5 +170,5 @@ function SplitButton({
|
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
export { SplitButton, splitButtonVariants };
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-5I7AXWJU.js.map
|
|
174
|
+
//# sourceMappingURL=chunk-5I7AXWJU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/SplitButton/SplitButton.variants.ts","../src/components/primitives/SplitButton/SplitButton.tsx"],"names":[],"mappings":"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","file":"chunk-5I7AXWJU.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Primary action button variants (left half of SplitButton).\n *\n * State colors follow Figma (DES-1306): solid hover tokens (`--primary-hover` /\n * `--destructive-hover`) instead of opacity, and a solid disabled triplet\n * (`--disabled-background` / `-foreground` / `-border`) instead of `opacity-50`.\n */\nexport const splitButtonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--button-size-default-px)] py-[var(--button-size-default-py)]\",\n sm: \"h-[var(--button-size-sm-h)] gap-[var(--button-size-sm-gap)] px-[var(--button-size-sm-px)]\",\n lg: \"h-[var(--button-size-lg-h)] px-[var(--button-size-lg-px)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Trigger button variants (right half of SplitButton — icon-only chevron).\n *\n * Adds the Figma `Status=Open` visual (DES-1306 item 2): the outline trigger\n * gets `bg-muted` while the dropdown is open (`data-state=open` from Radix).\n */\nexport const splitButtonTriggerVariants = cva(\n \"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-muted disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--split-button-trigger-padding-x)]\",\n sm: \"h-[var(--button-size-sm-h)] px-1.5\",\n lg: \"h-[var(--button-size-lg-h)] px-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport type SplitButtonVariantProps = VariantProps<typeof splitButtonVariants>\nexport type SplitButtonTriggerVariantProps = VariantProps<\n typeof splitButtonTriggerVariants\n>\n","\"use client\"\n\nimport type {\n SplitButtonEventPayload,\n SplitButtonMenuItem,\n SplitButtonProps,\n} from \"./SplitButton.types\"\n\nimport { ChevronDown, LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n splitButtonVariants,\n splitButtonTriggerVariants as triggerVariants,\n} from \"./SplitButton.variants\"\n\nfunction SplitButton({\n className,\n variant,\n size,\n children,\n onClick,\n menuItems,\n loading = false,\n loadingText,\n disabled,\n leftIcon,\n \"data-id\": dataId,\n triggerAriaLabel = \"Open menu\",\n defaultOpen,\n open,\n onOpenChange,\n ...props\n}: SplitButtonProps) {\n const isDisabled = disabled ?? loading\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): SplitButtonEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isLoading: loading,\n }), [dataId, loading])\n\n // Wrapped event handler that emits SplitButtonEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine what to render as primary button content\n const renderPrimaryContent = () => {\n if (loading) {\n return (\n <>\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin\"\n data-slot=\"loading-icon\"\n />\n {loadingText ?? children}\n </>\n )\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n </>\n )\n }\n\n // Render a single menu item\n const renderMenuItem = (item: SplitButtonMenuItem, index: number) => {\n // Guard onClick - don't call if item is disabled\n const handleItemClick = item.disabled ? undefined : item.onClick\n\n return (\n <DropdownMenuItem\n key={index}\n {...(handleItemClick ? { onClick: handleItemClick } : {})}\n disabled={item.disabled ?? false}\n variant={item.variant ?? \"default\"}\n >\n {item.icon}\n <span>{item.label}</span>\n {item.shortcut && (\n <DropdownMenuShortcut>{item.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuItem>\n )\n }\n\n // Divider class for visual separation between buttons\n const dividerClass =\n variant === \"outline\" || variant === \"ghost\"\n ? \"border-l border-border\"\n : \"border-l border-current/20\"\n\n return (\n <div\n className={cn(\"inline-flex\", className)}\n data-id={dataId}\n data-slot=\"split-button\"\n {...props}\n >\n {/* Primary action button */}\n <button\n className={cn(\n splitButtonVariants({ variant, size }),\n \"rounded-l-[var(--button-radius-default)] rounded-r-none\"\n )}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"split-button-primary\"\n disabled={isDisabled}\n type=\"button\"\n onClick={handleClick}\n >\n {renderPrimaryContent()}\n </button>\n\n {/* Dropdown trigger button */}\n <DropdownMenu defaultOpen={defaultOpen} open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n triggerVariants({ variant, size }),\n \"rounded-r-[var(--button-radius-default)] rounded-l-none\",\n dividerClass\n )}\n aria-disabled={isDisabled || undefined}\n aria-label={triggerAriaLabel}\n data-slot=\"split-button-trigger\"\n disabled={isDisabled}\n type=\"button\"\n >\n <ChevronDown className=\"size-4\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {menuItems.map(renderMenuItem)}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport { SplitButton, splitButtonVariants }\n"]}
|
|
@@ -20,7 +20,7 @@ var tableContainerVariants = cva(
|
|
|
20
20
|
);
|
|
21
21
|
var tableVariants = cva(
|
|
22
22
|
// Base styles (always applied)
|
|
23
|
-
"w-full caption-bottom text-
|
|
23
|
+
"w-full caption-bottom text-[length:var(--table-cell-text)]",
|
|
24
24
|
{
|
|
25
25
|
variants: {
|
|
26
26
|
density: {
|
|
@@ -65,11 +65,11 @@ var tableHeadVariants = cva(
|
|
|
65
65
|
{
|
|
66
66
|
variants: {
|
|
67
67
|
sortable: {
|
|
68
|
-
true: "cursor-pointer select-none hover:bg-
|
|
68
|
+
true: "cursor-pointer select-none hover:bg-[color:var(--table-row-hover)]",
|
|
69
69
|
false: ""
|
|
70
70
|
},
|
|
71
71
|
sticky: {
|
|
72
|
-
true: "sticky top-0 bg-background z-10",
|
|
72
|
+
true: "sticky top-0 bg-[color:var(--background)] z-10",
|
|
73
73
|
false: ""
|
|
74
74
|
}
|
|
75
75
|
},
|
|
@@ -95,17 +95,26 @@ var tableCellVariants = cva(
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
);
|
|
98
|
-
function Table({
|
|
98
|
+
function Table({
|
|
99
|
+
className,
|
|
100
|
+
ref,
|
|
101
|
+
bordered,
|
|
102
|
+
density,
|
|
103
|
+
...props
|
|
104
|
+
}) {
|
|
99
105
|
return /* @__PURE__ */ jsx(
|
|
100
106
|
"div",
|
|
101
107
|
{
|
|
102
|
-
className: cn(
|
|
108
|
+
className: cn(
|
|
109
|
+
tableContainerVariants({ bordered }),
|
|
110
|
+
"w-full overflow-x-auto"
|
|
111
|
+
),
|
|
103
112
|
"data-slot": "table-container",
|
|
104
113
|
children: /* @__PURE__ */ jsx(
|
|
105
114
|
"table",
|
|
106
115
|
{
|
|
107
116
|
ref,
|
|
108
|
-
className: cn(tableVariants(), className),
|
|
117
|
+
className: cn(tableVariants({ density }), className),
|
|
109
118
|
"data-slot": "table",
|
|
110
119
|
...props
|
|
111
120
|
}
|
|
@@ -146,39 +155,60 @@ function TableFooter({ className, ...props }) {
|
|
|
146
155
|
}
|
|
147
156
|
);
|
|
148
157
|
}
|
|
149
|
-
function TableRow({
|
|
158
|
+
function TableRow({
|
|
159
|
+
className,
|
|
160
|
+
hoverable,
|
|
161
|
+
selected,
|
|
162
|
+
striped,
|
|
163
|
+
...props
|
|
164
|
+
}) {
|
|
150
165
|
return /* @__PURE__ */ jsx(
|
|
151
166
|
"tr",
|
|
152
167
|
{
|
|
153
168
|
className: cn(
|
|
154
|
-
tableRowVariants(),
|
|
169
|
+
tableRowVariants({ hoverable, selected, striped }),
|
|
155
170
|
className
|
|
156
171
|
),
|
|
157
172
|
"data-slot": "table-row",
|
|
173
|
+
"data-state": selected ? "selected" : void 0,
|
|
158
174
|
...props
|
|
159
175
|
}
|
|
160
176
|
);
|
|
161
177
|
}
|
|
162
|
-
|
|
178
|
+
var ariaSortMap = {
|
|
179
|
+
asc: "ascending",
|
|
180
|
+
desc: "descending",
|
|
181
|
+
none: "none"
|
|
182
|
+
};
|
|
183
|
+
function TableHead({
|
|
184
|
+
className,
|
|
185
|
+
scope = "col",
|
|
186
|
+
sortable,
|
|
187
|
+
sticky,
|
|
188
|
+
sortDirection,
|
|
189
|
+
...props
|
|
190
|
+
}) {
|
|
163
191
|
return /* @__PURE__ */ jsx(
|
|
164
192
|
"th",
|
|
165
193
|
{
|
|
166
194
|
className: cn(
|
|
167
|
-
tableHeadVariants(),
|
|
195
|
+
tableHeadVariants({ sortable, sticky }),
|
|
168
196
|
"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
169
197
|
className
|
|
170
198
|
),
|
|
199
|
+
"aria-sort": sortDirection ? ariaSortMap[sortDirection] : void 0,
|
|
171
200
|
"data-slot": "table-head",
|
|
201
|
+
scope,
|
|
172
202
|
...props
|
|
173
203
|
}
|
|
174
204
|
);
|
|
175
205
|
}
|
|
176
|
-
function TableCell({ className, ...props }) {
|
|
206
|
+
function TableCell({ className, align, ...props }) {
|
|
177
207
|
return /* @__PURE__ */ jsx(
|
|
178
208
|
"td",
|
|
179
209
|
{
|
|
180
210
|
className: cn(
|
|
181
|
-
tableCellVariants(),
|
|
211
|
+
tableCellVariants({ align }),
|
|
182
212
|
"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
183
213
|
className
|
|
184
214
|
),
|
|
@@ -202,5 +232,5 @@ function TableCaption({
|
|
|
202
232
|
}
|
|
203
233
|
|
|
204
234
|
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
|
|
205
|
-
//# sourceMappingURL=chunk-
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
235
|
+
//# sourceMappingURL=chunk-5SUD32RK.js.map
|
|
236
|
+
//# sourceMappingURL=chunk-5SUD32RK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Table/Table.variants.ts","../src/components/data-display/Table/Table.tsx"],"names":[],"mappings":"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","file":"chunk-5SUD32RK.js","sourcesContent":["// Table/Table.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Table container style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const tableContainerVariants = cva(\n // Base styles (always applied)\n \"relative w-full overflow-x-auto\",\n {\n variants: {\n bordered: {\n true: \"rounded-md border\",\n false: \"\",\n },\n },\n defaultVariants: {\n bordered: false,\n },\n }\n)\n\n/**\n * Table style variants\n */\nexport const tableVariants = cva(\n // Base styles (always applied)\n \"w-full caption-bottom text-[length:var(--table-cell-text)]\",\n {\n variants: {\n density: {\n compact: \"[&_td]:py-[var(--table-cell-padding-compact-y)] [&_th]:py-[var(--table-cell-padding-compact-y)]\",\n default: \"[&_td]:py-[var(--table-cell-padding-default-y)] [&_th]:py-[var(--table-cell-padding-default-y)]\",\n comfortable: \"[&_td]:py-[var(--table-cell-padding-comfortable-y)] [&_th]:py-[var(--table-cell-padding-comfortable-y)]\",\n },\n },\n defaultVariants: {\n density: \"default\",\n },\n }\n)\n\n/**\n * Table row style variants\n */\nexport const tableRowVariants = cva(\n // Base styles (always applied)\n \"border-b border-[color:var(--table-row-border)] transition-colors\",\n {\n variants: {\n hoverable: {\n true: \"hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n selected: {\n true: \"bg-[color:var(--table-row-selected)]\",\n false: \"\",\n },\n striped: {\n true: \"even:bg-[color:var(--table-row-striped)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n hoverable: true,\n selected: false,\n striped: false,\n },\n }\n)\n\n/**\n * Table header cell style variants\n */\nexport const tableHeadVariants = cva(\n // Base styles (always applied)\n \"text-[length:var(--text-size-sm-font-size)] h-[var(--table-header-height)] px-[var(--table-header-padding-x)] text-left align-middle font-medium text-[color:var(--table-header-fg)] whitespace-nowrap\",\n {\n variants: {\n sortable: {\n true: \"cursor-pointer select-none hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n sticky: {\n true: \"sticky top-0 bg-[color:var(--background)] z-10\",\n false: \"\",\n },\n },\n defaultVariants: {\n sortable: false,\n sticky: false,\n },\n }\n)\n\n/**\n * Table cell style variants\n */\nexport const tableCellVariants = cva(\n // Base styles (always applied)\n \"px-[var(--table-cell-padding-x)] align-middle whitespace-nowrap text-[length:var(--table-cell-text)]\",\n {\n variants: {\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n },\n defaultVariants: {\n align: \"left\",\n },\n }\n)\n\n// Export variant prop types\nexport type TableContainerVariantProps = VariantProps<typeof tableContainerVariants>\nexport type TableVariantProps = VariantProps<typeof tableVariants>\nexport type TableRowVariantProps = VariantProps<typeof tableRowVariants>\nexport type TableHeadVariantProps = VariantProps<typeof tableHeadVariants>\nexport type TableCellVariantProps = VariantProps<typeof tableCellVariants>\n","import type { TableSortDirection } from \"./Table.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type TableCellVariantProps,\n tableCellVariants,\n type TableContainerVariantProps,\n tableContainerVariants,\n type TableHeadVariantProps,\n tableHeadVariants,\n type TableRowVariantProps,\n tableRowVariants,\n type TableVariantProps,\n tableVariants,\n} from \"./Table.variants\"\n\ntype TableProps = React.ComponentProps<\"table\"> &\n TableContainerVariantProps &\n TableVariantProps\n\nfunction Table({\n className,\n ref,\n bordered,\n density,\n ...props\n}: TableProps) {\n return (\n <div\n className={cn(\n tableContainerVariants({ bordered }),\n \"w-full overflow-x-auto\"\n )}\n data-slot=\"table-container\"\n >\n <table\n ref={ref}\n className={cn(tableVariants({ density }), className)}\n data-slot=\"table\"\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n className={cn(\"[&_tr]:border-b\", className)}\n data-slot=\"table-header\"\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n data-slot=\"table-body\"\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n className={cn(\n \"bg-[color:var(--table-footer-bg)] border-[color:var(--table-footer-border)] border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n data-slot=\"table-footer\"\n {...props}\n />\n )\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & TableRowVariantProps\n\nfunction TableRow({\n className,\n hoverable,\n selected,\n striped,\n ...props\n}: TableRowProps) {\n return (\n <tr\n className={cn(\n tableRowVariants({ hoverable, selected, striped }),\n className\n )}\n data-slot=\"table-row\"\n data-state={selected ? \"selected\" : undefined}\n {...props}\n />\n )\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> &\n TableHeadVariantProps & {\n /** Drives the `aria-sort` attribute when the column is sorted. */\n sortDirection?: TableSortDirection\n }\n\nconst ariaSortMap: Record<TableSortDirection, \"ascending\" | \"descending\" | \"none\"> = {\n asc: \"ascending\",\n desc: \"descending\",\n none: \"none\",\n}\n\nfunction TableHead({\n className,\n scope = \"col\",\n sortable,\n sticky,\n sortDirection,\n ...props\n}: TableHeadProps) {\n return (\n <th\n className={cn(\n tableHeadVariants({ sortable, sticky }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n aria-sort={sortDirection ? ariaSortMap[sortDirection] : undefined}\n data-slot=\"table-head\"\n scope={scope}\n {...props}\n />\n )\n}\n\ntype TableCellProps = Omit<React.ComponentProps<\"td\">, \"align\"> &\n TableCellVariantProps\n\nfunction TableCell({ className, align, ...props }: TableCellProps) {\n return (\n <td\n className={cn(\n tableCellVariants({ align }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n data-slot=\"table-cell\"\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n className={cn(\"text-[color:var(--table-caption-fg)] mt-[var(--table-caption-margin-top)] text-[length:var(--table-caption-text)]\", className)}\n data-slot=\"table-caption\"\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n}\n"]}
|
|
@@ -22,7 +22,7 @@ var ratingVariants = cva(
|
|
|
22
22
|
var ratingItemVariants = cva(
|
|
23
23
|
[
|
|
24
24
|
"inline-flex items-center justify-center transition-colors",
|
|
25
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 rounded-sm"
|
|
25
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--rating-focus-ring-color)] focus-visible:ring-offset-1 rounded-sm"
|
|
26
26
|
],
|
|
27
27
|
{
|
|
28
28
|
variants: {
|
|
@@ -78,7 +78,7 @@ function RatingItem({
|
|
|
78
78
|
}
|
|
79
79
|
if (filled === "half") {
|
|
80
80
|
return halfIcon ?? /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
|
|
81
|
-
/* @__PURE__ */ jsx(Star, { className: "fill-
|
|
81
|
+
/* @__PURE__ */ jsx(Star, { className: "fill-[var(--rating-icon-color-empty)] stroke-[var(--rating-icon-color-empty)]" }),
|
|
82
82
|
/* @__PURE__ */ jsx(StarHalf, { className: "absolute inset-0 fill-current" })
|
|
83
83
|
] });
|
|
84
84
|
}
|
|
@@ -284,5 +284,5 @@ function Rating({
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
export { Rating, ratingItemVariants, ratingVariants };
|
|
287
|
-
//# sourceMappingURL=chunk-
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
287
|
+
//# sourceMappingURL=chunk-5TZDEGZN.js.map
|
|
288
|
+
//# sourceMappingURL=chunk-5TZDEGZN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/Rating/Rating.variants.ts","../src/components/forms/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-5TZDEGZN.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const ratingVariants = cva(\n \"inline-flex items-center gap-[var(--rating-item-gap)]\",\n {\n variants: {\n size: {\n sm: \"[&_svg]:size-[var(--rating-icon-size-sm)]\",\n md: \"[&_svg]:size-[var(--rating-icon-size-md)]\",\n lg: \"[&_svg]:size-[var(--rating-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const ratingItemVariants = cva(\n [\n \"inline-flex items-center justify-center transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--rating-focus-ring-color)] focus-visible:ring-offset-1 rounded-sm\",\n ],\n {\n variants: {\n filled: {\n empty: \"text-[color:var(--rating-icon-color-empty)]\",\n half: \"text-[color:var(--rating-icon-color-filled)]\",\n full: \"text-[color:var(--rating-icon-color-filled)]\",\n },\n disabled: {\n true: \"cursor-not-allowed opacity-50\",\n false: \"\",\n },\n readOnly: {\n true: \"cursor-default\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n disabled: false,\n readOnly: false,\n className: \"cursor-pointer hover:scale-110 hover:text-[color:var(--rating-icon-color-filled)]\",\n },\n ],\n defaultVariants: {\n filled: \"empty\",\n disabled: false,\n readOnly: false,\n },\n }\n)\n\nexport type RatingVariantProps = VariantProps<typeof ratingVariants>\nexport type RatingItemVariantProps = VariantProps<typeof ratingItemVariants>\n","\"use client\"\n\nimport type { RatingItemProps, RatingProps } from \"./Rating.types\"\n\nimport { Star, StarHalf } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ratingItemVariants, ratingVariants } from \"./Rating.variants\"\n\nfunction RatingItem({\n index,\n filled,\n size: _size,\n disabled,\n readOnly,\n emptyIcon,\n filledIcon,\n halfIcon,\n onClick,\n onHover,\n onLeave,\n onKeyDown,\n isActive,\n tabIndex,\n label,\n}: RatingItemProps & { label: string }) {\n const isInteractive = !disabled && !readOnly\n\n const renderIcon = () => {\n if (filled === \"full\") {\n return filledIcon ?? <Star className=\"fill-current\" />\n }\n if (filled === \"half\") {\n return halfIcon ?? (\n <span className=\"relative inline-flex\">\n <Star className=\"fill-[var(--rating-icon-color-empty)] stroke-[var(--rating-icon-color-empty)]\" />\n <StarHalf className=\"absolute inset-0 fill-current\" />\n </span>\n )\n }\n return emptyIcon ?? <Star />\n }\n\n return (\n <span\n className={cn(\n ratingItemVariants({\n filled,\n disabled,\n readOnly,\n })\n )}\n aria-checked={filled !== \"empty\"}\n aria-label={label}\n data-active={isActive}\n data-filled={filled}\n data-index={index}\n data-slot=\"rating-item\"\n role=\"radio\"\n tabIndex={tabIndex}\n onClick={isInteractive ? onClick : undefined}\n onKeyDown={isInteractive ? onKeyDown : undefined}\n onMouseEnter={isInteractive ? onHover : undefined}\n onMouseLeave={isInteractive ? onLeave : undefined}\n >\n {renderIcon()}\n </span>\n )\n}\n\nfunction Rating({\n className,\n value: controlledValue,\n defaultValue = 0,\n max = 5,\n size = \"md\",\n allowHalf = false,\n readOnly = false,\n disabled = false,\n emptyIcon,\n filledIcon,\n halfIcon,\n onChange,\n onHover,\n name,\n ...props\n}: RatingProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [hoverValue, setHoverValue] = React.useState<null | number>(null)\n const [focusedIndex, setFocusedIndex] = React.useState<null | number>(null)\n\n const isControlled = controlledValue !== undefined\n const currentValue = isControlled ? controlledValue : internalValue\n const displayValue = hoverValue ?? currentValue\n\n const isInteractive = !disabled && !readOnly\n\n const handleClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = allowHalf ? index + 0.5 : index + 1\n // If clicking the same value, toggle to 0\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleFullClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = index + 1\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleHover = (index: number) => {\n if (!isInteractive) return\n\n const hoverVal = allowHalf ? index + 0.5 : index + 1\n setHoverValue(hoverVal)\n onHover?.(hoverVal)\n }\n\n const handleLeave = () => {\n if (!isInteractive) return\n\n setHoverValue(null)\n onHover?.(null)\n }\n\n // Helper to focus an item by index (avoids effect anti-pattern)\n const focusItemByIndex = (index: number) => {\n const item = document.querySelector<HTMLElement>(\n `[data-slot=\"rating-item\"][data-index=\"${String(index)}\"]`\n )\n item?.focus()\n setFocusedIndex(index)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent, _index: number) => {\n if (!isInteractive) return\n\n const step = allowHalf ? 0.5 : 1\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowUp\": {\n event.preventDefault()\n const newValue = Math.min(currentValue + step, max)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.ceil(newValue) - 1\n focusItemByIndex(Math.min(newIndex, max - 1))\n break\n }\n case \"ArrowLeft\":\n case \"ArrowDown\": {\n event.preventDefault()\n const newValue = Math.max(currentValue - step, 0)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.max(Math.ceil(newValue) - 1, 0)\n focusItemByIndex(newIndex)\n break\n }\n case \"Home\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(0)\n }\n onChange?.(0)\n focusItemByIndex(0)\n break\n }\n case \"End\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(max)\n }\n onChange?.(max)\n focusItemByIndex(max - 1)\n break\n }\n }\n }\n\n const getFilledState = (index: number): \"empty\" | \"full\" | \"half\" => {\n const itemValue = index + 1\n if (displayValue >= itemValue) {\n return \"full\"\n }\n if (allowHalf && displayValue >= index + 0.5) {\n return \"half\"\n }\n return \"empty\"\n }\n\n const items = Array.from({ length: max }, (_, index) => {\n const filled = getFilledState(index)\n const isActive = focusedIndex === index\n\n return (\n <RatingItem\n key={index}\n disabled={disabled}\n emptyIcon={emptyIcon}\n filled={filled}\n filledIcon={filledIcon}\n halfIcon={halfIcon}\n index={index}\n isActive={isActive}\n label={`${String(index + 1)} star${index + 1 === 1 ? \"\" : \"s\"}`}\n readOnly={readOnly}\n size={size}\n tabIndex={isInteractive && index === Math.max(Math.ceil(currentValue) - 1, 0) ? 0 : -1}\n onClick={() => { if (allowHalf) { handleFullClick(index); } else { handleClick(index); } }}\n onHover={() => { handleHover(index); }}\n onKeyDown={(e) => { handleKeyDown(e, index); }}\n onLeave={handleLeave}\n />\n )\n })\n\n return (\n <div\n aria-disabled={disabled}\n aria-label={props[\"aria-label\"] ?? \"Rating\"}\n aria-readonly={readOnly}\n className={cn(ratingVariants({ size }), className)}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n data-slot=\"rating\"\n role=\"radiogroup\"\n {...props}\n >\n {name && (\n <input name={name} type=\"hidden\" value={currentValue} />\n )}\n {items}\n </div>\n )\n}\n\nexport { Rating }\n"]}
|
|
@@ -36,7 +36,7 @@ var headerContainerVariants = cva(
|
|
|
36
36
|
{
|
|
37
37
|
variants: {
|
|
38
38
|
contained: {
|
|
39
|
-
true: "mx-auto max-w-
|
|
39
|
+
true: "mx-auto max-w-[var(--header-contained-max-width)]",
|
|
40
40
|
false: ""
|
|
41
41
|
},
|
|
42
42
|
layout: {
|
|
@@ -168,5 +168,5 @@ function HeaderActions({
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
export { Header, HeaderActions, HeaderBrand, HeaderNav, headerActionsVariants, headerBrandVariants, headerContainerVariants, headerNavVariants, headerVariants };
|
|
171
|
-
//# sourceMappingURL=chunk-
|
|
172
|
-
//# sourceMappingURL=chunk-
|
|
171
|
+
//# sourceMappingURL=chunk-6DN2UAIR.js.map
|
|
172
|
+
//# sourceMappingURL=chunk-6DN2UAIR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/Header/Header.variants.ts","../src/components/navigation/Header/Header.tsx"],"names":[],"mappings":"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","file":"chunk-6DN2UAIR.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Header root variant styles\n *\n * Height follows the Figma auto-layout model (DES-1271): the root has a min\n * height of `--header-height` (64px — a logo-only header) and hugs to 76px\n * when a HeaderNav/HeaderActions row is present, because that row enforces\n * `--header-content-height` (36px) and the container adds `--header-root-padding-y`\n * (20px × 2). There is no `size` prop — the Figma component has no size axis.\n */\nexport const headerVariants = cva(\n [\n // Base styles\n \"flex w-full items-center\",\n // Figma height model — min 64px (logo-only), hugs to 76px with nav/actions\n \"min-h-[var(--header-height)]\",\n // Transition\n \"transition-colors\",\n ],\n {\n variants: {\n variant: {\n default:\n \"bg-[color:var(--header-root-bg)] border-b border-[color:var(--header-root-border-color)]\",\n transparent: \"bg-transparent\",\n floating:\n \"bg-[color:var(--header-root-bg)]/80 backdrop-blur-sm border-b border-[color:var(--header-root-border-color)]/50 shadow-sm\",\n },\n sticky: {\n true: \"sticky top-0 z-[var(--header-sticky-z-index)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n sticky: false,\n },\n }\n)\n\n/**\n * Header container variant styles (inner wrapper)\n */\nexport const headerContainerVariants = cva(\n [\n \"flex w-full items-center gap-4 px-[var(--header-root-padding-x)] py-[var(--header-root-padding-y)]\",\n ],\n {\n variants: {\n contained: {\n true: \"mx-auto max-w-[var(--header-contained-max-width)]\",\n false: \"\",\n },\n layout: {\n // Brand left, Nav middle, Actions right (default)\n default: \"justify-between\",\n // Brand center; Nav and Actions on sides if provided\n \"logo-centered\":\n \"justify-center [&>[data-slot=header-brand]]:order-2 [&>[data-slot=header-nav]]:order-1 [&>[data-slot=header-actions]]:order-3 [&>[data-slot=header-nav]]:flex-1 [&>[data-slot=header-actions]]:flex-1\",\n // Nav left, Brand right (mirror of default)\n \"links-left\":\n \"justify-between [&>[data-slot=header-brand]]:order-2 [&>[data-slot=header-nav]]:order-1 [&>[data-slot=header-actions]]:order-3\",\n // Brand + Nav clustered center, Actions right\n centered:\n \"[&>[data-slot=header-brand]]:flex-none [&>[data-slot=header-nav]]:flex-1 [&>[data-slot=header-nav]]:justify-center [&>[data-slot=header-actions]]:flex-none [&>[data-slot=header-actions]]:ml-auto\",\n },\n },\n defaultVariants: {\n contained: false,\n layout: \"default\",\n },\n }\n)\n\n/**\n * HeaderBrand variant styles\n */\nexport const headerBrandVariants = cva([\n \"flex shrink-0 items-center gap-2\",\n])\n\n/**\n * HeaderNav variant styles\n *\n * Enforces the Figma nav-row height (`--header-content-height` 36px) so a\n * header with navigation hugs to 76px regardless of whether the links are\n * plain text or buttons.\n */\nexport const headerNavVariants = cva([\n \"hidden md:flex items-center gap-1 min-h-[var(--header-content-height)]\",\n])\n\n/**\n * HeaderActions variant styles\n *\n * Enforces the Figma action-row height (`--header-content-height` 36px) so a\n * header with actions (e.g. the Mobile layout: logo + icons) hugs to 76px.\n */\nexport const headerActionsVariants = cva(\n [\n \"flex items-center gap-2 min-h-[var(--header-content-height)]\",\n ],\n {\n variants: {\n align: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n },\n },\n defaultVariants: {\n align: \"end\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n HeaderActionsProps,\n HeaderBrandProps,\n HeaderNavProps,\n HeaderProps,\n} from \"./Header.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n headerActionsVariants,\n headerBrandVariants,\n headerContainerVariants,\n headerNavVariants,\n headerVariants,\n} from \"./Header.variants\"\n\n/**\n * Header - A responsive header component for site navigation.\n *\n * Supports multiple visual variants, Figma layouts, and sticky positioning.\n * Height follows the Figma model: 64px for a logo-only header, 76px once a\n * HeaderNav/HeaderActions row is present (content-driven, no `size` prop).\n *\n * @example\n * <Header variant=\"default\" sticky>\n * <HeaderBrand asLink href=\"/\">Logo</HeaderBrand>\n * <HeaderNav>\n * <a href=\"/about\">About</a>\n * <a href=\"/contact\">Contact</a>\n * </HeaderNav>\n * <HeaderActions>\n * <Button>Sign In</Button>\n * </HeaderActions>\n * </Header>\n */\nfunction Header({\n className,\n variant = \"default\",\n sticky = false,\n contained = false,\n layout = \"default\",\n containerClassName,\n children,\n ...props\n}: HeaderProps) {\n return (\n <header\n className={cn(headerVariants({ variant, sticky }), className)}\n data-slot=\"header\"\n {...props}\n >\n <div\n className={cn(\n headerContainerVariants({ contained, layout }),\n containerClassName\n )}\n data-layout={layout}\n data-slot=\"header-container\"\n >\n {children}\n </div>\n </header>\n )\n}\n\n/**\n * HeaderBrand - Logo/brand area of the header.\n *\n * Can optionally render as a link when asLink is true.\n */\nfunction HeaderBrand({\n className,\n asLink = false,\n href = \"/\",\n children,\n ...props\n}: HeaderBrandProps) {\n if (asLink) {\n return (\n <a\n className={cn(headerBrandVariants(), className)}\n data-slot=\"header-brand\"\n href={href}\n {...(props as React.ComponentProps<\"a\">)}\n >\n {children}\n </a>\n )\n }\n\n return (\n <div\n className={cn(headerBrandVariants(), className)}\n data-slot=\"header-brand\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/**\n * HeaderNav - Navigation container for header links.\n */\nfunction HeaderNav({ className, children, ...props }: HeaderNavProps) {\n return (\n <nav\n className={cn(headerNavVariants(), className)}\n data-slot=\"header-nav\"\n {...props}\n >\n {children}\n </nav>\n )\n}\n\n/**\n * HeaderActions - Actions container for buttons/controls.\n */\nfunction HeaderActions({\n className,\n align = \"end\",\n children,\n ...props\n}: HeaderActionsProps) {\n return (\n <div\n className={cn(headerActionsVariants({ align }), className)}\n data-slot=\"header-actions\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport { Header, HeaderActions, HeaderBrand, HeaderNav }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Stepper } from './chunk-IFHF4UES.js';
|
|
2
|
-
import { Button } from './chunk-
|
|
2
|
+
import { Button } from './chunk-HDOR3SN3.js';
|
|
3
3
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
4
4
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -312,5 +312,5 @@ function Wizard({
|
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
export { Wizard, wizardActionsVariants, wizardContentVariants, wizardStepContentVariants, wizardStepperVariants, wizardVariants };
|
|
315
|
-
//# sourceMappingURL=chunk-
|
|
316
|
-
//# sourceMappingURL=chunk-
|
|
315
|
+
//# sourceMappingURL=chunk-7CTFBOD4.js.map
|
|
316
|
+
//# sourceMappingURL=chunk-7CTFBOD4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/workflow/Wizard/Wizard.variants.ts","../src/components/workflow/Wizard/Wizard.tsx"],"names":[],"mappings":"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","file":"chunk-EGYWK2XX.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Main wizard container variants\n */\nexport const wizardVariants = cva(\"flex gap-6\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"flex-col rounded-lg border border-border bg-card\",\n default: \"flex-col\",\n vertical: \"flex-row\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard content area variants\n */\nexport const wizardContentVariants = cva(\"flex-1\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"border-t border-border\",\n default: \"\",\n vertical: \"border-l border-border\",\n },\n size: {\n default: \"p-6\",\n lg: \"p-8\",\n sm: \"p-4\",\n },\n },\n})\n\n/**\n * Wizard stepper area variants\n */\nexport const wizardStepperVariants = cva(\"\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"p-6 pb-0\",\n default: \"\",\n vertical: \"min-w-48\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard actions area variants\n */\nexport const wizardActionsVariants = cva(\"flex items-center gap-3\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"justify-between border-t border-border p-6\",\n default: \"justify-between\",\n vertical: \"justify-end border-t border-border pt-4\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard step content wrapper variants\n */\nexport const wizardStepContentVariants = cva(\"\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n","import type { StepItem } from \"../Stepper\"\nimport type { WizardProps, WizardStep } from \"./Wizard.types\"\n\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport { Stepper } from \"../Stepper\"\nimport {\n wizardActionsVariants,\n wizardContentVariants,\n wizardStepperVariants,\n wizardVariants,\n} from \"./Wizard.variants\"\n\n/**\n * Convert WizardStep to StepItem for the Stepper component\n */\nfunction convertToStepItem(step: WizardStep, index: number, currentStep: number): StepItem {\n return {\n description: step.description,\n icon: step.icon,\n id: step.id,\n label: step.title,\n status: index < currentStep ? \"complete\" : index === currentStep ? \"active\" : \"pending\",\n }\n}\n\n/**\n * Wizard component guides users through a multi-step process.\n *\n * @example\n * ```tsx\n * const steps = [\n * { id: \"1\", title: \"Dados Pessoais\", content: <PersonalForm /> },\n * { id: \"2\", title: \"Endereço\", content: <AddressForm /> },\n * { id: \"3\", title: \"Conclusão\", content: <Summary /> },\n * ]\n *\n * <Wizard\n * steps={steps}\n * currentStep={0}\n * onStepChange={setStep}\n * onComplete={handleComplete}\n * />\n * ```\n */\nfunction Wizard({\n backLabel = \"Voltar\",\n canGoBack = true,\n canSkip = false,\n className,\n completeLabel = \"Completar\",\n currentStep = 0,\n isLoading = false,\n nextLabel = \"Próximo\",\n onComplete,\n onStepChange,\n onValidate,\n ref,\n showActions = true,\n showSteps = true,\n size = \"default\",\n skipLabel = \"Pular\",\n steps,\n variant = \"default\",\n ...props\n}: WizardProps) {\n const [isValidating, setIsValidating] = useState(false)\n const contentRef = useRef<HTMLDivElement>(null)\n const isLastStep = currentStep >= steps.length - 1\n const isFirstStep = currentStep === 0\n const currentStepData = steps[currentStep]\n\n // Convert steps for the Stepper component\n const stepperSteps: StepItem[] = steps.map((step, index) =>\n convertToStepItem(step, index, currentStep)\n )\n\n // Focus management - move focus to content when step changes\n useEffect(() => {\n if (contentRef.current) {\n contentRef.current.focus()\n }\n }, [currentStep])\n\n // Handle next step\n const handleNext = useCallback(async () => {\n if (isLoading || isValidating) return\n\n // Run step validation if provided\n if (currentStepData?.validate) {\n setIsValidating(true)\n try {\n const isValid = await currentStepData.validate()\n if (!isValid) {\n setIsValidating(false)\n return\n }\n } catch {\n setIsValidating(false)\n return\n }\n setIsValidating(false)\n }\n\n // Run onValidate callback if provided\n if (onValidate) {\n setIsValidating(true)\n try {\n const isValid = await Promise.resolve(onValidate(currentStep))\n if (!isValid) {\n setIsValidating(false)\n return\n }\n } catch {\n setIsValidating(false)\n return\n }\n setIsValidating(false)\n }\n\n if (isLastStep) {\n onComplete?.()\n } else {\n onStepChange?.(currentStep + 1)\n }\n }, [currentStep, currentStepData, isLastStep, isLoading, isValidating, onComplete, onStepChange, onValidate])\n\n // Handle back step\n const handleBack = useCallback(() => {\n if (isLoading || isValidating || !canGoBack || isFirstStep) return\n onStepChange?.(currentStep - 1)\n }, [canGoBack, currentStep, isFirstStep, isLoading, isValidating, onStepChange])\n\n // Handle skip step\n const handleSkip = useCallback(() => {\n if (isLoading || isValidating || !canSkip || isLastStep) return\n if (currentStepData?.optional) {\n onStepChange?.(currentStep + 1)\n }\n }, [canSkip, currentStep, currentStepData?.optional, isLastStep, isLoading, isValidating, onStepChange])\n\n // Handle step click from stepper\n const handleStepClick = useCallback(\n (stepIndex: number) => {\n if (isLoading || isValidating) return\n // Only allow clicking on completed steps or the next step\n if (stepIndex <= currentStep) {\n onStepChange?.(stepIndex)\n }\n },\n [currentStep, isLoading, isValidating, onStepChange]\n )\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault()\n void handleNext()\n } else if (event.key === \"Escape\") {\n // Could implement cancel confirmation here\n }\n },\n [handleNext]\n )\n\n const isVertical = variant === \"vertical\"\n\n return (\n <div\n ref={ref}\n className={cn(\n wizardVariants({ size, variant }),\n isLoading && \"pointer-events-none opacity-50\",\n className\n )}\n aria-label={`Wizard: Step ${String(currentStep + 1)} of ${String(steps.length)}`}\n data-slot=\"wizard\"\n role=\"region\"\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Stepper */}\n {showSteps && (\n <div\n className={wizardStepperVariants({ size, variant })}\n data-slot=\"wizard-stepper\"\n >\n <Stepper\n clickable\n currentStep={currentStep}\n size={size === \"lg\" ? \"lg\" : size === \"sm\" ? \"sm\" : \"default\"}\n steps={stepperSteps}\n variant={isVertical ? \"vertical\" : \"default\"}\n onStepClick={handleStepClick}\n />\n </div>\n )}\n\n {/* Content */}\n <div\n ref={contentRef}\n className={wizardContentVariants({ size, variant })}\n data-slot=\"wizard-content\"\n tabIndex={-1}\n >\n {/* Step content */}\n <div\n aria-label={currentStepData?.title}\n data-slot=\"wizard-step\"\n data-step={currentStep + 1}\n >\n {currentStepData?.title && (\n <h2\n className=\"mb-4 text-lg font-semibold\"\n data-slot=\"wizard-step-title\"\n >\n {currentStepData.title}\n </h2>\n )}\n <div data-slot=\"wizard-step-form\">{currentStepData?.content}</div>\n </div>\n\n {/* Actions */}\n {showActions && (\n <div\n className={cn(wizardActionsVariants({ size, variant }), \"mt-6\")}\n data-slot=\"wizard-actions\"\n >\n <div className=\"flex gap-3\">\n {/* Back button */}\n {canGoBack && !isFirstStep && (\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-back\"\n disabled={isLoading || isValidating}\n type=\"button\"\n variant=\"outline\"\n onClick={handleBack}\n >\n {backLabel}\n </Button>\n )}\n\n {/* Skip button */}\n {canSkip && currentStepData?.optional && !isLastStep && (\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-skip\"\n disabled={isLoading || isValidating}\n type=\"button\"\n variant=\"ghost\"\n onClick={handleSkip}\n >\n {skipLabel}\n </Button>\n )}\n </div>\n\n {/* Next/Complete button */}\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-next\"\n disabled={isLoading || isValidating}\n type=\"button\"\n onClick={() => void handleNext()}\n >\n {isLoading || isValidating ? \"Carregando...\" : isLastStep ? completeLabel : nextLabel}\n </Button>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { Wizard }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/workflow/Wizard/Wizard.variants.ts","../src/components/workflow/Wizard/Wizard.tsx"],"names":[],"mappings":"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","file":"chunk-7CTFBOD4.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Main wizard container variants\n */\nexport const wizardVariants = cva(\"flex gap-6\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"flex-col rounded-lg border border-border bg-card\",\n default: \"flex-col\",\n vertical: \"flex-row\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard content area variants\n */\nexport const wizardContentVariants = cva(\"flex-1\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"border-t border-border\",\n default: \"\",\n vertical: \"border-l border-border\",\n },\n size: {\n default: \"p-6\",\n lg: \"p-8\",\n sm: \"p-4\",\n },\n },\n})\n\n/**\n * Wizard stepper area variants\n */\nexport const wizardStepperVariants = cva(\"\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"p-6 pb-0\",\n default: \"\",\n vertical: \"min-w-48\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard actions area variants\n */\nexport const wizardActionsVariants = cva(\"flex items-center gap-3\", {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n variant: {\n card: \"justify-between border-t border-border p-6\",\n default: \"justify-between\",\n vertical: \"justify-end border-t border-border pt-4\",\n },\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n\n/**\n * Wizard step content wrapper variants\n */\nexport const wizardStepContentVariants = cva(\"\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"\",\n lg: \"\",\n sm: \"\",\n },\n },\n})\n","import type { StepItem } from \"../Stepper\"\nimport type { WizardProps, WizardStep } from \"./Wizard.types\"\n\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport { Stepper } from \"../Stepper\"\nimport {\n wizardActionsVariants,\n wizardContentVariants,\n wizardStepperVariants,\n wizardVariants,\n} from \"./Wizard.variants\"\n\n/**\n * Convert WizardStep to StepItem for the Stepper component\n */\nfunction convertToStepItem(step: WizardStep, index: number, currentStep: number): StepItem {\n return {\n description: step.description,\n icon: step.icon,\n id: step.id,\n label: step.title,\n status: index < currentStep ? \"complete\" : index === currentStep ? \"active\" : \"pending\",\n }\n}\n\n/**\n * Wizard component guides users through a multi-step process.\n *\n * @example\n * ```tsx\n * const steps = [\n * { id: \"1\", title: \"Dados Pessoais\", content: <PersonalForm /> },\n * { id: \"2\", title: \"Endereço\", content: <AddressForm /> },\n * { id: \"3\", title: \"Conclusão\", content: <Summary /> },\n * ]\n *\n * <Wizard\n * steps={steps}\n * currentStep={0}\n * onStepChange={setStep}\n * onComplete={handleComplete}\n * />\n * ```\n */\nfunction Wizard({\n backLabel = \"Voltar\",\n canGoBack = true,\n canSkip = false,\n className,\n completeLabel = \"Completar\",\n currentStep = 0,\n isLoading = false,\n nextLabel = \"Próximo\",\n onComplete,\n onStepChange,\n onValidate,\n ref,\n showActions = true,\n showSteps = true,\n size = \"default\",\n skipLabel = \"Pular\",\n steps,\n variant = \"default\",\n ...props\n}: WizardProps) {\n const [isValidating, setIsValidating] = useState(false)\n const contentRef = useRef<HTMLDivElement>(null)\n const isLastStep = currentStep >= steps.length - 1\n const isFirstStep = currentStep === 0\n const currentStepData = steps[currentStep]\n\n // Convert steps for the Stepper component\n const stepperSteps: StepItem[] = steps.map((step, index) =>\n convertToStepItem(step, index, currentStep)\n )\n\n // Focus management - move focus to content when step changes\n useEffect(() => {\n if (contentRef.current) {\n contentRef.current.focus()\n }\n }, [currentStep])\n\n // Handle next step\n const handleNext = useCallback(async () => {\n if (isLoading || isValidating) return\n\n // Run step validation if provided\n if (currentStepData?.validate) {\n setIsValidating(true)\n try {\n const isValid = await currentStepData.validate()\n if (!isValid) {\n setIsValidating(false)\n return\n }\n } catch {\n setIsValidating(false)\n return\n }\n setIsValidating(false)\n }\n\n // Run onValidate callback if provided\n if (onValidate) {\n setIsValidating(true)\n try {\n const isValid = await Promise.resolve(onValidate(currentStep))\n if (!isValid) {\n setIsValidating(false)\n return\n }\n } catch {\n setIsValidating(false)\n return\n }\n setIsValidating(false)\n }\n\n if (isLastStep) {\n onComplete?.()\n } else {\n onStepChange?.(currentStep + 1)\n }\n }, [currentStep, currentStepData, isLastStep, isLoading, isValidating, onComplete, onStepChange, onValidate])\n\n // Handle back step\n const handleBack = useCallback(() => {\n if (isLoading || isValidating || !canGoBack || isFirstStep) return\n onStepChange?.(currentStep - 1)\n }, [canGoBack, currentStep, isFirstStep, isLoading, isValidating, onStepChange])\n\n // Handle skip step\n const handleSkip = useCallback(() => {\n if (isLoading || isValidating || !canSkip || isLastStep) return\n if (currentStepData?.optional) {\n onStepChange?.(currentStep + 1)\n }\n }, [canSkip, currentStep, currentStepData?.optional, isLastStep, isLoading, isValidating, onStepChange])\n\n // Handle step click from stepper\n const handleStepClick = useCallback(\n (stepIndex: number) => {\n if (isLoading || isValidating) return\n // Only allow clicking on completed steps or the next step\n if (stepIndex <= currentStep) {\n onStepChange?.(stepIndex)\n }\n },\n [currentStep, isLoading, isValidating, onStepChange]\n )\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault()\n void handleNext()\n } else if (event.key === \"Escape\") {\n // Could implement cancel confirmation here\n }\n },\n [handleNext]\n )\n\n const isVertical = variant === \"vertical\"\n\n return (\n <div\n ref={ref}\n className={cn(\n wizardVariants({ size, variant }),\n isLoading && \"pointer-events-none opacity-50\",\n className\n )}\n aria-label={`Wizard: Step ${String(currentStep + 1)} of ${String(steps.length)}`}\n data-slot=\"wizard\"\n role=\"region\"\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Stepper */}\n {showSteps && (\n <div\n className={wizardStepperVariants({ size, variant })}\n data-slot=\"wizard-stepper\"\n >\n <Stepper\n clickable\n currentStep={currentStep}\n size={size === \"lg\" ? \"lg\" : size === \"sm\" ? \"sm\" : \"default\"}\n steps={stepperSteps}\n variant={isVertical ? \"vertical\" : \"default\"}\n onStepClick={handleStepClick}\n />\n </div>\n )}\n\n {/* Content */}\n <div\n ref={contentRef}\n className={wizardContentVariants({ size, variant })}\n data-slot=\"wizard-content\"\n tabIndex={-1}\n >\n {/* Step content */}\n <div\n aria-label={currentStepData?.title}\n data-slot=\"wizard-step\"\n data-step={currentStep + 1}\n >\n {currentStepData?.title && (\n <h2\n className=\"mb-4 text-lg font-semibold\"\n data-slot=\"wizard-step-title\"\n >\n {currentStepData.title}\n </h2>\n )}\n <div data-slot=\"wizard-step-form\">{currentStepData?.content}</div>\n </div>\n\n {/* Actions */}\n {showActions && (\n <div\n className={cn(wizardActionsVariants({ size, variant }), \"mt-6\")}\n data-slot=\"wizard-actions\"\n >\n <div className=\"flex gap-3\">\n {/* Back button */}\n {canGoBack && !isFirstStep && (\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-back\"\n disabled={isLoading || isValidating}\n type=\"button\"\n variant=\"outline\"\n onClick={handleBack}\n >\n {backLabel}\n </Button>\n )}\n\n {/* Skip button */}\n {canSkip && currentStepData?.optional && !isLastStep && (\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-skip\"\n disabled={isLoading || isValidating}\n type=\"button\"\n variant=\"ghost\"\n onClick={handleSkip}\n >\n {skipLabel}\n </Button>\n )}\n </div>\n\n {/* Next/Complete button */}\n <Button\n aria-disabled={isLoading || isValidating}\n data-slot=\"wizard-next\"\n disabled={isLoading || isValidating}\n type=\"button\"\n onClick={() => void handleNext()}\n >\n {isLoading || isValidating ? \"Carregando...\" : isLastStep ? completeLabel : nextLabel}\n </Button>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { Wizard }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
|
|
2
|
-
import { Button } from './chunk-
|
|
2
|
+
import { Button } from './chunk-HDOR3SN3.js';
|
|
3
3
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
4
4
|
import { Check, X, User, TrendingUp, ChevronRight, Forward, Clock } from 'lucide-react';
|
|
5
5
|
import { useId, useState } from 'react';
|
|
@@ -540,5 +540,5 @@ function ApprovalFlow({
|
|
|
540
540
|
}
|
|
541
541
|
|
|
542
542
|
export { ApprovalFlow, ApprovalFlowConnector, ApprovalFlowMarker, ApprovalFlowStep, approvalFlowActionsVariants, approvalFlowConnectorVariants, approvalFlowMarkerVariants, approvalFlowStepCardVariants, approvalFlowStepVariants, approvalFlowVariants };
|
|
543
|
-
//# sourceMappingURL=chunk-
|
|
544
|
-
//# sourceMappingURL=chunk-
|
|
543
|
+
//# sourceMappingURL=chunk-BMNCNBPA.js.map
|
|
544
|
+
//# sourceMappingURL=chunk-BMNCNBPA.js.map
|