@auronui/styles 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/DATA_ATTRIBUTES.md +163 -0
- package/LICENSE +21 -0
- package/README.md +54 -0
- package/base/base.css +40 -0
- package/components/accordion.css +201 -0
- package/components/alert-dialog.css +307 -0
- package/components/alert.css +143 -0
- package/components/aspect-ratio.css +8 -0
- package/components/autocomplete.css +685 -0
- package/components/avatar.css +78 -0
- package/components/badge.css +186 -0
- package/components/breadcrumbs.css +76 -0
- package/components/button-group.css +126 -0
- package/components/button.css +282 -0
- package/components/calendar-year-picker.css +193 -0
- package/components/calendar.css +332 -0
- package/components/card.css +225 -0
- package/components/checkbox-group.css +7 -0
- package/components/checkbox.css +268 -0
- package/components/chip.css +227 -0
- package/components/close-button.css +65 -0
- package/components/collapsible-group.css +7 -0
- package/components/collapsible.css +74 -0
- package/components/color-area.css +81 -0
- package/components/color-field.css +99 -0
- package/components/color-input-group.css +153 -0
- package/components/color-picker.css +121 -0
- package/components/color-slider.css +266 -0
- package/components/color-swatch-picker.css +247 -0
- package/components/color-swatch.css +42 -0
- package/components/combo-box.css +203 -0
- package/components/date-input-group.css +125 -0
- package/components/date-input.css +529 -0
- package/components/date-picker.css +86 -0
- package/components/date-range-field.css +538 -0
- package/components/date-range-picker.css +93 -0
- package/components/description.css +4 -0
- package/components/drawer.css +222 -0
- package/components/dropdown.css +67 -0
- package/components/empty-state.css +4 -0
- package/components/error-message.css +13 -0
- package/components/field-error.css +19 -0
- package/components/fieldset.css +39 -0
- package/components/header.css +7 -0
- package/components/index.css +164 -0
- package/components/input-otp.css +124 -0
- package/components/input.css +603 -0
- package/components/kbd.css +27 -0
- package/components/label.css +28 -0
- package/components/link.css +144 -0
- package/components/list-box-item.css +29 -0
- package/components/list-box-section.css +13 -0
- package/components/list-box.css +11 -0
- package/components/menu-item.css +68 -0
- package/components/menu-section.css +18 -0
- package/components/menu.css +7 -0
- package/components/meter.css +104 -0
- package/components/modal.css +335 -0
- package/components/number-field.css +395 -0
- package/components/pagination.css +157 -0
- package/components/popover.css +96 -0
- package/components/progress-bar.css +126 -0
- package/components/progress-circle.css +82 -0
- package/components/radio-group.css +47 -0
- package/components/radio.css +157 -0
- package/components/range-calendar.css +402 -0
- package/components/scroll-area.css +70 -0
- package/components/scroll-shadow.css +77 -0
- package/components/select.css +649 -0
- package/components/separator.css +59 -0
- package/components/skeleton.css +48 -0
- package/components/slider.css +155 -0
- package/components/spinner.css +42 -0
- package/components/splitter.css +74 -0
- package/components/stepper.css +160 -0
- package/components/surface.css +23 -0
- package/components/switch-group.css +17 -0
- package/components/switch.css +194 -0
- package/components/table.css +341 -0
- package/components/tabs.css +262 -0
- package/components/tag-group.css +66 -0
- package/components/tag.css +99 -0
- package/components/textarea.css +536 -0
- package/components/time-field.css +530 -0
- package/components/toast.css +267 -0
- package/components/toggle-button-group.css +174 -0
- package/components/toggle-button.css +149 -0
- package/components/toolbar.css +32 -0
- package/components/tooltip.css +47 -0
- package/components/tree.css +81 -0
- package/index.css +29 -0
- package/package.json +415 -0
- package/src/components/accordion/accordion.styles.ts +46 -0
- package/src/components/accordion/index.ts +1 -0
- package/src/components/alert/alert.styles.ts +37 -0
- package/src/components/alert/index.ts +1 -0
- package/src/components/alert-dialog/alert-dialog.styles.ts +72 -0
- package/src/components/alert-dialog/index.ts +1 -0
- package/src/components/aspect-ratio/aspect-ratio.styles.ts +10 -0
- package/src/components/aspect-ratio/index.ts +1 -0
- package/src/components/autocomplete/autocomplete.styles.ts +86 -0
- package/src/components/autocomplete/index.ts +1 -0
- package/src/components/avatar/avatar.styles.ts +53 -0
- package/src/components/avatar/index.ts +1 -0
- package/src/components/badge/badge.styles.ts +77 -0
- package/src/components/badge/index.ts +1 -0
- package/src/components/breadcrumbs/breadcrumbs.styles.ts +14 -0
- package/src/components/breadcrumbs/index.ts +1 -0
- package/src/components/button/__tests__/button.styles.test.ts +79 -0
- package/src/components/button/button.styles.ts +65 -0
- package/src/components/button/index.ts +1 -0
- package/src/components/button-group/button-group.styles.ts +32 -0
- package/src/components/button-group/index.ts +1 -0
- package/src/components/calendar/calendar.styles.ts +60 -0
- package/src/components/calendar/index.ts +1 -0
- package/src/components/calendar-year-picker/calendar-year-picker.styles.ts +15 -0
- package/src/components/calendar-year-picker/index.ts +1 -0
- package/src/components/card/card.styles.ts +65 -0
- package/src/components/card/index.ts +1 -0
- package/src/components/checkbox/checkbox.styles.ts +27 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/checkbox-group/checkbox-group.styles.ts +18 -0
- package/src/components/checkbox-group/index.ts +1 -0
- package/src/components/chip/chip.styles.ts +65 -0
- package/src/components/chip/index.ts +1 -0
- package/src/components/close-button/close-button.styles.ts +17 -0
- package/src/components/close-button/index.ts +1 -0
- package/src/components/collapsible/collapsible.styles.ts +25 -0
- package/src/components/collapsible/index.ts +1 -0
- package/src/components/collapsible-group/collapsible-group.styles.ts +13 -0
- package/src/components/collapsible-group/index.ts +1 -0
- package/src/components/color-area/color-area.styles.ts +23 -0
- package/src/components/color-area/index.ts +1 -0
- package/src/components/color-field/color-field.styles.ts +18 -0
- package/src/components/color-field/index.ts +1 -0
- package/src/components/color-input-group/color-input-group.styles.ts +34 -0
- package/src/components/color-input-group/index.ts +1 -0
- package/src/components/color-picker/color-picker.styles.ts +13 -0
- package/src/components/color-picker/index.ts +1 -0
- package/src/components/color-slider/color-slider.styles.ts +14 -0
- package/src/components/color-slider/index.ts +1 -0
- package/src/components/color-swatch/color-swatch.styles.ts +26 -0
- package/src/components/color-swatch/index.ts +1 -0
- package/src/components/color-swatch-picker/color-swatch-picker.styles.ts +54 -0
- package/src/components/color-swatch-picker/index.ts +1 -0
- package/src/components/combo-box/combo-box.styles.ts +26 -0
- package/src/components/combo-box/index.ts +1 -0
- package/src/components/date-input/date-input.styles.ts +86 -0
- package/src/components/date-input/index.ts +1 -0
- package/src/components/date-picker/date-picker.styles.ts +14 -0
- package/src/components/date-picker/index.ts +1 -0
- package/src/components/date-range-field/date-range-field.styles.ts +87 -0
- package/src/components/date-range-field/index.ts +1 -0
- package/src/components/date-range-picker/date-range-picker.styles.ts +14 -0
- package/src/components/date-range-picker/index.ts +1 -0
- package/src/components/description/description.styles.ts +9 -0
- package/src/components/description/index.ts +1 -0
- package/src/components/drawer/drawer.styles.ts +55 -0
- package/src/components/drawer/index.ts +1 -0
- package/src/components/dropdown/dropdown.styles.ts +14 -0
- package/src/components/dropdown/index.ts +1 -0
- package/src/components/empty-state/empty-state.styles.ts +9 -0
- package/src/components/empty-state/index.ts +1 -0
- package/src/components/error-message/error-message.styles.ts +9 -0
- package/src/components/error-message/index.ts +1 -0
- package/src/components/fieldset/fieldset.styles.ts +29 -0
- package/src/components/fieldset/index.ts +1 -0
- package/src/components/header/header.styles.ts +5 -0
- package/src/components/header/index.ts +1 -0
- package/src/components/index.ts +84 -0
- package/src/components/input/index.ts +1 -0
- package/src/components/input/input.styles.ts +87 -0
- package/src/components/input-otp/index.ts +1 -0
- package/src/components/input-otp/input-otp.styles.ts +30 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/kbd/kbd.styles.ts +20 -0
- package/src/components/label/index.ts +1 -0
- package/src/components/label/label.styles.ts +25 -0
- package/src/components/link/index.ts +1 -0
- package/src/components/link/link.styles.ts +38 -0
- package/src/components/list-box/index.ts +1 -0
- package/src/components/list-box/list-box.styles.ts +18 -0
- package/src/components/list-box-item/index.ts +1 -0
- package/src/components/list-box-item/list-box-item.styles.ts +25 -0
- package/src/components/list-box-section/index.ts +1 -0
- package/src/components/list-box-section/list-box-section.styles.ts +13 -0
- package/src/components/menu/index.ts +1 -0
- package/src/components/menu/menu.styles.ts +9 -0
- package/src/components/menu-item/index.ts +1 -0
- package/src/components/menu-item/menu-item.styles.ts +26 -0
- package/src/components/menu-section/index.ts +1 -0
- package/src/components/menu-section/menu-section.styles.ts +14 -0
- package/src/components/meter/index.ts +1 -0
- package/src/components/meter/meter.styles.ts +48 -0
- package/src/components/modal/index.ts +1 -0
- package/src/components/modal/modal.styles.ts +70 -0
- package/src/components/number-field/index.ts +1 -0
- package/src/components/number-field/number-field.styles.ts +80 -0
- package/src/components/pagination/index.ts +1 -0
- package/src/components/pagination/pagination.styles.ts +32 -0
- package/src/components/popover/index.ts +1 -0
- package/src/components/popover/popover.styles.ts +14 -0
- package/src/components/progress-bar/index.ts +1 -0
- package/src/components/progress-bar/progress-bar.styles.ts +97 -0
- package/src/components/progress-circle/index.ts +1 -0
- package/src/components/progress-circle/progress-circle.styles.ts +74 -0
- package/src/components/radio/index.ts +1 -0
- package/src/components/radio/radio.styles.ts +14 -0
- package/src/components/radio-group/index.ts +1 -0
- package/src/components/radio-group/radio-group.styles.ts +18 -0
- package/src/components/range-calendar/index.ts +1 -0
- package/src/components/range-calendar/range-calendar.styles.ts +60 -0
- package/src/components/scroll-shadow/index.ts +1 -0
- package/src/components/scroll-shadow/scroll-shadow.styles.ts +37 -0
- package/src/components/select/index.ts +1 -0
- package/src/components/select/select.styles.ts +86 -0
- package/src/components/separator/index.ts +1 -0
- package/src/components/separator/separator.styles.ts +25 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.styles.ts +21 -0
- package/src/components/slider/index.ts +1 -0
- package/src/components/slider/slider.styles.ts +40 -0
- package/src/components/spinner/index.ts +1 -0
- package/src/components/spinner/spinner.styles.ts +28 -0
- package/src/components/splitter/index.ts +1 -0
- package/src/components/splitter/splitter.styles.ts +28 -0
- package/src/components/stepper/index.ts +1 -0
- package/src/components/stepper/stepper.styles.ts +57 -0
- package/src/components/surface/index.ts +1 -0
- package/src/components/surface/surface.styles.ts +20 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/switch/switch.styles.ts +31 -0
- package/src/components/switch-group/index.ts +1 -0
- package/src/components/switch-group/switch-group.styles.ts +25 -0
- package/src/components/table/index.ts +1 -0
- package/src/components/table/table.styles.ts +47 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/tabs.styles.ts +31 -0
- package/src/components/tag/index.ts +1 -0
- package/src/components/tag/tag.styles.ts +37 -0
- package/src/components/tag-group/index.ts +1 -0
- package/src/components/tag-group/tag-group.styles.ts +12 -0
- package/src/components/text/index.ts +1 -0
- package/src/components/text/text.styles.ts +29 -0
- package/src/components/textarea/index.ts +1 -0
- package/src/components/textarea/textarea.styles.ts +86 -0
- package/src/components/time-field/index.ts +1 -0
- package/src/components/time-field/time-field.styles.ts +86 -0
- package/src/components/toast/index.ts +1 -0
- package/src/components/toast/toast.styles.ts +67 -0
- package/src/components/toggle-button/index.ts +1 -0
- package/src/components/toggle-button/toggle-button.styles.ts +28 -0
- package/src/components/toggle-button-group/index.ts +1 -0
- package/src/components/toggle-button-group/toggle-button-group.styles.ts +39 -0
- package/src/components/toolbar/index.ts +1 -0
- package/src/components/toolbar/toolbar.styles.ts +23 -0
- package/src/components/tooltip/index.ts +1 -0
- package/src/components/tooltip/tooltip.styles.ts +12 -0
- package/src/components/tree/index.ts +1 -0
- package/src/components/tree/tree.styles.ts +33 -0
- package/src/index.ts +5 -0
- package/src/utils/index.ts +15 -0
- package/themes/default/components/index.css +6 -0
- package/themes/default/index.css +8 -0
- package/themes/default/variables.css +168 -0
- package/themes/shared/theme.css +196 -0
- package/utilities/index.css +244 -0
- package/variants/index.css +106 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------------------------------
|
|
2
|
+
* Drawer Component Styles
|
|
3
|
+
* Block: drawer
|
|
4
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/* Panel enter/exit keyframes — Reka's Presence waits for animationend before unmounting */
|
|
7
|
+
@keyframes drawer-slide-in-right { from { transform: translateX(100%); } to { transform: translateX(0); } }
|
|
8
|
+
@keyframes drawer-slide-out-right { from { transform: translateX(0); } to { transform: translateX(100%); } }
|
|
9
|
+
@keyframes drawer-slide-in-left { from { transform: translateX(-100%); } to { transform: translateX(0); } }
|
|
10
|
+
@keyframes drawer-slide-out-left { from { transform: translateX(0); } to { transform: translateX(-100%); } }
|
|
11
|
+
@keyframes drawer-slide-in-top { from { transform: translateY(-100%); } to { transform: translateY(0); } }
|
|
12
|
+
@keyframes drawer-slide-out-top { from { transform: translateY(0); } to { transform: translateY(-100%); } }
|
|
13
|
+
@keyframes drawer-slide-in-bottom { from { transform: translateY(100%); } to { transform: translateY(0); } }
|
|
14
|
+
@keyframes drawer-slide-out-bottom{ from { transform: translateY(0); } to { transform: translateY(100%); } }
|
|
15
|
+
|
|
16
|
+
/* Backdrop fade keyframes */
|
|
17
|
+
@keyframes drawer-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
|
|
18
|
+
@keyframes drawer-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Element: trigger - the element that opens the drawer
|
|
22
|
+
*/
|
|
23
|
+
.drawer__trigger {
|
|
24
|
+
@apply inline-block cursor-(--cursor-interactive);
|
|
25
|
+
|
|
26
|
+
transition:
|
|
27
|
+
transform 300ms var(--ease-out-quart),
|
|
28
|
+
background-color 300ms var(--ease-smooth),
|
|
29
|
+
box-shadow 300ms var(--ease-out);
|
|
30
|
+
@apply motion-reduce:transition-none;
|
|
31
|
+
|
|
32
|
+
&:focus-visible:not(:focus),
|
|
33
|
+
&[data-focus-visible="true"] {
|
|
34
|
+
@apply status-focused;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&:disabled,
|
|
38
|
+
&[aria-disabled="true"] {
|
|
39
|
+
@apply status-disabled;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&:active,
|
|
43
|
+
&[data-pressed="true"] {
|
|
44
|
+
transform: scale(0.97);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Element: backdrop - the overlay behind the drawer panel
|
|
50
|
+
* Reka sets data-state="open"/"closed" on DialogOverlay.
|
|
51
|
+
* Reka's Presence component waits for animationend before unmounting.
|
|
52
|
+
*/
|
|
53
|
+
.drawer__backdrop {
|
|
54
|
+
@apply fixed inset-0 z-50;
|
|
55
|
+
@apply h-(--visual-viewport-height) w-full;
|
|
56
|
+
|
|
57
|
+
&[data-state="open"] {
|
|
58
|
+
animation: drawer-backdrop-in 0.2s ease forwards;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&[data-state="closed"] {
|
|
62
|
+
animation: drawer-backdrop-out 0.2s ease forwards;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@media (prefers-reduced-motion: reduce) {
|
|
66
|
+
animation: none !important;
|
|
67
|
+
opacity: 1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Modifier: backdrop--transparent
|
|
73
|
+
*/
|
|
74
|
+
.drawer__backdrop--transparent {
|
|
75
|
+
@apply bg-transparent;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Modifier: backdrop--opaque
|
|
80
|
+
*/
|
|
81
|
+
.drawer__backdrop--opaque {
|
|
82
|
+
@apply bg-backdrop;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Modifier: backdrop--blur
|
|
87
|
+
*/
|
|
88
|
+
.drawer__backdrop--blur {
|
|
89
|
+
@apply bg-backdrop backdrop-blur-md;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Element: dialog - the drawer panel (applied directly to DialogContent).
|
|
94
|
+
* Reka sets data-state="open"/"closed" on DialogContent; Presence waits for
|
|
95
|
+
* animationend on this element before unmounting on close.
|
|
96
|
+
*/
|
|
97
|
+
.drawer__dialog {
|
|
98
|
+
@apply fixed z-50;
|
|
99
|
+
@apply flex flex-col;
|
|
100
|
+
@apply bg-overlay shadow-overlay outline-none;
|
|
101
|
+
@apply p-6;
|
|
102
|
+
|
|
103
|
+
@media (prefers-reduced-motion: reduce) {
|
|
104
|
+
animation: none !important;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Modifier: dialog--right
|
|
110
|
+
* Panel anchored to the right edge, full viewport height.
|
|
111
|
+
*/
|
|
112
|
+
.drawer__dialog--right {
|
|
113
|
+
@apply top-0 right-0 bottom-0;
|
|
114
|
+
@apply w-80 max-w-[85vw] sm:w-96;
|
|
115
|
+
@apply rounded-none;
|
|
116
|
+
|
|
117
|
+
&[data-state="open"] { animation: drawer-slide-in-right 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
118
|
+
&[data-state="closed"] { animation: drawer-slide-out-right 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Modifier: dialog--left
|
|
123
|
+
* Panel anchored to the left edge, full viewport height.
|
|
124
|
+
*/
|
|
125
|
+
.drawer__dialog--left {
|
|
126
|
+
@apply top-0 left-0 bottom-0;
|
|
127
|
+
@apply w-80 max-w-[85vw] sm:w-96;
|
|
128
|
+
@apply rounded-none;
|
|
129
|
+
|
|
130
|
+
&[data-state="open"] { animation: drawer-slide-in-left 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
131
|
+
&[data-state="closed"] { animation: drawer-slide-out-left 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Modifier: dialog--top
|
|
136
|
+
* Panel anchored to the top edge, full viewport width.
|
|
137
|
+
*/
|
|
138
|
+
.drawer__dialog--top {
|
|
139
|
+
@apply top-0 left-0 right-0;
|
|
140
|
+
@apply w-full max-h-[85vh];
|
|
141
|
+
@apply rounded-b-2xl pb-2;
|
|
142
|
+
|
|
143
|
+
&[data-state="open"] { animation: drawer-slide-in-top 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
144
|
+
&[data-state="closed"] { animation: drawer-slide-out-top 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Modifier: dialog--bottom
|
|
149
|
+
* Panel anchored to the bottom edge, full viewport width.
|
|
150
|
+
*/
|
|
151
|
+
.drawer__dialog--bottom {
|
|
152
|
+
@apply bottom-0 left-0 right-0;
|
|
153
|
+
@apply w-full max-h-[85vh];
|
|
154
|
+
@apply rounded-t-2xl;
|
|
155
|
+
|
|
156
|
+
&[data-state="open"] { animation: drawer-slide-in-bottom 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
157
|
+
&[data-state="closed"] { animation: drawer-slide-out-bottom 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Element: header
|
|
162
|
+
*/
|
|
163
|
+
.drawer__header {
|
|
164
|
+
@apply flex flex-col gap-3;
|
|
165
|
+
@apply mb-0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Element: heading
|
|
170
|
+
*/
|
|
171
|
+
.drawer__heading {
|
|
172
|
+
@apply align-middle;
|
|
173
|
+
@apply text-sm font-medium text-foreground;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Element: body
|
|
178
|
+
*/
|
|
179
|
+
.drawer__body {
|
|
180
|
+
@apply min-h-0 flex-1;
|
|
181
|
+
@apply text-sm leading-[1.43] text-muted;
|
|
182
|
+
@apply -m-[3px] my-0 p-[3px];
|
|
183
|
+
@apply overflow-y-auto overscroll-contain;
|
|
184
|
+
-webkit-overflow-scrolling: touch;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Element: footer
|
|
189
|
+
*/
|
|
190
|
+
.drawer__footer {
|
|
191
|
+
@apply flex flex-row items-center justify-end gap-2;
|
|
192
|
+
@apply mt-0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Element: handle
|
|
197
|
+
*/
|
|
198
|
+
.drawer__handle {
|
|
199
|
+
@apply flex items-center justify-center;
|
|
200
|
+
@apply pb-2;
|
|
201
|
+
|
|
202
|
+
& > [data-slot="drawer-handle-bar"] {
|
|
203
|
+
@apply h-1 w-9 rounded-full;
|
|
204
|
+
@apply bg-separator;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Element: close-trigger
|
|
210
|
+
*/
|
|
211
|
+
.drawer__close-trigger {
|
|
212
|
+
@apply cursor-pointer;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Spacing between elements
|
|
217
|
+
*/
|
|
218
|
+
.drawer__header + .drawer__body { @apply mt-2; }
|
|
219
|
+
.drawer__header + .drawer__footer { @apply mt-5; }
|
|
220
|
+
.drawer__body + .drawer__footer { @apply mt-5; }
|
|
221
|
+
.drawer__handle + .drawer__header { @apply mt-0; }
|
|
222
|
+
.drawer__handle + .drawer__body { @apply mt-0; }
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
Dropdown
|
|
3
|
+
========================================================================== */
|
|
4
|
+
|
|
5
|
+
.dropdown {
|
|
6
|
+
@apply flex flex-col gap-1;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.dropdown__trigger {
|
|
10
|
+
@apply inline-block outline-none;
|
|
11
|
+
|
|
12
|
+
transition:
|
|
13
|
+
transform 300ms var(--ease-out-quart),
|
|
14
|
+
background-color 300ms var(--ease-smooth),
|
|
15
|
+
box-shadow 300ms var(--ease-out);
|
|
16
|
+
@apply transform-gpu motion-reduce:transition-none;
|
|
17
|
+
|
|
18
|
+
cursor: var(--cursor-interactive);
|
|
19
|
+
|
|
20
|
+
&:focus-visible:not(:focus),
|
|
21
|
+
&[data-focus-visible="true"] {
|
|
22
|
+
@apply status-focused;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:disabled,
|
|
26
|
+
&[aria-disabled="true"] {
|
|
27
|
+
@apply status-disabled;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&[data-pending="true"] {
|
|
31
|
+
@apply status-pending;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&:active,
|
|
35
|
+
&[data-pressed="true"] {
|
|
36
|
+
transform: scale(0.97);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Positioning, sizing, and open/close animations — visuals come from card classes */
|
|
41
|
+
.dropdown__popover {
|
|
42
|
+
@apply max-w-[48svw] origin-(--trigger-anchor-point) scroll-py-1 overflow-y-auto overscroll-contain md:min-w-55;
|
|
43
|
+
@apply will-change-[opacity,transform];
|
|
44
|
+
|
|
45
|
+
&:focus-visible:not(:focus),
|
|
46
|
+
&[data-focus-visible="true"] {
|
|
47
|
+
@apply outline-none;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&[data-state="open"] {
|
|
51
|
+
@apply animate-in duration-200 ease-smooth fade-in-0 zoom-in-95;
|
|
52
|
+
|
|
53
|
+
&[data-side="top"] { @apply slide-in-from-bottom-1; }
|
|
54
|
+
&[data-side="bottom"] { @apply slide-in-from-top-1; }
|
|
55
|
+
&[data-side="left"] { @apply slide-in-from-right-1; }
|
|
56
|
+
&[data-side="right"] { @apply slide-in-from-left-1; }
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&[data-state="closed"] {
|
|
60
|
+
@apply animate-out duration-150 ease-smooth zoom-out-95 fade-out;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Inner list — shares list-container base */
|
|
65
|
+
.dropdown__menu {
|
|
66
|
+
@apply list-container gap-0.5;
|
|
67
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* Base error message styles */
|
|
2
|
+
.error-message {
|
|
3
|
+
@apply h-auto text-xs wrap-break-word text-danger;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Transitions
|
|
7
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
8
|
+
*/
|
|
9
|
+
transition:
|
|
10
|
+
opacity 300ms var(--ease-out),
|
|
11
|
+
height 350ms var(--ease-smooth);
|
|
12
|
+
@apply motion-reduce:transition-none;
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* Field error styles */
|
|
2
|
+
.field-error {
|
|
3
|
+
@apply h-0 px-1 text-xs wrap-break-word text-danger opacity-0 data-[visible=true]:h-auto data-[visible=true]:opacity-100;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Transitions
|
|
7
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
8
|
+
*/
|
|
9
|
+
transition:
|
|
10
|
+
opacity 300ms var(--ease-out),
|
|
11
|
+
height 350ms var(--ease-smooth);
|
|
12
|
+
@apply motion-reduce:transition-none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* ─── Icon slot ──────────────────────────────────────────────────────────────── */
|
|
16
|
+
|
|
17
|
+
.field-error__icon {
|
|
18
|
+
@apply inline-flex size-4 shrink-0 align-middle;
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* Base component styles */
|
|
2
|
+
.fieldset {
|
|
3
|
+
@apply flex flex-col gap-6;
|
|
4
|
+
/* fix flexbox issue in Safari when fieldset with legend is inside a flexbox */
|
|
5
|
+
@apply shrink grow basis-0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.fieldset__legend {
|
|
9
|
+
@apply text-sm font-medium text-foreground;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.fieldset__description {
|
|
13
|
+
@apply text-sm text-foreground/60;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* ─── Field group slots ───────────────────────────────────────────────────────── */
|
|
17
|
+
|
|
18
|
+
.fieldset__field-group {
|
|
19
|
+
@apply w-full;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.fieldset__field-group--vertical {
|
|
23
|
+
@apply flex flex-col gap-4;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.fieldset__field-group--horizontal {
|
|
27
|
+
@apply flex flex-row flex-wrap gap-4;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.fieldset__actions {
|
|
31
|
+
@apply flex items-center gap-2 pt-1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ─── State modifiers ────────────────────────────────────────────────────────── */
|
|
35
|
+
|
|
36
|
+
.fieldset--disabled,
|
|
37
|
+
.fieldset[data-disabled="true"] {
|
|
38
|
+
@apply opacity-60 pointer-events-none;
|
|
39
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
Base header styles
|
|
3
|
+
========================================================================== */
|
|
4
|
+
|
|
5
|
+
.header {
|
|
6
|
+
@apply w-full px-2 pt-1.5 pb-1 text-left text-xs font-medium text-muted;
|
|
7
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/* ------------------------------------------------------------------------------------------------
|
|
2
|
+
* Component Styles
|
|
3
|
+
* ------------------------------------------------------------------------------------------------
|
|
4
|
+
* CRITICAL: Import order matters for CSS specificity and style overrides.
|
|
5
|
+
*
|
|
6
|
+
* General Rule: Shared/primitive components MUST be imported FIRST, before components that use them.
|
|
7
|
+
* This ensures that parent component styles can properly override shared component defaults.
|
|
8
|
+
*
|
|
9
|
+
* Organization: Components are grouped by their Storybook categories (Components/Category/Name)
|
|
10
|
+
* to maintain consistency between documentation and implementation.
|
|
11
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
12
|
+
|
|
13
|
+
/* ------------------------------------------------------------------------------------------------
|
|
14
|
+
* Shared Components - MUST Import FIRST
|
|
15
|
+
* ------------------------------------------------------------------------------------------------
|
|
16
|
+
* These are used by multiple components and must be imported early to allow proper overrides.
|
|
17
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
18
|
+
@import "./close-button.css";
|
|
19
|
+
@import "./description.css";
|
|
20
|
+
@import "./error-message.css";
|
|
21
|
+
@import "./label.css";
|
|
22
|
+
|
|
23
|
+
/* ------------------------------------------------------------------------------------------------
|
|
24
|
+
* Navigation
|
|
25
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
26
|
+
@import "./accordion.css";
|
|
27
|
+
@import "./breadcrumbs.css";
|
|
28
|
+
@import "./collapsible-group.css";
|
|
29
|
+
@import "./collapsible.css";
|
|
30
|
+
@import "./link.css";
|
|
31
|
+
@import "./pagination.css";
|
|
32
|
+
@import "./tabs.css";
|
|
33
|
+
|
|
34
|
+
/* ------------------------------------------------------------------------------------------------
|
|
35
|
+
* Buttons
|
|
36
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
37
|
+
@import "./button.css";
|
|
38
|
+
@import "./button-group.css";
|
|
39
|
+
@import "./toggle-button.css";
|
|
40
|
+
@import "./toggle-button-group.css";
|
|
41
|
+
@import "./toolbar.css";
|
|
42
|
+
|
|
43
|
+
/* ------------------------------------------------------------------------------------------------
|
|
44
|
+
* Collections
|
|
45
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
46
|
+
@import "./dropdown.css";
|
|
47
|
+
@import "./list-box-item.css";
|
|
48
|
+
@import "./list-box-section.css";
|
|
49
|
+
@import "./list-box.css";
|
|
50
|
+
@import "./menu-item.css";
|
|
51
|
+
@import "./menu-section.css";
|
|
52
|
+
@import "./menu.css";
|
|
53
|
+
@import "./tag-group.css";
|
|
54
|
+
@import "./tag.css";
|
|
55
|
+
|
|
56
|
+
/* ------------------------------------------------------------------------------------------------
|
|
57
|
+
* Colors
|
|
58
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
59
|
+
@import "./color-area.css";
|
|
60
|
+
@import "./color-picker.css";
|
|
61
|
+
@import "./color-slider.css";
|
|
62
|
+
@import "./color-swatch.css";
|
|
63
|
+
@import "./color-swatch-picker.css";
|
|
64
|
+
@import "./color-field.css";
|
|
65
|
+
@import "./color-input-group.css";
|
|
66
|
+
|
|
67
|
+
/* ------------------------------------------------------------------------------------------------
|
|
68
|
+
* Controls
|
|
69
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
70
|
+
@import "./slider.css";
|
|
71
|
+
@import "./switch.css";
|
|
72
|
+
@import "./switch-group.css";
|
|
73
|
+
|
|
74
|
+
/* ------------------------------------------------------------------------------------------------
|
|
75
|
+
* DataDisplay
|
|
76
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
77
|
+
@import "./badge.css";
|
|
78
|
+
@import "./chip.css";
|
|
79
|
+
@import "./table.css";
|
|
80
|
+
|
|
81
|
+
/* ------------------------------------------------------------------------------------------------
|
|
82
|
+
* Feedback
|
|
83
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
84
|
+
@import "./alert.css";
|
|
85
|
+
@import "./empty-state.css";
|
|
86
|
+
@import "./skeleton.css";
|
|
87
|
+
@import "./meter.css";
|
|
88
|
+
@import "./progress-bar.css";
|
|
89
|
+
@import "./progress-circle.css";
|
|
90
|
+
@import "./spinner.css";
|
|
91
|
+
@import "./toast.css";
|
|
92
|
+
|
|
93
|
+
/* ------------------------------------------------------------------------------------------------
|
|
94
|
+
* Forms
|
|
95
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
96
|
+
@import "./checkbox-group.css";
|
|
97
|
+
@import "./checkbox.css";
|
|
98
|
+
@import "./fieldset.css";
|
|
99
|
+
@import "./input-otp.css";
|
|
100
|
+
@import "./input.css";
|
|
101
|
+
@import "./number-field.css";
|
|
102
|
+
@import "./radio-group.css";
|
|
103
|
+
@import "./radio.css";
|
|
104
|
+
@import "./textarea.css";
|
|
105
|
+
|
|
106
|
+
/* ------------------------------------------------------------------------------------------------
|
|
107
|
+
* Date & Time
|
|
108
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
109
|
+
@import "./calendar.css";
|
|
110
|
+
@import "./range-calendar.css";
|
|
111
|
+
@import "./calendar-year-picker.css";
|
|
112
|
+
@import "./date-input.css";
|
|
113
|
+
@import "./date-range-field.css";
|
|
114
|
+
@import "./time-field.css";
|
|
115
|
+
@import "./date-picker.css";
|
|
116
|
+
@import "./date-range-picker.css";
|
|
117
|
+
|
|
118
|
+
/* ------------------------------------------------------------------------------------------------
|
|
119
|
+
* Layout
|
|
120
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
121
|
+
@import "./card.css";
|
|
122
|
+
@import "./header.css";
|
|
123
|
+
@import "./separator.css";
|
|
124
|
+
@import "./surface.css";
|
|
125
|
+
|
|
126
|
+
/* ------------------------------------------------------------------------------------------------
|
|
127
|
+
* Media
|
|
128
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
129
|
+
@import "./avatar.css";
|
|
130
|
+
|
|
131
|
+
/* ------------------------------------------------------------------------------------------------
|
|
132
|
+
* Overlays
|
|
133
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
134
|
+
@import "./alert-dialog.css";
|
|
135
|
+
@import "./drawer.css";
|
|
136
|
+
@import "./modal.css";
|
|
137
|
+
@import "./popover.css";
|
|
138
|
+
@import "./tooltip.css";
|
|
139
|
+
|
|
140
|
+
/* ------------------------------------------------------------------------------------------------
|
|
141
|
+
* Pickers
|
|
142
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
143
|
+
@import "./combo-box.css";
|
|
144
|
+
@import "./select.css";
|
|
145
|
+
@import "./autocomplete.css";
|
|
146
|
+
|
|
147
|
+
/* ------------------------------------------------------------------------------------------------
|
|
148
|
+
* Typography
|
|
149
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
150
|
+
@import "./kbd.css";
|
|
151
|
+
|
|
152
|
+
/* ------------------------------------------------------------------------------------------------
|
|
153
|
+
* Utilities
|
|
154
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
155
|
+
@import "./scroll-shadow.css";
|
|
156
|
+
@import "./scroll-area.css";
|
|
157
|
+
|
|
158
|
+
/* ------------------------------------------------------------------------------------------------
|
|
159
|
+
* Extended (Auron UI extras)
|
|
160
|
+
* ------------------------------------------------------------------------------------------------ */
|
|
161
|
+
@import "./aspect-ratio.css";
|
|
162
|
+
@import "./splitter.css";
|
|
163
|
+
@import "./stepper.css";
|
|
164
|
+
@import "./tree.css";
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/* Base container */
|
|
2
|
+
.input-otp {
|
|
3
|
+
@apply relative flex items-center gap-2;
|
|
4
|
+
|
|
5
|
+
&[data-disabled] {
|
|
6
|
+
@apply cursor-not-allowed opacity-50;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Group - slots separated with gap */
|
|
11
|
+
.input-otp__group {
|
|
12
|
+
@apply flex items-center gap-2;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Individual slot box - fully rounded, standalone */
|
|
16
|
+
.input-otp__slot {
|
|
17
|
+
@apply relative flex h-10 w-9.5 flex-1 items-center justify-center text-center;
|
|
18
|
+
@apply border bg-field text-field-foreground shadow-field;
|
|
19
|
+
@apply rounded-field text-sm font-semibold outline-none;
|
|
20
|
+
|
|
21
|
+
border-width: 1px;
|
|
22
|
+
border-color: color-mix(in oklab, var(--foreground) 12%, transparent);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Transitions
|
|
26
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
27
|
+
*/
|
|
28
|
+
transition:
|
|
29
|
+
background-color 300ms var(--ease-smooth),
|
|
30
|
+
border-color 300ms var(--ease-smooth),
|
|
31
|
+
box-shadow 300ms var(--ease-out);
|
|
32
|
+
@apply motion-reduce:transition-none;
|
|
33
|
+
|
|
34
|
+
/* Hover */
|
|
35
|
+
@media (hover: hover) {
|
|
36
|
+
&:hover,
|
|
37
|
+
&[data-hovered="true"] {
|
|
38
|
+
@apply bg-field-hover;
|
|
39
|
+
border-color: var(--color-field-border-hover);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Active/Focus */
|
|
44
|
+
&[data-active="true"] {
|
|
45
|
+
@apply z-10 bg-field-focus status-focused-field;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Filled */
|
|
49
|
+
&[data-filled="true"] {
|
|
50
|
+
@apply bg-field-focus;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Disabled */
|
|
54
|
+
&[data-disabled] {
|
|
55
|
+
@apply status-disabled;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Invalid */
|
|
59
|
+
&[aria-invalid="true"] {
|
|
60
|
+
@apply status-invalid-field;
|
|
61
|
+
background-color: var(--color-field-focus);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Slot value */
|
|
66
|
+
.input-otp__slot-value {
|
|
67
|
+
@apply text-lg leading-6 tracking-[-0.27px];
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Animations
|
|
71
|
+
* CRITICAL: motion-reduce must be AFTER animation for correct override specificity
|
|
72
|
+
*/
|
|
73
|
+
animation: slot-value-in 300ms var(--ease-smooth) both;
|
|
74
|
+
transform-origin: bottom center;
|
|
75
|
+
@apply motion-reduce:animate-none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Caret */
|
|
79
|
+
.input-otp__caret {
|
|
80
|
+
@apply absolute h-4 w-[2px] animate-caret-blink rounded-[4px] bg-field-placeholder;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Separator */
|
|
84
|
+
.input-otp__separator {
|
|
85
|
+
@apply h-[2px] w-[6px] shrink-0 rounded-[4px] bg-separator;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Variant property definitions */
|
|
89
|
+
.input-otp--primary {
|
|
90
|
+
/* Default styles */
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.input-otp--secondary .input-otp__slot {
|
|
94
|
+
@apply shadow-none;
|
|
95
|
+
background-color: var(--input-otp-slot-bg);
|
|
96
|
+
|
|
97
|
+
--input-otp-slot-bg: var(--color-default);
|
|
98
|
+
--input-otp-slot-bg-hover: var(--color-default-hover);
|
|
99
|
+
--input-otp-slot-bg-focus: var(--color-default);
|
|
100
|
+
|
|
101
|
+
@media (hover: hover) {
|
|
102
|
+
&:hover,
|
|
103
|
+
&[data-hovered="true"] {
|
|
104
|
+
background-color: var(--input-otp-slot-bg-hover);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&[data-active="true"],
|
|
109
|
+
&[data-filled="true"] {
|
|
110
|
+
background-color: var(--input-otp-slot-bg-focus);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Animations */
|
|
115
|
+
@keyframes slot-value-in {
|
|
116
|
+
0% {
|
|
117
|
+
opacity: 0;
|
|
118
|
+
transform: translateY(8px) scale(0.8);
|
|
119
|
+
}
|
|
120
|
+
100% {
|
|
121
|
+
opacity: 1;
|
|
122
|
+
transform: translateY(0) scale(1);
|
|
123
|
+
}
|
|
124
|
+
}
|