@clasing/ui 2.9.1 → 2.9.3

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.
Files changed (39) hide show
  1. package/dist/{button-DSpGxL2e.js → button-CKrOlPSD.js} +17 -19
  2. package/dist/collapsible-DezttNhr.js +48 -0
  3. package/dist/components/alert-dialog.js +1 -1
  4. package/dist/components/breadcrumb.js +17 -4
  5. package/dist/components/button-group.js +29 -5
  6. package/dist/components/button.js +1 -1
  7. package/dist/components/calendar.js +1 -1
  8. package/dist/components/collapsible.js +4 -46
  9. package/dist/components/dropdown-menu.js +16 -311
  10. package/dist/components/field.d.ts +26 -0
  11. package/dist/components/field.js +66 -0
  12. package/dist/components/input.js +1 -1
  13. package/dist/components/pagination.d.ts +38 -0
  14. package/dist/components/pagination.js +107 -0
  15. package/dist/components/phone-input.js +1 -1
  16. package/dist/components/radio-group.d.ts +5 -0
  17. package/dist/components/radio-group.js +45 -0
  18. package/dist/components/select.js +10 -2
  19. package/dist/components/sheet.js +9 -164
  20. package/dist/components/sidebar.d.ts +83 -0
  21. package/dist/components/sidebar.js +820 -0
  22. package/dist/components/skeleton.js +2 -12
  23. package/dist/components/tabs.d.ts +13 -0
  24. package/dist/components/tabs.js +81 -0
  25. package/dist/components/tree.d.ts +37 -0
  26. package/dist/components/tree.js +312 -0
  27. package/dist/dropdown-menu-VOZwAyVb.js +313 -0
  28. package/dist/entries/field.d.ts +1 -0
  29. package/dist/entries/pagination.d.ts +1 -0
  30. package/dist/entries/radio-group.d.ts +1 -0
  31. package/dist/entries/sidebar.d.ts +2 -0
  32. package/dist/entries/tabs.d.ts +1 -0
  33. package/dist/entries/tree.d.ts +1 -0
  34. package/dist/hooks/useIsMobile.d.ts +2 -0
  35. package/dist/{input-D9gqZjs0.js → input-BlcRuIEB.js} +1 -1
  36. package/dist/sheet-CwXaadwy.js +166 -0
  37. package/dist/skeleton-DcjuJ5_d.js +14 -0
  38. package/dist/ui.css +25 -54
  39. package/package.json +31 -4
