@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.
Files changed (183) hide show
  1. package/README.md +165 -0
  2. package/dist/atoms/badge.js +66 -0
  3. package/dist/atoms/button.js +275 -0
  4. package/dist/atoms/error-text.js +38 -0
  5. package/dist/atoms/extra-text.js +27 -0
  6. package/dist/atoms/icon.js +42 -0
  7. package/dist/atoms/image.js +11 -0
  8. package/dist/atoms/input.js +83 -0
  9. package/dist/atoms/label.js +43 -0
  10. package/dist/atoms/link-button.js +51 -0
  11. package/dist/atoms/link.js +23 -0
  12. package/dist/atoms/numeric-input.js +221 -0
  13. package/dist/atoms/rating.js +117 -0
  14. package/dist/atoms/textarea.js +81 -0
  15. package/dist/atoms/tooltip.js +119 -0
  16. package/dist/molecules/accordion.js +245 -0
  17. package/dist/molecules/breadcrumb.js +168 -0
  18. package/dist/molecules/carousel.js +333 -0
  19. package/dist/molecules/checkbox.js +92 -0
  20. package/dist/molecules/color-select.js +159 -0
  21. package/dist/molecules/combobox.js +253 -0
  22. package/dist/molecules/dialog.js +313 -0
  23. package/dist/molecules/form-checkbox.js +59 -0
  24. package/dist/molecules/form-input.js +55 -0
  25. package/dist/molecules/form-numeric-input.js +47 -0
  26. package/dist/molecules/form-textarea.js +54 -0
  27. package/dist/molecules/menu.js +302 -0
  28. package/dist/molecules/pagination.js +184 -0
  29. package/dist/molecules/popover.js +152 -0
  30. package/dist/molecules/product-card.js +194 -0
  31. package/dist/molecules/search-form.js +106 -0
  32. package/dist/molecules/select.js +217 -0
  33. package/dist/molecules/slider.js +249 -0
  34. package/dist/molecules/steps.js +178 -0
  35. package/dist/molecules/switch.js +109 -0
  36. package/dist/molecules/tabs.js +211 -0
  37. package/dist/molecules/toast.js +126 -0
  38. package/dist/molecules/tree-view.js +451 -0
  39. package/dist/organisms/footer.js +209 -0
  40. package/dist/organisms/header.js +245 -0
  41. package/dist/organisms/table.js +233 -0
  42. package/dist/src/atoms/badge.d.ts +59 -0
  43. package/dist/src/atoms/badge.d.ts.map +1 -0
  44. package/dist/src/atoms/button.d.ts +97 -0
  45. package/dist/src/atoms/button.d.ts.map +1 -0
  46. package/dist/src/atoms/error-text.d.ts +29 -0
  47. package/dist/src/atoms/error-text.d.ts.map +1 -0
  48. package/dist/src/atoms/extra-text.d.ts +27 -0
  49. package/dist/src/atoms/extra-text.d.ts.map +1 -0
  50. package/dist/src/atoms/icon.d.ts +65 -0
  51. package/dist/src/atoms/icon.d.ts.map +1 -0
  52. package/dist/src/atoms/image.d.ts +17 -0
  53. package/dist/src/atoms/image.d.ts.map +1 -0
  54. package/dist/src/atoms/input.d.ts +78 -0
  55. package/dist/src/atoms/input.d.ts.map +1 -0
  56. package/dist/src/atoms/label.d.ts +41 -0
  57. package/dist/src/atoms/label.d.ts.map +1 -0
  58. package/dist/src/atoms/link-button.d.ts +129 -0
  59. package/dist/src/atoms/link-button.d.ts.map +1 -0
  60. package/dist/src/atoms/link.d.ts +17 -0
  61. package/dist/src/atoms/link.d.ts.map +1 -0
  62. package/dist/src/atoms/numeric-input.d.ts +64 -0
  63. package/dist/src/atoms/numeric-input.d.ts.map +1 -0
  64. package/dist/src/atoms/rating.d.ts +108 -0
  65. package/dist/src/atoms/rating.d.ts.map +1 -0
  66. package/dist/src/atoms/textarea.d.ts +81 -0
  67. package/dist/src/atoms/textarea.d.ts.map +1 -0
  68. package/dist/src/atoms/tooltip.d.ts +88 -0
  69. package/dist/src/atoms/tooltip.d.ts.map +1 -0
  70. package/dist/src/molecules/accordion.d.ts +182 -0
  71. package/dist/src/molecules/accordion.d.ts.map +1 -0
  72. package/dist/src/molecules/breadcrumb.d.ts +117 -0
  73. package/dist/src/molecules/breadcrumb.d.ts.map +1 -0
  74. package/dist/src/molecules/carousel.d.ts +261 -0
  75. package/dist/src/molecules/carousel.d.ts.map +1 -0
  76. package/dist/src/molecules/checkbox.d.ts +19 -0
  77. package/dist/src/molecules/checkbox.d.ts.map +1 -0
  78. package/dist/src/molecules/color-select.d.ts +20 -0
  79. package/dist/src/molecules/color-select.d.ts.map +1 -0
  80. package/dist/src/molecules/combobox.d.ts +141 -0
  81. package/dist/src/molecules/combobox.d.ts.map +1 -0
  82. package/dist/src/molecules/dialog.d.ts +234 -0
  83. package/dist/src/molecules/dialog.d.ts.map +1 -0
  84. package/dist/src/molecules/form-checkbox.d.ts +15 -0
  85. package/dist/src/molecules/form-checkbox.d.ts.map +1 -0
  86. package/dist/src/molecules/form-input.d.ts +14 -0
  87. package/dist/src/molecules/form-input.d.ts.map +1 -0
  88. package/dist/src/molecules/form-numeric-input.d.ts +14 -0
  89. package/dist/src/molecules/form-numeric-input.d.ts.map +1 -0
  90. package/dist/src/molecules/form-textarea.d.ts +14 -0
  91. package/dist/src/molecules/form-textarea.d.ts.map +1 -0
  92. package/dist/src/molecules/menu.d.ts +153 -0
  93. package/dist/src/molecules/menu.d.ts.map +1 -0
  94. package/dist/src/molecules/pagination.d.ts +123 -0
  95. package/dist/src/molecules/pagination.d.ts.map +1 -0
  96. package/dist/src/molecules/popover.d.ts +124 -0
  97. package/dist/src/molecules/popover.d.ts.map +1 -0
  98. package/dist/src/molecules/product-card.d.ts +160 -0
  99. package/dist/src/molecules/product-card.d.ts.map +1 -0
  100. package/dist/src/molecules/search-form.d.ts +39 -0
  101. package/dist/src/molecules/search-form.d.ts.map +1 -0
  102. package/dist/src/molecules/select.d.ts +126 -0
  103. package/dist/src/molecules/select.d.ts.map +1 -0
  104. package/dist/src/molecules/slider.d.ts +120 -0
  105. package/dist/src/molecules/slider.d.ts.map +1 -0
  106. package/dist/src/molecules/steps.d.ts +96 -0
  107. package/dist/src/molecules/steps.d.ts.map +1 -0
  108. package/dist/src/molecules/switch.d.ts +71 -0
  109. package/dist/src/molecules/switch.d.ts.map +1 -0
  110. package/dist/src/molecules/tabs.d.ts +207 -0
  111. package/dist/src/molecules/tabs.d.ts.map +1 -0
  112. package/dist/src/molecules/toast.d.ts +83 -0
  113. package/dist/src/molecules/toast.d.ts.map +1 -0
  114. package/dist/src/molecules/tree-view.d.ts +202 -0
  115. package/dist/src/molecules/tree-view.d.ts.map +1 -0
  116. package/dist/src/organisms/footer.d.ts +254 -0
  117. package/dist/src/organisms/footer.d.ts.map +1 -0
  118. package/dist/src/organisms/header.d.ts +186 -0
  119. package/dist/src/organisms/header.d.ts.map +1 -0
  120. package/dist/src/organisms/table.d.ts +250 -0
  121. package/dist/src/organisms/table.d.ts.map +1 -0
  122. package/dist/src/templates/accordion.d.ts +15 -0
  123. package/dist/src/templates/accordion.d.ts.map +1 -0
  124. package/dist/src/templates/carousel.d.ts +13 -0
  125. package/dist/src/templates/carousel.d.ts.map +1 -0
  126. package/dist/src/templates/numeric-input.d.ts +14 -0
  127. package/dist/src/templates/numeric-input.d.ts.map +1 -0
  128. package/dist/src/templates/product-card.d.ts +33 -0
  129. package/dist/src/templates/product-card.d.ts.map +1 -0
  130. package/dist/src/templates/tabs.d.ts +16 -0
  131. package/dist/src/templates/tabs.d.ts.map +1 -0
  132. package/dist/src/types/zag.d.ts +19 -0
  133. package/dist/src/types/zag.d.ts.map +1 -0
  134. package/dist/src/utils.d.ts +4 -0
  135. package/dist/src/utils.d.ts.map +1 -0
  136. package/dist/templates/accordion.js +37 -0
  137. package/dist/templates/carousel.js +55 -0
  138. package/dist/templates/numeric-input.js +49 -0
  139. package/dist/templates/product-card.js +92 -0
  140. package/dist/templates/tabs.js +34 -0
  141. package/dist/types/zag.js +0 -0
  142. package/dist/utils.js +20 -0
  143. package/package.json +126 -0
  144. package/src/tokens/_base.css +25 -0
  145. package/src/tokens/_colors.css +5 -0
  146. package/src/tokens/_layout.css +34 -0
  147. package/src/tokens/_semantic.css +360 -0
  148. package/src/tokens/_spacing.css +22 -0
  149. package/src/tokens/_typography.css +17 -0
  150. package/src/tokens/components/atoms/_badge.css +61 -0
  151. package/src/tokens/components/atoms/_button.css +215 -0
  152. package/src/tokens/components/atoms/_icon.css +122 -0
  153. package/src/tokens/components/atoms/_input.css +125 -0
  154. package/src/tokens/components/atoms/_numeric-input.css +57 -0
  155. package/src/tokens/components/atoms/_rating.css +33 -0
  156. package/src/tokens/components/atoms/_textarea.css +93 -0
  157. package/src/tokens/components/atoms/_tooltip.css +21 -0
  158. package/src/tokens/components/components.css +32 -0
  159. package/src/tokens/components/molecules/_accordion.css +85 -0
  160. package/src/tokens/components/molecules/_breadcrumb.css +44 -0
  161. package/src/tokens/components/molecules/_carousel.css +72 -0
  162. package/src/tokens/components/molecules/_checkbox.css +29 -0
  163. package/src/tokens/components/molecules/_color-select.css +61 -0
  164. package/src/tokens/components/molecules/_combobox.css +116 -0
  165. package/src/tokens/components/molecules/_dialog.css +75 -0
  166. package/src/tokens/components/molecules/_menu.css +48 -0
  167. package/src/tokens/components/molecules/_pagination.css +75 -0
  168. package/src/tokens/components/molecules/_popover.css +39 -0
  169. package/src/tokens/components/molecules/_product-card.css +85 -0
  170. package/src/tokens/components/molecules/_search-form.css +10 -0
  171. package/src/tokens/components/molecules/_select.css +88 -0
  172. package/src/tokens/components/molecules/_slider.css +75 -0
  173. package/src/tokens/components/molecules/_steps.css +54 -0
  174. package/src/tokens/components/molecules/_switch.css +62 -0
  175. package/src/tokens/components/molecules/_tabs.css +69 -0
  176. package/src/tokens/components/molecules/_toast.css +77 -0
  177. package/src/tokens/components/molecules/_tree-view.css +80 -0
  178. package/src/tokens/components/molecules/index.css +2 -0
  179. package/src/tokens/components/organisms/_footer.css +90 -0
  180. package/src/tokens/components/organisms/_header.css +86 -0
  181. package/src/tokens/components/organisms/_table.css +63 -0
  182. package/src/tokens/index.css +67 -0
  183. package/src/tokens/tokens-only.css +66 -0
