@techsio/ui-kit 0.10.1 → 0.12.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 (221) hide show
  1. package/dist/atoms/{figma/badge.figma.js → badge.figma.js} +1 -1
  2. package/dist/atoms/{figma/button.figma.js → button.figma.js} +1 -1
  3. package/dist/atoms/{figma/checkbox.figma.js → checkbox.figma.js} +1 -1
  4. package/dist/atoms/{figma/icon.figma.js → icon.figma.js} +1 -1
  5. package/dist/atoms/{figma/image.figma.js → image.figma.js} +1 -1
  6. package/dist/atoms/{figma/input.figma.js → input.figma.js} +1 -1
  7. package/dist/atoms/{figma/label.figma.js → label.figma.js} +1 -1
  8. package/dist/atoms/{figma/link-button.figma.js → link-button.figma.js} +1 -1
  9. package/dist/atoms/{figma/link.figma.js → link.figma.js} +1 -1
  10. package/dist/atoms/{figma/numeric-input.figma.js → numeric-input.figma.js} +1 -1
  11. package/dist/atoms/{figma/rating.figma.js → rating.figma.js} +1 -1
  12. package/dist/atoms/{figma/skeleton.figma.js → skeleton.figma.js} +1 -1
  13. package/dist/atoms/{figma/status-text.figma.js → status-text.figma.js} +1 -1
  14. package/dist/atoms/{figma/textarea.figma.js → textarea.figma.js} +1 -1
  15. package/dist/atoms/{figma/tooltip.figma.js → tooltip.figma.js} +2 -2
  16. package/dist/molecules/{figma/accordion.figma.js → accordion.figma.js} +1 -1
  17. package/dist/molecules/accordion.js +2 -2
  18. package/dist/molecules/{figma/breadcrumb.figma.js → breadcrumb.figma.js} +1 -1
  19. package/dist/molecules/breadcrumb.js +13 -13
  20. package/dist/molecules/{figma/carousel.figma.js → carousel.figma.js} +1 -1
  21. package/dist/molecules/carousel.js +5 -5
  22. package/dist/molecules/color-select.js +5 -5
  23. package/dist/molecules/{figma/combobox.figma.js → combobox.figma.js} +5 -5
  24. package/dist/molecules/combobox.js +24 -19
  25. package/dist/molecules/{figma/dialog.figma.js → dialog.figma.js} +2 -2
  26. package/dist/molecules/dialog.js +10 -10
  27. package/dist/molecules/{figma/form-checkbox.figma.js → form-checkbox.figma.js} +1 -1
  28. package/dist/molecules/{figma/form-input.figma.js → form-input.figma.js} +4 -4
  29. package/dist/molecules/{figma/form-numeric-input.figma.js → form-numeric-input.figma.js} +5 -5
  30. package/dist/molecules/{figma/form-textarea.figma.js → form-textarea.figma.js} +4 -4
  31. package/dist/molecules/{figma/menu.figma.js → menu.figma.js} +1 -1
  32. package/dist/molecules/menu.js +6 -6
  33. package/dist/molecules/{figma/pagination.figma.js → pagination.figma.js} +1 -1
  34. package/dist/molecules/pagination.js +11 -11
  35. package/dist/molecules/phone-input.figma.js +62 -0
  36. package/dist/molecules/phone-input.js +4 -4
  37. package/dist/molecules/{figma/popover.figma.js → popover.figma.js} +1 -1
  38. package/dist/molecules/popover.js +2 -2
  39. package/dist/molecules/{figma/product-card.figma.js → product-card.figma.js} +1 -1
  40. package/dist/molecules/product-card.js +5 -5
  41. package/dist/molecules/{figma/radio-card.figma.js → radio-card.figma.js} +1 -1
  42. package/dist/molecules/radio-card.js +22 -22
  43. package/dist/molecules/{figma/radio-group.figma.js → radio-group.figma.js} +1 -1
  44. package/dist/molecules/radio-group.js +25 -25
  45. package/dist/molecules/{figma/search-form.figma.js → search-form.figma.js} +1 -1
  46. package/dist/molecules/{figma/select.figma.js → select.figma.js} +4 -4
  47. package/dist/molecules/select.js +9 -9
  48. package/dist/molecules/{figma/slider.figma.js → slider.figma.js} +7 -7
  49. package/dist/molecules/slider.js +2 -2
  50. package/dist/molecules/{figma/steps.figma.js → steps.figma.js} +1 -1
  51. package/dist/molecules/steps.js +6 -6
  52. package/dist/molecules/{figma/switch.figma.js → switch.figma.js} +1 -1
  53. package/dist/molecules/switch.js +3 -3
  54. package/dist/molecules/{figma/tabs.figma.js → tabs.figma.js} +1 -1
  55. package/dist/molecules/tabs.js +8 -8
  56. package/dist/molecules/{figma/toast.figma.js → toast.figma.js} +1 -1
  57. package/dist/molecules/toast.js +3 -3
  58. package/dist/molecules/{figma/tree-view.figma.js → tree-view.figma.js} +3 -3
  59. package/dist/molecules/tree-view.js +34 -34
  60. package/dist/organisms/footer.figma.js +51 -0
  61. package/dist/organisms/footer.js +11 -11
  62. package/dist/organisms/gallery.figma.js +34 -0
  63. package/dist/organisms/header.figma.js +58 -0
  64. package/dist/organisms/table.figma.js +87 -0
  65. package/dist/organisms/table.js +6 -6
  66. package/dist/src/atoms/badge.figma.d.ts.map +1 -0
  67. package/dist/src/atoms/button.figma.d.ts.map +1 -0
  68. package/dist/src/atoms/checkbox.figma.d.ts.map +1 -0
  69. package/dist/src/atoms/icon.figma.d.ts.map +1 -0
  70. package/dist/src/atoms/image.figma.d.ts.map +1 -0
  71. package/dist/src/atoms/input.figma.d.ts.map +1 -0
  72. package/dist/src/atoms/label.figma.d.ts.map +1 -0
  73. package/dist/src/atoms/link-button.figma.d.ts.map +1 -0
  74. package/dist/src/atoms/link.figma.d.ts.map +1 -0
  75. package/dist/src/atoms/numeric-input.figma.d.ts.map +1 -0
  76. package/dist/src/atoms/rating.figma.d.ts.map +1 -0
  77. package/dist/src/atoms/skeleton.figma.d.ts.map +1 -0
  78. package/dist/src/atoms/status-text.figma.d.ts.map +1 -0
  79. package/dist/src/atoms/textarea.figma.d.ts.map +1 -0
  80. package/dist/src/atoms/tooltip.figma.d.ts.map +1 -0
  81. package/dist/src/molecules/accordion.figma.d.ts.map +1 -0
  82. package/dist/src/molecules/breadcrumb.figma.d.ts.map +1 -0
  83. package/dist/src/molecules/carousel.figma.d.ts.map +1 -0
  84. package/dist/src/molecules/combobox.d.ts +3 -0
  85. package/dist/src/molecules/combobox.d.ts.map +1 -1
  86. package/dist/src/molecules/combobox.figma.d.ts.map +1 -0
  87. package/dist/src/molecules/dialog.figma.d.ts.map +1 -0
  88. package/dist/src/molecules/form-checkbox.figma.d.ts.map +1 -0
  89. package/dist/src/molecules/form-input.figma.d.ts.map +1 -0
  90. package/dist/src/molecules/form-numeric-input.figma.d.ts.map +1 -0
  91. package/dist/src/molecules/form-textarea.figma.d.ts.map +1 -0
  92. package/dist/src/molecules/menu.figma.d.ts.map +1 -0
  93. package/dist/src/molecules/pagination.figma.d.ts.map +1 -0
  94. package/dist/src/molecules/phone-input.figma.d.ts +2 -0
  95. package/dist/src/molecules/phone-input.figma.d.ts.map +1 -0
  96. package/dist/src/molecules/popover.figma.d.ts.map +1 -0
  97. package/dist/src/molecules/product-card.figma.d.ts.map +1 -0
  98. package/dist/src/molecules/radio-card.figma.d.ts.map +1 -0
  99. package/dist/src/molecules/radio-group.figma.d.ts.map +1 -0
  100. package/dist/src/molecules/search-form.figma.d.ts.map +1 -0
  101. package/dist/src/molecules/select.figma.d.ts.map +1 -0
  102. package/dist/src/molecules/slider.figma.d.ts.map +1 -0
  103. package/dist/src/molecules/steps.figma.d.ts.map +1 -0
  104. package/dist/src/molecules/switch.figma.d.ts.map +1 -0
  105. package/dist/src/molecules/tabs.figma.d.ts.map +1 -0
  106. package/dist/src/molecules/toast.figma.d.ts.map +1 -0
  107. package/dist/src/molecules/tree-view.figma.d.ts.map +1 -0
  108. package/dist/src/organisms/footer.d.ts.map +1 -1
  109. package/dist/src/organisms/footer.figma.d.ts +2 -0
  110. package/dist/src/organisms/footer.figma.d.ts.map +1 -0
  111. package/dist/src/organisms/gallery.figma.d.ts +2 -0
  112. package/dist/src/organisms/gallery.figma.d.ts.map +1 -0
  113. package/dist/src/organisms/header.figma.d.ts +2 -0
  114. package/dist/src/organisms/header.figma.d.ts.map +1 -0
  115. package/dist/src/organisms/table.figma.d.ts +2 -0
  116. package/dist/src/organisms/table.figma.d.ts.map +1 -0
  117. package/package.json +22 -22
  118. package/src/tokens/components/molecules/_accordion.css +14 -67
  119. package/src/tokens/components/molecules/_breadcrumb.css +4 -58
  120. package/src/tokens/components/molecules/_carousel.css +17 -58
  121. package/src/tokens/components/molecules/_color-select.css +16 -32
  122. package/src/tokens/components/molecules/_combobox.css +13 -95
  123. package/src/tokens/components/molecules/_dialog.css +11 -62
  124. package/src/tokens/components/molecules/_menu.css +10 -32
  125. package/src/tokens/components/molecules/_pagination.css +13 -46
  126. package/src/tokens/components/molecules/_phone-input.css +11 -49
  127. package/src/tokens/components/molecules/_popover.css +12 -38
  128. package/src/tokens/components/molecules/_product-card.css +19 -56
  129. package/src/tokens/components/molecules/_radio-card.css +4 -193
  130. package/src/tokens/components/molecules/_radio-group.css +7 -143
  131. package/src/tokens/components/molecules/_search-form.css +4 -14
  132. package/src/tokens/components/molecules/_select.css +15 -88
  133. package/src/tokens/components/molecules/_slider.css +14 -69
  134. package/src/tokens/components/molecules/_steps.css +13 -123
  135. package/src/tokens/components/molecules/_switch.css +7 -52
  136. package/src/tokens/components/molecules/_tabs.css +14 -66
  137. package/src/tokens/components/molecules/_toast.css +7 -54
  138. package/src/tokens/components/molecules/_tree-view.css +9 -55
  139. package/src/tokens/components/organisms/_footer.css +8 -82
  140. package/src/tokens/components/organisms/_gallery.css +11 -33
  141. package/src/tokens/components/organisms/_header.css +11 -80
  142. package/src/tokens/components/organisms/_table.css +15 -61
  143. package/src/tokens/figma/dark/variables.css +521 -314
  144. package/src/tokens/figma/light/variables.css +520 -313
  145. package/src/tokens/figma/variables.css +520 -313
  146. package/dist/src/atoms/figma/badge.figma.d.ts.map +0 -1
  147. package/dist/src/atoms/figma/button.figma.d.ts.map +0 -1
  148. package/dist/src/atoms/figma/checkbox.figma.d.ts.map +0 -1
  149. package/dist/src/atoms/figma/icon.figma.d.ts.map +0 -1
  150. package/dist/src/atoms/figma/image.figma.d.ts.map +0 -1
  151. package/dist/src/atoms/figma/input.figma.d.ts.map +0 -1
  152. package/dist/src/atoms/figma/label.figma.d.ts.map +0 -1
  153. package/dist/src/atoms/figma/link-button.figma.d.ts.map +0 -1
  154. package/dist/src/atoms/figma/link.figma.d.ts.map +0 -1
  155. package/dist/src/atoms/figma/numeric-input.figma.d.ts.map +0 -1
  156. package/dist/src/atoms/figma/rating.figma.d.ts.map +0 -1
  157. package/dist/src/atoms/figma/skeleton.figma.d.ts.map +0 -1
  158. package/dist/src/atoms/figma/status-text.figma.d.ts.map +0 -1
  159. package/dist/src/atoms/figma/textarea.figma.d.ts.map +0 -1
  160. package/dist/src/atoms/figma/tooltip.figma.d.ts.map +0 -1
  161. package/dist/src/molecules/figma/accordion.figma.d.ts.map +0 -1
  162. package/dist/src/molecules/figma/breadcrumb.figma.d.ts.map +0 -1
  163. package/dist/src/molecules/figma/carousel.figma.d.ts.map +0 -1
  164. package/dist/src/molecules/figma/combobox.figma.d.ts.map +0 -1
  165. package/dist/src/molecules/figma/dialog.figma.d.ts.map +0 -1
  166. package/dist/src/molecules/figma/form-checkbox.figma.d.ts.map +0 -1
  167. package/dist/src/molecules/figma/form-input.figma.d.ts.map +0 -1
  168. package/dist/src/molecules/figma/form-numeric-input.figma.d.ts.map +0 -1
  169. package/dist/src/molecules/figma/form-textarea.figma.d.ts.map +0 -1
  170. package/dist/src/molecules/figma/menu.figma.d.ts.map +0 -1
  171. package/dist/src/molecules/figma/pagination.figma.d.ts.map +0 -1
  172. package/dist/src/molecules/figma/popover.figma.d.ts.map +0 -1
  173. package/dist/src/molecules/figma/product-card.figma.d.ts.map +0 -1
  174. package/dist/src/molecules/figma/radio-card.figma.d.ts.map +0 -1
  175. package/dist/src/molecules/figma/radio-group.figma.d.ts.map +0 -1
  176. package/dist/src/molecules/figma/search-form.figma.d.ts.map +0 -1
  177. package/dist/src/molecules/figma/select.figma.d.ts.map +0 -1
  178. package/dist/src/molecules/figma/slider.figma.d.ts.map +0 -1
  179. package/dist/src/molecules/figma/steps.figma.d.ts.map +0 -1
  180. package/dist/src/molecules/figma/switch.figma.d.ts.map +0 -1
  181. package/dist/src/molecules/figma/tabs.figma.d.ts.map +0 -1
  182. package/dist/src/molecules/figma/toast.figma.d.ts.map +0 -1
  183. package/dist/src/molecules/figma/tree-view.figma.d.ts.map +0 -1
  184. /package/dist/src/atoms/{figma/badge.figma.d.ts → badge.figma.d.ts} +0 -0
  185. /package/dist/src/atoms/{figma/button.figma.d.ts → button.figma.d.ts} +0 -0
  186. /package/dist/src/atoms/{figma/checkbox.figma.d.ts → checkbox.figma.d.ts} +0 -0
  187. /package/dist/src/atoms/{figma/icon.figma.d.ts → icon.figma.d.ts} +0 -0
  188. /package/dist/src/atoms/{figma/image.figma.d.ts → image.figma.d.ts} +0 -0
  189. /package/dist/src/atoms/{figma/input.figma.d.ts → input.figma.d.ts} +0 -0
  190. /package/dist/src/atoms/{figma/label.figma.d.ts → label.figma.d.ts} +0 -0
  191. /package/dist/src/atoms/{figma/link-button.figma.d.ts → link-button.figma.d.ts} +0 -0
  192. /package/dist/src/atoms/{figma/link.figma.d.ts → link.figma.d.ts} +0 -0
  193. /package/dist/src/atoms/{figma/numeric-input.figma.d.ts → numeric-input.figma.d.ts} +0 -0
  194. /package/dist/src/atoms/{figma/rating.figma.d.ts → rating.figma.d.ts} +0 -0
  195. /package/dist/src/atoms/{figma/skeleton.figma.d.ts → skeleton.figma.d.ts} +0 -0
  196. /package/dist/src/atoms/{figma/status-text.figma.d.ts → status-text.figma.d.ts} +0 -0
  197. /package/dist/src/atoms/{figma/textarea.figma.d.ts → textarea.figma.d.ts} +0 -0
  198. /package/dist/src/atoms/{figma/tooltip.figma.d.ts → tooltip.figma.d.ts} +0 -0
  199. /package/dist/src/molecules/{figma/accordion.figma.d.ts → accordion.figma.d.ts} +0 -0
  200. /package/dist/src/molecules/{figma/breadcrumb.figma.d.ts → breadcrumb.figma.d.ts} +0 -0
  201. /package/dist/src/molecules/{figma/carousel.figma.d.ts → carousel.figma.d.ts} +0 -0
  202. /package/dist/src/molecules/{figma/combobox.figma.d.ts → combobox.figma.d.ts} +0 -0
  203. /package/dist/src/molecules/{figma/dialog.figma.d.ts → dialog.figma.d.ts} +0 -0
  204. /package/dist/src/molecules/{figma/form-checkbox.figma.d.ts → form-checkbox.figma.d.ts} +0 -0
  205. /package/dist/src/molecules/{figma/form-input.figma.d.ts → form-input.figma.d.ts} +0 -0
  206. /package/dist/src/molecules/{figma/form-numeric-input.figma.d.ts → form-numeric-input.figma.d.ts} +0 -0
  207. /package/dist/src/molecules/{figma/form-textarea.figma.d.ts → form-textarea.figma.d.ts} +0 -0
  208. /package/dist/src/molecules/{figma/menu.figma.d.ts → menu.figma.d.ts} +0 -0
  209. /package/dist/src/molecules/{figma/pagination.figma.d.ts → pagination.figma.d.ts} +0 -0
  210. /package/dist/src/molecules/{figma/popover.figma.d.ts → popover.figma.d.ts} +0 -0
  211. /package/dist/src/molecules/{figma/product-card.figma.d.ts → product-card.figma.d.ts} +0 -0
  212. /package/dist/src/molecules/{figma/radio-card.figma.d.ts → radio-card.figma.d.ts} +0 -0
  213. /package/dist/src/molecules/{figma/radio-group.figma.d.ts → radio-group.figma.d.ts} +0 -0
  214. /package/dist/src/molecules/{figma/search-form.figma.d.ts → search-form.figma.d.ts} +0 -0
  215. /package/dist/src/molecules/{figma/select.figma.d.ts → select.figma.d.ts} +0 -0
  216. /package/dist/src/molecules/{figma/slider.figma.d.ts → slider.figma.d.ts} +0 -0
  217. /package/dist/src/molecules/{figma/steps.figma.d.ts → steps.figma.d.ts} +0 -0
  218. /package/dist/src/molecules/{figma/switch.figma.d.ts → switch.figma.d.ts} +0 -0
  219. /package/dist/src/molecules/{figma/tabs.figma.d.ts → tabs.figma.d.ts} +0 -0
  220. /package/dist/src/molecules/{figma/toast.figma.d.ts → toast.figma.d.ts} +0 -0
  221. /package/dist/src/molecules/{figma/tree-view.figma.d.ts → tree-view.figma.d.ts} +0 -0