@@ -0,0 +1,313 @@
1
+ import { j as t, c as r } from "./index-C_XDkVGm.js";
2
+ import * as o from "@radix-ui/react-dropdown-menu";
3
+ import { CheckIcon as d, CircleIcon as i, CaretRightIcon as u } from "@phosphor-icons/react";
4
+ function p({
5
+ ...e
6
+ }) {
7
+ return /* @__PURE__ */ t.jsx(o.Root, { "data-slot": "dropdown-menu", ...e });
8
+ }
9
+ function m({
10
+ ...e
11
+ }) {
12
+ return /* @__PURE__ */ t.jsx(o.Portal, { "data-slot": "dropdown-menu-portal", ...e });
13
+ }
14
+ function f({
15
+ ...e
16
+ }) {
17
+ return /* @__PURE__ */ t.jsx(
18
+ o.Trigger,
19
+ {
20
+ "data-slot": "dropdown-menu-trigger",
21
+ ...e
22
+ }
23
+ );
24
+ }
25
+ function g({
26
+ className: e,
27
+ sideOffset: n = 4,
28
+ collisionPadding: a = 24,
29
+ ...s
30
+ }) {
31
+ return /* @__PURE__ */ t.jsx(o.Portal, { children: /* @__PURE__ */ t.jsx(
32
+ o.Content,
33
+ {
34
+ "data-slot": "dropdown-menu-content",
35
+ sideOffset: n,
36
+ className: r(
37
+ `
38
+ z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32
39
+ origin-(--radix-dropdown-menu-content-transform-origin)
40
+ overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1
41
+ text-popover-foreground shadow-md
42
+ data-[side=bottom]:slide-in-from-top-2
43
+ data-[side=left]:slide-in-from-right-2
44
+ data-[side=right]:slide-in-from-left-2
45
+ data-[side=top]:slide-in-from-bottom-2
46
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
47
+ data-[state=closed]:zoom-out-95
48
+ data-[state=open]:animate-in data-[state=open]:fade-in-0
49
+ data-[state=open]:zoom-in-95
50
+ `,
51
+ e
52
+ ),
53
+ collisionPadding: a,
54
+ ...s
55
+ }
56
+ ) });
57
+ }
58
+ function x({
59
+ ...e
60
+ }) {
61
+ return /* @__PURE__ */ t.jsx(o.Group, { "data-slot": "dropdown-menu-group", ...e });
62
+ }
63
+ function v({
64
+ className: e,
65
+ inset: n,
66
+ variant: a = "default",
67
+ ...s
68
+ }) {
69
+ return /* @__PURE__ */ t.jsx(
70
+ o.Item,
71
+ {
72
+ "data-slot": "dropdown-menu-item",
73
+ "data-inset": n,
74
+ "data-variant": a,
75
+ className: r(
76
+ `
77
+ relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5
78
+ paragraph-sm outline-hidden select-none
79
+ focus:bg-accent focus:text-accent-foreground
80
+ data-disabled:pointer-events-none data-disabled:opacity-50
81
+ data-inset:pl-8
82
+ data-[variant=destructive]:text-destructive-foreground
83
+ data-[variant=destructive]:focus:bg-destructive
84
+ data-[variant=destructive]:focus:text-destructive-foreground
85
+ dark:data-[variant=destructive]:focus:bg-destructive/80
86
+ [&_svg]:pointer-events-none [&_svg]:shrink-0
87
+ [&_svg:not([class*='size-'])]:size-4
88
+ data-[variant=destructive]:*:[svg]:text-destructive-foreground!
89
+ `,
90
+ e
91
+ ),
92
+ ...s
93
+ }
94
+ );
95
+ }
96
+ function b({
97
+ className: e,
98
+ children: n,
99
+ checked: a,
100
+ ...s
101
+ }) {
102
+ return /* @__PURE__ */ t.jsxs(
103
+ o.CheckboxItem,
104
+ {
105
+ "data-slot": "dropdown-menu-checkbox-item",
106
+ className: r(
107
+ `
108
+ relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2
109
+ pl-8 paragraph-sm outline-hidden select-none
110
+ focus:bg-accent focus:text-accent-foreground
111
+ data-disabled:pointer-events-none data-disabled:opacity-50
112
+ [&_svg]:pointer-events-none [&_svg]:shrink-0
113
+ [&_svg:not([class*='size-'])]:size-4
114
+ `,
115
+ e
116
+ ),
117
+ checked: a,
118
+ ...s,
119
+ children: [
120
+ /* @__PURE__ */ t.jsx(
121
+ "span",
122
+ {
123
+ className: `\r
124
+ pointer-events-none absolute left-2 flex size-3.5 items-center\r
125
+ justify-center\r
126
+ `,
127
+ children: /* @__PURE__ */ t.jsx(o.ItemIndicator, { children: /* @__PURE__ */ t.jsx(d, { className: "size-4" }) })
128
+ }
129
+ ),
130
+ n
131
+ ]
132
+ }
133
+ );
134
+ }
135
+ function h({
136
+ ...e
137
+ }) {
138
+ return /* @__PURE__ */ t.jsx(
139
+ o.RadioGroup,
140
+ {
141
+ "data-slot": "dropdown-menu-radio-group",
142
+ ...e
143
+ }
144
+ );
145
+ }
146
+ function w({
147
+ className: e,
148
+ children: n,
149
+ ...a
150
+ }) {
151
+ return /* @__PURE__ */ t.jsxs(
152
+ o.RadioItem,
153
+ {
154
+ "data-slot": "dropdown-menu-radio-item",
155
+ className: r(
156
+ `
157
+ relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2
158
+ pl-8 paragraph-sm outline-hidden select-none
159
+ focus:bg-accent focus:text-accent-foreground
160
+ data-disabled:pointer-events-none data-disabled:opacity-50
161
+ [&_svg]:pointer-events-none [&_svg]:shrink-0
162
+ [&_svg:not([class*='size-'])]:size-4
163
+ `,
164
+ e
165
+ ),
166
+ ...a,
167
+ children: [
168
+ /* @__PURE__ */ t.jsx(
169
+ "span",
170
+ {
171
+ className: `\r
172
+ pointer-events-none absolute left-2 flex size-3.5 items-center\r
173
+ justify-center\r
174
+ `,
175
+ children: /* @__PURE__ */ t.jsx(o.ItemIndicator, { children: /* @__PURE__ */ t.jsx(i, { weight: "fill", className: "size-2 fill-current" }) })
176
+ }
177
+ ),
178
+ n
179
+ ]
180
+ }
181
+ );
182
+ }
183
+ function j({
184
+ className: e,
185
+ inset: n,
186
+ ...a
187
+ }) {
188
+ return /* @__PURE__ */ t.jsx(
189
+ o.Label,
190
+ {
191
+ "data-slot": "dropdown-menu-label",
192
+ "data-inset": n,
193
+ className: r(
194
+ `
195
+ px-2 py-1.5 paragraph-sm font-semibold
196
+ data-inset:pl-8
197
+ `,
198
+ e
199
+ ),
200
+ ...a
201
+ }
202
+ );
203
+ }
204
+ function z({
205
+ className: e,
206
+ ...n
207
+ }) {
208
+ return /* @__PURE__ */ t.jsx(
209
+ o.Separator,
210
+ {
211
+ "data-slot": "dropdown-menu-separator",
212
+ className: r("-mx-1 my-1 h-px bg-border", e),
213
+ ...n
214
+ }
215
+ );
216
+ }
217
+ function D({
218
+ className: e,
219
+ ...n
220
+ }) {
221
+ return /* @__PURE__ */ t.jsx(
222
+ "span",
223
+ {
224
+ "data-slot": "dropdown-menu-shortcut",
225
+ className: r(
226
+ "ml-auto paragraph-xs tracking-widest text-muted-foreground",
227
+ e
228
+ ),
229
+ ...n
230
+ }
231
+ );
232
+ }
233
+ function M({
234
+ ...e
235
+ }) {
236
+ return /* @__PURE__ */ t.jsx(o.Sub, { "data-slot": "dropdown-menu-sub", ...e });
237
+ }
238
+ function N({
239
+ className: e,
240
+ inset: n,
241
+ children: a,
242
+ ...s
243
+ }) {
244
+ return /* @__PURE__ */ t.jsxs(
245
+ o.SubTrigger,
246
+ {
247
+ "data-slot": "dropdown-menu-sub-trigger",
248
+ "data-inset": n,
249
+ className: r(
250
+ `
251
+ relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5
252
+ paragraph-sm outline-hidden select-none
253
+ focus:bg-accent focus:text-accent-foreground
254
+ data-disabled:pointer-events-none data-disabled:opacity-50
255
+ data-inset:pl-8
256
+ [&_svg]:pointer-events-none [&_svg]:shrink-0
257
+ [&_svg:not([class*='size-'])]:size-4
258
+ `,
259
+ e
260
+ ),
261
+ ...s,
262
+ children: [
263
+ a,
264
+ /* @__PURE__ */ t.jsx(u, { className: "ml-auto size-4" })
265
+ ]
266
+ }
267
+ );
268
+ }
269
+ function y({
270
+ className: e,
271
+ ...n
272
+ }) {
273
+ return /* @__PURE__ */ t.jsx(
274
+ o.SubContent,
275
+ {
276
+ "data-slot": "dropdown-menu-sub-content",
277
+ className: r(
278
+ `
279
+ z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin)
280
+ overflow-hidden rounded-md border bg-popover p-1
281
+ text-popover-foreground shadow-lg
282
+ data-[side=bottom]:slide-in-from-top-2
283
+ data-[side=left]:slide-in-from-right-2
284
+ data-[side=right]:slide-in-from-left-2
285
+ data-[side=top]:slide-in-from-bottom-2
286
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
287
+ data-[state=closed]:zoom-out-95
288
+ data-[state=open]:animate-in data-[state=open]:fade-in-0
289
+ data-[state=open]:zoom-in-95
290
+ `,
291
+ e
292
+ ),
293
+ ...n
294
+ }
295
+ );
296
+ }
297
+ export {
298
+ p as D,
299
+ b as a,
300
+ g as b,
301
+ x as c,
302
+ v as d,
303
+ j as e,
304
+ m as f,
305
+ h as g,
306
+ w as h,
307
+ z as i,
308
+ D as j,
309
+ M as k,
310
+ y as l,
311
+ N as m,
312
+ f as n
313
+ };
@@ -0,0 +1 @@
1
+ export { Field, FieldDescription, FieldGroup, FieldLabel, FieldMessage, } from '@/components/field';
@@ -0,0 +1 @@
1
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from '@/components/pagination';
@@ -0,0 +1 @@
1
+ export { RadioGroup, RadioGroupItem } from '@/components/radio-group';
@@ -0,0 +1,2 @@
1
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarSubMenu, SidebarSubMenuContent, SidebarSubMenuItem, SidebarSubMenuTrigger, SidebarTrigger, useSidebar } from '../components/sidebar';
2
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarSubMenu, SidebarSubMenuContent, SidebarSubMenuItem, SidebarSubMenuTrigger, SidebarTrigger, useSidebar, };
@@ -0,0 +1 @@
1
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, } from '@/components/tabs';
@@ -0,0 +1 @@
1
+ export { Tree, TreeItem, TreeItemTrigger, TreeItemContent, useTree } from '@/components/tree';
@@ -0,0 +1,2 @@
1
+ export declare function useIsMobile(): boolean;
2
+ export declare function useIsTablet(): boolean;
@@ -2,7 +2,7 @@ import { j as r, c as n } from "./index-C_XDkVGm.js";
2
2
  import { EyeSlashIcon as f, EyeIcon as m } from "@phosphor-icons/react";
