@sabrenski/spire-ui-vue 0.1.1 → 0.2.1

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 (37) hide show
  1. package/README.md +55 -5
  2. package/dist/components/DialMenu/DialAction.vue.d.ts +25 -0
  3. package/dist/components/DialMenu/DialMenu.vue.d.ts +45 -0
  4. package/dist/components/DialMenu/DialTrigger.vue.d.ts +25 -0
  5. package/dist/components/DialMenu/index.d.ts +4 -0
  6. package/dist/components/DialMenu/types.d.ts +63 -0
  7. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  8. package/dist/components/LineChart/LineChart.vue.d.ts +1 -1
  9. package/dist/components/LineChart/LineChartPath.vue.d.ts +1 -1
  10. package/dist/components/Modal/Modal.vue.d.ts +2 -0
  11. package/dist/components/Modal/types.d.ts +4 -0
  12. package/dist/components/Navbar/Navbar.vue.d.ts +1 -1
  13. package/dist/components/Navbar/NavbarMenu.vue.d.ts +3 -2
  14. package/dist/components/SearchInput/SearchInput.vue.d.ts +40 -0
  15. package/dist/components/SearchInput/index.d.ts +2 -0
  16. package/dist/components/SearchInput/types.d.ts +48 -0
  17. package/dist/components/Sparkline/Sparkline.vue.d.ts +2 -2
  18. package/dist/components/Sparkline/SparklineLine.vue.d.ts +1 -1
  19. package/dist/components/Table/Table.vue.d.ts +3 -2
  20. package/dist/components/Table/types.d.ts +4 -0
  21. package/dist/components/Timer/Timer.vue.d.ts +60 -0
  22. package/dist/components/Timer/index.d.ts +2 -0
  23. package/dist/components/Timer/types.d.ts +19 -0
  24. package/dist/components/Tree/Tree.vue.d.ts +22 -0
  25. package/dist/components/Tree/TreeNode.vue.d.ts +5 -0
  26. package/dist/components/Tree/index.d.ts +3 -0
  27. package/dist/components/Tree/types.d.ts +55 -0
  28. package/dist/components/index.d.ts +4 -0
  29. package/dist/spire-ui.cjs +45 -45
  30. package/dist/spire-ui.css +1 -1
  31. package/dist/spire-ui.js +19574 -18417
  32. package/dist/theme/anchor-positioning.css +423 -0
  33. package/dist/theme/base.css +93 -0
  34. package/dist/theme/components.css +138 -0
  35. package/dist/theme/semantic.css +399 -0
  36. package/dist/theme.css +4 -0
  37. package/package.json +5 -2