@@ -1,3 +1,16 @@
1
+ /*
2
+ * ColorSelect — runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--cols-num` responsive grid column count (runtime media queries).
6
+ * - `--height-color-select-{sm,md,lg}` — Tailwind's h- utility doesn't
7
+ * read the --size-* namespace; aliases keep `h-color-select-{size}`
8
+ * bound to Figma's swatch sizes.
9
+ * - `--padding-color-select-atom` (composite "0 0") and
10
+ * `--size-color-select-icon` (50%) — runtime/percent values Figma
11
+ * can't model.
12
+ */
13
+
1
14
  :root {
2
15
  --cols-num: 4;
3
16
  /*breakpoint md*/
@@ -11,41 +24,12 @@
11
24
  }
12
25
 
13
26
  @theme static {
14
- /* === DERIVED COLORS === */
15
- --color-color-select-accent: var(--color-fg-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);
27
+ --height-color-select-sm: var(--size-color-select-sm);
28
+ --height-color-select-md: var(--size-color-select-md);
29
+ --height-color-select-lg: var(--size-color-select-lg);
22
30
 
23
- /* === SPACING === */
24
31
  --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
32
  --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
33
  }
50
34
 
51
35
  @utility token-icon-color-select {
@@ -1,102 +1,20 @@
1
- @theme static {
2
- /* === BASE COLOR MAPPING === */
3
- /* Reference layer - single source of truth for theming */
4
- --color-combobox: var(--color-form-control-bg);
5
- --color-combobox-accent: var(--color-primary);
6
- --color-combobox-success-fg: var(--color-success);
7
- --color-combobox-warning-fg: var(--color-warning);
8
- --color-combobox-danger-fg: var(--color-danger);
9
-
10
- /* === DERIVED COLORS === */
11
- /* Foreground colors */
12
- --color-combobox-fg: var(--color-fg-primary);
13
- --color-combobox-placeholder: var(--color-form-control-placeholder);
14
-
15
- /* Border colors */
16
- --color-combobox-border: var(--color-border-primary);
17
- --color-combobox-border-hover: oklch(
18
- from var(--color-combobox-border) calc(l + var(--state-hover)) c h
19
- );
20
- --color-combobox-border-focus: var(--color-combobox-accent);
21
-
22
- /* === STATE VARIATIONS === */
23
- /* Auto-calculated using semantic state modifiers */
24
- --color-combobox-bg-hover: oklch(
25
- from var(--color-combobox) calc(l + var(--state-hover)) c h
26
- );
27
- --color-combobox-bg-focus: oklch(
28
- from var(--color-combobox) calc(l + var(--state-active)) c h
29
- );
30
-
31
- /* Input slot states */
32
- --color-combobox-input-bg: transparent;
33
- --color-combobox-input-bg-hover: var(--color-combobox-input-bg);
34
- --color-combobox-input-bg-focused: var(--color-combobox-input-bg);
35
-
36
- /* Trigger button states */
37
- --color-combobox-trigger: var(--color-combobox-fg);
38
- --color-combobox-trigger-hover: var(--color-combobox-accent);
39
- --color-combobox-trigger-bg: transparent;
40
- --color-combobox-trigger-bg-hover: var(--color-combobox-trigger-bg);
41
- --color-combobox-trigger-bg-active: var(--color-combobox-trigger-bg);
42
-
43
- /* === COMPONENT VARIANTS === */
44
- /* Dropdown content */
45
- --color-combobox-content-bg: var(--color-surface);
46
-
47
- /* Dropdown items */
48
- --color-combobox-item-fg: var(--color-combobox-fg);
49
- --color-combobox-item-bg-selected: var(--color-combobox-bg-focus);
50
- --color-combobox-item-bg-hover: var(--color-combobox-bg-hover);
51
-
52
- /* === VALIDATION STATES === */
53
- /* Success, warning, danger states - defined in BASE COLOR MAPPING */
1
+ /*
2
+ * Combobox runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--padding-combobox-item-{size}` combined shorthands (Figma splits
6
+ * the item padding into x + per-size y).
7
+ * - `--padding-combobox-trigger` composite.
8
+ * - `--z-combobox-content` layering (code-side).
9
+ */
54
10
 
55
- /* === DISABLED STATES === */
56
- /* Disabled appearance */
57
- --color-combobox-bg-disabled: var(--color-bg-disabled);
58
- --color-combobox-fg-disabled: var(--color-fg-disabled);
59
- --color-combobox-border-disabled: var(--color-border-disabled);
60
-
61
- /* === SPACING === */
62
- /* Padding, margin, gap values */
63
- --spacing-combobox-root-sm: var(--spacing-100);
64
- --spacing-combobox-root-md: var(--spacing-150);
65
- --spacing-combobox-root-lg: var(--spacing-200);
66
-
67
- --padding-combobox-item-sm: var(--spacing-150) var(--spacing-250);
68
- --padding-combobox-item-md: var(--spacing-150) var(--spacing-250);
69
- --padding-combobox-item-lg: var(--spacing-50) var(--spacing-250);
11
+ @theme static {
12
+ --padding-combobox-item-sm: var(--spacing-combobox-item-padding-y-sm) var(--spacing-combobox-item-padding-x);
13
+ --padding-combobox-item-md: var(--spacing-combobox-item-padding-y-md) var(--spacing-combobox-item-padding-x);
14
+ --padding-combobox-item-lg: var(--spacing-combobox-item-padding-y-lg) var(--spacing-combobox-item-padding-x);
70
15
 
71
16
  --padding-combobox-trigger: 0 var(--spacing-100);
72
17
 
73
- --spacing-combobox-clear-right: var(--spacing-250);
74
-
75
- /* === TYPOGRAPHY === */
76
- /* Font sizes and weights */
77
- --text-combobox-trigger-size: var(--text-lg);
78
- --text-combobox-item-sm: var(--text-sm);
79
- --text-combobox-item-md: var(--text-md);
80
- --text-combobox-item-lg: var(--text-lg);
81
- --text-combobox-content-sm: var(--text-sm);
82
- --text-combobox-content-md: var(--text-md);
83
- --text-combobox-content-lg: var(--text-lg);
84
-
85
- /* === BORDERS & RADIUS === */
86
- /* Border widths and radius values */
87
- --radius-combobox: var(--radius-form-control);
88
- --radius-combobox-sm: var(--radius-form-control-sm);
89
- --radius-combobox-md: var(--radius-form-control-md);
90
- --border-width-combobox: var(--border-width-input);
91
-
92
- /* === SHADOWS === */
93
- /* Box shadow definitions - none for combobox */
94
-
95
- /* === FOCUS RINGS === */
96
- /* Focus ring colors and styles */
97
- --color-combobox-ring: var(--color-ring);
98
-
99
- /* Z-index */
100
18
  --z-combobox-content: 20;
101
19
  }
102
20
 
@@ -1,71 +1,20 @@
1
- :root {
2
- --opacity-backdrop: 10%;
3
- }
1
+ /*
2
+ * Dialog — runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--container-dialog-center-h-max` — 80svh runtime viewport unit
6
+ * (Figma's -center-max-h is a fixed size; svh can't be modelled).
7
+ * - `--container-dialog-center-w-max` — kept alongside for symmetry
8
+ * with the h-max name the TSX consumes.
9
+ * - `--z-dialog-*` — z-index layering, code-side concern.
10
+ */
4
11
 
5
12
  @theme static {
6
- /* === BASE COLOR MAPPING === */
7
- /* Reference layer - single source of truth for theming */
8
- --color-dialog: var(--color-surface);
9
-
10
- /* === DERIVED COLORS === */
11
- /* Background colors - using reference layer */
12
- --color-dialog-bg: var(--color-dialog);
13
- --color-dialog-fg: var(--color-fg-primary);
14
- --color-dialog-backdrop-bg: --alpha(
15
- var(--color-fg-primary) /
16
- var(--opacity-backdrop)
17
- );
18
-
19
- /* Content colors */
20
- --color-dialog-content-bg: var(--color-dialog-bg);
21
- --color-dialog-content-fg: var(--color-dialog-fg);
22
- --color-dialog-content-border: var(--color-border-primary);
23
-
24
- /* Foreground colors */
25
- --color-dialog-title-fg: var(--color-dialog-fg);
26
- --color-dialog-description-fg: var(--color-dialog-fg);
27
- --color-dialog-close-trigger-fg: var(--color-dialog-fg);
28
-
29
- /* === SPACING === */
30
- --padding-dialog-content: var(--spacing-450);
31
- --gap-dialog-content: var(--spacing-250);
32
- --padding-dialog-actions: var(--spacing-150);
33
- --gap-dialog-actions: var(--spacing-100);
34
- --spacing-dialog-close-trigger-padding: var(--spacing-150);
35
- --spacing-dialog-close-trigger-offset: var(--spacing-250);
36
-
37
- /* === TYPOGRAPHY === */
38
- --text-dialog-title-size: var(--text-xl);
39
- --text-dialog-description-size: var(--text-md);
40
- --font-weight-dialog-title: var(--font-weight-semibold);
41
-
42
- /* === SIZES === */
43
- --container-dialog-xs: var(--container-xs);
44
- --container-dialog-sm: var(--container-sm);
45
- --container-dialog-md: var(--container-md);
46
- --container-dialog-lg: var(--container-lg);
47
- --container-dialog-xl: var(--container-xl);
48
13
  --container-dialog-center-h-max: 80svh;
49
- --container-dialog-center-w-max: var(--container-2xl);
50
-
51
- /* === BORDERS & RADIUS === */
52
- --border-width-dialog: var(--border-width-sm);
53
- --radius-dialog-center: var(--radius-sm);
54
- --radius-dialog-left: 0 0 0 0;
55
- --radius-dialog-right: 0 0 0 0;
56
- --radius-dialog-top: 0 0 0 0;
57
- --radius-dialog-bottom: 0 0 0 0;
58
- --radius-dialog-close-trigger: var(--radius-full);
14
+ --container-dialog-center-w-max: var(--container-dialog-center-max-w);
59
15
 
60
- /* === SHADOWS === */
61
- --shadow-dialog-content: var(--shadow-primary);
62
-
63
- /* === Z-INDEX === */
64
16
  --z-dialog-backdrop: 10;
65
17
  --z-dialog-positioner: 20;
66
-
67
- /* === FOCUS RINGS === */
68
- --color-dialog-ring: var(--color-ring);
69
18
  }
70
19
 
71
20
  /* Semantic tokens for dialog icons */
@@ -1,36 +1,14 @@
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);
1
+ /*
2
+ * Menu runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - semantic glyph @utility aliases.
6
+ */
18
7
 
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
-
32
- /* ===== MENU DISABLED STATE ===== */
33
- --color-menu-fg-disabled: var(--color-fg-disabled);
8
+ @theme static {
9
+ /* Tailwind's h- utility doesn't read the --size-* namespace; alias the
10
+ * Figma token into --height-* so `h-menu-separator` keeps working. */
11
+ --height-menu-separator: var(--size-menu-separator-height);
34
12
  }
35
13
 
36
14
  /* Semantic tokens for menu icons */
@@ -1,59 +1,26 @@
1
+ /*
2
+ * Pagination — runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--color-pagination-border-hover` — runtime --alpha() of the Figma
6
+ * active border (can't be a static Figma variable).
7
+ * - `--border-pagination-width` — consumed via border-(length:--…) in
8
+ * the TSX; aliases Figma's --border-width-pagination.
9
+ */
10
+
1
11
  :root {
2
12
  --opacity-pagination-hover: 30%;
3
13
  }
4
14
 
5
15
  @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);
