@teseor/css 1.8.0 → 1.9.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/dist/compiled.css +1 -1
  2. package/dist/index.css +115 -115
  3. package/package.json +1 -1
  4. package/src/components/actions/button/button.api.json +29 -32
  5. package/src/components/actions/button/index.scss +36 -11
  6. package/src/components/actions/button-group/button-group.api.json +3 -1
  7. package/src/components/actions/button-group/index.scss +4 -0
  8. package/src/components/actions/close-button/close-button.api.json +31 -18
  9. package/src/components/actions/close-button/index.scss +26 -6
  10. package/src/components/content/divider/divider.api.json +12 -7
  11. package/src/components/content/divider/index.scss +11 -4
  12. package/src/components/content/scroll-area/index.scss +15 -1
  13. package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
  14. package/src/components/content/scroll-area/scroll-area.api.json +33 -22
  15. package/src/components/content/scroll-area/scroll-area.docs.json +70 -1
  16. package/src/components/content/spacer/index.scss +6 -1
  17. package/src/components/content/spacer/spacer.api.json +8 -1
  18. package/src/components/data-display/avatar/avatar.api.json +36 -17
  19. package/src/components/data-display/avatar/index.scss +20 -2
  20. package/src/components/data-display/badge/badge.api.json +30 -48
  21. package/src/components/data-display/badge/index.scss +13 -0
  22. package/src/components/data-display/card/card.api.json +21 -23
  23. package/src/components/data-display/card/index.scss +19 -4
  24. package/src/components/data-display/data-list/data-list.api.json +9 -4
  25. package/src/components/data-display/data-list/index.scss +28 -11
  26. package/src/components/data-display/icon/icon.api.json +11 -22
  27. package/src/components/data-display/icon/index.scss +9 -4
  28. package/src/components/data-display/image/image.api.json +40 -26
  29. package/src/components/data-display/image/image.docs.json +1 -1
  30. package/src/components/data-display/image/index.scss +15 -1
  31. package/src/components/data-display/stat/index.scss +13 -1
  32. package/src/components/data-display/stat/stat.api.json +45 -7
  33. package/src/components/data-display/status/index.scss +8 -0
  34. package/src/components/data-display/status/status.api.json +10 -6
  35. package/src/components/data-display/table/index.scss +20 -6
  36. package/src/components/data-display/table/table.api.json +11 -5
  37. package/src/components/data-display/tag/index.scss +28 -3
  38. package/src/components/data-display/tag/tag.api.json +48 -22
  39. package/src/components/disclosure/accordion/accordion.api.json +7 -3
  40. package/src/components/disclosure/accordion/index.scss +8 -2
  41. package/src/components/disclosure/disclosure/disclosure.api.json +15 -8
  42. package/src/components/disclosure/disclosure/index.scss +21 -6
  43. package/src/components/feedback/alert/alert.api.json +40 -65
  44. package/src/components/feedback/alert/index.scss +26 -7
  45. package/src/components/feedback/progress/index.scss +16 -3
  46. package/src/components/feedback/progress/progress.api.json +13 -8
  47. package/src/components/feedback/progress-circle/index.scss +15 -2
  48. package/src/components/feedback/progress-circle/progress-circle.api.json +17 -8
  49. package/src/components/feedback/skeleton/index.scss +9 -2
  50. package/src/components/feedback/skeleton/skeleton.api.json +8 -4
  51. package/src/components/feedback/spinner/index.scss +14 -1
  52. package/src/components/feedback/spinner/spinner.api.json +27 -13
  53. package/src/components/feedback/toast/index.scss +39 -15
  54. package/src/components/feedback/toast/toast.api.json +39 -13
  55. package/src/components/forms/checkbox/checkbox.api.json +22 -11
  56. package/src/components/forms/checkbox/index.scss +27 -9
  57. package/src/components/forms/checkbox-group/checkbox-group.api.json +33 -14
  58. package/src/components/forms/checkbox-group/index.scss +22 -5
  59. package/src/components/forms/field/field.api.json +5 -3
  60. package/src/components/forms/field/index.scss +4 -0
  61. package/src/components/forms/fieldset/fieldset.api.json +29 -10
  62. package/src/components/forms/fieldset/index.scss +21 -4
  63. package/src/components/forms/form/form.api.json +15 -11
  64. package/src/components/forms/form/index.scss +10 -0
  65. package/src/components/forms/form-error/form-error.api.json +7 -3
  66. package/src/components/forms/form-error/index.scss +7 -1
  67. package/src/components/forms/form-helper/form-helper.api.json +7 -3
  68. package/src/components/forms/form-helper/index.scss +7 -1
  69. package/src/components/forms/input/index.scss +43 -12
  70. package/src/components/forms/input/input.api.json +36 -38
  71. package/src/components/forms/label/index.scss +14 -5
  72. package/src/components/forms/label/label.api.json +9 -4
  73. package/src/components/forms/number-input/index.scss +40 -15
  74. package/src/components/forms/number-input/number-input-visual.png +0 -0
  75. package/src/components/forms/number-input/number-input.api.json +48 -19
  76. package/src/components/forms/number-input/number-input.docs.json +49 -0
  77. package/src/components/forms/password-input/index.scss +44 -13
  78. package/src/components/forms/password-input/password-input-visual.png +0 -0
  79. package/src/components/forms/password-input/password-input.api.json +56 -25
  80. package/src/components/forms/password-input/password-input.docs.json +40 -0
  81. package/src/components/forms/radio/index.scss +27 -10
  82. package/src/components/forms/radio/radio.api.json +20 -10
  83. package/src/components/forms/radio-group/index.scss +22 -5
  84. package/src/components/forms/radio-group/radio-group.api.json +33 -14
  85. package/src/components/forms/search-input/index.scss +42 -11
  86. package/src/components/forms/search-input/search-input-visual.png +0 -0
  87. package/src/components/forms/search-input/search-input.api.json +66 -25
  88. package/src/components/forms/search-input/search-input.docs.json +36 -0
  89. package/src/components/forms/select/index.scss +40 -11
  90. package/src/components/forms/select/select.api.json +35 -17
  91. package/src/components/forms/slider/index.scss +28 -10
  92. package/src/components/forms/slider/slider.api.json +35 -20
  93. package/src/components/forms/textarea/index.scss +40 -9
  94. package/src/components/forms/textarea/textarea.api.json +40 -20
  95. package/src/components/forms/toggle/index.scss +18 -6
  96. package/src/components/forms/toggle/toggle.api.json +17 -8
  97. package/src/components/navigation/breadcrumb/breadcrumb.api.json +25 -11
  98. package/src/components/navigation/breadcrumb/index.scss +17 -4
  99. package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
  100. package/src/components/navigation/dropdown-menu/dropdown-menu.api.json +7 -3
  101. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +18 -0
  102. package/src/components/navigation/dropdown-menu/index.scss +15 -5
  103. package/src/components/navigation/menu/index.scss +41 -17
  104. package/src/components/navigation/menu/menu.api.json +24 -13
  105. package/src/components/navigation/nav/index.scss +30 -11
  106. package/src/components/navigation/nav/nav.api.json +42 -18
  107. package/src/components/navigation/pagination/index.scss +21 -5
  108. package/src/components/navigation/pagination/pagination.api.json +21 -12
  109. package/src/components/navigation/tabs/index.scss +43 -15
  110. package/src/components/navigation/tabs/tabs.api.json +49 -22
  111. package/src/components/overlays/dialog/dialog.api.json +9 -4
  112. package/src/components/overlays/dialog/index.scss +12 -3
  113. package/src/components/overlays/drawer/drawer-visual.png +0 -0
  114. package/src/components/overlays/drawer/drawer.api.json +26 -13
  115. package/src/components/overlays/drawer/index.scss +51 -26
  116. package/src/components/overlays/modal/index.scss +18 -3
  117. package/src/components/overlays/modal/modal.api.json +22 -12
  118. package/src/components/overlays/overlay/index.scss +17 -5
  119. package/src/components/overlays/overlay/overlay.api.json +11 -6
  120. package/src/components/overlays/popover/index.scss +26 -9
  121. package/src/components/overlays/popover/popover.api.json +18 -9
  122. package/src/components/overlays/tooltip/index.scss +17 -2
  123. package/src/components/overlays/tooltip/tooltip.api.json +19 -10
  124. package/src/components/typography/blockquote/blockquote.api.json +34 -7
  125. package/src/components/typography/blockquote/index.scss +17 -4
  126. package/src/components/typography/code/code.api.json +26 -11
  127. package/src/components/typography/code/index.scss +23 -6
  128. package/src/components/typography/code-block/code-block-visual.png +0 -0
  129. package/src/components/typography/code-block/code-block.api.json +31 -12
  130. package/src/components/typography/code-block/code-block.docs.json +18 -0
  131. package/src/components/typography/code-block/index.scss +26 -7
  132. package/src/components/typography/heading/heading.api.json +37 -18
  133. package/src/components/typography/heading/index.scss +18 -0
  134. package/src/components/typography/kbd/index.scss +14 -2
  135. package/src/components/typography/kbd/kbd.api.json +41 -8
  136. package/src/components/typography/link/index.scss +16 -3
  137. package/src/components/typography/link/link.api.json +17 -9
  138. package/src/components/typography/list/index.scss +7 -0
  139. package/src/components/typography/list/list.api.json +12 -7
  140. package/src/components/typography/list/list.docs.json +3 -0
  141. package/src/components/typography/mark/index.scss +7 -0
  142. package/src/components/typography/mark/mark.api.json +26 -5
  143. package/src/config/tokens/_variables.scss +44 -0
  144. package/src/config/tokens/motion/index.scss +2 -0
  145. package/src/config/tokens/zindex/index.scss +1 -0
  146. package/src/debug/grid-overlay.scss +4 -3
  147. package/src/layout/app-shell/app-shell-visual.png +0 -0
  148. package/src/layout/app-shell/app-shell.api.json +6 -26
  149. package/src/layout/app-shell/app-shell.docs.json +18 -0
  150. package/src/layout/app-shell/index.scss +4 -0
  151. package/src/layout/aspect-ratio/aspect-ratio.api.json +2 -7
  152. package/src/layout/aspect-ratio/index.scss +4 -0
  153. package/src/layout/box/box.api.json +25 -8
  154. package/src/layout/box/index.scss +26 -8
  155. package/src/layout/center/center.api.json +1 -0
  156. package/src/layout/center/index.scss +3 -0
  157. package/src/layout/column/column.api.json +2 -1
  158. package/src/layout/column/index.scss +15 -6
  159. package/src/layout/container/container.api.json +4 -3
  160. package/src/layout/container/index.scss +13 -6
  161. package/src/layout/content/content.api.json +7 -3
  162. package/src/layout/content/index.scss +10 -1
  163. package/src/layout/footer/footer-visual.png +0 -0
  164. package/src/layout/footer/footer.api.json +11 -5
  165. package/src/layout/footer/footer.docs.json +9 -0
  166. package/src/layout/footer/index.scss +21 -5
  167. package/src/layout/grid/grid.api.json +2 -1
  168. package/src/layout/grid/index.scss +6 -1
  169. package/src/layout/main/index.scss +8 -2
  170. package/src/layout/main/main.api.json +1 -0
  171. package/src/layout/nav-rail/index.scss +14 -3
  172. package/src/layout/nav-rail/nav-rail.api.json +11 -5
  173. package/src/layout/page-header/index.scss +21 -6
  174. package/src/layout/page-header/page-header.api.json +9 -4
  175. package/src/layout/row/index.scss +13 -5
  176. package/src/layout/row/row.api.json +2 -1
  177. package/src/layout/sidebar/index.scss +18 -8
  178. package/src/layout/sidebar/sidebar.api.json +1 -0
  179. package/src/layout/sidebar/sidebar.docs.json +2 -1
  180. package/src/layout/sidebar-nav/index.scss +56 -18
  181. package/src/layout/sidebar-nav/sidebar-nav.api.json +90 -11
  182. package/src/layout/topbar/index.scss +20 -5
  183. package/src/layout/topbar/topbar.api.json +11 -5
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "password-input",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -22,63 +23,93 @@
22
23
  "cssVars": [
23
24
  {
24
25
  "name": "--ui-password-input-height",
25
- "default": "var(--ui-row-2)"
26
- },
27
- {
28
- "name": "--ui-password-input-height-sm",
29
- "default": "calc(var(--ui-row) * 1.5)"
30
- },
31
- {
32
- "name": "--ui-password-input-height-lg",
33
- "default": "calc(var(--ui-row) * 2.5)"
26
+ "default": "var(--ui-row-2)",
27
+ "description": "Overall height"
34
28
  },
35
29
  {
36
30
  "name": "--ui-password-input-padding-x",
37
- "default": "var(--ui-space-1)"
31
+ "default": "var(--ui-space-1)",
32
+ "description": "Horizontal padding"
38
33
  },
39
34
  {
40
35
  "name": "--ui-password-input-font-size",
41
- "default": "var(--ui-font-size-sm)"
36
+ "default": "var(--ui-font-size-sm)",
37
+ "description": "Font size"
42
38
  },
43
39
  {
44
40
  "name": "--ui-password-input-radius",
45
- "default": "var(--ui-radius-md)"
41
+ "default": "var(--ui-radius-md)",
42
+ "description": "Corner radius"
46
43
  },
47
44
  {
48
45
  "name": "--ui-password-input-bg",
49
- "default": "var(--ui-color-bg)"
46
+ "default": "var(--ui-color-bg)",
47
+ "description": "Background color"
50
48
  },
51
49
  {
52
50
  "name": "--ui-password-input-border-color",
53
- "default": "var(--ui-color-border-strong)"
51
+ "default": "var(--ui-color-border-strong)",
52
+ "description": "Border color"
54
53
  },
55
54
  {
56
55
  "name": "--ui-password-input-border-color-focus",
57
- "default": "var(--ui-color-primary)"
56
+ "default": "var(--ui-color-primary)",
57
+ "description": "Border color focus"
58
58
  },
59
59
  {
60
60
  "name": "--ui-password-input-text",
61
- "default": "var(--ui-color-text)"
61
+ "default": "var(--ui-color-text)",
62
+ "description": "Text"
62
63
  },
63
64
  {
64
65
  "name": "--ui-password-input-placeholder",
65
- "default": "var(--ui-color-text-muted)"
66
+ "default": "var(--ui-color-text-muted)",
67
+ "description": "Placeholder"
66
68
  },
67
69
  {
68
- "name": "--ui-password-input-error-border",
69
- "default": "var(--ui-color-danger)"
70
+ "name": "--ui-password-input-toggle-color",
71
+ "default": "var(--ui-color-text-muted)",
72
+ "description": "Toggle color"
70
73
  },
71
74
  {
72
- "name": "--ui-password-input-success-border",
73
- "default": "var(--ui-color-success)"
75
+ "name": "--ui-password-input-toggle-hover-bg",
76
+ "default": "var(--ui-color-bg-muted)",
77
+ "description": "Toggle hover bg"
74
78
  },
75
79
  {
76
- "name": "--ui-password-input-toggle-color",
77
- "default": "var(--ui-color-text-muted)"
80
+ "name": "--ui-password-input-height-sm",
81
+ "default": "calc(var(--ui-row) * 1.5)",
82
+ "description": "Overall height at small size"
78
83
  },
79
84
  {
80
- "name": "--ui-password-input-toggle-hover-bg",
81
- "default": "var(--ui-color-bg-muted)"
85
+ "name": "--ui-password-input-font-size-sm",
86
+ "default": "var(--ui-font-size-xs)",
87
+ "description": "Font size at small size"
88
+ },
89
+ {
90
+ "name": "--ui-password-input-height-lg",
91
+ "default": "calc(var(--ui-row) * 2.5)",
92
+ "description": "Overall height at large size"
93
+ },
94
+ {
95
+ "name": "--ui-password-input-padding-x-lg",
96
+ "default": "var(--ui-space-2)",
97
+ "description": "Horizontal padding at large size"
98
+ },
99
+ {
100
+ "name": "--ui-password-input-font-size-lg",
101
+ "default": "var(--ui-font-size-md)",
102
+ "description": "Font size at large size"
103
+ },
104
+ {
105
+ "name": "--ui-password-input-error-border",
106
+ "default": "var(--ui-color-danger)",
107
+ "description": "Error border"
108
+ },
109
+ {
110
+ "name": "--ui-password-input-success-border",
111
+ "default": "var(--ui-color-success)",
112
+ "description": "Success border"
82
113
  }
83
114
  ]