@@ -0,0 +1,399 @@
1
+ @theme {
2
+ --color-canvas: var(--color-neutral-100);
3
+ --color-surface: var(--color-neutral-50);
4
+ --color-surface-hover: var(--color-neutral-100);
5
+ --color-subtle: var(--color-neutral-200);
6
+ --color-muted: var(--color-neutral-300);
7
+ --color-elevated: white;
8
+ --color-overlay: oklch(0% 0 0 / 50%);
9
+ --color-popover: white;
10
+ --color-inset: var(--color-neutral-200);
11
+
12
+ --color-foreground: var(--color-neutral-900);
13
+ --color-foreground-muted: var(--color-neutral-600);
14
+ --color-foreground-subtle: var(--color-neutral-500);
15
+ --color-foreground-disabled: var(--color-neutral-400);
16
+ --color-foreground-inverse: white;
17
+ --color-on-emphasis: white;
18
+
19
+ --color-border: var(--color-neutral-200);
20
+ --color-border-hover: var(--color-neutral-300);
21
+ --color-border-muted: var(--color-neutral-100);
22
+ --color-border-emphasis: var(--color-neutral-400);
23
+
24
+ --color-primary: var(--color-primary-600);
25
+ --color-primary-hover: var(--color-primary-700);
26
+ --color-primary-active: var(--color-primary-800);
27
+ --color-primary-subtle: var(--color-primary-100);
28
+ --color-primary-subtle-hover: var(--color-primary-200);
29
+ --color-primary-outline: var(--color-primary-200);
30
+ --color-primary-outline-hover: var(--color-primary-300);
31
+ --color-primary-foreground: var(--color-primary-600);
32
+ --color-primary-ring: var(--color-primary-400);
33
+
34
+ --color-secondary: var(--color-neutral-100);
35
+ --color-secondary-hover: var(--color-neutral-200);
36
+ --color-secondary-active: var(--color-neutral-300);
37
+ --color-secondary-subtle: var(--color-neutral-100);
38
+ --color-secondary-foreground: var(--color-neutral-700);
39
+
40
+ --color-success: var(--color-success-600);
41
+ --color-success-hover: var(--color-success-700);
42
+ --color-success-active: var(--color-success-800);
43
+ --color-success-subtle: var(--color-success-100);
44
+ --color-success-subtle-hover: var(--color-success-200);
45
+ --color-success-foreground: var(--color-success-600);
46
+ --color-success-ring: var(--color-success-400);
47
+
48
+ --color-danger: var(--color-danger-600);
49
+ --color-danger-hover: var(--color-danger-700);
50
+ --color-danger-active: var(--color-danger-800);
51
+ --color-danger-subtle: var(--color-danger-100);
52
+ --color-danger-subtle-hover: var(--color-danger-200);
53
+ --color-danger-foreground: var(--color-danger-600);
54
+ --color-danger-ring: var(--color-danger-400);
55
+
56
+ --color-warning: var(--color-warning-500);
57
+ --color-warning-hover: var(--color-warning-600);
58
+ --color-warning-active: var(--color-warning-700);
59
+ --color-warning-subtle: var(--color-warning-100);
60
+ --color-warning-subtle-hover: var(--color-warning-200);
61
+ --color-warning-foreground: var(--color-warning-600);
62
+ --color-warning-ring: var(--color-warning-400);
63
+
64
+ --color-info: var(--color-primary-600);
65
+ --color-info-hover: var(--color-primary-700);
66
+ --color-info-active: var(--color-primary-800);
67
+ --color-info-subtle: var(--color-primary-100);
68
+ --color-info-subtle-hover: var(--color-primary-200);
69
+ --color-info-foreground: var(--color-primary-600);
70
+ --color-info-ring: var(--color-primary-400);
71
+
72
+ --color-chart-1: oklch(55% 0.2 250);
73
+ --color-chart-2: oklch(60% 0.2 150);
74
+ --color-chart-3: oklch(65% 0.2 45);
75
+ --color-chart-4: oklch(55% 0.2 320);
76
+ --color-chart-5: oklch(60% 0.18 80);
77
+ --color-chart-6: oklch(55% 0.22 15);
78
+ --color-chart-7: oklch(58% 0.15 200);
79
+ --color-chart-8: oklch(55% 0.18 290);
80
+
81
+ --color-ghost: transparent;
82
+ --color-ghost-hover: var(--color-neutral-100);
83
+ --color-ghost-active: var(--color-neutral-200);
84
+
85
+ --color-contrast: var(--color-neutral-800);
86
+ --color-contrast-hover: var(--color-neutral-900);
87
+ --color-contrast-active: var(--color-neutral-950);
88
+ --color-contrast-foreground: white;
89
+
90
+ --color-outline: transparent;
91
+ --color-outline-hover: var(--color-neutral-50);
92
+ --color-outline-active: var(--color-neutral-100);
93
+
94
+ --color-ring: var(--color-primary-400);
95
+ --color-ring-offset: white;
96
+
97
+ --color-input: white;
98
+ --color-input-disabled: var(--color-neutral-100);
99
+ --color-input-border: var(--color-neutral-300);
100
+ --color-input-border-hover: var(--color-neutral-400);
101
+ --color-input-border-focus: var(--color-primary-500);
102
+ --color-input-border-invalid: var(--color-danger-500);
103
+ --color-input-placeholder: var(--color-neutral-400);
104
+
105
+ --size-control-xs: 1.5rem;
106
+ --size-control-sm: 2rem;
107
+ --size-control-md: 2.5rem;
108
+ --size-control-lg: 3rem;
109
+ --size-control-xl: 3.5rem;
110
+
111
+ --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
112
+ --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
113
+ --ease-snappy: cubic-bezier(0.2, 0, 0, 1);
114
+
115
+ --animate-fade-in: fade-in 0.2s var(--ease-smooth);
116
+ --animate-fade-out: fade-out 0.2s var(--ease-smooth);
117
+ --animate-scale-in: scale-in 0.2s var(--ease-spring);
118
+ --animate-scale-out: scale-out 0.15s var(--ease-smooth);
119
+ --animate-slide-up: slide-up 0.3s var(--ease-smooth);
120
+ --animate-slide-down: slide-down 0.3s var(--ease-smooth);
121
+ --animate-pulse-soft: pulse-soft 2s var(--ease-smooth) infinite;
122
+
123
+ --animate-toast-slide-in-right: toast-slide-in-right 0.3s var(--ease-spring);
124
+ --animate-toast-slide-in-left: toast-slide-in-left 0.3s var(--ease-spring);
125
+ --animate-toast-slide-in-top: toast-slide-in-top 0.3s var(--ease-spring);
126
+ --animate-toast-slide-in-bottom: toast-slide-in-bottom 0.3s var(--ease-spring);
127
+ --animate-toast-slide-out-right: toast-slide-out-right 0.2s var(--ease-smooth);
128
+ --animate-toast-slide-out-left: toast-slide-out-left 0.2s var(--ease-smooth);
129
+ --animate-toast-slide-out-top: toast-slide-out-top 0.2s var(--ease-smooth);
130
+ --animate-toast-slide-out-bottom: toast-slide-out-bottom 0.2s var(--ease-smooth);
131
+ }
132
+
133
+ @keyframes fade-in {
134
+ from { opacity: 0; }
135
+ to { opacity: 1; }
136
+ }
137
+ @keyframes fade-out {
138
+ from { opacity: 1; }
139
+ to { opacity: 0; }
140
+ }
141
+ @keyframes scale-in {
142
+ from { opacity: 0; transform: scale(0.95); }
143
+ to { opacity: 1; transform: scale(1); }
144
+ }
145
+ @keyframes scale-out {
146
+ from { opacity: 1; transform: scale(1); }
147
+ to { opacity: 0; transform: scale(0.95); }
148
+ }
149
+ @keyframes slide-up {
150
+ from { opacity: 0; transform: translateY(8px); }
151
+ to { opacity: 1; transform: translateY(0); }
152
+ }
153
+ @keyframes slide-down {
154
+ from { opacity: 0; transform: translateY(-8px); }
155
+ to { opacity: 1; transform: translateY(0); }
156
+ }
157
+ @keyframes pulse-soft {
158
+ 0%, 100% { opacity: 1; }
159
+ 50% { opacity: 0.6; }
160
+ }
161
+
162
+ @keyframes toast-slide-in-right {
163
+ from { opacity: 0; transform: translateX(100%); }
164
+ to { opacity: 1; transform: translateX(0); }
165
+ }
166
+ @keyframes toast-slide-in-left {
167
+ from { opacity: 0; transform: translateX(-100%); }
168
+ to { opacity: 1; transform: translateX(0); }
169
+ }
170
+ @keyframes toast-slide-in-top {
171
+ from { opacity: 0; transform: translateY(-100%); }
172
+ to { opacity: 1; transform: translateY(0); }
173
+ }
174
+ @keyframes toast-slide-in-bottom {
175
+ from { opacity: 0; transform: translateY(100%); }
176
+ to { opacity: 1; transform: translateY(0); }
177
+ }
178
+ @keyframes toast-slide-out-right {
179
+ from { opacity: 1; transform: translateX(0); }
180
+ to { opacity: 0; transform: translateX(100%); }
181
+ }
182
+ @keyframes toast-slide-out-left {
183
+ from { opacity: 1; transform: translateX(0); }
184
+ to { opacity: 0; transform: translateX(-100%); }
185
+ }
186
+ @keyframes toast-slide-out-top {
187
+ from { opacity: 1; transform: translateY(0); }
188
+ to { opacity: 0; transform: translateY(-100%); }
189
+ }
190
+ @keyframes toast-slide-out-bottom {
191
+ from { opacity: 1; transform: translateY(0); }
192
+ to { opacity: 0; transform: translateY(100%); }
193
+ }
194
+
195
+ .dark {
196
+ --color-canvas: var(--color-neutral-950);
197
+ --color-surface: var(--color-neutral-900);
198
+ --color-surface-hover: var(--color-neutral-800);
199
+ --color-subtle: var(--color-neutral-800);
200
+ --color-muted: var(--color-neutral-700);
201
+ --color-elevated: var(--color-neutral-800);
202
+ --color-overlay: var(--color-neutral-900);
203
+ --color-popover: var(--color-neutral-900);
204
+ --color-inset: var(--color-neutral-950);
205
+
206
+ --color-foreground: var(--color-neutral-50);
207
+ --color-foreground-muted: var(--color-neutral-400);
208
+ --color-foreground-subtle: var(--color-neutral-500);
209
+ --color-foreground-disabled: var(--color-neutral-600);
210
+ --color-foreground-inverse: var(--color-neutral-950);
211
+
212
+ --color-border: var(--color-neutral-700);
213
+ --color-border-hover: var(--color-neutral-600);
214
+ --color-border-muted: var(--color-neutral-800);
215
+ --color-border-emphasis: var(--color-neutral-500);
216
+
217
+ --color-primary: var(--color-primary-500);
218
+ --color-primary-hover: var(--color-primary-400);
219
+ --color-primary-active: var(--color-primary-300);
220
+ --color-primary-subtle: var(--color-primary-900);
221
+ --color-primary-subtle-hover: var(--color-primary-800);
222
+ --color-primary-outline: var(--color-primary-800);
223
+ --color-primary-outline-hover: var(--color-primary-700);
224
+ --color-primary-foreground: var(--color-primary-400);
225
+ --color-primary-ring: var(--color-primary-500);
226
+
227
+ --color-secondary: var(--color-neutral-800);
228
+ --color-secondary-hover: var(--color-neutral-700);
229
+ --color-secondary-active: var(--color-neutral-600);
230
+ --color-secondary-subtle: var(--color-neutral-800);
231
+ --color-secondary-foreground: var(--color-neutral-300);
232
+
233
+ --color-success: var(--color-success-500);
234
+ --color-success-hover: var(--color-success-400);
235
+ --color-success-active: var(--color-success-300);
236
+ --color-success-subtle: var(--color-success-900);
237
+ --color-success-subtle-hover: var(--color-success-800);
238
+ --color-success-foreground: var(--color-success-400);
239
+ --color-success-ring: var(--color-success-500);
240
+
241
+ --color-danger: var(--color-danger-500);
242
+ --color-danger-hover: var(--color-danger-400);
243
+ --color-danger-active: var(--color-danger-300);
244
+ --color-danger-subtle: var(--color-danger-900);
245
+ --color-danger-subtle-hover: var(--color-danger-800);
246
+ --color-danger-foreground: var(--color-danger-400);
247
+ --color-danger-ring: var(--color-danger-500);
248
+
249
+ --color-warning: var(--color-warning-500);
250
+ --color-warning-hover: var(--color-warning-400);
251
+ --color-warning-active: var(--color-warning-300);
252
+ --color-warning-subtle: var(--color-warning-900);
253
+ --color-warning-subtle-hover: var(--color-warning-800);
254
+ --color-warning-foreground: var(--color-warning-400);
255
+ --color-warning-ring: var(--color-warning-500);
256
+
257
+ --color-info: var(--color-primary-500);
258
+ --color-info-hover: var(--color-primary-400);
259
+ --color-info-active: var(--color-primary-300);
260
+ --color-info-subtle: var(--color-primary-900);
261
+ --color-info-subtle-hover: var(--color-primary-800);
262
+ --color-info-foreground: var(--color-primary-400);
263
+ --color-info-ring: var(--color-primary-500);
264
+
265
+ --color-chart-1: oklch(65% 0.18 250);
266
+ --color-chart-2: oklch(70% 0.18 150);
267
+ --color-chart-3: oklch(72% 0.18 45);
268
+ --color-chart-4: oklch(65% 0.18 320);
269
+ --color-chart-5: oklch(70% 0.16 80);
270
+ --color-chart-6: oklch(65% 0.20 15);
271
+ --color-chart-7: oklch(68% 0.14 200);
272
+ --color-chart-8: oklch(65% 0.16 290);
273
+
274
+ --color-ghost-hover: var(--color-neutral-700);
275
+ --color-ghost-active: var(--color-neutral-600);
276
+
277
+ --color-contrast: var(--color-neutral-100);
278
+ --color-contrast-hover: var(--color-neutral-200);
279
+ --color-contrast-active: var(--color-neutral-300);
280
+ --color-contrast-foreground: var(--color-neutral-900);
281
+
282
+ --color-outline-hover: var(--color-neutral-800);
283
+ --color-outline-active: var(--color-neutral-700);
284
+
285
+ --color-ring: var(--color-primary-500);
286
+ --color-ring-offset: var(--color-neutral-900);
287
+
288
+ --color-input: var(--color-neutral-900);
289
+ --color-input-disabled: var(--color-neutral-800);
290
+ --color-input-border: var(--color-neutral-600);
291
+ --color-input-border-hover: var(--color-neutral-500);
292
+ --color-input-border-focus: var(--color-primary-400);
293
+ --color-input-border-invalid: var(--color-danger-400);
294
+ --color-input-placeholder: var(--color-neutral-500);
295
+ }
296
+
297
+ .ocean {
298
+ --color-primary-base: oklch(55% 0.15 195);
299
+ --color-secondary-base: oklch(55% 0.12 230);
300
+ --color-success-base: oklch(55% 0.15 170);
301
+ --color-danger-base: oklch(55% 0.18 15);
302
+ --color-warning-base: oklch(70% 0.14 85);
303
+ --color-neutral-base: oklch(50% 0.02 210);
304
+ }
305
+
306
+ .forest {
307
+ --color-primary-base: oklch(45% 0.12 145);
308
+ --color-secondary-base: oklch(50% 0.08 80);
309
+ --color-success-base: oklch(50% 0.14 145);
310
+ --color-danger-base: oklch(50% 0.16 25);
311
+ --color-warning-base: oklch(65% 0.14 70);
312
+ --color-neutral-base: oklch(45% 0.03 90);
313
+ }
314
+
315
+ .sunset {
316
+ --color-primary-base: oklch(60% 0.18 35);
317
+ --color-secondary-base: oklch(55% 0.15 55);
318
+ --color-success-base: oklch(55% 0.14 160);
319
+ --color-danger-base: oklch(55% 0.20 15);
320
+ --color-warning-base: oklch(70% 0.16 80);
321
+ --color-neutral-base: oklch(50% 0.03 50);
322
+ }
323
+
324
+ .rose {
325
+ --color-primary-base: oklch(60% 0.17 350);
326
+ --color-secondary-base: oklch(55% 0.14 320);
327
+ --color-success-base: oklch(55% 0.15 160);
328
+ --color-danger-base: oklch(55% 0.18 20);
329
+ --color-warning-base: oklch(68% 0.15 65);
330
+ --color-neutral-base: oklch(50% 0.02 350);
331
+ }
332
+
333
+ .midnight {
334
+ --color-primary-base: oklch(50% 0.16 270);
335
+ --color-secondary-base: oklch(55% 0.14 290);
336
+ --color-success-base: oklch(55% 0.15 180);
337
+ --color-danger-base: oklch(55% 0.18 10);
338
+ --color-warning-base: oklch(68% 0.14 80);
339
+ --color-neutral-base: oklch(45% 0.03 270);
340
+ }
341
+
342
+ @utility h-control-xs {
343
+ height: var(--size-control-xs);
344
+ }
345
+ @utility h-control-sm {
346
+ height: var(--size-control-sm);
347
+ }
348
+ @utility h-control-md {
349
+ height: var(--size-control-md);
350
+ }
351
+ @utility h-control-lg {
352
+ height: var(--size-control-lg);
353
+ }
354
+ @utility h-control-xl {
355
+ height: var(--size-control-xl);
356
+ }
357
+
358
+ @utility size-control-xs {
359
+ width: var(--size-control-xs);
360
+ height: var(--size-control-xs);
361
+ }
362
+ @utility size-control-sm {
363
+ width: var(--size-control-sm);
364
+ height: var(--size-control-sm);
365
+ }
366
+ @utility size-control-md {
367
+ width: var(--size-control-md);
368
+ height: var(--size-control-md);
369
+ }
370
+ @utility size-control-lg {
371
+ width: var(--size-control-lg);
372
+ height: var(--size-control-lg);
373
+ }
374
+ @utility size-control-xl {
375
+ width: var(--size-control-xl);
376
+ height: var(--size-control-xl);
377
+ }
378
+
379
+ :root {
380
+ interpolate-size: allow-keywords;
381
+ }
382
+
383
+ [data-spire-accordion-item] {
384
+ overflow: hidden;
385
+ }
386
+
387
+ [data-spire-accordion-item]::details-content {
388
+ block-size: 0;
389
+ transition: block-size 0.3s var(--ease-smooth), content-visibility 0.3s;
390
+ transition-behavior: allow-discrete;
391
+ }
392
+
393
+ [data-spire-accordion-item][open]::details-content {
394
+ block-size: auto;
395
+ }
396
+
397
+ [data-spire-accordion-item][data-spire-no-animation]::details-content {
398
+ transition: none;
399
+ }
package/dist/theme.css ADDED
@@ -0,0 +1,4 @@
1
+ @import './theme/base.css';
2
+ @import './theme/semantic.css';
3
+ @import './theme/components.css';
4
+ @import './theme/anchor-positioning.css';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sabrenski/spire-ui-vue",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "A modern, themeable Vue 3 component library with 57+ components, TypeScript support, and Tailwind CSS v4",
5
5
  "type": "module",
6
6
  "author": "Spire UI Contributors",
@@ -36,7 +36,10 @@
36
36
  "import": "./dist/spire-ui.js",
37
37
  "require": "./dist/spire-ui.cjs"
38
38
  },
39
- "./style.css": "./dist/spire-ui.css"
39
+ "./style.css": "./dist/spire-ui.css",
40
+ "./theme.css": "./dist/theme.css",
41
+ "./theme": "./dist/theme.css",
42
+ "./theme/*": "./dist/theme/*"
40
43
  },
41
44
  "files": [
42
45
  "dist"