@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,649 @@
|
|
|
1
|
+
.select__trigger {
|
|
2
|
+
@apply relative flex items-center gap-2 rounded-field border bg-field px-3 py-2 text-sm text-field-foreground shadow-field outline-none select-none no-highlight sm:text-xs;
|
|
3
|
+
|
|
4
|
+
/* Default size - matches select__trigger--md (height equivalent to h-9) */
|
|
5
|
+
height: 2.25rem;
|
|
6
|
+
|
|
7
|
+
/* Cursor */
|
|
8
|
+
cursor: var(--cursor-interactive);
|
|
9
|
+
|
|
10
|
+
border-width: var(--border-width-field);
|
|
11
|
+
border-color: var(--color-field-border);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Transitions
|
|
15
|
+
* CRITICAL: motion-reduce must be AFTER transition for correct override specificity
|
|
16
|
+
*/
|
|
17
|
+
transition:
|
|
18
|
+
background-color 300ms var(--ease-smooth),
|
|
19
|
+
border-color 300ms var(--ease-smooth),
|
|
20
|
+
box-shadow 300ms var(--ease-out);
|
|
21
|
+
@apply motion-reduce:transition-none;
|
|
22
|
+
|
|
23
|
+
/* Add padding-right when indicator is present */
|
|
24
|
+
&:has(.select__indicator) {
|
|
25
|
+
@apply pr-7;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@media (hover: hover) {
|
|
29
|
+
&:hover:not(:focus),
|
|
30
|
+
&[data-hovered="true"]:not([data-focused="true"]):not([data-focus-visible="true"]) {
|
|
31
|
+
@apply bg-field-hover;
|
|
32
|
+
border-color: var(--color-field-border-hover);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&.select__trigger--sm {
|
|
37
|
+
@apply gap-[0.40rem];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.select__trigger--lg {
|
|
41
|
+
@apply gap-4;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Focus state */
|
|
45
|
+
&:focus,
|
|
46
|
+
&:focus-within,
|
|
47
|
+
&[data-focused="true"] {
|
|
48
|
+
@apply status-focused-field;
|
|
49
|
+
border-color: var(--color-field-border-focus);
|
|
50
|
+
background-color: var(--color-field-focus);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Focus visible state */
|
|
54
|
+
&:focus-visible,
|
|
55
|
+
&[data-focus-visible="true"] {
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Invalid state */
|
|
59
|
+
&[data-invalid="true"] {
|
|
60
|
+
@apply status-invalid-field;
|
|
61
|
+
background-color: var(--color-field-focus);
|
|
62
|
+
border-color: var(--color-field-border-invalid);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Disabled state */
|
|
66
|
+
&:disabled,
|
|
67
|
+
&[data-disabled],
|
|
68
|
+
&[data-disabled="true"],
|
|
69
|
+
&[aria-disabled="true"] {
|
|
70
|
+
@apply status-disabled;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Readonly state */
|
|
74
|
+
&[data-readonly="true"] {
|
|
75
|
+
background-color: var(--color-default-100);
|
|
76
|
+
cursor: default;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ─── Variant modifiers ─────────────────────────────────────────────────────── */
|
|
81
|
+
|
|
82
|
+
.select__trigger--flat {
|
|
83
|
+
/* Transparent background across all states, no border, no shadow */
|
|
84
|
+
@apply shadow-none bg-transparent;
|
|
85
|
+
border-color: transparent;
|
|
86
|
+
|
|
87
|
+
@media (hover: hover) {
|
|
88
|
+
&:hover:not(:focus),
|
|
89
|
+
&[data-hovered="true"]:not([data-focused="true"]):not([data-focus-visible="true"]) {
|
|
90
|
+
@apply bg-transparent;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&:focus,
|
|
95
|
+
&:focus-within,
|
|
96
|
+
&[data-focused="true"] {
|
|
97
|
+
@apply bg-transparent;
|
|
98
|
+
border-color: var(--color-field-border-focus);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.select__trigger--bordered {
|
|
103
|
+
/* Transparent background + light border */
|
|
104
|
+
@apply shadow-none;
|
|
105
|
+
background-color: transparent;
|
|
106
|
+
border-width: var(--border-width);
|
|
107
|
+
border-color: var(--border);
|
|
108
|
+
|
|
109
|
+
@media (hover: hover) {
|
|
110
|
+
&:hover:not(:focus),
|
|
111
|
+
&[data-hovered="true"]:not([data-focused="true"]):not([data-focus-visible="true"]) {
|
|
112
|
+
background-color: transparent;
|
|
113
|
+
border-color: color-mix(in oklab, var(--border) 80%, var(--foreground) 20%);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&:focus,
|
|
118
|
+
&:focus-within,
|
|
119
|
+
&[data-focused="true"] {
|
|
120
|
+
background-color: transparent;
|
|
121
|
+
border-color: var(--color-field-border-focus);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.select__trigger--faded {
|
|
126
|
+
/* Muted background + visible border */
|
|
127
|
+
@apply shadow-none;
|
|
128
|
+
background-color: var(--color-background-tertiary);
|
|
129
|
+
border-color: var(--color-border);
|
|
130
|
+
|
|
131
|
+
&:focus,
|
|
132
|
+
&:focus-within,
|
|
133
|
+
&[data-focused="true"] {
|
|
134
|
+
background-color: var(--color-background-tertiary);
|
|
135
|
+
border-color: var(--color-field-border-focus);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.select__trigger--underlined {
|
|
140
|
+
/* Bottom border only — always-visible underline. Flush left so text starts at
|
|
141
|
+
the underline edge; keep right padding so the absolute-positioned indicator
|
|
142
|
+
doesn't collide with content. */
|
|
143
|
+
@apply rounded-none shadow-none bg-transparent !pl-0;
|
|
144
|
+
border-top: none;
|
|
145
|
+
border-left: none;
|
|
146
|
+
border-right: none;
|
|
147
|
+
border-bottom-width: var(--border-width);
|
|
148
|
+
border-bottom-color: var(--border);
|
|
149
|
+
|
|
150
|
+
@media (hover: hover) {
|
|
151
|
+
&:hover:not(:focus),
|
|
152
|
+
&[data-hovered="true"]:not([data-focused="true"]):not([data-focus-visible="true"]) {
|
|
153
|
+
background-color: transparent;
|
|
154
|
+
border-bottom-color: color-mix(in oklab, var(--border) 80%, var(--foreground) 20%);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
&:focus,
|
|
159
|
+
&:focus-within,
|
|
160
|
+
&[data-focused="true"] {
|
|
161
|
+
@apply bg-transparent;
|
|
162
|
+
border-bottom-color: var(--color-field-border-focus);
|
|
163
|
+
--tw-ring-color: var(--focus);
|
|
164
|
+
box-shadow: 0 1.2px 0 0 var(--tw-ring-color, var(--color-field-border-focus));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.select__trigger--raised {
|
|
169
|
+
/* Elevated look: white bg + shadow, transparent border */
|
|
170
|
+
@apply shadow-md;
|
|
171
|
+
background-color: var(--snow);
|
|
172
|
+
border-color: transparent;
|
|
173
|
+
|
|
174
|
+
@media (hover: hover) {
|
|
175
|
+
&:hover:not(:focus),
|
|
176
|
+
&[data-hovered="true"]:not([data-focused="true"]):not([data-focus-visible="true"]) {
|
|
177
|
+
@apply shadow-lg;
|
|
178
|
+
background-color: var(--background);
|
|
179
|
+
border-color: transparent;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&:focus,
|
|
184
|
+
&:focus-within,
|
|
185
|
+
&[data-focused="true"] {
|
|
186
|
+
@apply shadow-lg;
|
|
187
|
+
background-color: var(--snow);
|
|
188
|
+
border-color: var(--color-field-border-focus);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/* ─── Size modifiers ─────────────────────────────────────────────────────────── */
|
|
193
|
+
|
|
194
|
+
.select__trigger--sm {
|
|
195
|
+
@apply text-xs px-2 py-1;
|
|
196
|
+
height: 1.75rem;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.select__trigger--lg {
|
|
200
|
+
@apply text-base px-4 py-2.5;
|
|
201
|
+
height: 2.75rem;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* ─── Color modifiers ────────────────────────────────────────────────────────── */
|
|
205
|
+
|
|
206
|
+
.select__trigger--default {
|
|
207
|
+
/* Default accent */
|
|
208
|
+
--select-accent: var(--color-default-foreground);
|
|
209
|
+
accent-color: var(--select-accent);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.select__trigger--primary {
|
|
213
|
+
--select-accent: var(--color-primary);
|
|
214
|
+
accent-color: var(--select-accent);
|
|
215
|
+
|
|
216
|
+
&:focus,
|
|
217
|
+
&:focus-within,
|
|
218
|
+
&[data-focused="true"] {
|
|
219
|
+
border-color: var(--color-primary);
|
|
220
|
+
--tw-ring-color: var(--color-secondary);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.select__trigger--secondary {
|
|
225
|
+
--select-accent: var(--color-secondary);
|
|
226
|
+
accent-color: var(--select-accent);
|
|
227
|
+
|
|
228
|
+
&:focus,
|
|
229
|
+
&:focus-within,
|
|
230
|
+
&[data-focused="true"] {
|
|
231
|
+
border-color: var(--color-secondary);
|
|
232
|
+
--tw-ring-color: var(--color-secondary);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.select__trigger--success {
|
|
237
|
+
--select-accent: var(--color-success);
|
|
238
|
+
accent-color: var(--select-accent);
|
|
239
|
+
|
|
240
|
+
&:focus,
|
|
241
|
+
&:focus-within,
|
|
242
|
+
&[data-focused="true"] {
|
|
243
|
+
border-color: var(--color-success);
|
|
244
|
+
--tw-ring-color: var(--color-success);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.select__trigger--warning {
|
|
249
|
+
--select-accent: var(--color-warning);
|
|
250
|
+
accent-color: var(--select-accent);
|
|
251
|
+
|
|
252
|
+
&:focus,
|
|
253
|
+
&:focus-within,
|
|
254
|
+
&[data-focused="true"] {
|
|
255
|
+
border-color: var(--color-warning);
|
|
256
|
+
--tw-ring-color: var(--color-warning);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.select__trigger--danger {
|
|
261
|
+
--select-accent: var(--color-danger);
|
|
262
|
+
accent-color: var(--select-accent);
|
|
263
|
+
|
|
264
|
+
&:focus,
|
|
265
|
+
&:focus-within,
|
|
266
|
+
&[data-focused="true"] {
|
|
267
|
+
border-color: var(--color-danger);
|
|
268
|
+
--tw-ring-color: var(--color-danger);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* ─── Underlined + color variant overrides ─────────────────────────────────── */
|
|
273
|
+
/* When .select__trigger--underlined is combined with any color variant, enforce
|
|
274
|
+
the bottom-only underline silhouette on focus (no full-box border, no full-ring
|
|
275
|
+
shadow). Each rule overrides .select__trigger--{color}'s focus box-shadow. */
|
|
276
|
+
|
|
277
|
+
.select__trigger--underlined.select__trigger--primary,
|
|
278
|
+
.select__trigger--underlined.select__trigger--secondary,
|
|
279
|
+
.select__trigger--underlined.select__trigger--success,
|
|
280
|
+
.select__trigger--underlined.select__trigger--warning,
|
|
281
|
+
.select__trigger--underlined.select__trigger--danger {
|
|
282
|
+
/* Re-assert underline-only silhouette even when color variant is applied */
|
|
283
|
+
border-top: none;
|
|
284
|
+
border-left: none;
|
|
285
|
+
border-right: none;
|
|
286
|
+
border-bottom-width: var(--border-width);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
/* ─── State modifiers ────────────────────────────────────────────────────────── */
|
|
291
|
+
|
|
292
|
+
.select__trigger--invalid {
|
|
293
|
+
/* Applied by tv() isInvalid variant — mirrors native :invalid */
|
|
294
|
+
border-color: var(--color-danger) !important;
|
|
295
|
+
@apply status-invalid-field;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.select__trigger--disabled {
|
|
299
|
+
/* Applied by tv() isDisabled variant — mirrors native :disabled */
|
|
300
|
+
@apply status-disabled opacity-60 cursor-not-allowed;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.select__trigger--readonly {
|
|
304
|
+
/* Applied by tv() isReadonly variant — mirrors native :read-only */
|
|
305
|
+
background-color: var(--color-default-100);
|
|
306
|
+
cursor: default;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* ─── Layout modifiers ───────────────────────────────────────────────────────── */
|
|
310
|
+
|
|
311
|
+
.select__trigger--full-width {
|
|
312
|
+
@apply w-full;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* ─── Slots ──────────────────────────────────────────────────────────────────── */
|
|
316
|
+
|
|
317
|
+
.select__value {
|
|
318
|
+
@apply flex-1 text-left bg-transparent outline-none border-0 p-0 h-auto text-inherit wrap-break-word;
|
|
319
|
+
|
|
320
|
+
/* Removes the list-box-item indicator element from the select value */
|
|
321
|
+
[data-slot="list-box-item-indicator"] {
|
|
322
|
+
@apply hidden;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/* Drive placeholder color off the trigger's data-filled state — Reka's own
|
|
327
|
+
data-placeholder attribute is unreliable here because SelectValue's selectedLabel
|
|
328
|
+
resolves through Reka's optionsSet which empties when SelectContent unmounts. */
|
|
329
|
+
.select__trigger:not([data-filled="true"]) .select__value {
|
|
330
|
+
@apply text-field-placeholder;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* ─── Label slot ─────────────────────────────────────────────────────────────── */
|
|
334
|
+
|
|
335
|
+
.select__label {
|
|
336
|
+
@apply text-sm font-medium select-none;
|
|
337
|
+
color: var(--color-field-placeholder);
|
|
338
|
+
pointer-events: none;
|
|
339
|
+
transition:
|
|
340
|
+
transform 300ms var(--ease-smooth),
|
|
341
|
+
color 300ms var(--ease-smooth),
|
|
342
|
+
scale 300ms var(--ease-smooth);
|
|
343
|
+
@apply motion-reduce:transition-none;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/* ─── Floating label (inside the trigger) ──────────────────────────────────── */
|
|
347
|
+
|
|
348
|
+
/* When a label is present, the trigger is taller to make room for the
|
|
349
|
+
floated label above the value. Heights override the base/size defaults. */
|
|
350
|
+
.select__trigger--label-inside {
|
|
351
|
+
position: relative;
|
|
352
|
+
height: 3.5rem; /* md: was 2.25rem; +0.75rem room for floated label */
|
|
353
|
+
padding-top: 0;
|
|
354
|
+
padding-bottom: 0;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.select__trigger--label-inside.select__trigger--sm {
|
|
358
|
+
height: 2.5rem; /* sm: was 1.75rem */
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.select__trigger--label-inside.select__trigger--lg {
|
|
362
|
+
height: 4rem; /* lg: was 2.75rem */
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.select__trigger--label-inside .select__label {
|
|
366
|
+
position: absolute;
|
|
367
|
+
left: 0.75rem; /* matches .select__trigger px-3 */
|
|
368
|
+
top: 50%;
|
|
369
|
+
transform: translateY(-50%);
|
|
370
|
+
transform-origin: left center;
|
|
371
|
+
font-size: var(--text-sm);
|
|
372
|
+
color: var(--color-field-placeholder);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
.select__trigger--label-inside.select__trigger--underlined .select__label {
|
|
376
|
+
left: 0rem;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/* Push the value down so it doesn't sit under the floated label.
|
|
380
|
+
Applied statically (not only in up-state) to keep the value box stable. */
|
|
381
|
+
.select__trigger--label-inside .select__value {
|
|
382
|
+
padding-top: 1rem;
|
|
383
|
+
padding-bottom: 0;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/* Hide the placeholder text while the label occupies the resting position.
|
|
387
|
+
Placeholder reveals only once the label has floated up (focused or filled).
|
|
388
|
+
Only applies when no value is selected (trigger lacks data-filled). */
|
|
389
|
+
.select__trigger--label-inside:not([data-filled="true"]) .select__value {
|
|
390
|
+
color: transparent;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.select__trigger--label-inside.select__trigger--default:focus .select__label,
|
|
394
|
+
.select__trigger--label-inside.select__trigger--default:focus-within .select__label,
|
|
395
|
+
.select__trigger--label-inside.select__trigger--default[data-focused="true"] .select__label,
|
|
396
|
+
.select__trigger--label-inside.select__trigger--default[data-state="open"] .select__label {
|
|
397
|
+
color: var(--color-foreground);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.select__trigger--label-inside:focus:not([data-filled="true"]) .select__value,
|
|
401
|
+
.select__trigger--label-inside:focus-within:not([data-filled="true"]) .select__value,
|
|
402
|
+
.select__trigger--label-inside[data-focused="true"]:not([data-filled="true"]) .select__value,
|
|
403
|
+
.select__trigger--label-inside[data-state="open"]:not([data-filled="true"]) .select__value {
|
|
404
|
+
color: var(--color-field-placeholder);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/* Up-state: focused OR open OR filled. Paired pseudo-class + data-attribute per the
|
|
408
|
+
Reka UI selector pairing rule. Reka's SelectTrigger sets data-state="open" while
|
|
409
|
+
the popover is open, so the label stays floated even after focus shifts to a list item. */
|
|
410
|
+
.select__trigger--label-inside:focus .select__label,
|
|
411
|
+
.select__trigger--label-inside:focus-within .select__label,
|
|
412
|
+
.select__trigger--label-inside[data-focused="true"] .select__label,
|
|
413
|
+
.select__trigger--label-inside[data-state="open"] .select__label,
|
|
414
|
+
.select__trigger--label-inside[data-filled="true"] .select__label {
|
|
415
|
+
transform: translateY(-110%) scale(0.85);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/* Size-aware offsets for the inside variant */
|
|
419
|
+
.select__trigger--label-inside.select__trigger--sm .select__label {
|
|
420
|
+
font-size: var(--text-xs, 0.75rem);
|
|
421
|
+
left: 0.5rem; /* matches .select__trigger--sm px-2 */
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.select__trigger--label-inside.select__trigger--sm .select__value {
|
|
425
|
+
padding-top: 0.625rem;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.select__trigger--label-inside.select__trigger--sm:focus .select__label,
|
|
429
|
+
.select__trigger--label-inside.select__trigger--sm:focus-within .select__label,
|
|
430
|
+
.select__trigger--label-inside.select__trigger--sm[data-focused="true"] .select__label,
|
|
431
|
+
.select__trigger--label-inside.select__trigger--sm[data-state="open"] .select__label,
|
|
432
|
+
.select__trigger--label-inside.select__trigger--sm[data-filled="true"] .select__label {
|
|
433
|
+
transform: translateY(-100%) scale(0.8);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.select__trigger--label-inside.select__trigger--lg .select__label {
|
|
437
|
+
font-size: var(--text-base, 1rem);
|
|
438
|
+
left: 1rem; /* matches .select__trigger--lg px-4 */
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.select__trigger--label-inside.select__trigger--lg .select__value {
|
|
442
|
+
padding-top: 1.125rem;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* Underlined + sm/lg: force the inside label flush-left (override the size-specific
|
|
446
|
+
left offsets above, which assume horizontal padding that underlined strips away). */
|
|
447
|
+
.select__trigger--label-inside.select__trigger--underlined.select__trigger--sm .select__label,
|
|
448
|
+
.select__trigger--label-inside.select__trigger--underlined.select__trigger--lg .select__label {
|
|
449
|
+
left: 0rem;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/* Underlined variant + inside label: ensure the value has enough top padding */
|
|
453
|
+
.select__trigger--underlined.select__trigger--label-inside .select__value {
|
|
454
|
+
padding-top: 1.125rem;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/* Invalid state — label color flips to danger */
|
|
458
|
+
.select__trigger--label-inside[data-invalid="true"] .select__label {
|
|
459
|
+
color: var(--color-danger);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/* ─── Root wrapper (holds label + field + helper) ───────────────────────── */
|
|
463
|
+
|
|
464
|
+
.select-root {
|
|
465
|
+
display: flex;
|
|
466
|
+
flex-direction: column;
|
|
467
|
+
gap: 0.375rem;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
.select-root--full-width {
|
|
471
|
+
@apply w-full;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.select-root--label-outside-left {
|
|
475
|
+
flex-direction: row;
|
|
476
|
+
align-items: flex-start;
|
|
477
|
+
gap: 0.75rem;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.select__main-wrapper {
|
|
481
|
+
display: flex;
|
|
482
|
+
flex-direction: column;
|
|
483
|
+
gap: 0.25rem;
|
|
484
|
+
flex: 1;
|
|
485
|
+
min-width: 0;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/* ─── Outside label ──────────────────────────────────────────────────────── */
|
|
489
|
+
|
|
490
|
+
.select-root--label-outside > .select__label,
|
|
491
|
+
.select-root--label-outside-left > .select__label {
|
|
492
|
+
position: static;
|
|
493
|
+
transform: none;
|
|
494
|
+
display: block;
|
|
495
|
+
pointer-events: auto;
|
|
496
|
+
font-size: var(--text-sm);
|
|
497
|
+
font-weight: 500;
|
|
498
|
+
color: var(--color-foreground);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/* Align outside-left label with value baseline; defaults tuned for md. */
|
|
502
|
+
.select-root--label-outside-left > .select__label {
|
|
503
|
+
padding-top: 0.5rem;
|
|
504
|
+
min-width: 5rem;
|
|
505
|
+
flex-shrink: 0;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
.select-root--label-outside[data-invalid="true"] > .select__label,
|
|
509
|
+
.select-root--label-outside-left[data-invalid="true"] > .select__label {
|
|
510
|
+
color: var(--color-danger);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/* ─── Helper text (description / error message) ─────────────────────────── */
|
|
514
|
+
|
|
515
|
+
.select__helper-wrapper { @apply picker-helper-wrapper; }
|
|
516
|
+
.select__description { @apply picker-description; }
|
|
517
|
+
.select__error-message { @apply picker-error-message; }
|
|
518
|
+
|
|
519
|
+
/* Color up-state — floated label picks up the focus accent per color variant */
|
|
520
|
+
.select__trigger--label-inside.select__trigger--primary:focus .select__label,
|
|
521
|
+
.select__trigger--label-inside.select__trigger--primary:focus-within .select__label,
|
|
522
|
+
.select__trigger--label-inside.select__trigger--primary[data-focused="true"] .select__label {
|
|
523
|
+
color: var(--color-primary);
|
|
524
|
+
}
|
|
525
|
+
.select__trigger--label-inside.select__trigger--secondary:focus .select__label,
|
|
526
|
+
.select__trigger--label-inside.select__trigger--secondary:focus-within .select__label,
|
|
527
|
+
.select__trigger--label-inside.select__trigger--secondary[data-focused="true"] .select__label {
|
|
528
|
+
color: var(--color-secondary);
|
|
529
|
+
}
|
|
530
|
+
.select__trigger--label-inside.select__trigger--success:focus .select__label,
|
|
531
|
+
.select__trigger--label-inside.select__trigger--success:focus-within .select__label,
|
|
532
|
+
.select__trigger--label-inside.select__trigger--success[data-focused="true"] .select__label {
|
|
533
|
+
color: var(--color-success);
|
|
534
|
+
}
|
|
535
|
+
.select__trigger--label-inside.select__trigger--warning:focus .select__label,
|
|
536
|
+
.select__trigger--label-inside.select__trigger--warning:focus-within .select__label,
|
|
537
|
+
.select__trigger--label-inside.select__trigger--warning[data-focused="true"] .select__label {
|
|
538
|
+
color: var(--color-warning);
|
|
539
|
+
}
|
|
540
|
+
.select__trigger--label-inside.select__trigger--danger:focus .select__label,
|
|
541
|
+
.select__trigger--label-inside.select__trigger--danger:focus-within .select__label,
|
|
542
|
+
.select__trigger--label-inside.select__trigger--danger[data-focused="true"] .select__label {
|
|
543
|
+
color: var(--color-danger);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/* ─── Indicator (chevron) ─────────────────────────────────────────────── */
|
|
547
|
+
|
|
548
|
+
.select__indicator {
|
|
549
|
+
@apply absolute inset-y-0 right-2 my-auto flex shrink-0 items-center justify-center text-field-placeholder transition duration-300;
|
|
550
|
+
|
|
551
|
+
/* Cursor */
|
|
552
|
+
cursor: var(--cursor-interactive);
|
|
553
|
+
|
|
554
|
+
&[data-state="open"] {
|
|
555
|
+
@apply rotate-180;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
&[data-slot="select-default-indicator"] {
|
|
559
|
+
@apply size-4;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/* ─── Start Content ──────────────────────────────────────────────────────── */
|
|
564
|
+
|
|
565
|
+
.select__start-content {
|
|
566
|
+
@apply inline-flex items-center justify-center shrink-0;
|
|
567
|
+
color: var(--color-field-placeholder);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.select__start-content svg {
|
|
571
|
+
@apply size-4;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
/* Inside label offset when a startContent adornment is present — push the
|
|
575
|
+
floated label past the icon so it doesn't collide. Mirrors input.css. */
|
|
576
|
+
.select__trigger--label-inside:has(> .select__start-content) .select__label {
|
|
577
|
+
left: calc(0.75rem + 1rem + 0.5rem); /* px-3 + size-4 icon + gap-2 */
|
|
578
|
+
}
|
|
579
|
+
.select__trigger--label-inside.select__trigger--underlined:has(> .select__start-content) .select__label {
|
|
580
|
+
left: calc(1rem + 0.5rem); /* icon + gap */
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.select__trigger--label-inside.select__trigger--sm:has(> .select__start-content) .select__label {
|
|
584
|
+
left: calc(0.5rem + 1rem + 0.4rem);
|
|
585
|
+
}
|
|
586
|
+
.select__trigger--label-inside.select__trigger--underlined.select__trigger--sm:has(> .select__start-content) .select__label {
|
|
587
|
+
left: calc(1rem + 0.4rem);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
.select__trigger--label-inside.select__trigger--lg:has(> .select__start-content) .select__label {
|
|
591
|
+
left: calc(1rem + 1rem + 1rem);
|
|
592
|
+
}
|
|
593
|
+
.select__trigger--label-inside.select__trigger--underlined.select__trigger--lg:has(> .select__start-content) .select__label {
|
|
594
|
+
left: calc(1rem + 1rem);
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
/* ─── Popover (listbox content) ─────────────────────────────────────────── */
|
|
598
|
+
/* Similar to popover content styles */
|
|
599
|
+
.select__popover {
|
|
600
|
+
/* Reka exposes --reka-select-trigger-width + --reka-select-content-transform-origin
|
|
601
|
+
on the content element; alias them into the design-system-wide names used below. */
|
|
602
|
+
--trigger-width: var(--reka-select-trigger-width);
|
|
603
|
+
--trigger-anchor-point: var(--reka-select-content-transform-origin);
|
|
604
|
+
|
|
605
|
+
@apply scroll-py-1 overflow-y-auto overscroll-contain rounded-3xl bg-overlay p-0 text-sm;
|
|
606
|
+
width: var(--trigger-width);
|
|
607
|
+
transform-origin: var(--trigger-anchor-point);
|
|
608
|
+
box-shadow: var(--shadow-overlay);
|
|
609
|
+
|
|
610
|
+
/* Constrain height to available viewport space (exposed by Reka's popper layer),
|
|
611
|
+
with an absolute cap so it never becomes a full-screen column. */
|
|
612
|
+
max-height: min(var(--reka-select-content-available-height, 20rem), 20rem);
|
|
613
|
+
scroll-behavior: smooth;
|
|
614
|
+
|
|
615
|
+
@apply overlay-popover-scrollbar;
|
|
616
|
+
|
|
617
|
+
/* Focus visible state */
|
|
618
|
+
&:has(> *:focus-visible):not(:focus-within),
|
|
619
|
+
&[data-focus-visible="true"] {
|
|
620
|
+
@apply outline-none;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/* Animations are handled by motion-v in SelectContent.vue.
|
|
624
|
+
Tailwind-animate classes are intentionally omitted here to avoid
|
|
625
|
+
a double-animation conflict with motion.div's scale/opacity transitions. */
|
|
626
|
+
& {
|
|
627
|
+
@apply will-change-[opacity,transform];
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/* Arrow styling */
|
|
631
|
+
& [data-slot="popover-overlay-arrow"] {
|
|
632
|
+
fill: var(--overlay);
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
/* Arrow rotation based on placement */
|
|
636
|
+
&[data-placement="bottom"] [data-slot="popover-overlay-arrow"] {
|
|
637
|
+
rotate: 180deg;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
&[data-placement="left"] [data-slot="popover-overlay-arrow"] {
|
|
641
|
+
rotate: -90deg;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
&[data-placement="right"] [data-slot="popover-overlay-arrow"] {
|
|
645
|
+
rotate: 90deg;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
@apply overlay-popover-listbox;
|
|
649
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/* Separator Component Styles */
|
|
2
|
+
|
|
3
|
+
/* Base separator with default horizontal orientation */
|
|
4
|
+
.separator {
|
|
5
|
+
@apply shrink-0 rounded-[4px] border-t-0 border-b-0 bg-separator;
|
|
6
|
+
|
|
7
|
+
/* Default size - horizontal orientation */
|
|
8
|
+
@apply h-px w-full;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Orientation variants */
|
|
12
|
+
.separator--horizontal {
|
|
13
|
+
@apply h-px w-full;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.separator--vertical {
|
|
17
|
+
@apply h-auto min-h-2 w-px self-stretch;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Color variants */
|
|
21
|
+
.separator--default {
|
|
22
|
+
@apply bg-separator;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.separator--secondary {
|
|
26
|
+
@apply bg-separator-secondary;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.separator--tertiary {
|
|
30
|
+
@apply bg-separator-tertiary;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.separator__container {
|
|
34
|
+
@apply flex items-center gap-3;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.separator__container--horizontal {
|
|
38
|
+
@apply w-full flex-row;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.separator__container--vertical {
|
|
42
|
+
@apply h-full flex-col justify-center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.separator__line {
|
|
46
|
+
@apply shrink-0 grow;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.separator__content {
|
|
50
|
+
@apply inline-flex items-center justify-center text-center whitespace-nowrap text-muted;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.separator__content--horizontal {
|
|
54
|
+
@apply text-center;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.separator__content--vertical {
|
|
58
|
+
@apply text-center;
|
|
59
|
+
}
|