@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,335 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------------------------------
|
|
2
|
+
* Modal Component Styles
|
|
3
|
+
* Block: modal
|
|
4
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Element: trigger - the element that opens the modal
|
|
8
|
+
*/
|
|
9
|
+
.modal__trigger {
|
|
10
|
+
@apply inline-block cursor-(--cursor-interactive);
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Transitions
|
|
14
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
15
|
+
*/
|
|
16
|
+
transition:
|
|
17
|
+
transform 300ms var(--ease-out-quart),
|
|
18
|
+
background-color 300ms var(--ease-smooth),
|
|
19
|
+
box-shadow 300ms var(--ease-out);
|
|
20
|
+
@apply motion-reduce:transition-none;
|
|
21
|
+
|
|
22
|
+
/* Focus state */
|
|
23
|
+
&:focus-visible:not(:focus),
|
|
24
|
+
&[data-focus-visible="true"] {
|
|
25
|
+
@apply status-focused;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Disabled state */
|
|
29
|
+
&:disabled,
|
|
30
|
+
&[aria-disabled="true"] {
|
|
31
|
+
@apply status-disabled;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Active/pressed state */
|
|
35
|
+
&:active,
|
|
36
|
+
&[data-pressed="true"] {
|
|
37
|
+
transform: scale(0.97);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Element: backdrop - the overlay behind the dialog
|
|
43
|
+
*/
|
|
44
|
+
.modal__backdrop {
|
|
45
|
+
@apply fixed inset-0 z-50;
|
|
46
|
+
@apply flex flex-row items-center justify-center;
|
|
47
|
+
@apply h-(--visual-viewport-height) w-full;
|
|
48
|
+
|
|
49
|
+
/* Entering animation */
|
|
50
|
+
&[data-state="open"] {
|
|
51
|
+
@apply animate-in duration-300 ease-out fade-in-0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Exiting animation */
|
|
55
|
+
&[data-state="closed"] {
|
|
56
|
+
@apply animate-out duration-300 ease-out fade-out-0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Reduce Animation
|
|
61
|
+
* CRITICAL: motion-reduce must be AFTER animate for correct override specificity
|
|
62
|
+
*/
|
|
63
|
+
&,
|
|
64
|
+
& {
|
|
65
|
+
@apply will-change-[opacity];
|
|
66
|
+
@apply motion-reduce:animate-none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Modifier: backdrop--transparent
|
|
72
|
+
*/
|
|
73
|
+
.modal__backdrop--transparent {
|
|
74
|
+
@apply bg-transparent;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Modifier: backdrop--opaque
|
|
79
|
+
*/
|
|
80
|
+
.modal__backdrop--opaque {
|
|
81
|
+
@apply bg-backdrop;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Modifier: backdrop--blur
|
|
86
|
+
*/
|
|
87
|
+
.modal__backdrop--blur {
|
|
88
|
+
@apply bg-backdrop backdrop-blur-md;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Element: container - the positioning wrapper for the modal
|
|
93
|
+
*/
|
|
94
|
+
.modal__container {
|
|
95
|
+
@apply flex flex-col items-center fixed z-[100] top-[50%] left-[50%] max-h-[85vh] w-[90vw] max-w-[450px] translate-x-[-50%] translate-y-[-50%];
|
|
96
|
+
@apply h-(--visual-viewport-height) w-full min-w-0 flex-1;
|
|
97
|
+
@apply p-4;
|
|
98
|
+
@apply sm:w-fit sm:p-10;
|
|
99
|
+
@apply pointer-events-none;
|
|
100
|
+
|
|
101
|
+
/* Entering animation */
|
|
102
|
+
&[data-state="open"] {
|
|
103
|
+
|
|
104
|
+
@apply animate-in duration-300 ease-out-quad fade-in-0 zoom-in-105;
|
|
105
|
+
|
|
106
|
+
&[data-placement="auto"] {
|
|
107
|
+
@apply slide-in-from-bottom-1;
|
|
108
|
+
@apply sm:slide-in-from-bottom-0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&[data-placement="top"] {
|
|
112
|
+
@apply slide-in-from-top-1;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&[data-placement="center"] {
|
|
116
|
+
@apply slide-in-from-top-0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&[data-placement="bottom"] {
|
|
120
|
+
@apply slide-in-from-bottom-1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Exiting animation */
|
|
125
|
+
&[data-state="closed"] {
|
|
126
|
+
@apply animate-out duration-150 ease-out-quad fade-out-0 zoom-out-95;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Reduce Animation
|
|
131
|
+
* CRITICAL: motion-reduce must be AFTER animate for correct override specificity
|
|
132
|
+
*/
|
|
133
|
+
&,
|
|
134
|
+
& {
|
|
135
|
+
@apply will-change-[opacity,transform];
|
|
136
|
+
@apply motion-reduce:animate-none;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Modifier: container--scroll-outside
|
|
142
|
+
*/
|
|
143
|
+
.modal__container--scroll-outside {
|
|
144
|
+
@apply overflow-y-auto;
|
|
145
|
+
@apply pointer-events-auto;
|
|
146
|
+
-webkit-overflow-scrolling: touch;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Modifier: container--full
|
|
151
|
+
*/
|
|
152
|
+
.modal__container--full {
|
|
153
|
+
@apply p-0 sm:p-0;
|
|
154
|
+
|
|
155
|
+
/* Entering animation */
|
|
156
|
+
& {
|
|
157
|
+
@apply slide-in-from-bottom-0 zoom-in-100;
|
|
158
|
+
@apply sm:slide-in-from-bottom-0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Exiting animation */
|
|
162
|
+
& {
|
|
163
|
+
@apply zoom-out-100;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Element: dialog - the content container for the modal
|
|
169
|
+
*/
|
|
170
|
+
.modal__dialog {
|
|
171
|
+
@apply relative;
|
|
172
|
+
@apply flex w-full flex-col;
|
|
173
|
+
@apply rounded-3xl bg-overlay shadow-overlay outline-none;
|
|
174
|
+
@apply p-6;
|
|
175
|
+
@apply pointer-events-auto;
|
|
176
|
+
|
|
177
|
+
&[data-placement="auto"] {
|
|
178
|
+
@apply mt-auto;
|
|
179
|
+
@apply sm:my-auto;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
&[data-placement="center"] {
|
|
183
|
+
@apply my-auto;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
&[data-placement="bottom"] {
|
|
187
|
+
@apply mt-auto;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
&[data-placement="top"] {
|
|
191
|
+
@apply mt-0;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Modifier: dialog--scroll-inside
|
|
197
|
+
*/
|
|
198
|
+
.modal__dialog--scroll-inside {
|
|
199
|
+
@apply overflow-hidden;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Modifier: dialog--scroll-outside
|
|
204
|
+
*/
|
|
205
|
+
.modal__dialog--scroll-outside {
|
|
206
|
+
@apply h-auto;
|
|
207
|
+
@apply min-h-0 shrink-0;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Modifier: dialog--xs
|
|
212
|
+
*/
|
|
213
|
+
.modal__dialog--xs {
|
|
214
|
+
@apply max-w-xs;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Modifier: dialog--sm
|
|
219
|
+
*/
|
|
220
|
+
.modal__dialog--sm {
|
|
221
|
+
@apply max-w-sm;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Modifier: dialog--md
|
|
226
|
+
*/
|
|
227
|
+
.modal__dialog--md {
|
|
228
|
+
@apply max-w-md;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Modifier: dialog--lg
|
|
233
|
+
*/
|
|
234
|
+
.modal__dialog--lg {
|
|
235
|
+
@apply max-w-lg;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Modifier: dialog--cover
|
|
240
|
+
*/
|
|
241
|
+
.modal__dialog--cover {
|
|
242
|
+
@apply h-full min-h-full w-full;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Modifier: dialog--full
|
|
247
|
+
*/
|
|
248
|
+
.modal__dialog--full {
|
|
249
|
+
@apply h-full min-h-full w-full;
|
|
250
|
+
@apply rounded-none shadow-none;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Element: header - the top section with the title
|
|
255
|
+
*/
|
|
256
|
+
.modal__header {
|
|
257
|
+
@apply flex flex-col gap-3;
|
|
258
|
+
@apply mb-0;
|
|
259
|
+
|
|
260
|
+
/* When header contains icon, use flex-col layout with gap */
|
|
261
|
+
& > .modal__icon {
|
|
262
|
+
@apply mb-0;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Element: heading - the main title text
|
|
268
|
+
*/
|
|
269
|
+
.modal__heading {
|
|
270
|
+
@apply align-middle;
|
|
271
|
+
@apply text-sm font-medium text-foreground;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Element: icon - the optional icon indicator
|
|
276
|
+
*/
|
|
277
|
+
.modal__icon {
|
|
278
|
+
@apply flex items-center justify-center;
|
|
279
|
+
@apply size-10 shrink-0;
|
|
280
|
+
@apply rounded-full select-none;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Element: body - the main content area
|
|
285
|
+
*/
|
|
286
|
+
.modal__body {
|
|
287
|
+
@apply min-h-0 flex-1;
|
|
288
|
+
@apply text-sm leading-[1.43] text-muted;
|
|
289
|
+
@apply my-0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Modifier: body--scroll-inside
|
|
294
|
+
*/
|
|
295
|
+
.modal__body--scroll-inside {
|
|
296
|
+
@apply overflow-y-auto;
|
|
297
|
+
-webkit-overflow-scrolling: touch;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Modifier: body--scroll-outside
|
|
302
|
+
*/
|
|
303
|
+
.modal__body--scroll-outside {
|
|
304
|
+
@apply overflow-y-visible;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Element: footer - the bottom action section
|
|
309
|
+
*/
|
|
310
|
+
.modal__footer {
|
|
311
|
+
@apply flex flex-row items-center justify-end gap-2;
|
|
312
|
+
@apply mt-0;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Element: close-trigger - the optional x icon button to close the modal
|
|
317
|
+
*/
|
|
318
|
+
.modal__close-trigger {
|
|
319
|
+
@apply absolute top-4 right-4;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Elements Spacing
|
|
324
|
+
*/
|
|
325
|
+
.modal__header + .modal__body {
|
|
326
|
+
@apply mt-2;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.modal__header + .modal__footer {
|
|
330
|
+
@apply mt-5;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.modal__body + .modal__footer {
|
|
334
|
+
@apply mt-5;
|
|
335
|
+
}
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
/* Number field styles */
|
|
2
|
+
.number-field {
|
|
3
|
+
@apply flex flex-col gap-1;
|
|
4
|
+
|
|
5
|
+
&[aria-invalid="true"],
|
|
6
|
+
&[data-invalid="true"] {
|
|
7
|
+
[data-slot="description"] {
|
|
8
|
+
@apply hidden;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[data-slot="label"] {
|
|
13
|
+
@apply w-fit;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[data-slot="description"] {
|
|
17
|
+
@apply px-1;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.number-field__group {
|
|
22
|
+
@apply grid h-9 items-center overflow-hidden rounded-field border bg-field text-sm text-field-foreground shadow-field outline-none;
|
|
23
|
+
border-width: var(--border-width-field);
|
|
24
|
+
border-color: var(--color-field-border);
|
|
25
|
+
grid-template-columns: 40px 1fr 40px;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Transitions
|
|
29
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
30
|
+
*/
|
|
31
|
+
transition:
|
|
32
|
+
background-color 300ms var(--ease-smooth),
|
|
33
|
+
border-color 300ms var(--ease-smooth),
|
|
34
|
+
box-shadow 300ms var(--ease-out);
|
|
35
|
+
@apply motion-reduce:transition-none;
|
|
36
|
+
|
|
37
|
+
/* Hover state */
|
|
38
|
+
@media (hover: hover) {
|
|
39
|
+
&:hover:not(:focus-within),
|
|
40
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
41
|
+
@apply bg-field-hover;
|
|
42
|
+
border-color: var(--color-field-border-hover);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Focus within state */
|
|
47
|
+
&[data-focus-within="true"],
|
|
48
|
+
&:focus-within {
|
|
49
|
+
@apply status-focused-field;
|
|
50
|
+
border-color: var(--color-field-border-focus);
|
|
51
|
+
background-color: var(--color-field-focus);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Invalid state */
|
|
55
|
+
&[aria-invalid="true"],
|
|
56
|
+
&[data-invalid="true"] {
|
|
57
|
+
@apply status-invalid-field;
|
|
58
|
+
background-color: var(--color-field-focus);
|
|
59
|
+
border-color: var(--color-field-border-invalid);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Disabled state */
|
|
63
|
+
&:disabled,
|
|
64
|
+
&[data-disabled="true"],
|
|
65
|
+
&[aria-disabled="true"] {
|
|
66
|
+
@apply status-disabled;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Readonly state */
|
|
70
|
+
&[data-readonly="true"] {
|
|
71
|
+
background-color: var(--color-default-100);
|
|
72
|
+
cursor: default;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.number-field__group--sm {
|
|
77
|
+
@apply h-7 text-xs;
|
|
78
|
+
grid-template-columns: 32px 1fr 32px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.number-field__group--md {
|
|
82
|
+
/* No styles — md is the default size defined on .number-field__group base */
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.number-field__group--lg {
|
|
86
|
+
@apply h-11 text-base;
|
|
87
|
+
grid-template-columns: 48px 1fr 48px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.number-field__input {
|
|
91
|
+
@apply min-w-0 rounded-none border-0 bg-transparent px-3 py-2 text-inherit tabular-nums shadow-none outline-none sm:text-sm h-full text-center;
|
|
92
|
+
|
|
93
|
+
/* Remove border radius on left side when decrement button is present */
|
|
94
|
+
.number-field__group:has([slot="decrement"]) & {
|
|
95
|
+
@apply rounded-l-none;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Remove border radius on right side when increment button is present */
|
|
99
|
+
.number-field__group:has([slot="increment"]) & {
|
|
100
|
+
@apply rounded-r-none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Focus state - handled by group */
|
|
104
|
+
&:focus,
|
|
105
|
+
&:focus-visible {
|
|
106
|
+
@apply outline-none;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.number-field__increment-button,
|
|
111
|
+
.number-field__decrement-button {
|
|
112
|
+
@apply flex h-full w-10 items-center justify-center rounded-none border-0 bg-transparent text-field-foreground outline-none;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Transitions
|
|
116
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
117
|
+
*/
|
|
118
|
+
transition:
|
|
119
|
+
background-color 300ms var(--ease-smooth),
|
|
120
|
+
border-color 300ms var(--ease-smooth);
|
|
121
|
+
@apply motion-reduce:transition-none;
|
|
122
|
+
|
|
123
|
+
/* Cursor */
|
|
124
|
+
cursor: var(--cursor-interactive);
|
|
125
|
+
|
|
126
|
+
/* Hover state */
|
|
127
|
+
&:hover,
|
|
128
|
+
&[data-hovered="true"] {
|
|
129
|
+
@apply bg-field-foreground/5;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Focus visible state */
|
|
133
|
+
&:focus-visible,
|
|
134
|
+
&[data-focus-visible="true"] {
|
|
135
|
+
outline: 2px solid var(--color-field-border-focus);
|
|
136
|
+
outline-offset: -2px;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* Pressed state */
|
|
140
|
+
&:active,
|
|
141
|
+
&[data-pressed="true"] {
|
|
142
|
+
@apply bg-field-foreground/10;
|
|
143
|
+
transform: scale(0.97);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Disabled state */
|
|
147
|
+
&:disabled,
|
|
148
|
+
&[data-disabled="true"],
|
|
149
|
+
&[aria-disabled="true"] {
|
|
150
|
+
@apply status-disabled;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* Icon styling */
|
|
154
|
+
[data-slot="number-field-increment-button-icon"],
|
|
155
|
+
[data-slot="number-field-decrement-button-icon"] {
|
|
156
|
+
@apply size-4;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.number-field__increment-button {
|
|
161
|
+
@apply rounded-none border-l border-field-placeholder/15;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.number-field__decrement-button {
|
|
165
|
+
@apply rounded-none border-r border-field-placeholder/15;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.number-field__increment-button--sm,
|
|
169
|
+
.number-field__decrement-button--sm {
|
|
170
|
+
@apply w-8;
|
|
171
|
+
|
|
172
|
+
[data-slot="number-field-increment-button-icon"],
|
|
173
|
+
[data-slot="number-field-decrement-button-icon"] {
|
|
174
|
+
@apply size-3;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.number-field__increment-button--lg,
|
|
179
|
+
.number-field__decrement-button--lg {
|
|
180
|
+
@apply w-12;
|
|
181
|
+
|
|
182
|
+
[data-slot="number-field-increment-button-icon"],
|
|
183
|
+
[data-slot="number-field-decrement-button-icon"] {
|
|
184
|
+
@apply size-5;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* ─── Variant modifiers ─────────────────────────────────────────────────────── */
|
|
189
|
+
|
|
190
|
+
.number-field--flat .number-field__group {
|
|
191
|
+
/* Transparent background across all states, no border, no shadow */
|
|
192
|
+
@apply shadow-none bg-transparent;
|
|
193
|
+
border-color: transparent;
|
|
194
|
+
|
|
195
|
+
@media (hover: hover) {
|
|
196
|
+
&:hover:not(:focus-within),
|
|
197
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
198
|
+
@apply bg-transparent;
|
|
199
|
+
border-color: transparent;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
&:focus-within,
|
|
204
|
+
&[data-focus-within="true"] {
|
|
205
|
+
@apply bg-transparent;
|
|
206
|
+
border-color: var(--color-field-border-focus);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.number-field--bordered .number-field__group {
|
|
211
|
+
/* Transparent background + light border */
|
|
212
|
+
@apply shadow-none;
|
|
213
|
+
background-color: transparent;
|
|
214
|
+
border-width: var(--border-width);
|
|
215
|
+
border-color: var(--border);
|
|
216
|
+
|
|
217
|
+
@media (hover: hover) {
|
|
218
|
+
&:hover:not(:focus-within),
|
|
219
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
220
|
+
background-color: transparent;
|
|
221
|
+
border-color: color-mix(in oklab, var(--border) 80%, var(--foreground) 20%);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
&:focus-within,
|
|
226
|
+
&[data-focus-within="true"] {
|
|
227
|
+
background-color: transparent;
|
|
228
|
+
border-color: var(--color-field-border-focus);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.number-field--faded .number-field__group {
|
|
233
|
+
/* Muted background + visible border */
|
|
234
|
+
@apply shadow-none;
|
|
235
|
+
background-color: var(--color-background-tertiary);
|
|
236
|
+
border-color: var(--color-border);
|
|
237
|
+
|
|
238
|
+
@media (hover: hover) {
|
|
239
|
+
&:hover:not(:focus-within),
|
|
240
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
241
|
+
background-color: var(--color-background-tertiary);
|
|
242
|
+
border-color: color-mix(in oklab, var(--color-border) 80%, var(--foreground) 20%);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
&:focus-within,
|
|
247
|
+
&[data-focus-within="true"] {
|
|
248
|
+
background-color: var(--color-background-tertiary);
|
|
249
|
+
border-color: var(--color-field-border-focus);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.number-field--underlined .number-field__group {
|
|
254
|
+
/* Bottom border only — always-visible underline */
|
|
255
|
+
@apply rounded-none shadow-none bg-transparent;
|
|
256
|
+
border-top: none;
|
|
257
|
+
border-left: none;
|
|
258
|
+
border-right: none;
|
|
259
|
+
border-bottom-width: var(--border-width);
|
|
260
|
+
border-bottom-color: var(--border);
|
|
261
|
+
|
|
262
|
+
@media (hover: hover) {
|
|
263
|
+
&:hover:not(:focus-within),
|
|
264
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
265
|
+
background-color: transparent;
|
|
266
|
+
border-bottom-color: color-mix(in oklab, var(--border) 80%, var(--foreground) 20%);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
&:focus-within,
|
|
271
|
+
&[data-focus-within="true"] {
|
|
272
|
+
@apply bg-transparent;
|
|
273
|
+
border-bottom-color: var(--color-field-border-focus);
|
|
274
|
+
box-shadow: 0 1.2px 0 0 var(--color-field-border-focus);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.number-field--raised .number-field__group {
|
|
279
|
+
/* Elevated look: white bg + shadow, transparent border */
|
|
280
|
+
@apply shadow-md;
|
|
281
|
+
background-color: var(--snow);
|
|
282
|
+
border-color: transparent;
|
|
283
|
+
|
|
284
|
+
@media (hover: hover) {
|
|
285
|
+
&:hover:not(:focus-within),
|
|
286
|
+
&[data-hovered="true"]:not([data-focus-within="true"]) {
|
|
287
|
+
@apply shadow-lg;
|
|
288
|
+
background-color: var(--background);
|
|
289
|
+
border-color: transparent;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
&:focus-within,
|
|
294
|
+
&[data-focus-within="true"] {
|
|
295
|
+
@apply shadow-lg;
|
|
296
|
+
background-color: var(--snow);
|
|
297
|
+
border-color: var(--color-field-border-focus);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* ─── Size modifiers (base wrapper) ──────────────────────────────────────────── */
|
|
302
|
+
|
|
303
|
+
.number-field--sm {
|
|
304
|
+
@apply gap-0.5 text-xs;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.number-field--md {
|
|
308
|
+
/* No styles — md is the default size */
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.number-field--lg {
|
|
312
|
+
@apply gap-1.5 text-base;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* ─── Color modifiers ────────────────────────────────────────────────────────── */
|
|
316
|
+
|
|
317
|
+
.number-field--default .number-field__group {
|
|
318
|
+
--number-field-accent: var(--color-default-foreground);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.number-field--primary .number-field__group {
|
|
322
|
+
--number-field-accent: var(--color-primary);
|
|
323
|
+
|
|
324
|
+
&:focus-within,
|
|
325
|
+
&[data-focus-within="true"] {
|
|
326
|
+
border-color: var(--color-primary);
|
|
327
|
+
box-shadow: 0 0 0 1px var(--color-primary);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.number-field--secondary .number-field__group {
|
|
332
|
+
--number-field-accent: var(--color-secondary);
|
|
333
|
+
|
|
334
|
+
&:focus-within,
|
|
335
|
+
&[data-focus-within="true"] {
|
|
336
|
+
border-color: var(--color-secondary);
|
|
337
|
+
box-shadow: 0 0 0 1px var(--color-secondary);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.number-field--success .number-field__group {
|
|
342
|
+
--number-field-accent: var(--color-success);
|
|
343
|
+
|
|
344
|
+
&:focus-within,
|
|
345
|
+
&[data-focus-within="true"] {
|
|
346
|
+
border-color: var(--color-success);
|
|
347
|
+
box-shadow: 0 0 0 1px var(--color-success);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.number-field--warning .number-field__group {
|
|
352
|
+
--number-field-accent: var(--color-warning);
|
|
353
|
+
|
|
354
|
+
&:focus-within,
|
|
355
|
+
&[data-focus-within="true"] {
|
|
356
|
+
border-color: var(--color-warning);
|
|
357
|
+
box-shadow: 0 0 0 1px var(--color-warning);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.number-field--danger .number-field__group {
|
|
362
|
+
--number-field-accent: var(--color-danger);
|
|
363
|
+
|
|
364
|
+
&:focus-within,
|
|
365
|
+
&[data-focus-within="true"] {
|
|
366
|
+
border-color: var(--color-danger);
|
|
367
|
+
box-shadow: 0 0 0 1px var(--color-danger);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* ─── State modifiers ────────────────────────────────────────────────────────── */
|
|
372
|
+
|
|
373
|
+
.number-field--invalid .number-field__group {
|
|
374
|
+
border-color: var(--color-danger);
|
|
375
|
+
@apply status-invalid-field;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.number-field--disabled {
|
|
379
|
+
@apply opacity-60 cursor-not-allowed pointer-events-none;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.number-field--readonly .number-field__group {
|
|
383
|
+
background-color: var(--color-default-100);
|
|
384
|
+
cursor: default;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/* ─── Layout modifiers ───────────────────────────────────────────────────────── */
|
|
388
|
+
|
|
389
|
+
.number-field--full-width {
|
|
390
|
+
@apply w-full;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.number-field__group--full-width {
|
|
394
|
+
@apply w-full;
|
|
395
|
+
}
|