16
+ /* stylelint-disable scss/operator-no-newline-after -- biome wraps long lines */
29
17
  --color-pagination-border-hover: --alpha(
30
18
  var(--color-pagination-border-active) /
31
19
  var(--opacity-pagination-hover)
32
20
  );
21
+ /* stylelint-enable scss/operator-no-newline-after */
33
22
 
34
- /* === DISABLED STATES === */
35
- --color-pagination-bg-disabled: var(--color-bg-disabled);
36
- --color-pagination-fg-disabled: var(--color-fg-disabled);
37
- --color-pagination-border-disabled: var(--color-border-disabled);
38
-
39
- /* === SPACING === */
40
- --spacing-pagination: var(--spacing-200);
41
- --spacing-pagination-list: var(--spacing-pagination);
42
- --height-pagination-sm: 2em;
43
- --height-pagination-md: 2.5em;
44
- --height-pagination-lg: 3em;
45
-
46
- /* === TYPOGRAPHY === */
47
- --text-pagination-sm: var(--text-xs);
48
- --text-pagination-md: var(--text-sm);
49
- --text-pagination-lg: var(--text-md);
50
-
51
- /* === BORDERS & RADIUS === */
52
- --radius-pagination: var(--radius-sm);
53
- --border-pagination-width: var(--border-width-sm);
54
-
55
- /* === FOCUS RINGS === */
56
- --color-pagination-ring: var(--color-ring);
23
+ --border-pagination-width: var(--border-width-pagination);
57
24
  }