3
3
  import { cva as x } from "class-variance-authority";
4
4
  import * as g from "react";
5
- import { B as b } from "./button-DSpGxL2e.js";
5
+ import { B as b } from "./button-CKrOlPSD.js";
6
6
  const o = x(
7
7
  `
8
8
  flex w-full min-w-0 rounded-md border border-input bg-transparent
@@ -0,0 +1,166 @@
1
+ import { j as e, c as s } from "./index-C_XDkVGm.js";
2
+ import * as o from "@radix-ui/react-dialog";
3
+ import { XIcon as i } from "@phosphor-icons/react";
4
+ function f({ ...t }) {
5
+ return /* @__PURE__ */ e.jsx(o.Root, { "data-slot": "sheet", ...t });
6
+ }
7
+ function h({
8
+ ...t
9
+ }) {
10
+ return /* @__PURE__ */ e.jsx(o.Trigger, { "data-slot": "sheet-trigger", ...t });
11
+ }
12
+ function m({
13
+ ...t
14
+ }) {
15
+ return /* @__PURE__ */ e.jsx(o.Close, { "data-slot": "sheet-close", ...t });
16
+ }
17
+ function l({
18
+ ...t
19
+ }) {
20
+ return /* @__PURE__ */ e.jsx(o.Portal, { "data-slot": "sheet-portal", ...t });
21
+ }
22
+ function d({
23
+ className: t,
24
+ ...a
25
+ }) {
26
+ return /* @__PURE__ */ e.jsx(
27
+ o.Overlay,
28
+ {
29
+ "data-slot": "sheet-overlay",
30
+ className: s(
31
+ `
32
+ fixed inset-0 z-50 bg-black/50
33
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
34
+ data-[state=open]:animate-in data-[state=open]:fade-in-0
35
+ `,
36
+ t
37
+ ),
38
+ ...a
39
+ }
40
+ );
41
+ }
42
+ function p({
43
+ className: t,
44
+ children: a,
45
+ side: n = "right",
46
+ ...r
47
+ }) {
48
+ return /* @__PURE__ */ e.jsxs(l, { children: [
49
+ /* @__PURE__ */ e.jsx(d, {}),
50
+ /* @__PURE__ */ e.jsxs(
51
+ o.Content,
52
+ {
53
+ "data-slot": "sheet-content",
54
+ className: s(
55
+ `
56
+ fixed z-50 flex flex-col gap-4 bg-background text-foreground
57
+ shadow-lg transition ease-in-out
58
+ data-[state=closed]:animate-out data-[state=closed]:duration-300
59
+ data-[state=open]:animate-in data-[state=open]:duration-500
60
+ `,
61
+ n === "right" && `
62
+ inset-y-0 right-0 h-full w-3/4 border-l
63
+ data-[state=closed]:slide-out-to-right
64
+ data-[state=open]:slide-in-from-right
65
+ sm:max-w-sm
66
+ `,
67
+ n === "left" && `
68
+ inset-y-0 left-0 h-full w-3/4 border-r
69
+ data-[state=closed]:slide-out-to-left
70
+ data-[state=open]:slide-in-from-left
71
+ sm:max-w-sm
72
+ `,
73
+ n === "top" && `
74
+ inset-x-0 top-0 h-auto border-b
75
+ data-[state=closed]:slide-out-to-top
76
+ data-[state=open]:slide-in-from-top
77
+ `,
78
+ n === "bottom" && `
79
+ inset-x-0 bottom-0 h-auto border-t
80
+ data-[state=closed]:slide-out-to-bottom
81
+ data-[state=open]:slide-in-from-bottom
82
+ `,
83
+ t
84
+ ),
85
+ ...r,
86
+ children: [
87
+ a,
88
+ /* @__PURE__ */ e.jsxs(
89
+ o.Close,
90
+ {
91
+ className: `\r
92
+ absolute top-4 right-4 rounded-xs text-foreground opacity-70\r
93
+ ring-offset-background transition-opacity\r
94
+ hover:opacity-100\r
95
+ focus:ring-2 focus:ring-ring focus:ring-offset-2\r
96
+ focus:outline-hidden\r
97
+ disabled:pointer-events-none\r
98
+ data-[state=open]:bg-secondary\r
99
+ `,
100
+ children: [
101
+ /* @__PURE__ */ e.jsx(i, { className: "size-4" }),
102
+ /* @__PURE__ */ e.jsx("span", { className: "sr-only", children: "Close" })
103
+ ]
104
+ }
105
+ )
106
+ ]
107
+ }
108
+ )
109
+ ] });
110
+ }
111
+ function x({ className: t, ...a }) {
112
+ return /* @__PURE__ */ e.jsx(
113
+ "div",
114
+ {
115
+ "data-slot": "sheet-header",
116
+ className: s("flex flex-col gap-1.5 p-4", t),
117
+ ...a
118
+ }
119
+ );
120
+ }
121
+ function g({ className: t, ...a }) {
122
+ return /* @__PURE__ */ e.jsx(
123
+ "div",
124
+ {
125
+ "data-slot": "sheet-footer",
126
+ className: s("mt-auto flex flex-col gap-2 p-4", t),
127
+ ...a
128
+ }
129
+ );
130
+ }
131
+ function b({
132
+ className: t,
133
+ ...a
134
+ }) {
135
+ return /* @__PURE__ */ e.jsx(
136
+ o.Title,
137
+ {
138
+ "data-slot": "sheet-title",
139
+ className: s("font-semibold text-foreground", t),
140
+ ...a
141
+ }
142
+ );
143
+ }
144
+ function j({
145
+ className: t,
146
+ ...a
147
+ }) {
148
+ return /* @__PURE__ */ e.jsx(
149
+ o.Description,
150
+ {
151
+ "data-slot": "sheet-description",
152
+ className: s("paragraph-sm text-muted-foreground", t),
153
+ ...a
154
+ }
155
+ );
156
+ }
157
+ export {
158
+ f as S,
159
+ m as a,
160
+ p as b,
161
+ j as c,
162
+ g as d,
163
+ x as e,
164
+ b as f,
165
+ h as g
166
+ };
@@ -0,0 +1,14 @@
1
+ import { j as s, c as a } from "./index-C_XDkVGm.js";
2
+ function o({ className: e, ...t }) {
3
+ return /* @__PURE__ */ s.jsx(
4
+ "div",
5
+ {
6
+ "data-slot": "skeleton",
7
+ className: a("bg-accent animate-pulse rounded-md", e),
8
+ ...t
9
+ }
10
+ );
11
+ }
12
+ export {
13
+ o as S
14
+ };
package/dist/ui.css CHANGED
@@ -239,55 +239,9 @@
239
239
  0px 16px 32px 0px rgba(25, 25, 25, 0.1),
240
240
  0px 0px 12px 0px rgba(25, 25, 25, 0.08);
241
241
 
242
- --animate-fade-in-scale-up: fadeInScaleUp 0.15s ease-out;
243
- --animate-fade-out-scale-up: fadeOutScaleUp 0.15s ease-out;
244
- --animate-fade-in-scale-down: fadeInScaleDown 0.15s ease-out;
245
- --animate-fade-out-scale-down: fadeOutScaleDown 0.15s ease-out;
246
-
247
242
  --ease-circ-in: cubic-bezier(0.6, 0.04, 0.98, 0.335);
248
243
  --ease-circ-out: cubic-bezier(0.075, 0.82, 0.165, 1);
249
244
  --ease-circ-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
250
-
251
- @keyframes fadeInScaleUp {
252
- 0% {
253
- opacity: 0;
254
- transform: scale(0.9) translateY(50px);
255
- }
256
- 100% {
257
- opacity: 1;
258
- transform: scale(1) translateY(0);
259
- }
260
- }
261
- @keyframes fadeOutScaleUp {
262
- 0% {
263
- opacity: 1;
264
- transform: scale(1) translateY(0);
265
- }
266
- 100% {
267
- opacity: 0;
268
- transform: scale(0.9) translateY(50px);
269
- }
270
- }
271
- @keyframes fadeInScaleDown {
272
- 0% {
273
- opacity: 0;
274
- transform: scale(0.9) translateY(-50px);
275
- }
276
- 100% {
277
- opacity: 1;
278
- transform: scale(1) translateY(0);
279
- }
280
- }
281
- @keyframes fadeOutScaleDown {
282
- 0% {
283
- opacity: 1;
284
- transform: scale(1) translateY(0);
285
- }
286
- 100% {
287
- opacity: 0;
288
- transform: scale(0.9) translateY(-50px);
289
- }
290
- }
291
245
  }
292
246
 
293
247
  :root {
@@ -326,13 +280,16 @@
326
280
  --sidebar-foreground: var(--foreground);
327
281
  --sidebar-primary: var(--primary);
328
282
  --sidebar-primary-foreground: var(--primary-foreground);
329
- --sidebar-accent: var(--accent);
330
- --sidebar-accent-foreground: var(--accent-foreground);
283
+ --sidebar-accent: var(--color-blue-050);
284
+ --sidebar-accent-foreground: var(--color-blue-500);
331
285
  --sidebar-border: var(--border);
332
286
  --surface: var(--color-neutral-100);
333
287
  --surface-foreground: var(--foreground);
334
288
  --code: var(--color-neutral-100);
335
289
  --code-foreground: var(--color-neutral-950);
290
+ --scrollbar: var(--color-neutral-100);
291
+ --scrollbar-foreground: var(--color-neutral-200);
292
+ --scrollbar-hover: var(--color-neutral-300);
336
293
  }
337
294
 
338
295
  .dark {
@@ -370,13 +327,16 @@
370
327
  --sidebar-foreground: var(--foreground);
371
328
  --sidebar-primary: var(--primary);
372
329
  --sidebar-primary-foreground: var(--primary-foreground);
373
- --sidebar-accent: var(--accent);
374
- --sidebar-accent-foreground: var(--accent-foreground);
330
+ --sidebar-accent: var(--color-blue-900);
331
+ --sidebar-accent-foreground: var(--color-blue-200);
375
332
  --sidebar-border: var(--border);
376
333
  --surface: var(--color-neutral-900);
377
334
  --surface-foreground: var(--foreground);
378
335
  --code: var(--color-neutral-900);
379
336
  --code-foreground: var(--color-neutral-100);
337
+ --scrollbar: var(--color-neutral-800);
338
+ --scrollbar-foreground: var(--color-neutral-700);
339
+ --scrollbar-hover: var(--color-neutral-600);
380
340
  }
381
341
  /*
382
342
  The default border color has changed to `currentcolor` in Tailwind CSS v4,
@@ -713,17 +673,17 @@ input[type='color']::-webkit-color-swatch {
713
673
  }
714
674
 
715
675
  *::-webkit-scrollbar-track {
716
- background: var(--color-neutral-000);
676
+ background: var(--scrollbar);
717
677
  border-radius: 30px;
718
678
  }
719
679
 
720
680
  *::-webkit-scrollbar-thumb {
721
- background-color: var(--color-neutral-100);
681
+ background-color: var(--scrollbar-foreground);
722
682
  border-radius: 14px;
723
683
  }
724
684
 
725
685
  ::-webkit-scrollbar-thumb:hover {
726
- background-color: var(--color-neutral-200);
686
+ background-color: var(--scrollbar-hover);
727
687
  }
728
688
 
729
689
  @utility active-card {
@@ -731,5 +691,16 @@ input[type='color']::-webkit-color-swatch {
731
691
  }
732
692
 
733
693
  @utility focusable-item {
734
- @apply transition-[color,background-color,box-shadow] focus-visible:ring-[2px] focus-visible:ring-ring-default focus-visible:ring-offset-1 focus-visible:outline-hidden;
694
+ @apply transition-[color,background-color,box-shadow] focus-visible:ring-[2px] focus-visible:ring-ring-default/80 focus-visible:ring-offset-1 focus-visible:outline-hidden;
695
+ }
696
+
697
+ /* Reduced motion support */
698
+ @media (prefers-reduced-motion: reduce) {
699
+ *,
700
+ *::before,
701
+ *::after {
702
+ animation-duration: 0.01ms !important;
703
+ animation-iteration-count: 1 !important;
704
+ transition-duration: 0.01ms !important;
705
+ }
735
706
  }