@techsio/ui-kit 0.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/README.md +165 -0
- package/dist/atoms/badge.js +66 -0
- package/dist/atoms/button.js +275 -0
- package/dist/atoms/error-text.js +38 -0
- package/dist/atoms/extra-text.js +27 -0
- package/dist/atoms/icon.js +42 -0
- package/dist/atoms/image.js +11 -0
- package/dist/atoms/input.js +83 -0
- package/dist/atoms/label.js +43 -0
- package/dist/atoms/link-button.js +51 -0
- package/dist/atoms/link.js +23 -0
- package/dist/atoms/numeric-input.js +221 -0
- package/dist/atoms/rating.js +117 -0
- package/dist/atoms/textarea.js +81 -0
- package/dist/atoms/tooltip.js +119 -0
- package/dist/molecules/accordion.js +245 -0
- package/dist/molecules/breadcrumb.js +168 -0
- package/dist/molecules/carousel.js +333 -0
- package/dist/molecules/checkbox.js +92 -0
- package/dist/molecules/color-select.js +159 -0
- package/dist/molecules/combobox.js +253 -0
- package/dist/molecules/dialog.js +313 -0
- package/dist/molecules/form-checkbox.js +59 -0
- package/dist/molecules/form-input.js +55 -0
- package/dist/molecules/form-numeric-input.js +47 -0
- package/dist/molecules/form-textarea.js +54 -0
- package/dist/molecules/menu.js +302 -0
- package/dist/molecules/pagination.js +184 -0
- package/dist/molecules/popover.js +152 -0
- package/dist/molecules/product-card.js +194 -0
- package/dist/molecules/search-form.js +106 -0
- package/dist/molecules/select.js +217 -0
- package/dist/molecules/slider.js +249 -0
- package/dist/molecules/steps.js +178 -0
- package/dist/molecules/switch.js +109 -0
- package/dist/molecules/tabs.js +211 -0
- package/dist/molecules/toast.js +126 -0
- package/dist/molecules/tree-view.js +451 -0
- package/dist/organisms/footer.js +209 -0
- package/dist/organisms/header.js +245 -0
- package/dist/organisms/table.js +233 -0
- package/dist/src/atoms/badge.d.ts +59 -0
- package/dist/src/atoms/badge.d.ts.map +1 -0
- package/dist/src/atoms/button.d.ts +97 -0
- package/dist/src/atoms/button.d.ts.map +1 -0
- package/dist/src/atoms/error-text.d.ts +29 -0
- package/dist/src/atoms/error-text.d.ts.map +1 -0
- package/dist/src/atoms/extra-text.d.ts +27 -0
- package/dist/src/atoms/extra-text.d.ts.map +1 -0
- package/dist/src/atoms/icon.d.ts +65 -0
- package/dist/src/atoms/icon.d.ts.map +1 -0
- package/dist/src/atoms/image.d.ts +17 -0
- package/dist/src/atoms/image.d.ts.map +1 -0
- package/dist/src/atoms/input.d.ts +78 -0
- package/dist/src/atoms/input.d.ts.map +1 -0
- package/dist/src/atoms/label.d.ts +41 -0
- package/dist/src/atoms/label.d.ts.map +1 -0
- package/dist/src/atoms/link-button.d.ts +129 -0
- package/dist/src/atoms/link-button.d.ts.map +1 -0
- package/dist/src/atoms/link.d.ts +17 -0
- package/dist/src/atoms/link.d.ts.map +1 -0
- package/dist/src/atoms/numeric-input.d.ts +64 -0
- package/dist/src/atoms/numeric-input.d.ts.map +1 -0
- package/dist/src/atoms/rating.d.ts +108 -0
- package/dist/src/atoms/rating.d.ts.map +1 -0
- package/dist/src/atoms/textarea.d.ts +81 -0
- package/dist/src/atoms/textarea.d.ts.map +1 -0
- package/dist/src/atoms/tooltip.d.ts +88 -0
- package/dist/src/atoms/tooltip.d.ts.map +1 -0
- package/dist/src/molecules/accordion.d.ts +182 -0
- package/dist/src/molecules/accordion.d.ts.map +1 -0
- package/dist/src/molecules/breadcrumb.d.ts +117 -0
- package/dist/src/molecules/breadcrumb.d.ts.map +1 -0
- package/dist/src/molecules/carousel.d.ts +261 -0
- package/dist/src/molecules/carousel.d.ts.map +1 -0
- package/dist/src/molecules/checkbox.d.ts +19 -0
- package/dist/src/molecules/checkbox.d.ts.map +1 -0
- package/dist/src/molecules/color-select.d.ts +20 -0
- package/dist/src/molecules/color-select.d.ts.map +1 -0
- package/dist/src/molecules/combobox.d.ts +141 -0
- package/dist/src/molecules/combobox.d.ts.map +1 -0
- package/dist/src/molecules/dialog.d.ts +234 -0
- package/dist/src/molecules/dialog.d.ts.map +1 -0
- package/dist/src/molecules/form-checkbox.d.ts +15 -0
- package/dist/src/molecules/form-checkbox.d.ts.map +1 -0
- package/dist/src/molecules/form-input.d.ts +14 -0
- package/dist/src/molecules/form-input.d.ts.map +1 -0
- package/dist/src/molecules/form-numeric-input.d.ts +14 -0
- package/dist/src/molecules/form-numeric-input.d.ts.map +1 -0
- package/dist/src/molecules/form-textarea.d.ts +14 -0
- package/dist/src/molecules/form-textarea.d.ts.map +1 -0
- package/dist/src/molecules/menu.d.ts +153 -0
- package/dist/src/molecules/menu.d.ts.map +1 -0
- package/dist/src/molecules/pagination.d.ts +123 -0
- package/dist/src/molecules/pagination.d.ts.map +1 -0
- package/dist/src/molecules/popover.d.ts +124 -0
- package/dist/src/molecules/popover.d.ts.map +1 -0
- package/dist/src/molecules/product-card.d.ts +160 -0
- package/dist/src/molecules/product-card.d.ts.map +1 -0
- package/dist/src/molecules/search-form.d.ts +39 -0
- package/dist/src/molecules/search-form.d.ts.map +1 -0
- package/dist/src/molecules/select.d.ts +126 -0
- package/dist/src/molecules/select.d.ts.map +1 -0
- package/dist/src/molecules/slider.d.ts +120 -0
- package/dist/src/molecules/slider.d.ts.map +1 -0
- package/dist/src/molecules/steps.d.ts +96 -0
- package/dist/src/molecules/steps.d.ts.map +1 -0
- package/dist/src/molecules/switch.d.ts +71 -0
- package/dist/src/molecules/switch.d.ts.map +1 -0
- package/dist/src/molecules/tabs.d.ts +207 -0
- package/dist/src/molecules/tabs.d.ts.map +1 -0
- package/dist/src/molecules/toast.d.ts +83 -0
- package/dist/src/molecules/toast.d.ts.map +1 -0
- package/dist/src/molecules/tree-view.d.ts +202 -0
- package/dist/src/molecules/tree-view.d.ts.map +1 -0
- package/dist/src/organisms/footer.d.ts +254 -0
- package/dist/src/organisms/footer.d.ts.map +1 -0
- package/dist/src/organisms/header.d.ts +186 -0
- package/dist/src/organisms/header.d.ts.map +1 -0
- package/dist/src/organisms/table.d.ts +250 -0
- package/dist/src/organisms/table.d.ts.map +1 -0
- package/dist/src/templates/accordion.d.ts +15 -0
- package/dist/src/templates/accordion.d.ts.map +1 -0
- package/dist/src/templates/carousel.d.ts +13 -0
- package/dist/src/templates/carousel.d.ts.map +1 -0
- package/dist/src/templates/numeric-input.d.ts +14 -0
- package/dist/src/templates/numeric-input.d.ts.map +1 -0
- package/dist/src/templates/product-card.d.ts +33 -0
- package/dist/src/templates/product-card.d.ts.map +1 -0
- package/dist/src/templates/tabs.d.ts +16 -0
- package/dist/src/templates/tabs.d.ts.map +1 -0
- package/dist/src/types/zag.d.ts +19 -0
- package/dist/src/types/zag.d.ts.map +1 -0
- package/dist/src/utils.d.ts +4 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/templates/accordion.js +37 -0
- package/dist/templates/carousel.js +55 -0
- package/dist/templates/numeric-input.js +49 -0
- package/dist/templates/product-card.js +92 -0
- package/dist/templates/tabs.js +34 -0
- package/dist/types/zag.js +0 -0
- package/dist/utils.js +20 -0
- package/package.json +126 -0
- package/src/tokens/_base.css +25 -0
- package/src/tokens/_colors.css +5 -0
- package/src/tokens/_layout.css +34 -0
- package/src/tokens/_semantic.css +360 -0
- package/src/tokens/_spacing.css +22 -0
- package/src/tokens/_typography.css +17 -0
- package/src/tokens/components/atoms/_badge.css +61 -0
- package/src/tokens/components/atoms/_button.css +215 -0
- package/src/tokens/components/atoms/_icon.css +122 -0
- package/src/tokens/components/atoms/_input.css +125 -0
- package/src/tokens/components/atoms/_numeric-input.css +57 -0
- package/src/tokens/components/atoms/_rating.css +33 -0
- package/src/tokens/components/atoms/_textarea.css +93 -0
- package/src/tokens/components/atoms/_tooltip.css +21 -0
- package/src/tokens/components/components.css +32 -0
- package/src/tokens/components/molecules/_accordion.css +85 -0
- package/src/tokens/components/molecules/_breadcrumb.css +44 -0
- package/src/tokens/components/molecules/_carousel.css +72 -0
- package/src/tokens/components/molecules/_checkbox.css +29 -0
- package/src/tokens/components/molecules/_color-select.css +61 -0
- package/src/tokens/components/molecules/_combobox.css +116 -0
- package/src/tokens/components/molecules/_dialog.css +75 -0
- package/src/tokens/components/molecules/_menu.css +48 -0
- package/src/tokens/components/molecules/_pagination.css +75 -0
- package/src/tokens/components/molecules/_popover.css +39 -0
- package/src/tokens/components/molecules/_product-card.css +85 -0
- package/src/tokens/components/molecules/_search-form.css +10 -0
- package/src/tokens/components/molecules/_select.css +88 -0
- package/src/tokens/components/molecules/_slider.css +75 -0
- package/src/tokens/components/molecules/_steps.css +54 -0
- package/src/tokens/components/molecules/_switch.css +62 -0
- package/src/tokens/components/molecules/_tabs.css +69 -0
- package/src/tokens/components/molecules/_toast.css +77 -0
- package/src/tokens/components/molecules/_tree-view.css +80 -0
- package/src/tokens/components/molecules/index.css +2 -0
- package/src/tokens/components/organisms/_footer.css +90 -0
- package/src/tokens/components/organisms/_header.css +86 -0
- package/src/tokens/components/organisms/_table.css +63 -0
- package/src/tokens/index.css +67 -0
- package/src/tokens/tokens-only.css +66 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--opacity-pagination-hover: 30%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
@theme static {
|
|
6
|
+
/* === BASE COLOR MAPPING === */
|
|
7
|
+
/* Reference layer - single source of truth for theming */
|
|
8
|
+
--color-pagination: var(--color-surface);
|
|
9
|
+
--color-pagination-accent: var(--color-primary);
|
|
10
|
+
|
|
11
|
+
/* === DERIVED COLORS === */
|
|
12
|
+
/* Background colors - using reference layer */
|
|
13
|
+
--color-pagination-bg: var(--color-pagination);
|
|
14
|
+
--color-pagination-bg-active: var(--color-pagination-accent);
|
|
15
|
+
--color-pagination-bg-hover: oklch(
|
|
16
|
+
from var(--color-pagination-accent) calc(l + var(--state-hover)) c h
|
|
17
|
+
);
|
|
18
|
+
--color-pagination-neutral-bg: transparent;
|
|
19
|
+
|
|
20
|
+
/* Foreground colors */
|
|
21
|
+
--color-pagination-fg: var(--color-fg-primary);
|
|
22
|
+
--color-pagination-filled-fg-active: var(--color-fg-dark);
|
|
23
|
+
--color-pagination-outlined-fg-active: var(--color-pagination-accent);
|
|
24
|
+
--color-pagination-minimal-fg-active: var(--color-pagination-accent);
|
|
25
|
+
|
|
26
|
+
/* Border colors */
|
|
27
|
+
--color-pagination-border: var(--color-border-primary);
|
|
28
|
+
--color-pagination-border-active: var(--color-pagination-accent);
|
|
29
|
+
--color-pagination-border-hover: --alpha(
|
|
30
|
+
var(--color-pagination-border-active) /
|
|
31
|
+
var(--opacity-pagination-hover)
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
/* === DISABLED STATES === */
|
|
35
|
+
--color-pagination-bg-disabled: var(--color-disabled-bg);
|
|
36
|
+
--color-pagination-fg-disabled: --alpha(
|
|
37
|
+
var(--color-pagination-fg) /
|
|
38
|
+
var(--opacity-disabled)
|
|
39
|
+
);
|
|
40
|
+
--color-pagination-border-disabled: --alpha(
|
|
41
|
+
var(--color-pagination-border) /
|
|
42
|
+
var(--opacity-disabled)
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
/* === SPACING === */
|
|
46
|
+
--spacing-pagination: var(--spacing-200);
|
|
47
|
+
--spacing-pagination-list: var(--spacing-pagination);
|
|
48
|
+
--height-pagination-sm: 2em;
|
|
49
|
+
--height-pagination-md: 2.5em;
|
|
50
|
+
--height-pagination-lg: 3em;
|
|
51
|
+
|
|
52
|
+
/* === TYPOGRAPHY === */
|
|
53
|
+
--text-pagination-sm: var(--text-xs);
|
|
54
|
+
--text-pagination-md: var(--text-sm);
|
|
55
|
+
--text-pagination-lg: var(--text-md);
|
|
56
|
+
|
|
57
|
+
/* === BORDERS & RADIUS === */
|
|
58
|
+
--radius-pagination: var(--radius-sm);
|
|
59
|
+
--border-pagination-width: var(--border-width-sm);
|
|
60
|
+
|
|
61
|
+
/* === FOCUS RINGS === */
|
|
62
|
+
--color-pagination-ring: var(--color-ring);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@utility token-icon-pagination-prev {
|
|
66
|
+
@apply icon-[mdi--chevron-left];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@utility token-icon-pagination-next {
|
|
70
|
+
@apply icon-[mdi--chevron-right];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@utility token-icon-pagination-ellipsis {
|
|
74
|
+
@apply icon-[mdi--ellipsis-horizontal];
|
|
75
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* === ZAG.JS SPECIFIC TOKENS === */
|
|
3
|
+
/* These tokens are used directly by Zag.js library */
|
|
4
|
+
--arrow-size: var(--spacing-150);
|
|
5
|
+
--arrow-background: var(--color-popover-bg);
|
|
6
|
+
|
|
7
|
+
/* === DERIVED COLORS === */
|
|
8
|
+
/* Background colors */
|
|
9
|
+
--color-popover-bg: var(--color-overlay);
|
|
10
|
+
|
|
11
|
+
/* Foreground colors */
|
|
12
|
+
--color-popover-fg: var(--color-fg-primary);
|
|
13
|
+
--color-popover-description-fg: var(--color-fg-secondary);
|
|
14
|
+
|
|
15
|
+
/* Border colors */
|
|
16
|
+
--color-popover-border: var(--color-highlight);
|
|
17
|
+
|
|
18
|
+
/* === SPACING === */
|
|
19
|
+
--spacing-popover-sm: var(--spacing-200);
|
|
20
|
+
--spacing-popover-md: var(--spacing-250);
|
|
21
|
+
--spacing-popover-lg: var(--spacing-350);
|
|
22
|
+
--spacing-popover-title-mb: var(--spacing-150);
|
|
23
|
+
|
|
24
|
+
/* Composite spacing */
|
|
25
|
+
--padding-popover-trigger: var(--spacing-100) var(--spacing-150);
|
|
26
|
+
|
|
27
|
+
/* === TYPOGRAPHY === */
|
|
28
|
+
--text-popover-title-sm: var(--text-md);
|
|
29
|
+
--text-popover-title-md: var(--text-lg);
|
|
30
|
+
--text-popover-title-lg: var(--text-xl);
|
|
31
|
+
--text-popover-description-size: var(--text-sm);
|
|
32
|
+
--font-weight-popover-title: var(--font-weight-semibold);
|
|
33
|
+
|
|
34
|
+
/* === BORDERS & RADIUS === */
|
|
35
|
+
--radius-popover: var(--radius-sm);
|
|
36
|
+
|
|
37
|
+
/* === SHADOWS === */
|
|
38
|
+
--shadow-popover: var(--shadow-primary);
|
|
39
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
--product-card-layout-row-grid: auto 1fr;
|
|
3
|
+
--product-card-layout-column-grid: 1fr;
|
|
4
|
+
/* === BASE COLORS === */
|
|
5
|
+
--color-product-card-bg: var(--color-surface);
|
|
6
|
+
--color-product-card-name-fg: var(--color-fg-primary);
|
|
7
|
+
|
|
8
|
+
--color-product-card-price-fg: var(--color-fg-primary);
|
|
9
|
+
--color-product-card-border: var(--color-border-primary);
|
|
10
|
+
|
|
11
|
+
--color-product-card-stock-fg-in-stock: var(--color-success);
|
|
12
|
+
--color-product-card-stock-fg-limited-stock: var(--color-warning);
|
|
13
|
+
--color-product-card-stock-fg-out-of-stock: var(--color-danger);
|
|
14
|
+
|
|
15
|
+
/* === STATE VARIATIONS === */
|
|
16
|
+
/* Add to cart button */
|
|
17
|
+
--color-product-card-button-cart-bg: var(--color-button-primary);
|
|
18
|
+
--color-product-card-button-cart-bg-hover: oklch(
|
|
19
|
+
from var(--color-product-card-button-cart-bg) calc(l + var(--state-hover)) c
|
|
20
|
+
h
|
|
21
|
+
);
|
|
22
|
+
--color-product-card-button-cart-fg: var(--color-button-fg);
|
|
23
|
+
|
|
24
|
+
/* Detail button */
|
|
25
|
+
--color-product-card-button-detail-bg: var(--color-button-secondary);
|
|
26
|
+
--color-product-card-button-detail-bg-hover: oklch(
|
|
27
|
+
from var(--color-product-card-button-detail-bg) calc(l + var(--state-hover))
|
|
28
|
+
c h
|
|
29
|
+
);
|
|
30
|
+
--color-product-card-button-detail-fg: var(--color-button-fg);
|
|
31
|
+
|
|
32
|
+
/* Wishlist button */
|
|
33
|
+
--color-product-card-button-wishlist-bg: var(--color-button-tertiary);
|
|
34
|
+
--color-product-card-button-wishlist-bg-hover: oklch(
|
|
35
|
+
from var(--color-product-card-button-wishlist-bg)
|
|
36
|
+
calc(l + var(--state-hover)) c h
|
|
37
|
+
);
|
|
38
|
+
--color-product-card-button-wishlist-fg: var(--color-button-fg);
|
|
39
|
+
|
|
40
|
+
/* === SPACING === */
|
|
41
|
+
--spacing-product-card-padding: var(--spacing-150);
|
|
42
|
+
--spacing-product-card-row-layout: var(--spacing-250);
|
|
43
|
+
--spacing-product-card-col-layout: var(--spacing-100);
|
|
44
|
+
--spacing-product-card-box: var(--spacing-150);
|
|
45
|
+
--spacing-product-card-max: 100%;
|
|
46
|
+
--spacing-product-card-buttons: var(--spacing-150);
|
|
47
|
+
|
|
48
|
+
/* === TYPOGRAPHY === */
|
|
49
|
+
--text-product-card-name-size: var(--text-md);
|
|
50
|
+
--text-product-card-stock-size: var(--text-sm);
|
|
51
|
+
--text-product-card-price-size: var(--text-lg);
|
|
52
|
+
--leading-product-card-name: var(--line-height-snug);
|
|
53
|
+
|
|
54
|
+
--font-weight-product-card-name: var(--font-weight-medium);
|
|
55
|
+
--font-weight-product-card-price: var(--font-weight-medium);
|
|
56
|
+
--font-weight-product-card-stock: var(--font-weight-medium);
|
|
57
|
+
|
|
58
|
+
/* === BORDERS & RADIUS === */
|
|
59
|
+
--border-product-card-width: var(--border-width-sm);
|
|
60
|
+
--radius-product-card: var(--radius-md);
|
|
61
|
+
--radius-product-card-image: var(--radius-product-card);
|
|
62
|
+
|
|
63
|
+
/* === ASPECT RATIOS === */
|
|
64
|
+
--aspect-product-card-image: var(--aspect-square);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* === UTILITIES === */
|
|
68
|
+
@utility line-clamp-product-card-name {
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
display: -webkit-box;
|
|
71
|
+
-webkit-box-orient: vertical;
|
|
72
|
+
-webkit-line-clamp: 2;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@utility token-icon-cart-button {
|
|
76
|
+
@apply token-icon-cart;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@utility token-icon-detail-button {
|
|
80
|
+
@apply token-icon-eye;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@utility token-icon-wishlist-button {
|
|
84
|
+
@apply token-icon-heart;
|
|
85
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* Spacing for stacked layout */
|
|
3
|
+
--spacing-search-form-sm: var(--spacing-150);
|
|
4
|
+
--spacing-search-form-md: var(--spacing-200);
|
|
5
|
+
--spacing-search-form-lg: var(--spacing-250);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@utility token-icon-search {
|
|
9
|
+
@apply icon-[mdi--magnify];
|
|
10
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* === BASE COLOR MAPPING === */
|
|
3
|
+
--color-select: var(--color-surface);
|
|
4
|
+
--color-select-accent: var(--color-primary);
|
|
5
|
+
--color-select-danger: var(--color-danger);
|
|
6
|
+
--color-select-border: var(--color-border-primary);
|
|
7
|
+
--color-select-fg: var(--color-fg-primary);
|
|
8
|
+
|
|
9
|
+
/* === STATE VARIATIONS === */
|
|
10
|
+
--color-select-hover: oklch(
|
|
11
|
+
from var(--color-select) calc(l + var(--state-hover)) c h
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
/* === ROOT === */
|
|
15
|
+
--gap-select-root: var(--spacing-150);
|
|
16
|
+
|
|
17
|
+
/* === TRIGGER === */
|
|
18
|
+
--color-select-trigger-border: var(--color-select-border);
|
|
19
|
+
--color-select-trigger-bg-hover: var(--color-select-hover);
|
|
20
|
+
--color-select-trigger-border-focus: var(--color-select-accent);
|
|
21
|
+
--padding-select-trigger: var(--spacing-200);
|
|
22
|
+
|
|
23
|
+
/* === CLEAR TRIGGER === */
|
|
24
|
+
--color-select-clear-trigger-fg: var(--color-select-fg);
|
|
25
|
+
--color-select-clear-trigger-bg: transparent;
|
|
26
|
+
--padding-select-clear-trigger: var(--spacing-100);
|
|
27
|
+
--spacing-select-right: var(--spacing-450);
|
|
28
|
+
|
|
29
|
+
/* === DROPDOWN CONTENT === */
|
|
30
|
+
--color-select-content-bg: var(--color-select);
|
|
31
|
+
--color-select-content-border: var(--color-border-primary);
|
|
32
|
+
--shadow-select-content: var(--shadow-md);
|
|
33
|
+
|
|
34
|
+
/* === OPTION ITEM === */
|
|
35
|
+
--color-select-item-bg: transparent;
|
|
36
|
+
--color-select-item-fg: var(--color-select-fg);
|
|
37
|
+
--color-select-item-bg-hover: var(--color-select-hover);
|
|
38
|
+
--color-select-item-bg-selected: oklch(
|
|
39
|
+
from var(--color-select) calc(l - var(--surface-increment)) c h
|
|
40
|
+
);
|
|
41
|
+
--color-select-item-selected-fg: var(--color-select-accent);
|
|
42
|
+
--padding-select-item: var(--spacing-150) var(--spacing-250);
|
|
43
|
+
|
|
44
|
+
/* === INDICATOR === */
|
|
45
|
+
--color-select-indicator: var(--color-select-accent);
|
|
46
|
+
|
|
47
|
+
/* === PLACEHOLDER === */
|
|
48
|
+
--color-select-placeholder: --alpha(
|
|
49
|
+
var(--color-fg-secondary) /
|
|
50
|
+
var(--opacity-placeholder)
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
/* === DISABLED STATES === */
|
|
54
|
+
--opacity-select-disabled: var(--opacity-disabled);
|
|
55
|
+
|
|
56
|
+
/* === SPACING === */
|
|
57
|
+
--spacing-content: var(--spacing-450);
|
|
58
|
+
|
|
59
|
+
/* === TYPOGRAPHY === */
|
|
60
|
+
--text-select-trigger-size: var(--text-md);
|
|
61
|
+
|
|
62
|
+
--text-select-xs: var(--text-xs);
|
|
63
|
+
--text-select-sm: var(--text-sm);
|
|
64
|
+
--text-select-md: var(--text-md);
|
|
65
|
+
--text-select-lg: var(--text-lg);
|
|
66
|
+
|
|
67
|
+
/* === BORDERS & RADIUS === */
|
|
68
|
+
--radius-select: var(--radius-sm);
|
|
69
|
+
|
|
70
|
+
/* === Z-INDEX === */
|
|
71
|
+
--z-content: 50;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* === ICONS === */
|
|
75
|
+
@utility token-icon-select-indicator {
|
|
76
|
+
@apply icon-[mdi--chevron-down];
|
|
77
|
+
}
|
|
78
|
+
@utility token-icon-select-indicator-open {
|
|
79
|
+
@apply icon-[mdi--chevron-right];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@utility token-icon-select-check {
|
|
83
|
+
@apply icon-[mdi--check];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@utility token-icon-select-clear {
|
|
87
|
+
@apply icon-[mdi--close];
|
|
88
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
--spacing-slider-slim: 2px;
|
|
3
|
+
/* === BASE COLOR MAPPING === */
|
|
4
|
+
/* Reference layer - single source of truth for theming */
|
|
5
|
+
--color-slider-primary: var(--color-primary);
|
|
6
|
+
--color-slider-base: var(--color-surface);
|
|
7
|
+
--color-slider-error: var(--color-danger);
|
|
8
|
+
--color-slider-accent: oklch(
|
|
9
|
+
from var(--color-slider-base) calc(l - var(--surface-increment) * 2) c h
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
/* === DERIVED COLORS === */
|
|
13
|
+
/* Background colors */
|
|
14
|
+
--color-slider-range-bg: var(--color-slider-primary);
|
|
15
|
+
--color-slider-track-bg: var(--color-slider-base);
|
|
16
|
+
--color-slider-marker-bg: var(--color-slider-accent);
|
|
17
|
+
--color-slider-thumb-bg: var(--color-base-light);
|
|
18
|
+
--color-slider-bg-disabled: var(--color-disabled-bg);
|
|
19
|
+
|
|
20
|
+
/* Border colors */
|
|
21
|
+
--color-slider-border: var(--color-border-primary);
|
|
22
|
+
|
|
23
|
+
/* === STATE VARIATIONS === */
|
|
24
|
+
/* Hover states */
|
|
25
|
+
--color-slider-track-bg-hover: oklch(
|
|
26
|
+
from var(--color-slider-track-bg) calc(l + var(--state-hover)) c h
|
|
27
|
+
);
|
|
28
|
+
--color-slider-range-bg-hover: oklch(
|
|
29
|
+
from var(--color-slider-range-bg) calc(l + var(--state-hover)) c h
|
|
30
|
+
);
|
|
31
|
+
--color-slider-thumb-bg-hover: oklch(
|
|
32
|
+
from var(--color-slider-thumb-bg) calc(l + var(--state-hover)) c h
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
/* === VALIDATION STATES === */
|
|
36
|
+
--color-slider-range-bg-error: var(--color-slider-error);
|
|
37
|
+
--color-slider-border-error: var(--color-slider-error);
|
|
38
|
+
|
|
39
|
+
/* === DISABLED STATES === */
|
|
40
|
+
/* we must avoid transparent paint, otherwise the range would be visible */
|
|
41
|
+
--color-slider-thumb-bg-disabled: var(--color-slider-accent);
|
|
42
|
+
--color-slider-border-disabled: var(--color-disabled-border);
|
|
43
|
+
|
|
44
|
+
/* === SPACING === */
|
|
45
|
+
--spacing-slider-root: var(--spacing-200);
|
|
46
|
+
|
|
47
|
+
--spacing-slider-thumb-sm: var(--spacing-200);
|
|
48
|
+
--spacing-slider-thumb-md: var(--spacing-250);
|
|
49
|
+
--spacing-slider-thumb-lg: var(--spacing-350);
|
|
50
|
+
|
|
51
|
+
--spacing-slider-track-sm: var(--spacing-100);
|
|
52
|
+
--spacing-slider-track-md: var(--spacing-150);
|
|
53
|
+
--spacing-slider-track-lg: var(--spacing-200);
|
|
54
|
+
|
|
55
|
+
--spacing-slider-marker: var(--spacing-slider-slim);
|
|
56
|
+
--padding-marker-text: 0 0 0 var(--spacing-150);
|
|
57
|
+
|
|
58
|
+
/* === TYPOGRAPHY === */
|
|
59
|
+
--text-slider-value-size: var(--text-sm);
|
|
60
|
+
--height-marker-vertical: var(--spacing-300);
|
|
61
|
+
|
|
62
|
+
/* === BORDERS & RADIUS === */
|
|
63
|
+
--border-width-slider: var(--border-width-sm);
|
|
64
|
+
--radius-slider-track: var(--radius-full);
|
|
65
|
+
--radius-slider-thumb: var(--radius-full);
|
|
66
|
+
|
|
67
|
+
/* === SHADOWS === */
|
|
68
|
+
--shadow-slider-thumb: var(--shadow-sm);
|
|
69
|
+
|
|
70
|
+
/* === FOCUS RINGS === */
|
|
71
|
+
--color-slider-ring: var(--color-ring);
|
|
72
|
+
|
|
73
|
+
/* === OPACITY === */
|
|
74
|
+
--opacity-slider-disabled: var(--opacity-disabled);
|
|
75
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* === BASE TOKEN MAPPING === */
|
|
3
|
+
--color-steps: var(--color-base);
|
|
4
|
+
--color-steps-active: var(--color-primary);
|
|
5
|
+
--color-steps-accent: var(--color-surface);
|
|
6
|
+
--color-steps-fg: var(--color-fg-primary);
|
|
7
|
+
--color-steps-fg-active: var(--color-fg-reverse);
|
|
8
|
+
--color-steps-fg-current: var(--color-fg-reverse);
|
|
9
|
+
|
|
10
|
+
/* === ROOT === */
|
|
11
|
+
--color-steps-root-bg: var(--color-steps);
|
|
12
|
+
|
|
13
|
+
/* === LIST === */
|
|
14
|
+
--color-steps-list-bg: var(--color-steps);
|
|
15
|
+
|
|
16
|
+
/* === ITEM === */
|
|
17
|
+
--color-steps-item-bg: transparent;
|
|
18
|
+
|
|
19
|
+
/* === TRIGGER === */
|
|
20
|
+
--gap-trigger: var(--spacing-150);
|
|
21
|
+
|
|
22
|
+
/* === CONTENT === */
|
|
23
|
+
--color-steps-content-bg: var(--color-steps-accent);
|
|
24
|
+
|
|
25
|
+
/* === INDICATOR === */
|
|
26
|
+
--color-steps-indicator-bg: var(--color-steps-accent);
|
|
27
|
+
--color-steps-indicator-bg-hover: var(--color-steps-active);
|
|
28
|
+
--color-steps-indicator-bg-complete: var(--color-steps-active);
|
|
29
|
+
--color-steps-indicator-bg-current: var(--color-steps-active);
|
|
30
|
+
|
|
31
|
+
/* === SEPARATOR === */
|
|
32
|
+
--color-steps-separator-bg: var(--color-steps-accent);
|
|
33
|
+
--color-steps-separator-bg-complete: var(--color-steps-active);
|
|
34
|
+
|
|
35
|
+
/* === SPACING === */
|
|
36
|
+
--gap-root: var(--spacing-250);
|
|
37
|
+
--gap-list: var(--spacing-200);
|
|
38
|
+
--gap-item: var(--spacing-150);
|
|
39
|
+
--padding-content: var(--spacing-250);
|
|
40
|
+
--height-steps-indicator: var(--spacing-350);
|
|
41
|
+
--padding-steps-btn: var(--spacing-100) var(--spacing-200);
|
|
42
|
+
|
|
43
|
+
/* === SIZES === */
|
|
44
|
+
--height-steps-separator: 2px;
|
|
45
|
+
--width-steps-separator: 2px;
|
|
46
|
+
|
|
47
|
+
/* === FOCUS RINGS === */
|
|
48
|
+
--color-steps-ring: var(--color-ring);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Semantic tokens for steps icons */
|
|
52
|
+
@utility token-icon-steps-check {
|
|
53
|
+
@apply icon-[mdi--check];
|
|
54
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* The red colour will be less noticeable. */
|
|
3
|
+
--opacity-switch-invalid: 80%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
@theme static {
|
|
7
|
+
/* === BASE TOKEN MAPPING === */
|
|
8
|
+
--color-switch-bg: var(--color-overlay);
|
|
9
|
+
--color-switch-success: var(--color-success);
|
|
10
|
+
--color-switch-invalid: --alpha(
|
|
11
|
+
var(--color-danger) /
|
|
12
|
+
var(--opacity-switch-invalid)
|
|
13
|
+
);
|
|
14
|
+
--color-switch-border: var(--color-border-primary);
|
|
15
|
+
--color-switch-thumb-bg: var(--color-base-light);
|
|
16
|
+
--color-switch-label-fg: var(--color-fg-primary);
|
|
17
|
+
--color-switch-label-fg-disabled: var(--color-disabled-fg);
|
|
18
|
+
|
|
19
|
+
/* Backgrounds colors */
|
|
20
|
+
--color-switch-bg-checked: var(--color-switch-success);
|
|
21
|
+
|
|
22
|
+
/* === STATE VARIATIONS === */
|
|
23
|
+
--color-switch-bg-hover: oklch(
|
|
24
|
+
from var(--color-switch-bg) calc(l + var(--state-hover)) c h
|
|
25
|
+
);
|
|
26
|
+
--color-switch-bg-checked-hover: oklch(
|
|
27
|
+
from var(--color-switch-success) calc(l + var(--state-hover)) c h
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
/* === DISABLED STATES === */
|
|
31
|
+
--color-switch-bg-disabled: var(--color-disabled-bg);
|
|
32
|
+
--color-switch-thumb-bg-disabled: --alpha(
|
|
33
|
+
var(--color-switch-thumb-bg) /
|
|
34
|
+
var(--opacity-disabled)
|
|
35
|
+
);
|
|
36
|
+
--color-switch-border-disabled: var(--color-disabled-border);
|
|
37
|
+
|
|
38
|
+
/* === INVALID STATES === */
|
|
39
|
+
--color-switch-bg-invalid: var(--color-switch-invalid);
|
|
40
|
+
|
|
41
|
+
/* === SPACING === */
|
|
42
|
+
--spacing-switch-root: var(--spacing-200);
|
|
43
|
+
--spacing-switch-control: var(--spacing-50);
|
|
44
|
+
--spacing-switch-track-width: var(--spacing-600);
|
|
45
|
+
--spacing-switch-track-height: var(--spacing-350);
|
|
46
|
+
--spacing-switch-thumb-height: calc(
|
|
47
|
+
var(--spacing-switch-track-height) -
|
|
48
|
+
(var(--spacing-switch-control) * 2)
|
|
49
|
+
);
|
|
50
|
+
--spacing-switch-translate-track: calc(
|
|
51
|
+
var(--spacing-switch-track-width) -
|
|
52
|
+
var(--spacing-switch-track-height) -
|
|
53
|
+
var(--spacing-switch-control)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
/* === BORDERS & RADIUS === */
|
|
57
|
+
--border-width-switch: var(--border-width-sm);
|
|
58
|
+
--radius-switch: var(--radius-full);
|
|
59
|
+
|
|
60
|
+
/* === FOCUS RINGS === */
|
|
61
|
+
--color-switch-ring: var(--color-ring);
|
|
62
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* === BASE TOKEN MAPPING === */
|
|
3
|
+
--color-tabs-bg: var(--color-surface);
|
|
4
|
+
--color-tabs-fg: var(--color-fg-secondary);
|
|
5
|
+
--color-tabs-active: var(--color-primary);
|
|
6
|
+
--color-tabs-fg-primary: var(--color-fg-primary);
|
|
7
|
+
--color-tabs-fg-secondary: var(--color-fg-reverse);
|
|
8
|
+
|
|
9
|
+
/* === LIST COMPONENT === */
|
|
10
|
+
--color-tabs-list-bg: oklch(
|
|
11
|
+
from var(--color-tabs-bg) calc(l - var(--surface-increment)) c h
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
/* === TRIGGER COMPONENT === */
|
|
15
|
+
--color-tabs-trigger-fg: var(--color-tabs-fg);
|
|
16
|
+
--color-tabs-trigger-solid-fg: var(--color-tabs-fg-secondary);
|
|
17
|
+
--color-tabs-trigger-fg-selected: var(--color-tabs-active);
|
|
18
|
+
--color-tabs-trigger-bg-selected: var(--color-tabs-active);
|
|
19
|
+
--color-tabs-trigger-bg-outline-selected: oklch(
|
|
20
|
+
from var(--color-tabs-active) l c h /
|
|
21
|
+
0.1
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
--color-tabs-trigger-bg-hover: oklch(
|
|
25
|
+
from var(--color-tabs-bg) calc(l - var(--surface-increment) * 2) c h
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
/* === INDICATOR === */
|
|
29
|
+
--color-tabs-indicator-bg: var(--color-tabs-active);
|
|
30
|
+
--width-tabs-indicator: 2px;
|
|
31
|
+
--height-tabs-indicator: 2px;
|
|
32
|
+
|
|
33
|
+
/* === CONTENT === */
|
|
34
|
+
--color-tabs-content-fg: var(--color-tabs-fg-primary);
|
|
35
|
+
|
|
36
|
+
/* === FOCUS RING === */
|
|
37
|
+
--color-tabs-ring: var(--color-ring);
|
|
38
|
+
|
|
39
|
+
/* === PADDING === */
|
|
40
|
+
/* Trigger padding */
|
|
41
|
+
--padding-tabs-trigger-sm: var(--spacing-100) var(--spacing-150);
|
|
42
|
+
--padding-tabs-trigger-md: var(--spacing-150) var(--spacing-200);
|
|
43
|
+
--padding-tabs-trigger-lg: var(--spacing-200) var(--spacing-250);
|
|
44
|
+
|
|
45
|
+
/* Content padding */
|
|
46
|
+
--spacing-tabs-content-sm: var(--spacing-200);
|
|
47
|
+
--spacing-tabs-content-md: var(--spacing-250);
|
|
48
|
+
--spacing-tabs-content-lg: var(--spacing-350);
|
|
49
|
+
|
|
50
|
+
/* === TYPOGRAPHY === */
|
|
51
|
+
--text-tabs-trigger-sm: var(--text-sm);
|
|
52
|
+
--text-tabs-trigger-md: var(--text-md);
|
|
53
|
+
--text-tabs-trigger-lg: var(--text-lg);
|
|
54
|
+
|
|
55
|
+
--text-tabs-content-sm: var(--text-sm);
|
|
56
|
+
--text-tabs-content-md: var(--text-md);
|
|
57
|
+
--text-tabs-content-lg: var(--text-lg);
|
|
58
|
+
|
|
59
|
+
/* === BORDER & RADIUS === */
|
|
60
|
+
--border-width-tabs: var(--border-width-md);
|
|
61
|
+
--color-tabs-border: var(--color-border-primary);
|
|
62
|
+
--color-tabs-border-selected: var(--color-tabs-active);
|
|
63
|
+
--radius-tabs: 0;
|
|
64
|
+
--radius-tabs-trigger: 0;
|
|
65
|
+
--radius-tabs-indicator: 0;
|
|
66
|
+
|
|
67
|
+
/* === DISABLED STATE === */
|
|
68
|
+
--opacity-tabs-disabled: var(--opacity-disabled);
|
|
69
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@theme static {
|
|
2
|
+
/* === BASE TOKEN MAPPING === */
|
|
3
|
+
--color-toast-bg: var(--color-highlight);
|
|
4
|
+
--color-toast-fg: var(--color-fg-dark);
|
|
5
|
+
--color-toast-error: var(--color-danger);
|
|
6
|
+
--color-toast-success: var(--color-success);
|
|
7
|
+
--color-toast-info: var(--color-info);
|
|
8
|
+
--color-toast-warning: var(--color-warning);
|
|
9
|
+
|
|
10
|
+
/* === TYPE SPECIFIC COLORS === */
|
|
11
|
+
/* Error */
|
|
12
|
+
--color-toast-error-bg: var(--color-toast-error);
|
|
13
|
+
--color-toast-error-border: var(--color-toast-error);
|
|
14
|
+
--color-toast-error-title: var(--color-toast-fg);
|
|
15
|
+
--color-toast-error-icon: var(--color-toast-fg);
|
|
16
|
+
|
|
17
|
+
/* Success */
|
|
18
|
+
--color-toast-success-bg: var(--color-toast-success);
|
|
19
|
+
--color-toast-success-border: var(--color-toast-success);
|
|
20
|
+
--color-toast-success-title: var(--color-toast-fg);
|
|
21
|
+
--color-toast-success-icon: var(--color-toast-fg);
|
|
22
|
+
|
|
23
|
+
/* Info */
|
|
24
|
+
--color-toast-info-bg: var(--color-toast-info);
|
|
25
|
+
--color-toast-info-border: var(--color-toast-info);
|
|
26
|
+
--color-toast-info-title: var(--color-toast-fg);
|
|
27
|
+
--color-toast-info-icon: var(--color-toast-fg);
|
|
28
|
+
|
|
29
|
+
/* Warning */
|
|
30
|
+
--color-toast-warning-bg: var(--color-toast-warning);
|
|
31
|
+
--color-toast-warning-border: var(--color-toast-warning);
|
|
32
|
+
--color-toast-warning-title: var(--color-toast-fg);
|
|
33
|
+
--color-toast-warning-icon: var(--color-toast-fg);
|
|
34
|
+
|
|
35
|
+
/* === CLOSE BUTTON === */
|
|
36
|
+
--color-toast-close-fg: var(--color-toast-fg);
|
|
37
|
+
--color-toast-close-fg-hover: var(--color-fg-primary);
|
|
38
|
+
|
|
39
|
+
/* === ROOT === */
|
|
40
|
+
--spacing-toast-width: 360px;
|
|
41
|
+
|
|
42
|
+
/* === SPACING === */
|
|
43
|
+
--padding-toast-root: var(--spacing-250);
|
|
44
|
+
--gap-toast-content: var(--spacing-200);
|
|
45
|
+
--spacing-toast-description-gap: var(--spacing-100);
|
|
46
|
+
|
|
47
|
+
/* === TYPOGRAPHY === */
|
|
48
|
+
--font-weight-toast-title: var(--font-weight-medium);
|
|
49
|
+
--text-toast-title-size: var(--text-md);
|
|
50
|
+
--text-toast-description-size: var(--text-sm);
|
|
51
|
+
--text-toast-icon-size: var(--text-lg);
|
|
52
|
+
|
|
53
|
+
/* === BORDERS & RADIUS === */
|
|
54
|
+
--border-width-toast: var(--border-width-sm);
|
|
55
|
+
--radius-toast-root: var(--radius-sm);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Icons */
|
|
59
|
+
@utility token-icon-toast-success {
|
|
60
|
+
@apply icon-[mdi--check-circle];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@utility token-icon-toast-error {
|
|
64
|
+
@apply icon-[mdi--alert-circle];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@utility token-icon-toast-warning {
|
|
68
|
+
@apply icon-[mdi--alert];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@utility token-icon-toast-info {
|
|
72
|
+
@apply icon-[mdi--information];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@utility token-icon-toast-close {
|
|
76
|
+
@apply icon-[mdi--close];
|
|
77
|
+
}
|