58
25
 
59
26
  @utility token-icon-pagination-prev {
@@ -1,54 +1,16 @@
1
- @theme static {
2
- --gap-phone-input-root: var(--spacing-form-field-gap);
3
-
4
- --color-phone-input: var(--color-form-control-bg);
5
- --color-phone-input-fg: var(--color-fg-primary);
6
- --color-phone-input-bg-hover: oklch(
7
- from var(--color-phone-input) calc(l + var(--state-hover)) c h
8
- );
9
- --color-phone-input-bg-focus: oklch(
10
- from var(--color-phone-input) calc(l + var(--state-active)) c h
11
- );
12
- --color-phone-input-border-hover: var(--color-form-control-border-hover);
13
- --color-phone-input-border-focus: var(--color-form-control-border-focus);
14
- --color-phone-input-ring: var(--color-form-control-ring);
15
- --color-phone-input-input-bg-base: transparent;
16
- --color-phone-input-input-bg-hover: transparent;
17
- --color-phone-input-input-bg-focus: transparent;
18
-
19
- --color-phone-input-border-danger: var(--color-danger);
20
- --color-phone-input-border-success: var(--color-success);
21
- --color-phone-input-border-warning: var(--color-warning);
22
-
23
- --color-phone-input-placeholder: var(--color-form-control-placeholder);
24
- --color-phone-input-bg-disabled: var(--color-form-control-bg-disabled);
25
- --color-phone-input-fg-disabled: var(--color-form-control-fg-disabled);
26
- --color-phone-input-border-disabled: var(
27
- --color-form-control-border-disabled
28
- );
29
-
30
- --color-phone-input-divider: var(--color-border-primary);
31
- --color-phone-input-country-calling-code: var(--color-fg-secondary);
32
- --color-phone-input-item-meta: var(--color-phone-input-country-calling-code);
33
-
34
- --padding-phone-input-country-flag: 0;
35
- --spacing-phone-input-country-value: var(--spacing-100);
36
- --spacing-phone-input-item: var(--spacing-150);
37
- --spacing-phone-input-country-flag: 0;
38
-
39
- --text-phone-input-sm: var(--text-sm);
40
- --text-phone-input-md: var(--text-md);
41
- --text-phone-input-lg: var(--text-lg);
42
- --text-phone-input-country-flag: var(--text-xs);
1
+ /*
2
+ * PhoneInput — runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here (Figma can't model these):
5
+ * - `--width-phone-input-trigger` — ch unit (12ch).
6
+ * - `--border-phone-input-trigger` — 0 (borderless trigger).
7
+ * - `--spacing-phone-input-country-flag` 0 (min-width reset).
8
+ */
43
9
 
44
- --radius-phone-input-sm: var(--radius-form-control-sm);
45
- --radius-phone-input-md: var(--radius-form-control-md);
46
- --radius-phone-input-lg: var(--radius-form-control-lg);
47
- --radius-phone-input-country-flag: var(--radius-button-sm);
48
- --color-phone-input-trigger-bg-base: transparent;
49
- --color-phone-input-trigger-bg-hover: var(--color-fill-hover);
50
- --border-phone-input-trigger: 0;
10
+ @theme static {
51
11
  --width-phone-input-trigger: 12ch;
12
+ --border-phone-input-trigger: 0;
13
+ --spacing-phone-input-country-flag: 0;
52
14
  }
53
15
 
54
16
  @utility phone-input-focus {
@@ -1,42 +1,16 @@
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
- /* Close trigger colors */
19
- --color-popover-close-trigger-fg: var(--color-popover-fg);
1
+ /*
2
+ * Popover runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--arrow-size` / `--arrow-background` — Zag.js requires these exact
6
+ * CSS variable names; they alias the Figma popover tokens.
7
+ * - `--padding-popover-trigger` composite x/y shorthand (Figma has no
8
+ * composite paddings; queued for figma-additions as split x/y).
9
+ */
20
10
 
21
- /* === SPACING === */
22
- --spacing-popover-sm: var(--spacing-200);
23
- --spacing-popover-md: var(--spacing-250);
24
- --spacing-popover-lg: var(--spacing-350);
25
- --spacing-popover-title-mb: var(--spacing-150);
11
+ @theme static {
12
+ --arrow-size: var(--spacing-popover-arrow-size);
13
+ --arrow-background: var(--color-popover-arrow);
26
14
 
27
- /* Composite spacing */
28
15
  --padding-popover-trigger: var(--spacing-100) var(--spacing-150);
29
-
30
- /* === TYPOGRAPHY === */
31
- --text-popover-title-sm: var(--text-md);
32
- --text-popover-title-md: var(--text-lg);
33
- --text-popover-title-lg: var(--text-xl);
34
- --text-popover-description-size: var(--text-sm);
35
- --font-weight-popover-title: var(--font-weight-semibold);
36
-
37
- /* === BORDERS & RADIUS === */
38
- --radius-popover: var(--radius-sm);
39
-
40
- /* === SHADOWS === */
41
- --shadow-popover: var(--shadow-primary);
42
16
  }
@@ -1,3 +1,21 @@
1
+ /*
2
+ * ProductCard — runtime tokens come from libs/ui/src/tokens/figma/variables.css.
3
+ *
4
+ * Kept here:
5
+ * - `--product-card-layout-{row,column}-grid` — runtime grid templates
6
+ * composed from the Figma image min/max tokens.
7
+ * - `--spacing-product-card-max` (100%) — percent value.
8
+ * - `--border-product-card-width` — consumed via border-(length:--…);
9
+ * aliases Figma's --border-width-product-card.
10
+ *
11
+ * Note (Kai, #425): the button-slot linkage to the Button atom layer
12
+ * (cart/detail/wishlist → button primary/secondary/tertiary) now lives
13
+ * in Figma, where the product-card button tokens alias the same semantic
14
+ * tokens the Button atom uses. A Figma-side retheme of those semantics
15
+ * propagates to both. Queued Figma improvement: alias product-card
16
+ * button tokens to the button component layer directly.
17
+ */
18
+
1
19
  @theme static {
2
20
  --product-card-layout-row-grid: minmax(
3
21
  var(--width-product-card-image-min),
@@ -5,65 +23,10 @@
5
23
  )
6
24
  minmax(0, 1fr);
7
25
  --product-card-layout-column-grid: 1fr;
8
- /* === BASE COLORS === */
9
- --color-product-card-bg: var(--color-surface);
10
- --color-product-card-name-fg: var(--color-fg-primary);
11
-
12
- --color-product-card-price-fg: var(--color-fg-primary);
13
- --color-product-card-border: var(--color-border-primary);
14
-
15
- --color-product-card-stock-fg-in-stock: var(--color-success);
16
- --color-product-card-stock-fg-limited-stock: var(--color-warning);
17
- --color-product-card-stock-fg-out-of-stock: var(--color-danger);
18
-
19
- /* === Button slots ===
20
- * Per @KaiUweCZE on #425: keep ProductCard button tokens linked to the
21
- * Button atom's token layer so a brand-driven Button retheme propagates
22
- * automatically and hover values match Figma's hand-picked colors
23
- * instead of the old `oklch(... calc(l + var(--state-hover)) ...)`
24
- * derivation. cart/detail/wishlist map to primary/secondary/tertiary.
25
- */
26
- --color-product-card-button-cart-bg: var(--color-button-bg-primary-base);
27
- --color-product-card-button-cart-bg-hover: var(--color-button-bg-primary-hover);
28
- --color-product-card-button-cart-fg: var(--color-button-fg-primary);
29
-
30
- --color-product-card-button-detail-bg: var(--color-button-bg-secondary-base);
31
- --color-product-card-button-detail-bg-hover: var(--color-button-bg-secondary-hover);
32
- --color-product-card-button-detail-fg: var(--color-button-fg-secondary);
33
26
 
34
- --color-product-card-button-wishlist-bg: var(--color-button-bg-tertiary-base);
35
- --color-product-card-button-wishlist-bg-hover: var(--color-button-bg-tertiary-hover);
36
- --color-product-card-button-wishlist-fg: var(--color-button-fg-tertiary);
37
-
38
- /* === SPACING === */
39
- --spacing-product-card-padding: var(--spacing-150);
40
- --spacing-product-card-row-layout: var(--spacing-250);
41
- --spacing-product-card-col-layout: var(--spacing-100);
42
- --spacing-product-card-box: var(--spacing-150);
43
27
  --spacing-product-card-max: 100%;
44
- --spacing-product-card-buttons: var(--spacing-150);
45
-
46
- /* === SIZING === */
47
- --width-product-card-image-min: 8rem;
48
- --width-product-card-image-max: 12rem;
49
-
50
- /* === TYPOGRAPHY === */
51
- --text-product-card-name-size: var(--text-md);
52
- --text-product-card-stock-size: var(--text-sm);
53
- --text-product-card-price-size: var(--text-lg);
54
- --leading-product-card-name: var(--line-height-snug);
55
-
56
- --font-weight-product-card-name: var(--font-weight-medium);
57
- --font-weight-product-card-price: var(--font-weight-medium);
58
- --font-weight-product-card-stock: var(--font-weight-medium);
59
-
60
- /* === BORDERS & RADIUS === */
61
- --border-product-card-width: var(--border-width-sm);
62
- --radius-product-card: var(--radius-md);
63
- --radius-product-card-image: var(--radius-product-card);
64
28
 
65
- /* === ASPECT RATIOS === */
66
- --aspect-product-card-image: var(--aspect-square);
29
+ --border-product-card-width: var(--border-width-product-card);
67
30
  }
68
31
 
69
32
  /* === UTILITIES === */