@nexa-ui-kit/theme-default 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -0
- package/components/accordion.css +29 -0
- package/components/alert-dialog.css +33 -0
- package/components/alert.css +33 -0
- package/components/aspect-ratio.css +15 -0
- package/components/avatar-group.css +30 -0
- package/components/avatar.css +25 -0
- package/components/badge.css +21 -0
- package/components/breadcrumb.css +35 -0
- package/components/button.css +47 -0
- package/components/calendar.css +124 -0
- package/components/card.css +25 -0
- package/components/carousel.css +79 -0
- package/components/chart.css +124 -0
- package/components/checkbox.css +13 -0
- package/components/collapsible.css +5 -0
- package/components/combobox.css +13 -0
- package/components/command.css +49 -0
- package/components/context-menu.css +87 -0
- package/components/date-picker.css +13 -0
- package/components/dialog.css +29 -0
- package/components/dropdown-menu.css +98 -0
- package/components/empty-state.css +21 -0
- package/components/field.css +145 -0
- package/components/form.css +26 -0
- package/components/hover-card.css +5 -0
- package/components/index.css +78 -0
- package/components/input-group.css +91 -0
- package/components/input-otp.css +25 -0
- package/components/input.css +5 -0
- package/components/item.css +75 -0
- package/components/kbd.css +9 -0
- package/components/label.css +5 -0
- package/components/menubar.css +100 -0
- package/components/multi-select.css +37 -0
- package/components/navigation-menu.css +37 -0
- package/components/number-input.css +26 -0
- package/components/pagination.css +29 -0
- package/components/popover.css +30 -0
- package/components/progress.css +28 -0
- package/components/radio-group.css +17 -0
- package/components/scroll-area.css +25 -0
- package/components/scrollytelling.css +418 -0
- package/components/select.css +74 -0
- package/components/separator.css +5 -0
- package/components/sheet.css +45 -0
- package/components/sidebar.css +65 -0
- package/components/skeleton.css +5 -0
- package/components/slider.css +49 -0
- package/components/sonner.css +103 -0
- package/components/spinner.css +5 -0
- package/components/stat-card.css +33 -0
- package/components/stepper.css +137 -0
- package/components/switch.css +9 -0
- package/components/table.css +42 -0
- package/components/tabs.css +37 -0
- package/components/textarea.css +17 -0
- package/components/toast.css +45 -0
- package/components/toggle-group.css +25 -0
- package/components/toggle.css +21 -0
- package/components/toolbar.css +25 -0
- package/components/tooltip.css +9 -0
- package/package.json +85 -0
- package/tailwind.config.mjs +83 -0
- package/tokens/colors.css +93 -0
- package/tokens/index.css +18 -0
- package/tokens/spacing.css +36 -0
- package/tokens/typography.css +38 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* Combobox Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="combobox-trigger"] {
|
|
4
|
+
@apply inline-flex items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[data-slot="combobox-content"] {
|
|
8
|
+
@apply p-0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="combobox-item"][data-selected] {
|
|
12
|
+
@apply font-medium;
|
|
13
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* Command Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="command"] {
|
|
4
|
+
@apply flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[data-slot="command-dialog-content"] {
|
|
8
|
+
@apply overflow-hidden p-0 shadow-lg;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="command-dialog-content"] [data-slot="command"] {
|
|
12
|
+
@apply [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[data-slot="command-input-wrapper"] {
|
|
16
|
+
@apply flex items-center border-b px-3;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
[data-slot="command-input-wrapper"] > svg {
|
|
20
|
+
@apply mr-2 h-4 w-4 shrink-0 opacity-50;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-slot="command-input"] {
|
|
24
|
+
@apply flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-slot="command-list"] {
|
|
28
|
+
@apply max-h-[300px] overflow-y-auto overflow-x-hidden;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[data-slot="command-empty"] {
|
|
32
|
+
@apply py-6 text-center text-sm;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[data-slot="command-group"] {
|
|
36
|
+
@apply overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-slot="command-separator"] {
|
|
40
|
+
@apply -mx-1 h-px bg-border;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[data-slot="command-item"] {
|
|
44
|
+
@apply relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected='true']:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[data-slot="command-shortcut"] {
|
|
48
|
+
@apply ml-auto text-xs tracking-widest text-muted-foreground;
|
|
49
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Context Menu Component Styles */
|
|
2
|
+
/* Radix UI context menu with data-slot attributes */
|
|
3
|
+
|
|
4
|
+
[data-slot="context-menu-sub-trigger"] {
|
|
5
|
+
@apply flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none;
|
|
6
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
7
|
+
@apply data-[state=open]:bg-accent data-[state=open]:text-accent-foreground;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[data-slot="context-menu-sub-trigger"][data-inset="true"] {
|
|
11
|
+
@apply pl-8;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
[data-slot="context-menu-chevron"] {
|
|
15
|
+
@apply ml-auto h-4 w-4;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-slot="context-menu-sub-content"] {
|
|
19
|
+
@apply z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg;
|
|
20
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out;
|
|
21
|
+
@apply data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0;
|
|
22
|
+
@apply data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
23
|
+
@apply data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2;
|
|
24
|
+
@apply data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2;
|
|
25
|
+
transform-origin: var(--radix-context-menu-content-transform-origin);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
[data-slot="context-menu-content"] {
|
|
29
|
+
@apply z-50 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md;
|
|
30
|
+
max-height: var(--radix-context-menu-content-available-height);
|
|
31
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out;
|
|
32
|
+
@apply data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0;
|
|
33
|
+
@apply data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
34
|
+
@apply data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2;
|
|
35
|
+
@apply data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2;
|
|
36
|
+
transform-origin: var(--radix-context-menu-content-transform-origin);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-slot="context-menu-item"] {
|
|
40
|
+
@apply relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none;
|
|
41
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
42
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[data-slot="context-menu-item"][data-inset="true"] {
|
|
46
|
+
@apply pl-8;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
[data-slot="context-menu-checkbox-item"] {
|
|
50
|
+
@apply relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none;
|
|
51
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
52
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
[data-slot="context-menu-item-indicator-wrapper"] {
|
|
56
|
+
@apply absolute left-2 flex h-3.5 w-3.5 items-center justify-center;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[data-slot="context-menu-check-icon"] {
|
|
60
|
+
@apply h-4 w-4;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[data-slot="context-menu-radio-item"] {
|
|
64
|
+
@apply relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none;
|
|
65
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
66
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
[data-slot="context-menu-circle-icon"] {
|
|
70
|
+
@apply h-2 w-2 fill-current;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
[data-slot="context-menu-label"] {
|
|
74
|
+
@apply px-2 py-1.5 text-sm font-semibold text-foreground;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
[data-slot="context-menu-label"][data-inset="true"] {
|
|
78
|
+
@apply pl-8;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[data-slot="context-menu-separator"] {
|
|
82
|
+
@apply -mx-1 my-1 h-px bg-border;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-slot="context-menu-shortcut"] {
|
|
86
|
+
@apply ml-auto text-xs tracking-widest text-muted-foreground;
|
|
87
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* Date Picker Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="date-picker-trigger"] {
|
|
4
|
+
@apply inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-left font-normal ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[data-slot="date-picker-icon"] {
|
|
8
|
+
@apply h-4 w-4 text-muted-foreground;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="date-picker-content"] {
|
|
12
|
+
@apply p-0;
|
|
13
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* Dialog Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="dialog-overlay"] {
|
|
4
|
+
@apply fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[data-slot="dialog-content"] {
|
|
8
|
+
@apply fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="dialog-close"] {
|
|
12
|
+
@apply absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[data-slot="dialog-header"] {
|
|
16
|
+
@apply flex flex-col space-y-1.5 text-center sm:text-left;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
[data-slot="dialog-footer"] {
|
|
20
|
+
@apply flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-slot="dialog-title"] {
|
|
24
|
+
@apply text-lg font-semibold leading-none tracking-tight;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-slot="dialog-description"] {
|
|
28
|
+
@apply text-sm text-muted-foreground;
|
|
29
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* Dropdown Menu Component Styles */
|
|
2
|
+
/* Radix UI dropdown menu with data-slot attributes */
|
|
3
|
+
|
|
4
|
+
[data-slot="dropdown-menu-sub-trigger"] {
|
|
5
|
+
@apply flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none;
|
|
6
|
+
@apply focus:bg-accent data-[state=open]:bg-accent;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[data-slot="dropdown-menu-sub-trigger"] svg {
|
|
10
|
+
@apply pointer-events-none size-4 shrink-0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[data-slot="dropdown-menu-sub-trigger"][data-inset="true"] {
|
|
14
|
+
@apply pl-8;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-slot="dropdown-menu-sub-trigger-icon"] {
|
|
18
|
+
@apply ml-auto h-4 w-4;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[data-slot="dropdown-menu-sub-content"] {
|
|
22
|
+
@apply z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg;
|
|
23
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out;
|
|
24
|
+
@apply data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0;
|
|
25
|
+
@apply data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
26
|
+
@apply data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2;
|
|
27
|
+
@apply data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2;
|
|
28
|
+
transform-origin: var(--radix-dropdown-menu-content-transform-origin);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[data-slot="dropdown-menu-content"] {
|
|
32
|
+
@apply z-50 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md;
|
|
33
|
+
max-height: var(--radix-dropdown-menu-content-available-height);
|
|
34
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out;
|
|
35
|
+
@apply data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0;
|
|
36
|
+
@apply data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
37
|
+
@apply data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2;
|
|
38
|
+
@apply data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2;
|
|
39
|
+
transform-origin: var(--radix-dropdown-menu-content-transform-origin);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-slot="dropdown-menu-item"] {
|
|
43
|
+
@apply relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors;
|
|
44
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
45
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
[data-slot="dropdown-menu-item"] > svg {
|
|
49
|
+
@apply size-4 shrink-0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
[data-slot="dropdown-menu-item"][data-inset="true"] {
|
|
53
|
+
@apply pl-8;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
[data-slot="dropdown-menu-checkbox-item"] {
|
|
57
|
+
@apply relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors;
|
|
58
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
59
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
[data-slot="dropdown-menu-checkbox-indicator"] {
|
|
63
|
+
@apply absolute left-2 flex h-3.5 w-3.5 items-center justify-center;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[data-slot="dropdown-menu-checkbox-icon"] {
|
|
67
|
+
@apply h-4 w-4;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
[data-slot="dropdown-menu-radio-item"] {
|
|
71
|
+
@apply relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors;
|
|
72
|
+
@apply focus:bg-accent focus:text-accent-foreground;
|
|
73
|
+
@apply data-[disabled]:pointer-events-none data-[disabled]:opacity-50;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
[data-slot="dropdown-menu-radio-indicator"] {
|
|
77
|
+
@apply absolute left-2 flex h-3.5 w-3.5 items-center justify-center;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
[data-slot="dropdown-menu-radio-icon"] {
|
|
81
|
+
@apply h-2 w-2 fill-current;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
[data-slot="dropdown-menu-label"] {
|
|
85
|
+
@apply px-2 py-1.5 text-sm font-semibold;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
[data-slot="dropdown-menu-label"][data-inset="true"] {
|
|
89
|
+
@apply pl-8;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
[data-slot="dropdown-menu-separator"] {
|
|
93
|
+
@apply -mx-1 my-1 h-px bg-muted;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
[data-slot="dropdown-menu-shortcut"] {
|
|
97
|
+
@apply ml-auto text-xs tracking-widest opacity-60;
|
|
98
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* Empty State Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="empty-state"] {
|
|
4
|
+
@apply flex flex-col items-center justify-center py-12 text-center;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[data-slot="empty-state-icon"] {
|
|
8
|
+
@apply mb-4 text-muted-foreground;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="empty-state-title"] {
|
|
12
|
+
@apply text-lg font-semibold text-foreground;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[data-slot="empty-state-description"] {
|
|
16
|
+
@apply mt-1 text-sm text-muted-foreground;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
[data-slot="empty-state-action"] {
|
|
20
|
+
@apply mt-4;
|
|
21
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/* Field Component Styles */
|
|
2
|
+
/* Form field layout with labels, descriptions, and error states */
|
|
3
|
+
|
|
4
|
+
[data-slot="field-set"] {
|
|
5
|
+
@apply flex flex-col gap-6 rounded-lg border bg-background/50 p-4;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
[data-slot="field-set"]:has(> [data-slot="checkbox-group"]),
|
|
9
|
+
[data-slot="field-set"]:has(> [data-slot="radio-group"]) {
|
|
10
|
+
@apply gap-3;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[data-slot="field-legend"] {
|
|
14
|
+
@apply px-2 font-medium text-foreground;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-slot="field-legend"][data-variant="legend"] {
|
|
18
|
+
@apply text-sm;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[data-slot="field-legend"][data-variant="label"] {
|
|
22
|
+
@apply text-sm font-semibold;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
[data-slot="field-group"] {
|
|
26
|
+
@apply flex w-full flex-col gap-4;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-slot="field-group"][data-slot="checkbox-group"],
|
|
30
|
+
[data-slot="field-group"][data-slot="radio-group"] {
|
|
31
|
+
@apply gap-3;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
[data-slot="field-group"] > [data-slot="field-group"] {
|
|
35
|
+
@apply gap-4;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
[data-slot="field"] {
|
|
39
|
+
@apply flex w-full gap-2;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-slot="field"][data-invalid="true"] {
|
|
43
|
+
@apply text-destructive;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Orientation variants */
|
|
47
|
+
[data-slot="field"][data-orientation="vertical"] {
|
|
48
|
+
@apply flex-col;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[data-slot="field"][data-orientation="vertical"] > * {
|
|
52
|
+
@apply w-full;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
[data-slot="field"][data-orientation="vertical"] > .sr-only {
|
|
56
|
+
@apply w-auto;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[data-slot="field"][data-orientation="horizontal"] {
|
|
60
|
+
@apply flex-row items-center;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[data-slot="field"][data-orientation="horizontal"] > [data-slot="field-label"] {
|
|
64
|
+
@apply flex-auto;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
[data-slot="field"][data-orientation="horizontal"]:has([data-slot="field-description"]) > [data-slot="field-label"] {
|
|
68
|
+
@apply self-start;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[data-slot="field"][data-orientation="horizontal"]:has([type="checkbox"]) > [data-slot="field-label"],
|
|
72
|
+
[data-slot="field"][data-orientation="horizontal"]:has([type="radio"]) > [data-slot="field-label"],
|
|
73
|
+
[data-slot="field"][data-orientation="horizontal"]:has([role="checkbox"]) > [data-slot="field-label"],
|
|
74
|
+
[data-slot="field"][data-orientation="horizontal"]:has([role="radio"]) > [data-slot="field-label"],
|
|
75
|
+
[data-slot="field"][data-orientation="horizontal"]:has([role="switch"]) > [data-slot="field-label"] {
|
|
76
|
+
@apply order-last;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
[data-slot="field-content"] {
|
|
80
|
+
@apply relative flex flex-1 flex-col;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[data-slot="field-label"] {
|
|
84
|
+
@apply text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
[data-slot="field"][data-disabled="true"] [data-slot="field-label"] {
|
|
88
|
+
@apply opacity-50;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
[data-slot="field-label"]:has(> [data-slot="field"]) {
|
|
92
|
+
@apply w-full flex-col rounded-md border;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-slot="field-label"] > [data-slot="field"] {
|
|
96
|
+
@apply p-4;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
[data-slot="field-label"]:has([data-state="checked"]) {
|
|
100
|
+
@apply border-primary bg-primary/5;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.dark [data-slot="field-label"]:has([data-state="checked"]) {
|
|
104
|
+
@apply bg-primary/10;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
[data-slot="field-title"] {
|
|
108
|
+
@apply text-base font-semibold leading-none tracking-tight;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
[data-slot="field-description"] {
|
|
112
|
+
@apply text-sm text-muted-foreground;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
[data-slot="field-description"] > a {
|
|
116
|
+
@apply underline underline-offset-4;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
[data-slot="field-description"] > a:hover {
|
|
120
|
+
@apply text-primary;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
[data-slot="field-separator"] {
|
|
124
|
+
@apply my-4 flex w-full items-center;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
[data-slot="field-separator"][data-content="true"] {
|
|
128
|
+
@apply gap-4;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
[data-slot="field-separator-line"] {
|
|
132
|
+
@apply flex-1 border-border;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
[data-slot="field-separator-content"] {
|
|
136
|
+
@apply text-xs font-medium uppercase text-muted-foreground;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
[data-slot="field-error"] {
|
|
140
|
+
@apply mt-1 text-sm font-medium text-destructive;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
[data-slot="field-error-list"] {
|
|
144
|
+
@apply list-inside list-disc;
|
|
145
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* Form Component Styles */
|
|
2
|
+
/* react-hook-form integration with data-slot attributes */
|
|
3
|
+
|
|
4
|
+
[data-slot="form-item"] {
|
|
5
|
+
@apply space-y-2;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
[data-slot="form-label"] {
|
|
9
|
+
@apply text-sm font-medium leading-none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[data-slot="form-label"][data-error="true"] {
|
|
13
|
+
@apply text-destructive;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[data-slot="form-control"] {
|
|
17
|
+
/* Control wrapper - inherits styles from child input/select/etc */
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[data-slot="form-description"] {
|
|
21
|
+
@apply text-[0.8rem] text-muted-foreground;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-slot="form-message"] {
|
|
25
|
+
@apply text-[0.8rem] font-medium text-destructive;
|
|
26
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* HoverCard Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="hover-card-content"] {
|
|
4
|
+
@apply z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2;
|
|
5
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* Nexa UI Default Theme - Component Styles */
|
|
2
|
+
|
|
3
|
+
/* All imports must come first */
|
|
4
|
+
@import '../tokens/index.css';
|
|
5
|
+
@import './accordion.css';
|
|
6
|
+
@import './aspect-ratio.css';
|
|
7
|
+
@import './avatar.css';
|
|
8
|
+
@import './badge.css';
|
|
9
|
+
@import './breadcrumb.css';
|
|
10
|
+
@import './button.css';
|
|
11
|
+
@import './calendar.css';
|
|
12
|
+
@import './card.css';
|
|
13
|
+
@import './carousel.css';
|
|
14
|
+
@import './chart.css';
|
|
15
|
+
@import './checkbox.css';
|
|
16
|
+
@import './collapsible.css';
|
|
17
|
+
@import './command.css';
|
|
18
|
+
@import './context-menu.css';
|
|
19
|
+
@import './dialog.css';
|
|
20
|
+
@import './dropdown-menu.css';
|
|
21
|
+
@import './field.css';
|
|
22
|
+
@import './form.css';
|
|
23
|
+
@import './hover-card.css';
|
|
24
|
+
@import './input-group.css';
|
|
25
|
+
@import './input.css';
|
|
26
|
+
@import './item.css';
|
|
27
|
+
@import './kbd.css';
|
|
28
|
+
@import './label.css';
|
|
29
|
+
@import './menubar.css';
|
|
30
|
+
@import './navigation-menu.css';
|
|
31
|
+
@import './popover.css';
|
|
32
|
+
@import './progress.css';
|
|
33
|
+
@import './radio-group.css';
|
|
34
|
+
@import './scrollytelling.css';
|
|
35
|
+
@import './pagination.css';
|
|
36
|
+
@import './separator.css';
|
|
37
|
+
@import './sidebar.css';
|
|
38
|
+
|
|
39
|
+
@import './skeleton.css';
|
|
40
|
+
@import './slider.css';
|
|
41
|
+
@import './stepper.css';
|
|
42
|
+
@import './table.css';
|
|
43
|
+
@import './tabs.css';
|
|
44
|
+
@import './textarea.css';
|
|
45
|
+
@import './toggle.css';
|
|
46
|
+
@import './tooltip.css';
|
|
47
|
+
|
|
48
|
+
/* Phase 1: Radix Primitives */
|
|
49
|
+
@import './alert-dialog.css';
|
|
50
|
+
@import './scroll-area.css';
|
|
51
|
+
@import './toggle-group.css';
|
|
52
|
+
@import './toolbar.css';
|
|
53
|
+
@import './toast.css';
|
|
54
|
+
|
|
55
|
+
/* Phase 2: Simple Components */
|
|
56
|
+
@import './alert.css';
|
|
57
|
+
@import './sheet.css';
|
|
58
|
+
@import './empty-state.css';
|
|
59
|
+
@import './avatar-group.css';
|
|
60
|
+
@import './stat-card.css';
|
|
61
|
+
|
|
62
|
+
/* Phase 3: Complex Components */
|
|
63
|
+
@import './number-input.css';
|
|
64
|
+
@import './input-otp.css';
|
|
65
|
+
@import './combobox.css';
|
|
66
|
+
@import './date-picker.css';
|
|
67
|
+
@import './multi-select.css';
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
/* Focus visible utility */
|
|
71
|
+
.focus-visible-ring {
|
|
72
|
+
outline: none;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.focus-visible-ring:focus-visible {
|
|
76
|
+
outline: 2px solid hsl(var(--ring));
|
|
77
|
+
outline-offset: 2px;
|
|
78
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* Input Group Component Styles */
|
|
2
|
+
|
|
3
|
+
[data-slot="input-group"] {
|
|
4
|
+
@apply relative flex w-full items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow];
|
|
5
|
+
/* Match standard input height */
|
|
6
|
+
@apply h-10 bg-background;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[data-slot="input-group"]:has(> textarea) {
|
|
10
|
+
@apply h-auto;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Focus states - Ring on the container */
|
|
14
|
+
[data-slot="input-group"]:has([data-slot="input-group-control"]:focus-visible),
|
|
15
|
+
[data-slot="input-group"]:has(input:focus-visible),
|
|
16
|
+
[data-slot="input-group"]:has(textarea:focus-visible) {
|
|
17
|
+
@apply ring-2 ring-ring ring-offset-2;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Error states */
|
|
21
|
+
[data-slot="input-group"]:has([data-slot][aria-invalid="true"]),
|
|
22
|
+
[data-slot="input-group"][data-error="true"] {
|
|
23
|
+
@apply border-destructive ring-destructive/20;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Disabled state */
|
|
27
|
+
[data-slot="input-group"][data-disabled="true"],
|
|
28
|
+
[data-slot="input-group"]:has(input:disabled),
|
|
29
|
+
[data-slot="input-group"]:has(textarea:disabled) {
|
|
30
|
+
@apply opacity-50 cursor-not-allowed bg-muted/50;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Input/Textarea inside group - Strip default styles */
|
|
34
|
+
[data-slot="input-group-control"],
|
|
35
|
+
[data-slot="input-group"] > input {
|
|
36
|
+
@apply flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:outline-none min-w-0;
|
|
37
|
+
@apply h-full px-3 py-2;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-slot="input-group"] textarea[data-slot="input-group-control"] {
|
|
41
|
+
@apply resize-none h-full;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Addon Styles */
|
|
45
|
+
[data-slot="input-group-addon"] {
|
|
46
|
+
@apply flex h-full items-center justify-center whitespace-nowrap px-3 text-sm font-medium text-muted-foreground bg-muted/50;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Automatic borders for children */
|
|
50
|
+
|
|
51
|
+
/* If an addon is the first child, give it a right border */
|
|
52
|
+
[data-slot="input-group"] > [data-slot="input-group-addon"]:first-child {
|
|
53
|
+
@apply border-r border-input rounded-l-[inherit];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* If an addon is the last child, give it a left border */
|
|
57
|
+
[data-slot="input-group"] > [data-slot="input-group-addon"]:last-child {
|
|
58
|
+
@apply border-l border-input rounded-r-[inherit];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Icons in addons */
|
|
62
|
+
[data-slot="input-group-addon"] > svg:not([class*="size-"]) {
|
|
63
|
+
@apply size-4;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Buttons inside group */
|
|
67
|
+
[data-slot="input-group-button"] {
|
|
68
|
+
@apply inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50;
|
|
69
|
+
@apply h-8 rounded-sm px-3 mx-1; /* Slightly smaller than container to look contained */
|
|
70
|
+
@apply bg-primary text-primary-foreground shadow hover:bg-primary/90;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
[data-slot="input-group-button"][data-size="xs"] {
|
|
74
|
+
@apply h-6 px-2 text-xs;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
[data-slot="input-group-button"][data-size="sm"] {
|
|
78
|
+
@apply h-7 px-2.5;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[data-slot="input-group-button"][data-size="icon-xs"] {
|
|
82
|
+
@apply h-6 w-6 p-0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-slot="input-group-button"][data-size="icon-sm"] {
|
|
86
|
+
@apply h-7 w-7 p-0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
[data-slot="input-group-button"][data-variant="ghost"] {
|
|
90
|
+
@apply bg-transparent text-foreground shadow-none hover:bg-muted/60;
|
|
91
|
+
}
|