@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": "spinner",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -9,55 +10,68 @@
9
10
  "cssVars": [
10
11
  {
11
12
  "name": "--ui-spinner-size",
12
- "default": "var(--ui-unit)"
13
+ "default": "calc(var(--ui-unit) * 4)",
14
+ "description": "Overall size"
13
15
  },
14
16
  {
15
17
  "name": "--ui-spinner-border-width",
16
- "default": "var(--ui-border-width-md)"
18
+ "default": "var(--ui-border-width-md)",
19
+ "description": "Border thickness"
17
20
  },
18
21
  {
19
22
  "name": "--ui-spinner-color",
20
- "default": "currentcolor"
23
+ "default": "currentcolor",
24
+ "description": "Text color"
21
25
  },
22
26
  {
23
27
  "name": "--ui-spinner-track-color",
24
- "default": "transparent"
28
+ "default": "transparent",
29
+ "description": "Track text color"
25
30
  },
26
31
  {
27
32
  "name": "--ui-spinner-duration",
28
- "default": "750ms"
33
+ "default": "var(--ui-spinner-duration)",
34
+ "description": "Animation duration"
29
35
  },
30
36
  {
31
37
  "name": "--ui-spinner-size-xs",
32
- "default": "var(--ui-unit)"
38
+ "default": "calc(var(--ui-unit) * 2)",
39
+ "description": "Overall size at extra-small size"
33
40
  },
34
41
  {
35
42
  "name": "--ui-spinner-border-width-xs",
36
- "default": "var(--ui-border-width-sm)"
43
+ "default": "var(--ui-border-width-sm)",
44
+ "description": "Border thickness at extra-small size"
37
45
  },
38
46
  {
39
47
  "name": "--ui-spinner-size-sm",
40
- "default": "var(--ui-unit)"
48
+ "default": "calc(var(--ui-unit) * 3)",
49
+ "description": "Overall size at small size"
41
50
  },
42
51
  {
43
52
  "name": "--ui-spinner-border-width-sm",
44
- "default": "var(--ui-border-width-md)"
53
+ "default": "var(--ui-border-width-md)",
54
+ "description": "Border thickness at small size"
45
55
  },
46
56
  {
47
57
  "name": "--ui-spinner-size-lg",
48
- "default": "var(--ui-unit)"
58
+ "default": "calc(var(--ui-unit) * 5)",
59
+ "description": "Overall size at large size"
49
60
  },
50
61
  {
51
62
  "name": "--ui-spinner-border-width-lg",
52
- "default": "var(--ui-border-width-md)"
63
+ "default": "var(--ui-border-width-md)",
64
+ "description": "Border thickness at large size"
53
65
  },
54
66
  {
55
67
  "name": "--ui-spinner-size-xl",
56
- "default": "var(--ui-unit)"
68
+ "default": "calc(var(--ui-unit) * 6)",
69
+ "description": "Overall size at extra-large size"
57
70
  },
58
71
  {
59
72
  "name": "--ui-spinner-border-width-xl",
60
- "default": "var(--ui-border-width-lg)"
73
+ "default": "var(--ui-border-width-lg)",
74
+ "description": "Border thickness at extra-large size"
61
75
  }
62
76
  ]
63
77
  }
@@ -1,24 +1,48 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component toast
3
+ // @element div
4
+ // @related toast-viewport
2
5
 
3
6
  // Toast - notification messages
4
7
  // Appears in viewport corner with auto-dismiss
5
8
 