@@ -0,0 +1,93 @@
1
+ @theme static {
2
+ --opacity-borderless: 60%;
3
+ /* === BASE COLOR MAPPING === */
4
+ --color-textarea-base: var(--color-fill-base);
5
+ --color-textarea-accent: var(--color-primary);
6
+ --color-textarea-success: var(--color-success);
7
+ --color-textarea-warning: var(--color-warning);
8
+ --color-textarea-danger: var(--color-danger);
9
+
10
+ /* === DERIVED COLORS === */
11
+ /* Background colors - using reference layer */
12
+ --color-textarea-bg: var(--color-textarea-base);
13
+ --color-textarea-bg-borderless: --alpha(
14
+ var(--color-textarea-base) /
15
+ var(--opacity-borderless)
16
+ );
17
+
18
+ /* Foreground colors */
19
+ --color-textarea-fg: var(--color-fg-primary);
20
+ --color-textarea-placeholder: --alpha(
21
+ var(--color-fg-primary) /
22
+ var(--opacity-placeholder)
23
+ );
24
+ --color-textarea-fg-disabled: var(--color-disabled-fg);
25
+
26
+ /* Border colors */
27
+ --color-textarea-border: var(--color-border-primary);
28
+ --color-textarea-border-success: var(--color-textarea-success);
29
+ --color-textarea-border-warning: var(--color-textarea-warning);
30
+ --color-textarea-border-danger: var(--color-textarea-danger);
31
+ --color-textarea-border-disabled: var(--color-disabled-border);
32
+
33
+ /* === STATE VARIATIONS === */
34
+ /* Default hover/focus states */
35
+ --color-textarea-bg-hover: oklch(
36
+ from var(--color-textarea-base) calc(l + var(--state-hover)) c h
37
+ );
38
+ --color-textarea-bg-focus: oklch(
39
+ from var(--color-textarea-base) calc(l + var(--state-active)) c h
40
+ );
41
+
42
+ /* Border states */
43
+ --color-textarea-border-hover: var(--color-textarea-accent);
44
+ --color-textarea-border-focus: var(--color-textarea-accent);
45
+
46
+ /* === VALIDATION STATES === */
47
+ /* Success variant */
48
+ --color-textarea-border-success-hover: oklch(
49
+ from var(--color-textarea-success) calc(l + var(--state-hover)) c h
50
+ );
51
+ --color-textarea-border-success-focus: var(--color-textarea-success);
52
+
53
+ /* Warning variant */
54
+ --color-textarea-border-warning-hover: oklch(
55
+ from var(--color-textarea-warning) calc(l + var(--state-hover)) c h
56
+ );
57
+ --color-textarea-border-warning-focus: var(--color-textarea-warning);
58
+
59
+ /* Danger variant */
60
+ --color-textarea-border-danger-hover: oklch(
61
+ from var(--color-textarea-danger) calc(l + var(--state-hover)) c h
62
+ );
63
+ --color-textarea-border-danger-focus: var(--color-textarea-danger);
64
+ --color-textarea-placeholder-danger: --alpha(
65
+ var(--color-textarea-danger) /
66
+ var(--opacity-placeholder)
67
+ );
68
+
69
+ /* Borderless variant */
70
+ --color-textarea-bg-borderless-hover: var(--color-textarea-base);
71
+
72
+ --color-textarea-bg-borderless-focus: var(--color-textarea-base);
73
+
74
+ /* === DISABLED STATES === */
75
+ --color-textarea-bg-disabled: var(--color-disabled-bg);
76
+
77
+ /* === SPACING === */
78
+ --padding-textarea-sm: var(--spacing-100) var(--spacing-150);
79
+ --padding-textarea-md: var(--spacing-150) var(--spacing-200);
80
+ --padding-textarea-lg: var(--spacing-150) var(--spacing-250);
81
+
82
+ /* === TYPOGRAPHY === */
83
+ --text-textarea-sm: var(--text-sm);
84
+ --text-textarea-md: var(--text-md);
85
+ --text-textarea-lg: var(--text-lg);
86
+
87
+ /* === BORDERS & RADIUS === */
88
+ --border-textarea-width: 1px;
89
+ --radius-textarea: var(--radius-md);
90
+
91
+ /* === FOCUS RING === */
92
+ --color-textarea-ring: var(--color-ring);
93
+ }
@@ -0,0 +1,21 @@
1
+ @theme static {
2
+ /* === BASE TOKEN MAPPING === */
3
+ --color-tooltip-bg: var(--color-overlay);
4
+ --color-tooltip-border: var(--color-border-primary);
5
+
6
+ /* === SIZING & SPACING === */
7
+ --padding-tooltip-sm: var(--spacing-150) var(--spacing-200);
8
+ --padding-tooltip-md: var(--spacing-200) var(--spacing-250);
9
+ --padding-tooltip-lg: var(--spacing-250) var(--spacing-350);
10
+
11
+ --text-tooltip-sm: var(--text-xs);
12
+ --text-tooltip-md: var(--text-sm);
13
+ --text-tooltip-lg: var(--text-md);
14
+
15
+ --radius-tooltip: var(--radius-md);
16
+ --shadow-tooltip: var(--shadow-md);
17
+
18
+ /* Required for Zag.js */
19
+ --tooltip-arrow-size: var(--spacing-150);
20
+ --tooltip-arrow-background: var(--color-tooltip-bg);
21
+ }
@@ -0,0 +1,32 @@
1
+ @import "./atoms/_badge.css";
2
+ @import "./atoms/_button.css";
3
+ @import "./atoms/_icon.css";
4
+ @import "./atoms/_input.css";
5
+ @import "./atoms/_numeric-input.css";
6
+ @import "./atoms/_rating.css";
7
+ @import "./atoms/_textarea.css";
8
+ @import "./atoms/_tooltip.css";
9
+
10
+ @import "./molecules/_accordion.css";
11
+ @import "./molecules/_breadcrumb.css";
12
+ @import "./molecules/_carousel.css";
13
+ @import "./molecules/_checkbox.css";
14
+ @import "./molecules/_color-select.css";
15
+ @import "./molecules/_combobox.css";
16
+ @import "./molecules/_dialog.css";
17
+ @import "./molecules/_pagination.css";
18
+ @import "./molecules/_popover.css";
19
+ @import "./molecules/_menu.css";
20
+ @import "./molecules/_tabs.css";
21
+ @import "./molecules/_product-card.css";
22
+ @import "./molecules/_slider.css";
23
+ @import "./molecules/_search-form.css";
24
+ @import "./molecules/_select.css";
25
+ @import "./molecules/_steps.css";
26
+ @import "./molecules/_switch.css";
27
+ @import "./molecules/_toast.css";
28
+ @import "./molecules/_tree-view.css";
29
+
30
+ @import "./organisms/_table.css";
31
+ @import "./organisms/_footer.css";
32
+ @import "./organisms/_header.css";
@@ -0,0 +1,85 @@
1
+ @theme static {
2
+ /* === BASE COLOR MAPPING === */
3
+ --color-accordion-base: var(--color-surface);
4
+ --color-accordion-border: var(--color-border-primary);
5
+ --color-accordion-accent: var(--color-primary);
6
+
7
+ /* === DERIVED COLORS === */
8
+ /* Background colors */
9
+ --color-accordion-bg: var(--color-accordion-base);
10
+ --color-accordion-title-bg: var(--color-accordion-bg);
11
+ --color-accordion-content-bg: var(--color-accordion-bg);
12
+
13
+ /* Foreground colors */
14
+ --color-accordion-fg: var(--color-fg-primary);
15
+ --color-accordion-title-fg: var(--color-accordion-fg);
16
+ --color-accordion-subtitle-fg: --alpha(
17
+ var(--color-accordion-fg) /
18
+ var(--opacity-text-secondary)
19
+ );
20
+ --color-accordion-content-fg: var(--color-accordion-fg);
21
+
22
+ /* === STATE VARIATIONS === */
23
+ --color-accordion-bg-hover: oklch(
24
+ from var(--color-accordion-bg) calc(l + var(--state-hover)) c h
25
+ );
26
+ --color-accordion-title-bg-hover: var(--color-accordion-bg-hover);
27
+
28
+ /* === COMPONENT VARIANTS === */
29
+ /* Component variants will be added here when needed */
30
+
31
+ /* === VALIDATION STATES === */
32
+ /* Validation states will be added here when needed */
33
+
34
+ /* === DISABLED STATES === */
35
+ --color-accordion-fg-disabled: --alpha(
36
+ var(--color-disabled-fg) /
37
+ var(--opacity-disabled)
38
+ );
39
+
40
+ /* === SPACING === */
41
+ --padding-accordion-title-sm: var(--spacing-100) var(--spacing-150);
42
+ --padding-accordion-title-md: var(--spacing-150) var(--spacing-200);
43
+ --padding-accordion-title-lg: var(--spacing-200) var(--spacing-250);
44
+
45
+ --padding-accordion-content-sm: var(--spacing-100) var(--spacing-100);
46
+ --padding-accordion-content-md: var(--spacing-150) var(--spacing-200);
47
+ --padding-accordion-content-lg: var(--spacing-200) var(--spacing-300);
48
+
49
+ --padding-accordion-icon: var(--spacing-200);
50
+
51
+ /* === TYPOGRAPHY === */
52
+ /* Font weights */
53
+ --font-weight-accordion-title: var(--font-weight-medium);
54
+
55
+ /* Default sizes */
56
+ --text-accordion-title-md: var(--text-md);
57
+ --text-accordion-content-md: var(--text-md);
58
+ --text-accordion-subtitle-md: var(--text-sm);
59
+
60
+ /* Size variants */
61
+ --text-accordion-title-lg: var(--text-lg);
62
+ --text-accordion-content-lg: var(--text-lg);
63
+ --text-accordion-subtitle-lg: var(--text-md);
64
+ --text-accordion-title-sm: var(--text-sm);
65
+ --text-accordion-content-sm: var(--text-sm);
66
+ --text-accordion-subtitle-sm: var(--text-xs);
67
+
68
+ /* === BORDERS & RADIUS === */
69
+ --border-width-accordion: var(--border-width-sm);
70
+ --radius-accordion: var(--radius-sm);
71
+
72
+ /* === SHADOWS === */
73
+ --shadow-accordion-root-sm: var(--shadow-primary);
74
+ --shadow-accordion-root-md: var(--shadow-xl);
75
+ --shadow-accordion-content-sm: var(--shadow-sm);
76
+ --shadow-accordion-content-md: var(--shadow-primary);
77
+
78
+ /* === FOCUS RINGS === */
79
+ --color-accordion-ring: var(--color-ring);
80
+ }
81
+
82
+ /* Semantic tokens for accordion icons */
83
+ @utility token-icon-accordion-chevron {
84
+ @apply icon-[mdi--chevron-down];
85
+ }
@@ -0,0 +1,44 @@
1
+ @theme static {
2
+ /* === BASE COLOR MAPPING === */
3
+ /* Reference layer - single source of truth for theming */
4
+ --color-breadcrumb: var(--color-surface);
5
+ --color-breadcrumb-accent: var(--color-primary);
6
+
7
+ /* === DERIVED COLORS === */
8
+ /* Background colors */
9
+ --color-breadcrumb-bg: var(--color-breadcrumb);
10
+
11
+ /* Foreground colors */
12
+ --color-breadcrumb-fg: var(--color-fg-primary);
13
+ --color-breadcrumb-fg-secondary: var(--color-fg-secondary);
14
+ --color-breadcrumb-fg-current: var(--color-breadcrumb-accent);
15
+
16
+ /* Slot-specific colors */
17
+ --color-breadcrumb-item-fg: var(--color-breadcrumb-fg);
18
+ --color-breadcrumb-separator-fg: var(--color-breadcrumb-fg-secondary);
19
+ --color-breadcrumb-ellipsis-fg: var(--color-breadcrumb-fg-secondary);
20
+
21
+ /* === STATE VARIATIONS === */
22
+ --color-breadcrumb-fg-hover: var(--color-breadcrumb-accent);
23
+
24
+ /* === SPACING === */
25
+ --spacing-breadcrumb-sm: var(--spacing-100);
26
+ --spacing-breadcrumb-md: var(--spacing-150);
27
+ --spacing-breadcrumb-lg: var(--spacing-200);
28
+
29
+ /* === TYPOGRAPHY === */
30
+ --text-breadcrumb-sm: var(--text-xs);
31
+ --text-breadcrumb-md: var(--text-sm);
32
+ --text-breadcrumb-lg: var(--text-md);
33
+
34
+ /* === FOCUS RINGS === */
35
+ --color-breadcrumb-ring: var(--color-ring);
36
+ }
37
+
38
+ @utility token-icon-breadcrumb-separator {
39
+ @apply icon-[mdi--chevron-right];
40
+ }
41
+
42
+ @utility token-icon-breadcrumb-ellipsis {
43
+ @apply icon-[mdi--ellipsis-horizontal];
44
+ }
@@ -0,0 +1,72 @@
1
+ @theme static {
2
+ /* === BASE COLOR MAPPING === */
3
+ /* Reference layer - single source of truth for theming */
4
+ --color-carousel: var(--color-surface);
5
+ --color-carousel-accent: var(--color-primary);
6
+
7
+ /* === DERIVED COLORS === */
8
+ /* Background colors - using reference layer */
9
+ --color-carousel-trigger-bg: oklch(
10
+ from var(--color-carousel) calc(l - var(--surface-increment) * 4) c h
11
+ );
12
+ --color-carousel-trigger-bg-hover: oklch(
13
+ from var(--color-carousel) calc(l - var(--surface-increment) * 8) c h
14
+ );
15
+ --color-carousel-control-bg: oklch(
16
+ from var(--color-carousel) calc(l - var(--surface-increment) * 2) c h
17
+ );
18
+
19
+ /* Foreground colors */
20
+ --color-carousel-trigger-fg: var(--color-fg-dark);
21
+ --color-carousel-trigger-fg-hover: var(--color-fg-dark);
22
+
23
+ /* Indicator colors */
24
+ --color-carousel-indicator-bg: oklch(
25
+ from var(--color-carousel) calc(l - var(--surface-increment) * 4) c h
26
+ );
27
+ --color-carousel-indicator-bg-active: var(--color-carousel-accent);
28
+ --color-carousel-indicator-border: transparent;
29
+ --color-carousel-indicator-border-active: transparent;
30
+
31
+ /* === SPACING === */
32
+ /* Root spacing */
33
+ --spacing-carousel-root-sm: var(--container-3xs);
34
+ --spacing-carousel-root-md: var(--container-sm);
35
+ --spacing-carousel-root-lg: var(--container-lg);
36
+
37
+ --spacing-carousel-trigger-top: var(--spacing-100);
38
+ --spacing-carousel-trigger-right: var(--spacing-100);
39
+
40
+ /* Control spacing */
41
+ --padding-carousel-control: var(--spacing-100);
42
+ --gap-carousel-control: var(--spacing-200);
43
+
44
+ /* Trigger spacing */
45
+ --padding-carousel-trigger: 0 0;
46
+
47
+ /* Indicator spacing */
48
+ --gap-carousel-indicator: var(--spacing-100);
49
+ --width-carousel-indicator: var(--spacing-200);
50
+
51
+ /* === BORDERS & RADIUS === */
52
+ --radius-carousel: var(--radius-sm);
53
+ --radius-carousel-indicator: 50%;
54
+
55
+ /* === TYPOGRAPHY === */
56
+ --text-carousel-trigger-size: var(--text-md);
57
+
58
+ /* === FOCUS RINGS === */
59
+ --color-carousel-ring: var(--color-ring);
60
+
61
+ /* === ASPECT RATIO === */
62
+ /* Additional section for aspect ratios */
63
+ --aspect-carousel-indicator: var(--aspect-square);
64
+ }
65
+
66
+ @utility token-icon-carousel-prev {
67
+ @apply icon-[mdi--chevron-left];
68
+ }
69
+
70
+ @utility token-icon-carousel-next {
71
+ @apply icon-[mdi--chevron-right];
72
+ }
@@ -0,0 +1,29 @@
1
+ @theme static {
2
+ /* === BASE TOKEN MAPPING === */
3
+ --color-checkbox: var(--color-fill-active);
4
+ --color-checkbox-error: var(--color-danger);
5
+ --color-checkbox-checked: var(--color-success);
6
+ --color-checkbox-border: var(--color-border-primary);
7
+ --opacity-checkbox-disabled: var(--opacity-disabled);
8
+
9
+ --color-checkbox-indeterminate: var(--color-primary);
10
+
11
+ --color-checkbox-ring: var(--color-ring);
12
+ --color-checkbox-border-error: var(--color-checkbox-error);
13
+
14
+ --spacing-checkbox: var(--spacing-200);
15
+ --color-icon-fg: var(--color-fg-dark);
16
+ --text-checkbox-icon-md: var(--text-xs);
17
+ --radius-checkbox: var(--radius-sm);
18
+
19
+ --width-indeterminate: 60%;
20
+ --height-indeterminate: 2px;
21
+ }
22
+
23
+ @utility token-icon-checkbox {
24
+ @apply icon-[mdi--check-bold];
25
+ }
26
+
27
+ @utility token-icon-checkbox-indeterminate {
28
+ @apply icon-[mdi--minus];
29
+ }
@@ -0,0 +1,61 @@
1
+ :root {
2
+ --cols-num: 4;
3
+ /*breakpoint md*/
4
+ @media (width < 48rem) {
5
+ --cols-num: 3;
6
+ }
7
+ /*breakpoint xs*/
8
+ @media (width < 30rem) {
9
+ --cols-num: 2;
10
+ }
11
+ }
12
+
13
+ @theme static {
14
+ /* === DERIVED COLORS === */
15
+ --color-color-select-accent: var(--color-primary);
16
+ --color-color-select-border: var(--color-highlight);
17
+ --color-color-select-border-hover: var(--color-color-select-accent);
18
+ --color-color-select-selected: var(--color-color-select-accent);
19
+ --color-color-select-fg-check: var(--color-white);
20
+ --color-color-select-ring: var(--color-ring);
21
+ --color-color-select-label-fg: var(--color-fg-secondary);
22
+
23
+ /* === SPACING === */
24
+ --padding-color-select-atom: 0 0;
25
+ --spacing-color-select-group-sm: var(--spacing-100);
26
+ --spacing-color-select-group-md: var(--spacing-200);
27
+ --spacing-color-select-group-lg: var(--spacing-300);
28
+
29
+ --spacing-color-select-sm: var(--spacing-250);
30
+ --spacing-color-select-md: var(--spacing-350);
31
+ --spacing-color-select-lg: var(--spacing-450);
32
+
33
+ /* === TYPOGRAPHY === */
34
+ --text-color-select-sm: var(--text-xs);
35
+ --text-color-select-md: var(--text-sm);
36
+ --text-color-select-lg: var(--text-md);
37
+ --size-color-select-icon: 50%;
38
+
39
+ /* === BORDERS & RADIUS === */
40
+ --radius-color-select-full: var(--radius-full);
41
+ --radius-color-select-sm: var(--radius-sm);
42
+ --radius-color-select-md: var(--radius-md);
43
+ --radius-color-select-lg: var(--radius-2xl);
44
+
45
+ /* === SHADOWS === */
46
+ --shadow-color-select: var(--shadow-sm);
47
+
48
+ /* === LAYOUT === */
49
+ }
50
+
51
+ @utility token-icon-color-select {
52
+ @apply icon-[mdi--check-bold];
53
+ }
54
+
55
+ @utility select-disabled {
56
+ @apply grayscale-75;
57
+ }
58
+
59
+ @utility color-select-grid {
60
+ grid-template-columns: repeat(var(--cols-num), minmax(0, 1fr));
61
+ }
@@ -0,0 +1,116 @@
1
+ @theme static {
2
+ /* === BASE COLOR MAPPING === */
3
+ /* Reference layer - single source of truth for theming */
4
+ --color-combobox: var(--color-surface);
5
+ --color-combobox-success-fg: var(--color-success);
6
+ --color-combobox-warning-fg: var(--color-warning);
7
+ --color-combobox-danger-fg: var(--color-danger);
8
+
9
+ /* === DERIVED COLORS === */
10
+ /* Background colors - using reference layer */
11
+ --color-combobox-bg: var(--color-combobox);
12
+
13
+ /* Foreground colors */
14
+ --color-combobox-fg: var(--color-fg-primary);
15
+ --color-combobox-placeholder: --alpha(
16
+ var(--color-combobox-fg) /
17
+ var(--opacity-placeholder)
18
+ );
19
+
20
+ /* Border colors */
21
+ --color-combobox-border: var(--color-border-primary);
22
+ --color-combobox-border-hover: oklch(
23
+ from var(--color-combobox-border) calc(l + var(--state-hover)) c h
24
+ );
25
+ --color-combobox-border-focus: var(--color-combobox-accent);
26
+
27
+ /* === STATE VARIATIONS === */
28
+ /* Auto-calculated using semantic state modifiers */
29
+ --color-combobox-bg-hover: oklch(
30
+ from var(--color-combobox) calc(l + var(--state-hover)) c h
31
+ );
32
+ --color-combobox-bg-focus: oklch(
33
+ from var(--color-combobox) calc(l + var(--state-active)) c h
34
+ );
35
+
36
+ /* Input slot states */
37
+ --color-combobox-input-bg: transparent;
38
+ --color-combobox-input-bg-hover: var(--color-combobox-input-bg);
39
+ --color-combobox-input-bg-focused: var(--color-combobox-input-bg);
40
+
41
+ /* Trigger button states */
42
+ --color-combobox-trigger: var(--color-combobox-fg);
43
+ --color-combobox-trigger-hover: oklch(
44
+ from var(--color-combobox) min(l - 0.4, 1) c h
45
+ );
46
+ --color-combobox-trigger-bg: transparent;
47
+ --color-combobox-trigger-bg-hover: var(--color-combobox-trigger-bg);
48
+ --color-combobox-trigger-bg-active: var(--color-combobox-trigger-bg);
49
+
50
+ /* === COMPONENT VARIANTS === */
51
+ /* Dropdown content */
52
+ --color-combobox-content-bg: var(--color-combobox);
53
+
54
+ /* Dropdown items */
55
+ --color-combobox-item-fg: var(--color-combobox-fg);
56
+ --color-combobox-item-bg-selected: var(--color-combobox-bg-focus);
57
+ --color-combobox-item-bg-hover: var(--color-combobox-bg-hover);
58
+
59
+ /* === VALIDATION STATES === */
60
+ /* Success, warning, danger states - defined in BASE COLOR MAPPING */
61
+
62
+ /* === DISABLED STATES === */
63
+ /* Disabled appearance */
64
+ --color-combobox-bg-disabled: var(--color-disabled-bg);
65
+ --color-combobox-fg-disabled: var(--color-disabled-fg);
66
+ --color-combobox-border-disabled: var(--color-disabled-border);
67
+
68
+ /* === SPACING === */
69
+ /* Padding, margin, gap values */
70
+ --spacing-combobox-root-sm: var(--spacing-100);
71
+ --spacing-combobox-root-md: var(--spacing-150);
72
+ --spacing-combobox-root-lg: var(--spacing-200);
73
+
74
+ --padding-combobox-input-sm: var(--spacing-50);
75
+ --padding-combobox-input-md: var(--spacing-100);
76
+ --padding-combobox-input-lg: var(--spacing-150);
77
+
78
+ --padding-combobox-item-sm: var(--spacing-50) var(--spacing-150);
79
+ --padding-combobox-item-md: var(--spacing-50) var(--spacing-200);
80
+ --padding-combobox-item-lg: var(--spacing-50) var(--spacing-250);
81
+
82
+ --padding-combobox-trigger: 0 var(--spacing-100);
83
+
84
+ --spacing-combobox-clear-right: var(--spacing-250);
85
+
86
+ /* === TYPOGRAPHY === */
87
+ /* Font sizes and weights */
88
+ --text-combobox-trigger-size: var(--text-lg);
89
+ --text-combobox-content-sm: var(--text-sm);
90
+ --text-combobox-content-md: var(--text-md);
91
+ --text-combobox-content-lg: var(--text-lg);
92
+
93
+ /* === BORDERS & RADIUS === */
94
+ /* Border widths and radius values */
95
+ --radius-combobox: var(--radius-sm);
96
+ --border-width-combobox: var(--border-width-input);
97
+
98
+ /* === SHADOWS === */
99
+ /* Box shadow definitions - none for combobox */
100
+
101
+ /* === FOCUS RINGS === */
102
+ /* Focus ring colors and styles */
103
+ --color-combobox-ring: var(--color-ring);
104
+
105
+ /* Z-index */
106
+ --z-combobox-content: 20;
107
+ }
108
+
109
+ /* Semantic tokens for combobox icons */
110
+ @utility token-icon-combobox-chevron {
111
+ @apply icon-[mdi--chevron-down];
112
+ }
113
+
114
+ @utility token-icon-combobox-clear {
115
+ @apply icon-[mdi--close];
116
+ }
@@ -0,0 +1,75 @@
1
+ :root {
2
+ --opacity-backdrop: 10%;
3
+ }
4
+
5
+ @theme static {
6
+ /* === BASE COLOR MAPPING === */
7
+ /* Reference layer - single source of truth for theming */
8
+ --color-dialog: var(--color-surface);
9
+ --color-dialog-accent: var(--color-primary);
10
+
11
+ /* === DERIVED COLORS === */
12
+ /* Background colors - using reference layer */
13
+ --color-dialog-bg: var(--color-dialog);
14
+ --color-dialog-fg: var(--color-fg-primary);
15
+ --color-dialog-backdrop-bg: --alpha(
16
+ var(--color-fg-primary) /
17
+ var(--opacity-backdrop)
18
+ );
19
+
20
+ /* Content colors */
21
+ --color-dialog-content-bg: var(--color-dialog-bg);
22
+ --color-dialog-content-fg: var(--color-dialog-fg);
23
+ --color-dialog-content-border: var(--color-border-primary);
24
+
25
+ /* Foreground colors */
26
+ --color-dialog-title-fg: var(--color-dialog-fg);
27
+ --color-dialog-description-fg: var(--color-dialog-fg);
28
+ --color-dialog-close-trigger-fg: var(--color-dialog-fg);
29
+
30
+ /* === SPACING === */
31
+ --padding-dialog-content: var(--spacing-450);
32
+ --gap-dialog-content: var(--spacing-250);
33
+ --padding-dialog-actions: var(--spacing-150);
34
+ --gap-dialog-actions: var(--spacing-100);
35
+ --spacing-dialog-close-trigger-padding: var(--spacing-150);
36
+ --spacing-dialog-close-trigger-offset: var(--spacing-250);
37
+
38
+ /* === TYPOGRAPHY === */
39
+ --text-dialog-title-size: var(--text-xl);
40
+ --text-dialog-description-size: var(--text-md);
41
+ --font-weight-dialog-title: var(--font-weight-semibold);
42
+
43
+ /* === SIZES === */
44
+ --container-dialog-xs: var(--container-xs);
45
+ --container-dialog-sm: var(--container-sm);
46
+ --container-dialog-md: var(--container-md);
47
+ --container-dialog-lg: var(--container-lg);
48
+ --container-dialog-xl: var(--container-xl);
49
+ --container-dialog-center-h-max: 80svh;
50
+ --container-dialog-center-w-max: var(--container-2xl);
51
+
52
+ /* === BORDERS & RADIUS === */
53
+ --border-width-dialog: var(--border-width-sm);
54
+ --radius-dialog-center: var(--radius-sm);
55
+ --radius-dialog-left: 0 0 0 0;
56
+ --radius-dialog-right: 0 0 0 0;
57
+ --radius-dialog-top: 0 0 0 0;
58
+ --radius-dialog-bottom: 0 0 0 0;
59
+ --radius-dialog-close-trigger: var(--radius-full);
60
+
61
+ /* === SHADOWS === */
62
+ --shadow-dialog-content: var(--shadow-primary);
63
+
64
+ /* === Z-INDEX === */
65
+ --z-dialog-backdrop: 10;
66
+ --z-dialog-positioner: 20;
67
+
68
+ /* === FOCUS RINGS === */
69
+ --color-dialog-ring: var(--color-ring);
70
+ }
71
+
72
+ /* Semantic tokens for dialog icons */
73
+ @utility token-icon-dialog-close {
74
+ @apply token-icon-close;
75
+ }
@@ -0,0 +1,48 @@
1
+ @theme static {
2
+ /* ===== MENU CONTENT PANEL ===== */
3
+ --color-menu-content-bg: var(--color-surface);
4
+ --color-menu-content-border: var(--color-border-primary);
5
+ --radius-menu: var(--radius-sm);
6
+ --shadow-menu-content-shadow: var(--shadow-lg);
7
+
8
+ --padding-menu-content: var(--spacing-200);
9
+
10
+ /* ===== MENU ITEM ===== */
11
+ --color-menu-item-fg: var(--color-fg-primary);
12
+ --color-menu-item-hover: var(--color-surface-hover);
13
+ --radius-menu-item: var(--radius-xs);
14
+
15
+ --padding-menu-item-x: var(--spacing-250);
16
+ --padding-menu-item-y: var(--spacing-200);
17
+ --gap-menu-item: var(--spacing-200);
18
+
19
+ /* ===== MENU ITEM ICON ===== */
20
+ --text-menu-item-icon-size: var(--text-lg);
21
+ --color-menu-item-icon-fg: var(--color-fg-secondary);
22
+
23
+ /* ===== MENU SEPARATOR ===== */
24
+ --color-menu-separator-bg: var(--color-border-primary);
25
+ --height-menu-separator: 1px;
26
+ --margin-menu-separator: var(--spacing-200);
27
+
28
+ /* ===== MENU SUBMENU INDICATOR ===== */
29
+ --color-menu-submenu-indicator-fg: var(--color-fg-secondary);
30
+ --spacing-menu-submenu-indicator: var(--spacing-250);
31
+ --spacing-menu-submenu-offset: var(--spacing-200);
32
+
33
+ /* ===== MENU DISABLED STATE ===== */
34
+ --opacity-menu-disabled: 50%;
35
+ }
36
+
37
+ /* Semantic tokens for menu icons */
38
+ @utility token-icon-menu-trigger {
39
+ @apply token-icon-chevron-down;
40
+ }
41
+
42
+ @utility token-icon-menu-submenu {
43
+ @apply token-icon-chevron-right;
44
+ }
45
+
46
+ @utility token-icon-menu-check {
47
+ @apply token-icon-check;
48
+ }