@auronui/styles 1.0.20 → 1.0.22

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.
@@ -47,11 +47,11 @@
47
47
  Outline variant — group owns the single outer border
48
48
  ========================================================================== */
49
49
 
50
- .button-group:has(.button--outline) {
50
+ .button-group:has(.button--bordered) {
51
51
  @apply border border-border;
52
52
  }
53
53
 
54
- .button-group .button--outline {
54
+ .button-group .button--bordered {
55
55
  @apply border-0;
56
56
  }
57
57
 
@@ -135,7 +135,7 @@
135
135
  }
136
136
 
137
137
  /* outline: same press logic as ghost */
138
- .button--outline {
138
+ .button--bordered {
139
139
  --button-bg: transparent;
140
140
  --button-bg-hover: var(--btn-tint-bg, var(--color-default));
141
141
  --button-bg-pressed: var(--btn-tint-bg-hover, var(--color-default-hover));
@@ -108,7 +108,7 @@
108
108
  }
109
109
 
110
110
  /* Outlined: transparent background with a colored border */
111
- .chip--outlined {
111
+ .chip--bordered {
112
112
  --chip-bg: transparent;
113
113
  --chip-border: color-mix(in srgb, currentColor 45%, transparent);
114
114
  }
@@ -53,17 +53,9 @@
53
53
  }
54
54
 
55
55
  .color-slider__track {
56
- @apply relative rounded-full;
56
+ @apply relative;
57
57
 
58
58
  grid-area: track;
59
- /* Edge cap pseudo-elements */
60
- &::before,
61
- &::after {
62
- content: "";
63
- position: absolute;
64
- z-index: 0;
65
- pointer-events: none;
66
- }
67
59
  }
68
60
 
69
61
  .color-slider__thumb {
@@ -118,44 +110,12 @@
118
110
  flex-direction: column;
119
111
 
120
112
  .color-slider__track {
121
- @apply h-5 justify-self-center rounded-none;
122
- width: calc(100% - 1.25rem);
113
+ @apply h-5 w-full;
123
114
 
124
115
  /* Default border for visibility against similar backgrounds */
125
116
  box-shadow:
126
117
  inset 0 1px 0 0 rgba(0, 0, 0, 0.1),
127
118
  inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
128
-
129
- /* Edge caps for horizontal orientation */
130
- &::before,
131
- &::after {
132
- @apply top-0 h-full;
133
- width: 0.625rem; /* Half thumb width + 2px gap */
134
- }
135
-
136
- &::before {
137
- left: -0.625rem;
138
- border-top-left-radius: 999px;
139
- border-bottom-left-radius: 999px;
140
- box-shadow:
141
- inset 1px 0 0 0 rgba(0, 0, 0, 0.1),
142
- inset 0 1px 0 0 rgba(0, 0, 0, 0.1),
143
- inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
144
- background:
145
- linear-gradient(var(--track-start-color, transparent)),
146
- repeating-conic-gradient(#efefef 0% 25%, #f7f7f7 0% 50%) 50% / 16px 16px;
147
- }
148
-
149
- &::after {
150
- right: -0.625rem;
151
- border-top-right-radius: 999px;
152
- border-bottom-right-radius: 999px;
153
- box-shadow:
154
- inset -1px 0 0 0 rgba(0, 0, 0, 0.1),
155
- inset 0 1px 0 0 rgba(0, 0, 0, 0.1),
156
- inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
157
- background-color: var(--track-end-color, transparent);
158
- }
159
119
  }
160
120
 
161
121
  .color-slider__thumb {
@@ -213,46 +173,12 @@
213
173
  }
214
174
 
215
175
  .color-slider__track {
216
- @apply w-5 justify-self-center rounded-none;
217
- height: calc(100% - 1.25rem);
176
+ @apply w-5 h-full justify-self-center;
218
177
 
219
178
  /* Left and right borders for vertical track */
220
179
  box-shadow:
221
180
  inset 1px 0 0 0 rgba(0, 0, 0, 0.1),
222
181
  inset -1px 0 0 0 rgba(0, 0, 0, 0.1);
223
-
224
- /* Edge caps for vertical orientation */
225
- &::before,
226
- &::after {
227
- @apply left-0 w-full;
228
- height: 0.625rem; /* Half thumb height + 2px gap */
229
- }
230
-
231
- &::before {
232
- bottom: -0.625rem;
233
- border-bottom-left-radius: 999px;
234
- border-bottom-right-radius: 999px;
235
- /* Left, right, and bottom borders for bottom cap */
236
- box-shadow:
237
- inset 1px 0 0 0 rgba(0, 0, 0, 0.1),
238
- inset -1px 0 0 0 rgba(0, 0, 0, 0.1),
239
- inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
240
- background:
241
- linear-gradient(var(--track-start-color, transparent)),
242
- repeating-conic-gradient(#efefef 0% 25%, #f7f7f7 0% 50%) 50% / 16px 16px;
243
- }
244
-
245
- &::after {
246
- top: -0.625rem;
247
- border-top-left-radius: 999px;
248
- border-top-right-radius: 999px;
249
- /* Left, right, and top borders for top cap */
250
- box-shadow:
251
- inset 1px 0 0 0 rgba(0, 0, 0, 0.1),
252
- inset -1px 0 0 0 rgba(0, 0, 0, 0.1),
253
- inset 0 1px 0 0 rgba(0, 0, 0, 0.1);
254
- background-color: var(--track-end-color, transparent);
255
- }
256
182
  }
257
183
 
258
184
  .color-slider__thumb {
@@ -159,6 +159,129 @@
159
159
  &[data-state="closed"] { animation: drawer-slide-out-bottom 0.3s cubic-bezier(0.32, 0.72, 0, 1) forwards; }
160
160
  }
161
161
 
162
+ /**
163
+ * Modifier: dialog--inline
164
+ * Overrides fixed positioning to absolute so the panel is scoped to the nearest
165
+ * positioned ancestor instead of the viewport. The container must have
166
+ * position:relative and overflow:hidden set by the consumer.
167
+ */
168
+ .drawer__dialog--inline {
169
+ position: absolute;
170
+ }
171
+
172
+ /* -------------------------------------------------------------------------------------------------
173
+ * Dock mode — panel shifts content in the DOM rather than overlaying it
174
+ * -----------------------------------------------------------------------------------------------*/
175
+
176
+ /**
177
+ * Container: dock-container
178
+ * The Drawer root element in dock mode. Wrap both DrawerMain and DrawerContent.
179
+ */
180
+ .drawer__dock-container {
181
+ display: flex;
182
+ width: 100%;
183
+ height: 100%;
184
+ overflow: hidden;
185
+ }
186
+
187
+ .drawer__dock-container--right,
188
+ .drawer__dock-container--left {
189
+ flex-direction: row;
190
+ }
191
+
192
+ .drawer__dock-container--top,
193
+ .drawer__dock-container--bottom {
194
+ flex-direction: column;
195
+ }
196
+
197
+ /**
198
+ * Element: main
199
+ * The main content area inside a dock Drawer. Fills remaining flex space.
200
+ */
201
+ .drawer__main {
202
+ flex: 1;
203
+ min-width: 0;
204
+ min-height: 0;
205
+ overflow: auto;
206
+ }
207
+
208
+ /**
209
+ * Modifier: dialog--dock
210
+ * The drawer panel in dock mode. Renders as a flex item alongside DrawerMain.
211
+ * Overrides the fixed/absolute positioning from the base dialog class.
212
+ */
213
+ .drawer__dialog--dock {
214
+ position: relative;
215
+ flex-shrink: 0;
216
+ }
217
+
218
+ /* Reset viewport-anchored positioning from placement modifiers */
219
+ .drawer__dialog--dock.drawer__dialog--right,
220
+ .drawer__dialog--dock.drawer__dialog--left {
221
+ top: auto;
222
+ right: auto;
223
+ bottom: auto;
224
+ left: auto;
225
+ max-width: none;
226
+ }
227
+
228
+ .drawer__dialog--dock.drawer__dialog--right {
229
+ order: 1; /* appears after main content */
230
+ }
231
+
232
+ .drawer__dialog--dock.drawer__dialog--left {
233
+ order: -1; /* appears before main content */
234
+ }
235
+
236
+ .drawer__dialog--dock.drawer__dialog--top,
237
+ .drawer__dialog--dock.drawer__dialog--bottom {
238
+ top: auto;
239
+ right: auto;
240
+ bottom: auto;
241
+ left: auto;
242
+ width: 100%;
243
+ max-height: none;
244
+ border-radius: 0;
245
+ }
246
+
247
+ .drawer__dialog--dock.drawer__dialog--top {
248
+ order: -1; /* appears above main content */
249
+ }
250
+
251
+ .drawer__dialog--dock.drawer__dialog--bottom {
252
+ order: 1; /* appears below main content */
253
+ }
254
+
255
+ /**
256
+ * Vue Transition: drawer-dock-h — horizontal slide (left / right placement)
257
+ */
258
+ .drawer-dock-h-enter-active,
259
+ .drawer-dock-h-leave-active {
260
+ transition: width 0.3s cubic-bezier(0.32, 0.72, 0, 1);
261
+ overflow: hidden !important;
262
+ @apply motion-reduce:transition-none;
263
+ }
264
+
265
+ .drawer-dock-h-enter-from,
266
+ .drawer-dock-h-leave-to {
267
+ width: 0 !important;
268
+ }
269
+
270
+ /**
271
+ * Vue Transition: drawer-dock-v — vertical slide (top / bottom placement)
272
+ */
273
+ .drawer-dock-v-enter-active,
274
+ .drawer-dock-v-leave-active {
275
+ transition: height 0.3s cubic-bezier(0.32, 0.72, 0, 1);
276
+ overflow: hidden !important;
277
+ @apply motion-reduce:transition-none;
278
+ }
279
+
280
+ .drawer-dock-v-enter-from,
281
+ .drawer-dock-v-leave-to {
282
+ height: 0 !important;
283
+ }
284
+
162
285
  /**
163
286
  * Element: header
164
287
  */
@@ -35,8 +35,10 @@
35
35
  }
36
36
 
37
37
  .progress-bar__fill {
38
- @apply absolute top-0 left-0 h-full rounded-full w-full;
38
+ @apply absolute top-0 left-0 h-full rounded-full;
39
39
 
40
+ /* Width is driven by the CSS custom property set from JS */
41
+ width: var(--progress-bar-value, 0%);
40
42
  background-color: var(--progress-bar-fill);
41
43
 
42
44
  /**
@@ -47,9 +49,10 @@
47
49
  @apply motion-reduce:transition-none;
48
50
  }
49
51
 
50
- /* Indeterminate state - when no aria-valuenow is set */
51
- .progress-bar__fill[data-state="indeterminate"] {
52
- @apply w-2/5;
52
+ /* Indeterminate state — Reka sets data-state="indeterminate" when modelValue is null */
53
+ .progress-bar__fill[data-state="indeterminate"],
54
+ .progress-bar__fill--indeterminate {
55
+ width: 40%;
53
56
 
54
57
  animation: progress-bar-indeterminate 1.5s cubic-bezier(0.65, 0, 0.35, 1) infinite;
55
58
 
@@ -109,6 +112,14 @@
109
112
  --progress-bar-fill: var(--color-default-foreground);
110
113
  }
111
114
 
115
+ .progress-bar--primary {
116
+ --progress-bar-fill: var(--color-primary);
117
+ }
118
+
119
+ .progress-bar--secondary {
120
+ --progress-bar-fill: var(--color-secondary);
121
+ }
122
+
112
123
  .progress-bar--accent {
113
124
  --progress-bar-fill: var(--color-accent);
114
125
  }
@@ -27,7 +27,7 @@
27
27
  }
28
28
 
29
29
  .slider__fill {
30
- @apply pointer-events-none absolute rounded-full bg-accent;
30
+ @apply pointer-events-none absolute bg-accent;
31
31
  }
32
32
 
33
33
  .slider__thumb {
@@ -91,7 +91,8 @@
91
91
  flex-direction: column;
92
92
 
93
93
  .slider__track {
94
- @apply h-5 w-full overflow-visible;
94
+ /* overflow-hidden clips the fill to the rounded track shape; thumb is a sibling so it is unaffected */
95
+ @apply h-5 w-full overflow-hidden;
95
96
  }
96
97
 
97
98
  .slider__fill {
@@ -132,7 +133,7 @@
132
133
  }
133
134
 
134
135
  .slider__track {
135
- @apply h-full w-5 overflow-visible;
136
+ @apply h-full w-5 overflow-hidden;
136
137
  justify-self: center;
137
138
  }
138
139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auronui/styles",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "description": "Auron core styles — adapted for Reka UI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -15,32 +15,32 @@ describe('buttonVariants (slots)', () => {
15
15
  expect(buttonVariants({}).base()).toContain('button')
16
16
  })
17
17
 
18
- it('primary variant (default)', () => {
19
- expect(buttonVariants({ variant: 'primary' }).base()).toContain('button--primary')
18
+ it('primary variant (legacy alias → solid)', () => {
19
+ expect(buttonVariants({ variant: 'primary' }).base()).toContain('button--solid')
20
20
  })
21
21
 
22
- it('success variant', () => {
23
- expect(buttonVariants({ variant: 'success' }).base()).toContain('button--success')
22
+ it('success variant (legacy alias → solid)', () => {
23
+ expect(buttonVariants({ variant: 'success' }).base()).toContain('button--solid')
24
24
  })
25
25
 
26
- it('success-soft variant', () => {
27
- expect(buttonVariants({ variant: 'success-soft' }).base()).toContain('button--success-soft')
26
+ it('success-soft variant (legacy alias → soft)', () => {
27
+ expect(buttonVariants({ variant: 'success-soft' }).base()).toContain('button--soft')
28
28
  })
29
29
 
30
- it('warning variant', () => {
31
- expect(buttonVariants({ variant: 'warning' }).base()).toContain('button--warning')
30
+ it('warning variant (legacy alias → solid)', () => {
31
+ expect(buttonVariants({ variant: 'warning' }).base()).toContain('button--solid')
32
32
  })
33
33
 
34
- it('warning-soft variant', () => {
35
- expect(buttonVariants({ variant: 'warning-soft' }).base()).toContain('button--warning-soft')
34
+ it('warning-soft variant (legacy alias → soft)', () => {
35
+ expect(buttonVariants({ variant: 'warning-soft' }).base()).toContain('button--soft')
36
36
  })
37
37
 
38
- it('danger variant', () => {
39
- expect(buttonVariants({ variant: 'danger' }).base()).toContain('button--danger')
38
+ it('danger variant (legacy alias → solid)', () => {
39
+ expect(buttonVariants({ variant: 'danger' }).base()).toContain('button--solid')
40
40
  })
41
41
 
42
- it('danger-soft variant', () => {
43
- expect(buttonVariants({ variant: 'danger-soft' }).base()).toContain('button--danger-soft')
42
+ it('danger-soft variant (legacy alias → soft)', () => {
43
+ expect(buttonVariants({ variant: 'danger-soft' }).base()).toContain('button--soft')
44
44
  })
45
45
 
46
46
  it('isLoading=true adds button--loading to base', () => {
@@ -51,7 +51,7 @@ export const buttonVariants = tv({
51
51
  // Current API
52
52
  solid: { base: "button--solid" },
53
53
  default: { base: "button--default" },
54
- outline: { base: "button--outline" },
54
+ bordered: { base: "button--bordered" },
55
55
  ghost: { base: "button--ghost" },
56
56
  soft: { base: "button--soft" },
57
57
  // Legacy aliases — resolved to new variant+color in Button.vue
@@ -52,8 +52,8 @@ export const chipVariants = tv({
52
52
  soft: {
53
53
  base: "chip--soft",
54
54
  },
55
- outlined: {
56
- base: "chip--outlined",
55
+ bordered: {
56
+ base: "chip--bordered",
57
57
  },
58
58
  text: {
59
59
  base: "chip--text",
@@ -18,24 +18,40 @@ export const drawerVariants = tv({
18
18
  header: "drawer__header",
19
19
  heading: "drawer__heading",
20
20
  trigger: "drawer__trigger",
21
+ dockContainer: "drawer__dock-container",
22
+ main: "drawer__main",
21
23
  },
22
24
  variants: {
25
+ inline: {
26
+ true: {
27
+ dialog: "drawer__dialog--inline",
28
+ },
29
+ },
30
+ dock: {
31
+ true: {
32
+ dialog: "drawer__dialog--dock",
33
+ },
34
+ },
23
35
  placement: {
24
36
  bottom: {
25
37
  content: "drawer__content--bottom",
26
38
  dialog: "drawer__dialog--bottom",
39
+ dockContainer: "drawer__dock-container--bottom",
27
40
  },
28
41
  left: {
29
42
  content: "drawer__content--left",
30
43
  dialog: "drawer__dialog--left",
44
+ dockContainer: "drawer__dock-container--left",
31
45
  },
32
46
  right: {
33
47
  content: "drawer__content--right",
34
48
  dialog: "drawer__dialog--right",
49
+ dockContainer: "drawer__dock-container--right",
35
50
  },
36
51
  top: {
37
52
  content: "drawer__content--top",
38
53
  dialog: "drawer__dialog--top",
54
+ dockContainer: "drawer__dock-container--top",
39
55
  },
40
56
  },
41
57
  variant: {
@@ -17,30 +17,30 @@ export const progressBarVariants = tv({
17
17
  label: "progress-bar__label text-sm font-medium text-foreground",
18
18
  value: "progress-bar__value text-sm font-medium text-foreground",
19
19
  track: "progress-bar__track",
20
- indicator: "progress-bar__indicator transition-transform duration-300 ease-out",
20
+ indicator: "progress-bar__fill",
21
21
  },
22
22
  variants: {
23
23
  color: {
24
24
  default: {
25
- indicator: "bg-default-400 progress-bar--default",
25
+ base: "progress-bar--default",
26
26
  },
27
27
  primary: {
28
- indicator: "bg-primary progress-bar--primary",
28
+ base: "progress-bar--primary",
29
29
  },
30
30
  secondary: {
31
- indicator: "bg-secondary progress-bar--secondary",
31
+ base: "progress-bar--secondary",
32
32
  },
33
33
  success: {
34
- indicator: "bg-success progress-bar--success",
34
+ base: "progress-bar--success",
35
35
  },
36
36
  warning: {
37
- indicator: "bg-warning progress-bar--warning",
37
+ base: "progress-bar--warning",
38
38
  },
39
39
  danger: {
40
- indicator: "bg-danger progress-bar--danger",
40
+ base: "progress-bar--danger",
41
41
  },
42
42
  accent: {
43
- indicator: "bg-primary progress-bar--accent",
43
+ base: "progress-bar--accent",
44
44
  },
45
45
  },
46
46
  size: {
@@ -78,12 +78,13 @@ export const progressBarVariants = tv({
78
78
  },
79
79
  isStriped: {
80
80
  true: {
81
- indicator: "progress-bar__indicator--striped",
81
+ indicator: "progress-bar__fill--striped",
82
82
  },
83
83
  },
84
84
  isIndeterminate: {
85
85
  true: {
86
- indicator: "progress-bar__indicator--indeterminate animate-indeterminate",
86
+ // data-state="indeterminate" (set by Reka) drives the CSS animation
87
+ indicator: "progress-bar__fill--indeterminate",
87
88
  },
88
89
  },
89
90
  isDisabled: {
@@ -61,6 +61,12 @@
61
61
  --default: oklch(94% 0.001 286.375);
62
62
  --default-foreground: var(--eclipse);
63
63
 
64
+ --primary: oklch(0.55 0.2 262);
65
+ --primary-foreground: var(--snow);
66
+
67
+ --secondary: oklch(0.55 0.22 305);
68
+ --secondary-foreground: var(--snow);
69
+
64
70
  --accent: oklch(0.6204 0.195 253.83);
65
71
  --accent-foreground: var(--snow);
66
72
 
@@ -17,6 +17,12 @@
17
17
 
18
18
  --color-muted: var(--muted);
19
19
 
20
+ --color-primary: var(--primary);
21
+ --color-primary-foreground: var(--primary-foreground);
22
+
23
+ --color-secondary: var(--secondary);
24
+ --color-secondary-foreground: var(--secondary-foreground);
25
+
20
26
  --color-accent: var(--accent);
21
27
  --color-accent-foreground: var(--accent-foreground);
22
28