6
9
  @layer components.tokens {
7
10
  .toast-viewport {
11
+ --_z-toast: var(--ui-z-toast, #{t.$z-toast});
12
+ // @desc Viewport gap
8
13
  --_gap: var(--ui-toast-viewport-gap, calc(#{t.$unit} * 1));
14
+ // @desc Viewport padding
9
15
  --_padding: var(--ui-toast-viewport-padding, calc(#{t.$unit} * 2));
10
- --_max-width: var(--ui-toast-viewport-max-width, 420px);
16
+ // @desc Viewport max width
17
+ --_max-width: var(--ui-toast-viewport-max-width, #{t.$toast-viewport-max-width});
11
18
  }
12
19
 
13
20
  .toast {
21
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
22
+ --_weight-medium: var(--ui-weight-medium, #{t.$weight-medium});
23
+ --_row-1: var(--ui-row-1, #{t.$row});
24
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
25
+ --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
26
+ --_color-text: var(--ui-color-text, #{t.$color-text});
27
+ --_duration-normal: var(--ui-duration-normal, #{t.$duration-normal});
28
+ --_ease-out: var(--ui-ease-out, ease-out);
29
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
30
+ --_ease-in: var(--ui-ease-in, ease-in);
31
+ // @desc Padding on all sides
14
32
  --_padding: var(--ui-toast-padding, calc(#{t.$unit} * 2));
33
+ // @desc Gap between children
15
34
  --_gap: var(--ui-toast-gap, calc(#{t.$unit} * 1));
35
+ // @desc Corner radius
16
36
  --_radius: var(--ui-toast-radius, var(--ui-radius-md, #{t.$radius-md}));
37
+ // @desc Background color
17
38
  --_bg: var(--ui-toast-bg, var(--ui-color-bg, #{t.$color-bg}));
39
+ // @desc Border color
18
40
  --_border-color: var(--ui-toast-border-color, var(--ui-color-border, #{t.$color-border}));
41
+ // @desc Box shadow
19
42
  --_shadow: var(--ui-toast-shadow, var(--ui-shadow-lg));
20
43
  }
21
44
 
45
+ // @modifier variant
22
46
  .toast--success {
23
47
  --_border-color: var(--ui-color-success);
24
48
  }
@@ -44,7 +68,7 @@
44
68
  flex-direction: column;
45
69
  gap: var(--_gap);
46
70
  position: fixed;
47
- z-index: var(--ui-z-toast, 1000);
71
+ z-index: var(--_z-toast);
48
72
 
49
73
  max-inline-size: var(--_max-width);
50
74
  padding: var(--_padding);
@@ -99,10 +123,10 @@
99
123
 
100
124
  background: var(--_bg);
101
125
  border-radius: var(--_radius);
102
- outline: var(--ui-border-width-sm, 0.0625rem) solid var(--_border-color);
126
+ outline: var(--_border-width-sm) solid var(--_border-color);
103
127
  box-shadow: var(--_shadow);
104
128
  pointer-events: auto;
105
- outline-offset: calc(var(--ui-border-width-sm, 0.0625rem) * -1);
129
+ outline-offset: calc(var(--_border-width-sm) * -1);
106
130
  }
107
131
 
108
132
  .toast__icon {
@@ -118,16 +142,16 @@
118
142
  .toast__title {
119
143
  margin: 0;
120
144
 
121
- font-weight: var(--ui-weight-medium, #{t.$weight-medium});
122
- line-height: var(--ui-row-1, #{t.$row});
145
+ font-weight: var(--_weight-medium);
146
+ line-height: var(--_row-1);
123
147
  }
124
148
 
125
149
  .toast__description {
126
150
  margin: 0;
127
151
 
128
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
129
- line-height: var(--ui-row-1, #{t.$row});
130
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
152
+ font-size: var(--_font-size-sm);
153
+ line-height: var(--_row-1);
154
+ color: var(--_color-text-muted);
131
155
  }
132
156
 
133
157
  .toast__action {
@@ -140,28 +164,28 @@
140
164
  align-items: center;
141
165
  justify-content: center;
142
166
 
143
- block-size: var(--ui-row-1, #{t.$row});
144
- inline-size: var(--ui-row-1, #{t.$row});
167
+ block-size: var(--_row-1);
168
+ inline-size: var(--_row-1);
145
169
  padding: 0;
146
170
 
147
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
171
+ color: var(--_color-text-muted);
148
172
 
149
173
  background: none;
150
174
  border: none;
151
175
  cursor: pointer;
152
176
 
153
177
  &:hover {
154
- color: var(--ui-color-text, #{t.$color-text});
178
+ color: var(--_color-text);
155
179
  }
156
180
  }
157
181
 
158
182
  // Animation states
159
183
  .toast[data-state="open"] {
160
- animation: toast-slide-in var(--ui-duration-normal, 200ms) var(--ui-ease-out, ease-out);
184
+ animation: toast-slide-in var(--_duration-normal) var(--_ease-out);
161
185
  }
162
186
 
163
187
  .toast[data-state="closed"] {
164
- animation: toast-slide-out var(--ui-duration-fast, 100ms) var(--ui-ease-in, ease-in);
188
+ animation: toast-slide-out var(--_duration-fast) var(--_ease-in);
165
189
  }
166
190
 
167
191
  @keyframes toast-slide-in {
@@ -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": "toast",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -7,18 +8,34 @@
7
8
  }
8
9
  },
9
10
  "elements": {
11
+ "icon": {},
10
12
  "content": {},
11
13
  "title": {},
12
14
  "description": {},
13
- "close": {},
14
- "action": {}
15
+ "action": {},
16
+ "close": {}
15
17
  },
16
18
  "relatedComponents": [
17
19
  {
18
20
  "name": "toast-viewport",
19
21
  "modifiers": {
20
- "position": {
21
- "values": ["top-end", "bottom-end"]
22
+ "top-end": {
23
+ "type": "boolean"
24
+ },
25
+ "top-start": {
26
+ "type": "boolean"
27
+ },
28
+ "bottom-end": {
29
+ "type": "boolean"
30
+ },
31
+ "bottom-start": {
32
+ "type": "boolean"
33
+ },
34
+ "top-center": {
35
+ "type": "boolean"
36
+ },
37
+ "bottom-center": {
38
+ "type": "boolean"
22
39
  }
23
40
  }
24
41
  }
@@ -26,39 +43,48 @@
26
43
  "cssVars": [
27
44
  {
28
45
  "name": "--ui-toast-viewport-gap",
29
- "default": "calc(var(--ui-unit) * 1"
46
+ "default": "calc(var(--ui-unit) * 1)",
47
+ "description": "Viewport gap"
30
48
  },
31
49
  {
32
50
  "name": "--ui-toast-viewport-padding",
33
- "default": "calc(var(--ui-unit) * 2"
51
+ "default": "calc(var(--ui-unit) * 2)",
52
+ "description": "Viewport padding"
34
53
  },
35
54
  {
36
55
  "name": "--ui-toast-viewport-max-width",
37
- "default": "420px"
56
+ "default": "var(--ui-toast-viewport-max-width)",
57
+ "description": "Viewport max width"
38
58
  },
39
59
  {
40
60
  "name": "--ui-toast-padding",
41
- "default": "calc(var(--ui-unit) * 2"
61
+ "default": "calc(var(--ui-unit) * 2)",
62
+ "description": "Padding on all sides"
42
63
  },
43
64
  {
44
65
  "name": "--ui-toast-gap",
45
- "default": "calc(var(--ui-unit) * 1"
66
+ "default": "calc(var(--ui-unit) * 1)",
67
+ "description": "Gap between children"
46
68
  },
47
69
  {
48
70
  "name": "--ui-toast-radius",
49
- "default": "var(--ui-radius-md)"
71
+ "default": "var(--ui-radius-md)",
72
+ "description": "Corner radius"
50
73
  },
51
74
  {
52
75
  "name": "--ui-toast-bg",
53
- "default": "var(--ui-color-bg)"
76
+ "default": "var(--ui-color-bg)",
77
+ "description": "Background color"
54
78
  },
55
79
  {
56
80
  "name": "--ui-toast-border-color",
57
- "default": "var(--ui-color-border)"
81
+ "default": "var(--ui-color-border)",
82
+ "description": "Border color"
58
83
  },
59
84
  {
60
85
  "name": "--ui-toast-shadow",
61
- "default": "var(--shadow-lg)"
86
+ "default": "var(--ui-shadow-lg)",
87
+ "description": "Box shadow"
62
88
  }
63
89
  ]
64
90
  }
@@ -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": "checkbox",
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,43 +13,53 @@
12
13
  "cssVars": [
13
14
  {
14
15
  "name": "--ui-checkbox-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-checkbox-radius",
19
- "default": "var(--ui-radius-sm)"
21
+ "default": "var(--ui-radius-sm)",
22
+ "description": "Corner radius"
20
23
  },
21
24
  {
22
25
  "name": "--ui-checkbox-bg",
23
- "default": "var(--ui-color-bg)"
26
+ "default": "var(--ui-color-bg)",
27
+ "description": "Background color"
24
28
  },
25
29
  {
26
30
  "name": "--ui-checkbox-bg-checked",
27
- "default": "var(--ui-color-primary)"
31
+ "default": "var(--ui-color-primary)",
32
+ "description": "Bg checked"
28
33
  },
29
34
  {
30
35
  "name": "--ui-checkbox-border-color",
31
- "default": "var(--ui-color-border-strong)"
36
+ "default": "var(--ui-color-border-strong)",
37
+ "description": "Border color"
32
38
  },
33
39
  {
34
40
  "name": "--ui-checkbox-border-color-focus",
35
- "default": "var(--ui-color-primary)"
41
+ "default": "var(--ui-color-primary)",
42
+ "description": "Border color focus"
36
43
  },
37
44
  {
38
45
  "name": "--ui-checkbox-check-color",
39
- "default": "var(--ui-color-text-inverse)"
46
+ "default": "var(--ui-color-text-inverse)",
47
+ "description": "Check mark text color"
40
48
  },
41
49
  {
42
50
  "name": "--ui-checkbox-size-lg",
43
- "default": "calc(var(--ui-unit) * 3"
51
+ "default": "calc(var(--ui-unit) * 3)",
52
+ "description": "Overall size at large size"
44
53
  },
45
54
  {
46
55
  "name": "--ui-checkbox-error-border",
47
- "default": "var(--ui-color-danger)"
56
+ "default": "var(--ui-color-danger)",
57
+ "description": "Error border"
48
58
  },
49
59
  {
50
60
  "name": "--ui-checkbox-success-border",
51
- "default": "var(--ui-color-success)"
61
+ "default": "var(--ui-color-success)",
62
+ "description": "Success border"
52
63
  }
53
64
  ]
54
65
  }
@@ -5,28 +5,46 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .checkbox {
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-checkbox-size, calc(#{t.$unit} * 2));
16
+ // @desc Corner radius
9
17
  --_radius: var(--ui-checkbox-radius, var(--ui-radius-sm, #{t.$radius-sm}));
18
+ // @desc Background color
10
19
  --_bg: var(--ui-checkbox-bg, var(--ui-color-bg, #{t.$color-bg}));
20
+ // @desc Bg checked
11
21
  --_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, #{t.$color-primary}));
22
+ // @desc Border color
12
23
  --_border-color: var(--ui-checkbox-border-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
24
+ // @desc Border color focus
13
25
  --_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, #{t.$color-primary}));
26
+ // @desc Check mark text color
14
27
  --_check-color: var(--ui-checkbox-check-color, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
15
28
  }
16
29
 
17
30
  // @modifier size
18
31
  .checkbox--lg {
32
+ // @desc Overall size at large size
19
33
  --_size: var(--ui-checkbox-size-lg, calc(#{t.$unit} * 3));
20
34
  }
21
35
 
22
36
  // @modifier state
23
37
  .checkbox--error {
38
+ // @desc Error border
24
39
  --_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, #{t.$color-danger}));
40
+ // @desc Error border
25
41
  --_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, #{t.$color-danger}));
26
42
  }
27
43
 
28
44
  .checkbox--success {
45
+ // @desc Success border
29
46
  --_border-color: var(--ui-checkbox-success-border, var(--ui-color-success, #{t.$color-success}));
47
+ // @desc Success border
30
48
  --_border-color-focus: var(--ui-checkbox-success-border, var(--ui-color-success, #{t.$color-success}));
31
49
  }
32
50
  }
@@ -46,16 +64,16 @@
46
64
  vertical-align: middle;
47
65
 
48
66
  background: var(--_bg);
49
- border: var(--ui-border-width-sm, #{t.$border-width-sm}) solid var(--_border-color);
67
+ border: var(--_border-width-sm) solid var(--_border-color);
50
68
  border-radius: var(--_radius);
51
69
  cursor: pointer;
52
70
  // Reset native checkbox
53
71
  appearance: none;
54
72
 
55
73
  transition:
56
- background-color var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
57
- border-color var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease),
58
- box-shadow var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
74
+ background-color var(--_duration-fast) var(--_ease-default),
75
+ border-color var(--_duration-fast) var(--_ease-default),
76
+ box-shadow var(--_duration-fast) var(--_ease-default);
59
77
 
60
78
  &::before {
61
79
  content: '';
@@ -68,7 +86,7 @@
68
86
  // Checkmark via clip-path
69
87
  clip-path: polygon(20% 55%, 40% 75%, 80% 25%, 85% 30%, 40% 85%, 15% 60%);
70
88
 
71
- transition: opacity var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
89
+ transition: opacity var(--_duration-fast) var(--_ease-default);
72
90
  }
73
91
 
74
92
  &:hover:not(:disabled) {
@@ -77,10 +95,10 @@
77
95
 
78
96
  &:focus-visible {
79
97
  border-color: var(--_border-color-focus);
80
- outline: var(--ui-border-width-md, #{t.$border-width-md}) solid transparent;
81
- outline-offset: var(--ui-border-width-sm, #{t.$border-width-sm});
98
+ outline: var(--_border-width-md) solid transparent;
99
+ outline-offset: var(--_border-width-sm);
82
100
 
83
- box-shadow: 0 0 0 var(--ui-border-width-md, #{t.$border-width-md}) var(--ui-color-focus, #{t.$color-focus});
101
+ box-shadow: 0 0 0 var(--_border-width-md) var(--_color-focus);
84
102
  }
85
103
 
86
104
  &:checked {
@@ -104,7 +122,7 @@
104
122
  }
105
123
 
106
124
  &:disabled {
107
- opacity: var(--ui-opacity-disabled, 0.5);
125
+ opacity: var(--_opacity-disabled);
108
126
  cursor: not-allowed;
109
127
  }
110
128
  }
@@ -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": "checkbox-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-checkbox-group-spacing",
23
- "default": "var(--ui-space-1)"
24
- },
25
- {
26
- "name": "--ui-checkbox-group-spacing-compact",
27
- "default": "0"
24
+ "default": "var(--ui-space-1)",
25
+ "description": "Spacing"
28
26
  },
29
27
  {
30
28
  "name": "--ui-checkbox-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-checkbox-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-checkbox-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-checkbox-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-checkbox-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-checkbox-group-spacing-compact",
54
+ "default": "0",
55
+ "description": "Spacing compact"
56
+ },
57
+ {
58
+ "name": "--ui-checkbox-group-legend-spacing-compact",
59
+ "default": "0",
60
+ "description": "Legend spacing compact"
61
+ },
62
+ {
63
+ "name": "--ui-checkbox-group-item-gap-compact",
64
+ "default": "0",
65
+ "description": "Item gap compact"
48
66
  },
49
67
  {
50
68
  "name": "--ui-checkbox-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,22 +5,38 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .checkbox-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-checkbox-group-spacing, var(--ui-space-1, #{t.$space-1}));
14
+ // @desc Legend size
9
15
  --_legend-size: var(--ui-checkbox-group-legend-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
16
+ // @desc Legend weight
10
17
  --_legend-weight: var(--ui-checkbox-group-legend-weight, var(--ui-weight-medium, #{t.$weight-medium}));
18
+ // @desc Legend color
11
19
  --_legend-color: var(--ui-checkbox-group-legend-color, var(--ui-color-text, #{t.$color-text}));
20
+ // @desc Legend spacing
12
21
  --_legend-spacing: var(--ui-checkbox-group-legend-spacing, var(--ui-space-1, #{t.$space-1}));
22
+ // @desc Item gap between children
13
23
  --_item-gap: var(--ui-checkbox-group-item-gap, var(--ui-space-1, #{t.$space-1}));
14
24
  }
15
25
 
26
+ // @modifier boolean compact
16
27
  .checkbox-group--compact {
28
+ // @desc Spacing compact
17
29
  --_spacing: var(--ui-checkbox-group-spacing-compact, 0);
30
+ // @desc Legend spacing compact
18
31
  --_legend-spacing: var(--ui-checkbox-group-legend-spacing-compact, 0);
32
+ // @desc Item gap compact
19
33
  --_item-gap: var(--ui-checkbox-group-item-gap-compact, 0);
20
34
  }
21
35
 
22
36
  // @modifier state
37
+ // @modifier boolean error
23
38
  .checkbox-group--error {
39
+ // @desc Error color
24
40
  --_legend-color: var(--ui-checkbox-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
  .checkbox-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
  .checkbox-group--horizontal > .checkbox-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
  .checkbox-group:disabled,
80
97
  .checkbox-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
  }