84
115
  }
@@ -142,6 +142,46 @@
142
142
  }
143
143
  ]
144
144
  },
145
+ {
146
+ "title": "Block",
147
+ "description": "Full-width layout.",
148
+ "examples": [
149
+ {
150
+ "items": [
151
+ {
152
+ "tag": "div",
153
+ "class": "ui-password-input ui-password-input--block",
154
+ "children": [
155
+ {
156
+ "tag": "input",
157
+ "class": "ui-password-input__field",
158
+ "attrs": { "type": "password", "placeholder": "Full width" }
159
+ },
160
+ {
161
+ "tag": "button",
162
+ "class": "ui-password-input__toggle",
163
+ "attrs": { "type": "button", "aria-label": "Show password" },
164
+ "children": [
165
+ {
166
+ "tag": "svg",
167
+ "attrs": { "viewBox": "0 0 24 24" },
168
+ "children": [
169
+ {
170
+ "tag": "path",
171
+ "attrs": { "d": "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }
172
+ },
173
+ { "tag": "circle", "attrs": { "cx": "12", "cy": "12", "r": "3" } }
174
+ ]
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ }
180
+ ],
181
+ "code": "<div class=\"ui-password-input ui-password-input--block\">...</div>"
182
+ }
183
+ ]
184
+ },
145
185
  {
146
186
  "title": "States",
147
187
  "examples": [
@@ -5,27 +5,44 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .radio {
8
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
9
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
10
+ --_ease-default: var(--ui-ease-default, ease);
11
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
12
+ --_color-focus: var(--ui-color-focus, #{t.$color-focus});
13
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
+ // @desc Overall size
8
15
  --_size: var(--ui-radio-size, calc(#{t.$unit} * 2));
16
+ // @desc Background color
9
17
  --_bg: var(--ui-radio-bg, var(--ui-color-bg, #{t.$color-bg}));
18
+ // @desc Bg checked
10
19
  --_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, #{t.$color-primary}));
20
+ // @desc Border color
11
21
  --_border-color: var(--ui-radio-border-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
22
+ // @desc Border color focus
12
23
  --_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, #{t.$color-primary}));
24
+ // @desc Dot color
13
25
  --_dot-color: var(--ui-radio-dot-color, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
14
26
  }
15
27
 
16
28
  // @modifier size
17
29
  .radio--lg {
30
+ // @desc Overall size at large size
18
31
  --_size: var(--ui-radio-size-lg, calc(#{t.$unit} * 3));
19
32
  }
20
33
 
21
34
  // @modifier state
22
35
  .radio--error {
36
+ // @desc Error border
23
37
  --_border-color: var(--ui-radio-error-border, var(--ui-color-danger, #{t.$color-danger}));
38
+ // @desc Error border
24
39
  --_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, #{t.$color-danger}));
25
40
  }
26
41
 
27
42
  .radio--success {
43
+ // @desc Success border
28
44
  --_border-color: var(--ui-radio-success-border, var(--ui-color-success, #{t.$color-success}));
45
+ // @desc Success border
29
46
  --_border-color-focus: var(--ui-radio-success-border, var(--ui-color-success, #{t.$color-success}));
30
47
  }
31
48
  }
@@ -45,16 +62,16 @@
45
62
  vertical-align: middle;
46
63
 
47
64
  background: var(--_bg);
48
- border: var(--ui-border-width-sm, #{t.$border-width-sm}) solid var(--_border-color);
65
+ border: var(--_border-width-sm) solid var(--_border-color);
49
66
  border-radius: 50%;
50
67
  cursor: pointer;
51
68
  // Reset native radio
52
69
  appearance: none;
53
70
 
54
71
  transition:
55
- background-color var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
56
- border-color var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
57
- box-shadow var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
72
+ background-color var(--_duration-fast) var(--_ease-default),
73
+ border-color var(--_duration-fast) var(--_ease-default),
74
+ box-shadow var(--_duration-fast) var(--_ease-default);
58
75
 
59
76
  // Inner dot for checked state
60
77
  &::before {
@@ -69,8 +86,8 @@
69
86
  transform: scale(0);
70
87
 
71
88
  transition:
72
- opacity var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
73
- transform var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
89
+ opacity var(--_duration-fast) var(--_ease-default),
90
+ transform var(--_duration-fast) var(--_ease-default);
74
91
  }
75
92
 
76
93
  &:hover:not(:disabled) {
@@ -79,10 +96,10 @@
79
96
 
80
97
  &:focus-visible {
81
98
  border-color: var(--_border-color-focus);
82
- outline: var(--ui-border-width-md, #{t.$border-width-md}) solid transparent;
83
- outline-offset: var(--ui-border-width-sm, #{t.$border-width-sm});
99
+ outline: var(--_border-width-md) solid transparent;
100
+ outline-offset: var(--_border-width-sm);
84
101
 
85
- box-shadow: 0 0 0 var(--ui-border-width-md, #{t.$border-width-md}) var(--ui-color-focus, #{t.$color-focus});
102
+ box-shadow: 0 0 0 var(--_border-width-md) var(--_color-focus);
86
103
  }
87
104
 
88
105
  &:checked {
@@ -96,7 +113,7 @@
96
113
  }
97
114
 
98
115
  &:disabled {
99
- opacity: var(--ui-opacity-disabled, 0.5);
116
+ opacity: var(--_opacity-disabled);
100
117
  cursor: not-allowed;
101
118
  }
102
119
  }
@@ -1,9 +1,10 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "radio",
3
4
  "element": "input",
4
5
  "modifiers": {
5
6
  "size": {
6
- "values": ["sm", "lg"]
7
+ "values": ["lg"]
7
8
  },
8
9
  "state": {
9
10
  "values": ["error", "success"]
@@ -12,39 +13,48 @@
12
13
  "cssVars": [
13
14
  {
14
15
  "name": "--ui-radio-size",
15
- "default": "calc(var(--ui-unit) * 2"
16
+ "default": "calc(var(--ui-unit) * 2)",
17
+ "description": "Overall size"
16
18
  },
17
19
  {
18
20
  "name": "--ui-radio-bg",
19
- "default": "var(--ui-color-bg)"
21
+ "default": "var(--ui-color-bg)",
22
+ "description": "Background color"
20
23
  },
21
24
  {
22
25
  "name": "--ui-radio-bg-checked",
23
- "default": "var(--ui-color-primary)"
26
+ "default": "var(--ui-color-primary)",
27
+ "description": "Bg checked"
24
28
  },
25
29
  {
26
30
  "name": "--ui-radio-border-color",
27
- "default": "var(--ui-color-border-strong)"
31
+ "default": "var(--ui-color-border-strong)",
32
+ "description": "Border color"
28
33
  },
29
34
  {
30
35
  "name": "--ui-radio-border-color-focus",
31
- "default": "var(--ui-color-primary)"
36
+ "default": "var(--ui-color-primary)",
37
+ "description": "Border color focus"
32
38
  },
33
39
  {
34
40
  "name": "--ui-radio-dot-color",
35
- "default": "var(--ui-color-text-inverse)"
41
+ "default": "var(--ui-color-text-inverse)",
42
+ "description": "Dot color"
36
43
  },
37
44
  {
38
45
  "name": "--ui-radio-size-lg",
39
- "default": "calc(var(--ui-unit) * 3"
46
+ "default": "calc(var(--ui-unit) * 3)",
47
+ "description": "Overall size at large size"
40
48
  },
41
49
  {
42
50
  "name": "--ui-radio-error-border",
43
- "default": "var(--ui-color-danger)"
51
+ "default": "var(--ui-color-danger)",
52
+ "description": "Error border"
44
53
  },
45
54
  {
46
55
  "name": "--ui-radio-success-border",
47
- "default": "var(--ui-color-success)"
56
+ "default": "var(--ui-color-success)",
57
+ "description": "Success border"
48
58
  }
49
59
  ]
50
60
  }
@@ -5,22 +5,38 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .radio-group {
8
+ --_leading-tight-sm: var(--ui-leading-tight-sm, var(--ui-row-1, #{t.$leading-tight-sm}));
9
+ --_row-1: var(--ui-row-1, #{t.$row-1});
10
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
11
+ --_space-2: var(--ui-space-2, #{t.$space-2});
12
+ // @desc Spacing
8
13
  --_spacing: var(--ui-radio-group-spacing, var(--ui-space-1, #{t.$space-1}));
14
+ // @desc Legend size
9
15
  --_legend-size: var(--ui-radio-group-legend-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
16
+ // @desc Legend weight
10
17
  --_legend-weight: var(--ui-radio-group-legend-weight, var(--ui-weight-medium, #{t.$weight-medium}));
18
+ // @desc Legend color
11
19
  --_legend-color: var(--ui-radio-group-legend-color, var(--ui-color-text, #{t.$color-text}));
20
+ // @desc Legend spacing
12
21
  --_legend-spacing: var(--ui-radio-group-legend-spacing, var(--ui-space-1, #{t.$space-1}));
22
+ // @desc Item gap between children
13
23
  --_item-gap: var(--ui-radio-group-item-gap, var(--ui-space-1, #{t.$space-1}));
14
24
  }
15
25
 
26
+ // @modifier boolean compact
16
27
  .radio-group--compact {
28
+ // @desc Spacing compact
17
29
  --_spacing: var(--ui-radio-group-spacing-compact, 0);
30
+ // @desc Legend spacing compact
18
31
  --_legend-spacing: var(--ui-radio-group-legend-spacing-compact, 0);
32
+ // @desc Item gap compact
19
33
  --_item-gap: var(--ui-radio-group-item-gap-compact, 0);
20
34
  }
21
35
 
22
36
  // @modifier state
37
+ // @modifier boolean error
23
38
  .radio-group--error {
39
+ // @desc Error color
24
40
  --_legend-color: var(--ui-radio-group-error-color, var(--ui-color-danger, #{t.$color-danger}));
25
41
  }
26
42
  }
@@ -43,7 +59,7 @@
43
59
 
44
60
  font-size: var(--_legend-size);
45
61
  font-weight: var(--_legend-weight);
46
- line-height: var(--ui-leading-tight-sm, var(--ui-row-1, #{t.$leading-tight-sm}));
62
+ line-height: var(--_leading-tight-sm);
47
63
  color: var(--_legend-color);
48
64
  }
49
65
 
@@ -58,27 +74,28 @@
58
74
  align-items: center;
59
75
  gap: var(--_item-gap);
60
76
 
61
- line-height: var(--ui-row-1, #{t.$row-1});
77
+ line-height: var(--_row-1);
62
78
 
63
79
  cursor: pointer;
64
80
  }
65
81
 
66
82
  .radio-group__item:has(:disabled) {
67
- opacity: var(--ui-opacity-disabled, 0.5);
83
+ opacity: var(--_opacity-disabled);
68
84
  cursor: not-allowed;
69
85
  }
70
86
 
71
87
  // Horizontal layout
88
+ // @modifier boolean horizontal
72
89
  .radio-group--horizontal > .radio-group__items {
73
90
  flex-direction: row;
74
91
  flex-wrap: wrap;
75
- gap: var(--ui-space-2, #{t.$space-2});
92
+ gap: var(--_space-2);
76
93
  }
77
94
 
78
95
  // Disabled group
79
96
  .radio-group:disabled,
80
97
  .radio-group[aria-disabled='true'] {
81
- opacity: var(--ui-opacity-disabled, 0.5);
98
+ opacity: var(--_opacity-disabled);
82
99
  cursor: not-allowed;
83
100
  }
84
101
  }
@@ -1,15 +1,16 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "radio-group",
3
4
  "element": "fieldset",
4
5
  "modifiers": {
5
- "horizontal": {
6
- "type": "boolean"
7
- },
8
6
  "compact": {
9
7
  "type": "boolean"
10
8
  },
11
9
  "error": {
12
10
  "type": "boolean"
11
+ },
12
+ "horizontal": {
13
+ "type": "boolean"
13
14
  }
14
15
  },
15
16
  "elements": {
@@ -20,35 +21,53 @@
20
21
  "cssVars": [
21
22
  {
22
23
  "name": "--ui-radio-group-spacing",
23
- "default": "var(--ui-space-1)"
24
- },
25
- {
26
- "name": "--ui-radio-group-spacing-compact",
27
- "default": "0"
24
+ "default": "var(--ui-space-1)",
25
+ "description": "Spacing"
28
26
  },
29
27
  {
30
28
  "name": "--ui-radio-group-legend-size",
31
- "default": "var(--ui-font-size-sm)"
29
+ "default": "var(--ui-font-size-sm)",
30
+ "description": "Legend size"
32
31
  },
33
32
  {
34
33
  "name": "--ui-radio-group-legend-weight",
35
- "default": "var(--ui-weight-medium)"
34
+ "default": "var(--ui-weight-medium)",
35
+ "description": "Legend weight"
36
36
  },
37
37
  {
38
38
  "name": "--ui-radio-group-legend-color",
39
- "default": "var(--ui-color-text)"
39
+ "default": "var(--ui-color-text)",
40
+ "description": "Legend color"
40
41
  },
41
42
  {
42
43
  "name": "--ui-radio-group-legend-spacing",
43
- "default": "var(--ui-space-1)"
44
+ "default": "var(--ui-space-1)",
45
+ "description": "Legend spacing"
44
46
  },
45
47
  {
46
48
  "name": "--ui-radio-group-item-gap",
47
- "default": "var(--ui-space-1)"
49
+ "default": "var(--ui-space-1)",
50
+ "description": "Item gap between children"
51
+ },
52
+ {
53
+ "name": "--ui-radio-group-spacing-compact",
54
+ "default": "0",
55
+ "description": "Spacing compact"
56
+ },
57
+ {
58
+ "name": "--ui-radio-group-legend-spacing-compact",
59
+ "default": "0",
60
+ "description": "Legend spacing compact"
61
+ },
62
+ {
63
+ "name": "--ui-radio-group-item-gap-compact",
64
+ "default": "0",
65
+ "description": "Item gap compact"
48
66
  },
49
67
  {
50
68
  "name": "--ui-radio-group-error-color",
51
- "default": "var(--ui-color-danger)"
69
+ "default": "var(--ui-color-danger)",
70
+ "description": "Error color"
52
71
  }
53
72
  ]
54
73
  }
@@ -5,32 +5,60 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .search-input {
8
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
9
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
10
+ --_ease-default: var(--ui-ease-default, ease);
11
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
12
+ --_color-focus: var(--ui-color-focus, #{t.$color-focus});
13
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
+ --_space-half: var(--ui-space-half, #{t.$space-0});
15
+ --_radius-sm: var(--ui-radius-sm, #{t.$radius-sm});
16
+ // @desc Overall height
8
17
  --_height: var(--ui-search-input-height, var(--ui-row-2, #{t.$row-2}));
18
+ // @desc Horizontal padding
9
19
  --_padding-x: var(--ui-search-input-padding-x, var(--ui-space-1, #{t.$space-1}));
20
+ // @desc Font size
10
21
  --_font-size: var(--ui-search-input-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
22
+ // @desc Corner radius
11
23
  --_radius: var(--ui-search-input-radius, var(--ui-radius-md, #{t.$radius-md}));
24
+ // @desc Background color
12
25
  --_bg: var(--ui-search-input-bg, var(--ui-color-bg, #{t.$color-bg}));
26
+ // @desc Border color
13
27
  --_border-color: var(--ui-search-input-border-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
28
+ // @desc Border color focus
14
29
  --_border-color-focus: var(--ui-search-input-border-color-focus, var(--ui-color-primary, #{t.$color-primary}));
30
+ // @desc Text
15
31
  --_text: var(--ui-search-input-text, var(--ui-color-text, #{t.$color-text}));
32
+ // @desc Placeholder
16
33
  --_placeholder: var(--ui-search-input-placeholder, var(--ui-color-text-muted, #{t.$color-text-muted}));
34
+ // @desc Icon color
17
35
  --_icon-color: var(--ui-search-input-icon-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
36
+ // @desc Icon dimensions
18
37
  --_icon-size: var(--ui-search-input-icon-size, var(--ui-size-md, #{t.size(md)}));
38
+ // @desc Clear color
19
39
  --_clear-color: var(--ui-search-input-clear-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
40
+ // @desc Clear hover bg
20
41
  --_clear-hover-bg: var(--ui-search-input-clear-hover-bg, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
21
42
  }
22
43
 
23
44
  // @modifier size
24
45
  .search-input--sm {
46
+ // @desc Overall height at small size
25
47
  --_height: var(--ui-search-input-height-sm, calc(#{t.$row} * 1.5));
48
+ // @desc Font size at small size
26
49
  --_font-size: var(--ui-search-input-font-size-sm, var(--ui-font-size-xs, #{t.$font-size-xs}));
50
+ // @desc Icon dimensions at small size
27
51
  --_icon-size: var(--ui-search-input-icon-size-sm, var(--ui-size-sm, #{t.size(sm)}));
28
52
  }
29
53
 
30
54
  .search-input--lg {
55
+ // @desc Overall height at large size
31
56
  --_height: var(--ui-search-input-height-lg, calc(#{t.$row} * 2.5));
57
+ // @desc Horizontal padding at large size
32
58
  --_padding-x: var(--ui-search-input-padding-x-lg, var(--ui-space-2, #{t.$space-2}));
59
+ // @desc Font size at large size
33
60
  --_font-size: var(--ui-search-input-font-size-lg, var(--ui-font-size-md, #{t.$font-size-md}));
61
+ // @desc Icon dimensions at large size
34
62
  --_icon-size: var(--ui-search-input-icon-size-lg, var(--ui-size-lg, #{t.size(lg)}));
35
63
  }
36
64
  }
@@ -43,29 +71,31 @@
43
71
  block-size: var(--_height);
44
72
 
45
73
  background: var(--_bg);
46
- border: var(--ui-border-width-sm, #{t.$border-width-sm}) solid var(--_border-color);
74
+ border: var(--_border-width-sm) solid var(--_border-color);
47
75
  border-radius: var(--_radius);
48
76
 
49
77
  transition:
50
- border-color var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
51
- box-shadow var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
78
+ border-color var(--_duration-fast) var(--_ease-default),
79
+ box-shadow var(--_duration-fast) var(--_ease-default);
52
80
 
53
81
  // Focus via inner field
54
82
  &:focus-within,
55
83
  &--focus {
56
84
  border-color: var(--_border-color-focus);
57
- box-shadow: 0 0 0 var(--ui-border-width-md, #{t.$border-width-md}) var(--ui-color-focus, #{t.$color-focus});
85
+ box-shadow: 0 0 0 var(--_border-width-md) var(--_color-focus);
58
86
  }
59
87
 
60
88
  // Full width
89
+ // @modifier boolean block
61
90
  &--block {
62
91
  inline-size: 100%;
63
92
  }
64
93
 
65
94
  // Disabled
95
+ // @modifier boolean disabled
66
96
  &--disabled,
67
97
  &:has(.search-input__field:disabled) {
68
- opacity: var(--ui-opacity-disabled, 0.5);
98
+ opacity: var(--_opacity-disabled);
69
99
  cursor: not-allowed;
70
100
  }
71
101
  }
@@ -125,6 +155,7 @@
125
155
  }
126
156
 
127
157
  // Field padding when clear button present
158
+ // @modifier boolean has-clear
128
159
  .search-input--has-clear .search-input__field {
129
160
  padding-inline-end: 0;
130
161
  }
@@ -136,25 +167,25 @@
136
167
  align-items: center;
137
168
  justify-content: center;
138
169
 
139
- block-size: calc(var(--_height) - var(--ui-space-half, #{t.$space-0}) * 2);
140
- inline-size: calc(var(--_height) - var(--ui-space-half, #{t.$space-0}) * 2);
141
- margin-inline-end: calc(var(--ui-space-half, #{t.$space-0}));
170
+ block-size: calc(var(--_height) - var(--_space-half) * 2);
171
+ inline-size: calc(var(--_height) - var(--_space-half) * 2);
172
+ margin-inline-end: calc(var(--_space-half));
142
173
 
143
174
  color: var(--_clear-color);
144
175
 
145
176
  background: transparent;
146
177
  border: none;
147
- border-radius: var(--ui-radius-sm, #{t.$radius-sm});
178
+ border-radius: var(--_radius-sm);
148
179
  cursor: pointer;
149
180
 
150
- transition: background var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
181
+ transition: background var(--_duration-fast) var(--_ease-default);
151
182
 
152
183
  &:hover {
153
184
  background: var(--_clear-hover-bg);
154
185
  }
155
186
 
156
187
  &:focus-visible {
157
- outline: 2px solid var(--ui-color-focus, #{t.$color-focus});
188
+ outline: 2px solid var(--_color-focus);
158
189
  outline-offset: -2px;
159
190
  }
160
191