@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": "alert",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -13,108 +14,82 @@
13
14
  }
14
15
  },
15
16
  "elements": {
17
+ "icon": {},
16
18
  "content": {},
17
19
  "title": {},
18
20
  "description": {},
19
- "icon": {},
20
21
  "close": {}
21
22
  },
22
23
  "cssVars": [
24
+ {
25
+ "name": "--ui-alert-accent",
26
+ "default": "var(--ui-color-border)",
27
+ "description": "Accent color"
28
+ },
23
29
  {
24
30
  "name": "--ui-alert-padding",
25
- "default": "var(--ui-space-2)"
31
+ "default": "var(--ui-space-2)",
32
+ "description": "Padding on all sides"
26
33
  },
27
34
  {
28
35
  "name": "--ui-alert-border-width",
29
- "default": "var(--ui-border-width-sm)"
36
+ "default": "var(--ui-border-width-sm)",
37
+ "description": "Border thickness"
30
38
  },
31
39
  {
32
40
  "name": "--ui-alert-gap",
33
- "default": "var(--ui-space-1)"
41
+ "default": "var(--ui-space-1)",
42
+ "description": "Gap between children"
34
43
  },
35
44
  {
36
45
  "name": "--ui-alert-radius",
37
- "default": "var(--ui-radius-md)"
38
- },
39
- {
40
- "name": "--ui-alert-bg",
41
- "default": "var(--ui-color-bg-subtle)"
42
- },
43
- {
44
- "name": "--ui-alert-border-color",
45
- "default": "var(--ui-color-border)"
46
+ "default": "var(--ui-radius-md)",
47
+ "description": "Corner radius"
46
48
  },
47
49
  {
48
50
  "name": "--ui-alert-color",
49
- "default": "var(--ui-color-text)"
51
+ "default": "var(--ui-color-text)",
52
+ "description": "Text color"
50
53
  },
51
54
  {
52
- "name": "--ui-alert-icon-color",
53
- "default": "currentcolor"
55
+ "name": "--ui-alert-font-size",
56
+ "default": "inherit",
57
+ "description": "Font size"
54
58
  },
55
59
  {
56
60
  "name": "--ui-alert-padding-sm",
57
- "default": "var(--ui-space-1)"
58
- },
59
- {
60
- "name": "--ui-alert-font-size-sm",
61
- "default": "var(--ui-font-size-sm)"
62
- },
63
- {
64
- "name": "--ui-alert-padding-lg",
65
- "default": "var(--ui-space-4)"
66
- },
67
- {
68
- "name": "--ui-alert-font-size-lg",
69
- "default": "var(--ui-font-size-lg)"
70
- },
71
- {
72
- "name": "--ui-alert-info-bg",
73
- "default": "var(--ui-color-bg-subtle)"
74
- },
75
- {
76
- "name": "--ui-alert-info-border",
77
- "default": "var(--ui-color-primary)"
78
- },
79
- {
80
- "name": "--ui-alert-info-icon",
81
- "default": "var(--ui-color-primary)"
82
- },
83
- {
84
- "name": "--ui-alert-success-bg",
85
- "default": "var(--ui-color-bg-subtle)"
86
- },
87
- {
88
- "name": "--ui-alert-success-border",
89
- "default": "var(--ui-color-success)"
90
- },
91
- {
92
- "name": "--ui-alert-success-icon",
93
- "default": "var(--ui-color-success)"
61
+ "default": "var(--ui-space-1)",
62
+ "description": "Padding on all sides at small size"
94
63
  },
95
64
  {
96
- "name": "--ui-alert-warning-bg",
97
- "default": "var(--ui-color-bg-subtle)"
65
+ "name": "--ui-alert-gap-sm",
66
+ "default": "calc(var(--ui-unit) * 0.5)",
67
+ "description": "Gap between children at small size"
98
68
  },
99
69
  {
100
- "name": "--ui-alert-warning-border",
101
- "default": "var(--ui-color-warning)"
70
+ "name": "--ui-alert-font-size-sm",
71
+ "default": "var(--ui-font-size-sm)",
72
+ "description": "Font size at small size"
102
73
  },
103
74
  {
104
- "name": "--ui-alert-warning-icon",
105
- "default": "var(--ui-color-warning)"
75
+ "name": "--ui-alert-padding-lg",
76
+ "default": "var(--ui-space-4)",
77
+ "description": "Padding on all sides at large size"
106
78
  },
107
79
  {
108
- "name": "--ui-alert-danger-bg",
109
- "default": "var(--ui-color-bg-subtle)"
80
+ "name": "--ui-alert-gap-lg",
81
+ "default": "var(--ui-space-2)",
82
+ "description": "Gap between children at large size"
110
83
  },
111
84
  {
112
- "name": "--ui-alert-danger-border",
113
- "default": "var(--ui-color-danger)"
85
+ "name": "--ui-alert-font-size-lg",
86
+ "default": "var(--ui-font-size-lg)",
87
+ "description": "Font size at large size"
114
88
  },
115
89
  {
116
- "name": "--ui-alert-danger-icon",
117
- "default": "var(--ui-color-danger)"
90
+ "name": "--ui-alert-padding-end",
91
+ "default": "calc(var(--ui-unit) * 5)",
92
+ "description": "Padding end"
118
93
  }
119
94
  ]
120
95
  }
@@ -5,16 +5,28 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .alert {
8
+ --_weight-medium: var(--ui-weight-medium, #{t.$weight-medium});
9
+ --_row-1: var(--ui-row-1, #{t.$row});
10
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
11
+ --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
12
+ --_color-text: var(--ui-color-text, #{t.$color-text});
8
13
  // Single accent color - variants override, bg/border derived via color-mix
14
+ // @desc Accent color
9
15
  --_accent: var(--ui-alert-accent, var(--ui-color-border, #{t.$color-border}));
10
16
 
17
+ // @desc Padding on all sides
11
18
  --_padding: var(--ui-alert-padding, var(--ui-space-2, #{t.$space-2}));
19
+ // @desc Border thickness
12
20
  --_border-width: var(--ui-alert-border-width, var(--ui-border-width-sm, #{t.$border-width-sm}));
21
+ // @desc Gap between children
13
22
  --_gap: var(--ui-alert-gap, var(--ui-space-1, #{t.$space-1}));
23
+ // @desc Corner radius
14
24
  --_radius: var(--ui-alert-radius, var(--ui-radius-md, #{t.$radius-md}));
15
25
  --_bg: color-mix(in oklch, var(--_accent) 8%, white);
16
26
  --_border-color: var(--_accent);
27
+ // @desc Text color
17
28
  --_color: var(--ui-alert-color, var(--ui-color-text, #{t.$color-text}));
29
+ // @desc Font size
18
30
  --_font-size: var(--ui-alert-font-size, inherit);
19
31
  --_padding-end: 0;
20
32
  --_icon-color: var(--_accent);
@@ -39,19 +51,26 @@
39
51
 
40
52
  // @modifier size
41
53
  .alert--sm {
54
+ // @desc Padding on all sides at small size
42
55
  --_padding: var(--ui-alert-padding-sm, var(--ui-space-1, #{t.$space-1}));
56
+ // @desc Gap between children at small size
43
57
  --_gap: var(--ui-alert-gap-sm, calc(#{t.$unit} * 0.5));
58
+ // @desc Font size at small size
44
59
  --_font-size: var(--ui-alert-font-size-sm, var(--ui-font-size-sm, #{t.$font-size-sm}));
45
60
  }
46
61
 
47
62
  .alert--lg {
63
+ // @desc Padding on all sides at large size
48
64
  --_padding: var(--ui-alert-padding-lg, var(--ui-space-4, #{t.$space-4}));
65
+ // @desc Gap between children at large size
49
66
  --_gap: var(--ui-alert-gap-lg, var(--ui-space-2, #{t.$space-2}));
67
+ // @desc Font size at large size
50
68
  --_font-size: var(--ui-alert-font-size-lg, var(--ui-font-size-lg, #{t.$font-size-lg}));
51
69
  }
52
70
 
53
71
  // @modifier boolean dismissible
54
72
  .alert--dismissible {
73
+ // @desc Padding end
55
74
  --_padding-end: var(--ui-alert-padding-end, calc(#{t.$unit} * 5));
56
75
  }
57
76
  }
@@ -91,19 +110,19 @@
91
110
  .alert__title {
92
111
  margin: 0;
93
112
 
94
- font-weight: var(--ui-weight-medium, #{t.$weight-medium});
113
+ font-weight: var(--_weight-medium);
95
114
  // Line-height aligned to grid (24px = 3 units)
96
- line-height: var(--ui-row-1, #{t.$row});
115
+ line-height: var(--_row-1);
97
116
  }
98
117
 
99
118
  .alert__description {
100
119
  margin: 0;
101
120
  margin-block-start: calc(#{t.$unit} * 1);
102
121
 
103
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
122
+ font-size: var(--_font-size-sm);
104
123
  // Line-height aligned to grid (16px = 2 units for smaller text)
105
- line-height: var(--ui-row-1, #{t.$row});
106
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
124
+ line-height: var(--_row-1);
125
+ color: var(--_color-text-muted);
107
126
  }
108
127
 
109
128
  .alert__close {
@@ -112,14 +131,14 @@
112
131
 
113
132
  padding: 0;
114
133
 
115
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
134
+ color: var(--_color-text-muted);
116
135
 
117
136
  background: none;
118
137
  border: none;
119
138
  cursor: pointer;
120
139
 
121
140
  &:hover {
122
- color: var(--ui-color-text, #{t.$color-text});
141
+ color: var(--_color-text);
123
142
  }
124
143
  }
125
144
  }
@@ -1,16 +1,25 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component progress
3
+ // @element div
2
4
 
3
5
  // Progress - progress bar indicator
4
6
  // Shows completion status of a task
5
7
 
6
8
  @layer components.tokens {
7
9
  .progress {
10
+ --_duration-normal: var(--ui-duration-normal, #{t.$duration-normal});
11
+ --_ease-default: var(--ui-ease-default, ease);
12
+ // @desc Overall height
8
13
  --_height: var(--ui-progress-height, calc(#{t.$unit} * 1));
9
- --_bg: var(--ui-progress-bg, var(--ui-color-bg-subtle, rgb(0 0 0 / 0.1)));
14
+ // @desc Background color
15
+ --_bg: var(--ui-progress-bg, var(--ui-color-bg-subtle, #{t.$overlay-bg-subtle}));
16
+ // @desc Fill
10
17
  --_fill: var(--ui-progress-fill, var(--ui-color-primary));
11
- --_radius: var(--ui-progress-radius, var(--ui-radius-full, 9999px));
18
+ // @desc Corner radius
19
+ --_radius: var(--ui-progress-radius, var(--ui-radius-full, #{t.$radius-full}));
12
20
  }
13
21
 
22
+ // @modifier size
14
23
  .progress--sm {
15
24
  --_height: calc(#{t.$unit} * 1);
16
25
  }
@@ -37,10 +46,11 @@
37
46
  background: var(--_fill);
38
47
  border-radius: var(--_radius);
39
48
 
40
- transition: inline-size var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
49
+ transition: inline-size var(--_duration-normal) var(--_ease-default);
41
50
  }
42
51
 
43
52
  // Indeterminate state - animated stripe
53
+ // @modifier boolean indeterminate
44
54
  .progress--indeterminate .progress__bar {
45
55
  inline-size: 30%;
46
56
 
@@ -58,6 +68,7 @@
58
68
  }
59
69
 
60
70
  // Striped variant
71
+ // @modifier boolean striped
61
72
  .progress--striped .progress__bar {
62
73
  background-image: linear-gradient(
63
74
  45deg,
@@ -73,6 +84,7 @@
73
84
  }
74
85
 
75
86
  // Animated stripes
87
+ // @modifier boolean animated
76
88
  .progress--animated .progress__bar {
77
89
  animation: progress-stripes 1s linear infinite;
78
90
  }
@@ -98,6 +110,7 @@
98
110
  }
99
111
 
100
112
  // Color variants
113
+ // @modifier variant
101
114
  .progress--success {
102
115
  --_fill: var(--ui-color-success);
103
116
  }
@@ -1,12 +1,13 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "progress",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "size": {
6
7
  "values": ["sm", "lg"]
7
8
  },
8
- "variant": {
9
- "values": ["success", "warning", "danger"]
9
+ "indeterminate": {
10
+ "type": "boolean"
10
11
  },
11
12
  "striped": {
12
13
  "type": "boolean"
@@ -14,8 +15,8 @@
14
15
  "animated": {
15
16
  "type": "boolean"
16
17
  },
17
- "indeterminate": {
18
- "type": "boolean"
18
+ "variant": {
19
+ "values": ["success", "warning", "danger"]
19
20
  }
20
21
  },
21
22
  "elements": {
@@ -24,19 +25,23 @@
24
25
  "cssVars": [
25
26
  {
26
27
  "name": "--ui-progress-height",
27
- "default": "calc(var(--ui-unit) * 1"
28
+ "default": "calc(var(--ui-unit) * 1)",
29
+ "description": "Overall height"
28
30
  },
29
31
  {
30
32
  "name": "--ui-progress-bg",
31
- "default": "var(--ui-color-bg-subtle)"
33
+ "default": "var(--ui-color-bg-subtle)",
34
+ "description": "Background color"
32
35
  },
33
36
  {
34
37
  "name": "--ui-progress-fill",
35
- "default": "var(--ui-color-primary)"
38
+ "default": "var(--ui-color-primary)",
39
+ "description": "Fill"
36
40
  },
37
41
  {
38
42
  "name": "--ui-progress-radius",
39
- "default": "var(--ui-radius-full)"
43
+ "default": "var(--ui-radius-full)",
44
+ "description": "Corner radius"
40
45
  }
41
46
  ]
42
47
  }
@@ -1,28 +1,40 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component progress-circle
3
+ // @element svg
2
4
 
3
5
  // Progress Circle - circular progress indicator
4
6
  // Uses SVG circles with stroke-dasharray/dashoffset driven by --ui-progress-circle-value
5
7
 
6
8
  @layer components.tokens {
7
9
  .progress-circle {
10
+ --_duration-slow: var(--ui-duration-slow, #{t.$duration-slow});
11
+ --_ease-default: var(--ui-ease-default, ease);
12
+ // @desc Overall size
8
13
  --_size: var(--ui-progress-circle-size, calc(var(--ui-unit) * 6));
9
- --_stroke-width: var(--ui-progress-circle-stroke-width, 8);
14
+ // @desc Stroke width
15
+ --_stroke-width: var(--ui-progress-circle-stroke-width, #{t.$progress-circle-stroke-width});
16
+ // @desc Fill area text color
10
17
  --_fill-color: var(--ui-progress-circle-fill-color, var(--ui-color-primary));
18
+ // @desc Track text color
11
19
  --_track-color: var(--ui-progress-circle-track-color, var(--ui-color-border));
20
+ // @desc Value
12
21
  --_value: var(--ui-progress-circle-value, 0);
13
22
  --_circumference: 282.743;
14
23
  }
15
24
 
16
25
  // @modifier size
17
26
  .progress-circle--sm {
27
+ // @desc Overall size at small size
18
28
  --_size: var(--ui-progress-circle-size-sm, calc(var(--ui-unit) * 4));
19
29
  }
20
30
 
21
31
  .progress-circle--lg {
32
+ // @desc Overall size at large size
22
33
  --_size: var(--ui-progress-circle-size-lg, calc(var(--ui-unit) * 8));
23
34
  }
24
35
 
25
36
  .progress-circle--xl {
37
+ // @desc Overall size at extra-large size
26
38
  --_size: var(--ui-progress-circle-size-xl, calc(var(--ui-unit) * 12));
27
39
  }
28
40
 
@@ -66,10 +78,11 @@
66
78
  stroke-dasharray: var(--_circumference);
67
79
  stroke-dashoffset: calc(var(--_circumference) * (1 - var(--_value) / 100));
68
80
 
69
- transition: stroke-dashoffset var(--ui-duration-slow, 300ms) var(--ui-ease-default, ease);
81
+ transition: stroke-dashoffset var(--_duration-slow) var(--_ease-default);
70
82
  }
71
83
 
72
84
  // Indeterminate - rotating partial arc
85
+ // @modifier boolean indeterminate
73
86
  .progress-circle--indeterminate {
74
87
  animation: progress-circle-rotate 1.4s linear infinite;
75
88
  }
@@ -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": "progress-circle",
3
4
  "element": "svg",
4
5
  "modifiers": {
@@ -19,35 +20,43 @@
19
20
  "cssVars": [
20
21
  {
21
22
  "name": "--ui-progress-circle-size",
22
- "default": "calc(var(--ui-unit) * 6)"
23
+ "default": "calc(var(--ui-unit) * 6)",
24
+ "description": "Overall size"
23
25
  },
24
26
  {
25
27
  "name": "--ui-progress-circle-stroke-width",
26
- "default": "8"
28
+ "default": "var(--ui-progress-circle-stroke-width)",
29
+ "description": "Stroke width"
27
30
  },
28
31
  {
29
32
  "name": "--ui-progress-circle-fill-color",
30
- "default": "var(--ui-color-primary)"
33
+ "default": "var(--ui-color-primary)",
34
+ "description": "Fill area text color"
31
35
  },
32
36
  {
33
37
  "name": "--ui-progress-circle-track-color",
34
- "default": "var(--ui-color-border)"
38
+ "default": "var(--ui-color-border)",
39
+ "description": "Track text color"
35
40
  },
36
41
  {
37
42
  "name": "--ui-progress-circle-value",
38
- "default": "0"
43
+ "default": "0",
44
+ "description": "Value"
39
45
  },
40
46
  {
41
47
  "name": "--ui-progress-circle-size-sm",
42
- "default": "calc(var(--ui-unit) * 4)"
48
+ "default": "calc(var(--ui-unit) * 4)",
49
+ "description": "Overall size at small size"
43
50
  },
44
51
  {
45
52
  "name": "--ui-progress-circle-size-lg",
46
- "default": "calc(var(--ui-unit) * 8)"
53
+ "default": "calc(var(--ui-unit) * 8)",
54
+ "description": "Overall size at large size"
47
55
  },
48
56
  {
49
57
  "name": "--ui-progress-circle-size-xl",
50
- "default": "calc(var(--ui-unit) * 12)"
58
+ "default": "calc(var(--ui-unit) * 12)",
59
+ "description": "Overall size at extra-large size"
51
60
  }
52
61
  ]
53
62
  }
@@ -1,12 +1,17 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component skeleton
3
+ // @element div
2
4
 
3
5
  // Skeleton - loading placeholder
4
6
  // Animated shimmer effect for content loading states
5
7
 
6
8
  @layer components.tokens {
7
9
  .skeleton {
8
- --_bg: var(--ui-skeleton-bg, var(--ui-color-bg-subtle, rgb(0 0 0 / 0.1)));
9
- --_shimmer: var(--ui-skeleton-shimmer, rgb(255 255 255 / 0.5));
10
+ // @desc Background color
11
+ --_bg: var(--ui-skeleton-bg, var(--ui-color-bg-subtle, #{t.$overlay-bg-subtle}));
12
+ // @desc Shimmer
13
+ --_shimmer: var(--ui-skeleton-shimmer, #{t.$skeleton-shimmer});
14
+ // @desc Corner radius
10
15
  --_radius: var(--ui-skeleton-radius, var(--ui-radius-sm, calc(#{t.$unit} / 2)));
11
16
  }
12
17
  }
@@ -47,6 +52,7 @@
47
52
  }
48
53
 
49
54
  // Text line variant
55
+ // @modifier variant
50
56
  .skeleton--text {
51
57
  block-size: calc(#{t.$unit} * 2);
52
58
  inline-size: 100%;
@@ -78,6 +84,7 @@
78
84
  }
79
85
 
80
86
  // Pulse animation alternative
87
+ // @modifier boolean pulse
81
88
  .skeleton--pulse {
82
89
  animation: skeleton-pulse 1.5s infinite ease-in-out;
83
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": "skeleton",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "variant": {
6
- "values": ["text", "circle", "heading", "rect"]
7
+ "values": ["text", "heading", "circle", "rect", "static"]
7
8
  },
8
9
  "pulse": {
9
10
  "type": "boolean"
@@ -12,15 +13,18 @@
12
13
  "cssVars": [
13
14
  {
14
15
  "name": "--ui-skeleton-bg",
15
- "default": "var(--ui-color-bg-subtle)"
16
+ "default": "var(--ui-color-bg-subtle)",
17
+ "description": "Background color"
16
18
  },
17
19
  {
18
20
  "name": "--ui-skeleton-shimmer",
19
- "default": "rgb(255 255 255 / 0.5"
21
+ "default": "var(--ui-skeleton-shimmer)",
22
+ "description": "Shimmer"
20
23
  },
21
24
  {
22
25
  "name": "--ui-skeleton-radius",
23
- "default": "var(--ui-radius-sm)"
26
+ "default": "var(--ui-radius-sm)",
27
+ "description": "Corner radius"
24
28
  }
25
29
  ]
26
30
  }
@@ -5,31 +5,44 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .spinner {
8
+ // @desc Overall size
8
9
  --_size: var(--ui-spinner-size, calc(var(--ui-unit) * 4));
10
+ // @desc Border thickness
9
11
  --_border-width: var(--ui-spinner-border-width, var(--ui-border-width-md));
12
+ // @desc Text color
10
13
  --_color: var(--ui-spinner-color, currentcolor);
14
+ // @desc Track text color
11
15
  --_track-color: var(--ui-spinner-track-color, transparent);
12
- --_duration: var(--ui-spinner-duration, 750ms);
16
+ // @desc Animation duration
17
+ --_duration: var(--ui-spinner-duration, #{t.$spinner-duration});
13
18
  }
14
19
 
15
20
  // @modifier size
16
21
  .spinner--xs {
22
+ // @desc Overall size at extra-small size
17
23
  --_size: var(--ui-spinner-size-xs, calc(var(--ui-unit) * 2));
24
+ // @desc Border thickness at extra-small size
18
25
  --_border-width: var(--ui-spinner-border-width-xs, var(--ui-border-width-sm));
19
26
  }
20
27
 
21
28
  .spinner--sm {
29
+ // @desc Overall size at small size
22
30
  --_size: var(--ui-spinner-size-sm, calc(var(--ui-unit) * 3));
31
+ // @desc Border thickness at small size
23
32
  --_border-width: var(--ui-spinner-border-width-sm, var(--ui-border-width-md));
24
33
  }
25
34
 
26
35
  .spinner--lg {
36
+ // @desc Overall size at large size
27
37
  --_size: var(--ui-spinner-size-lg, calc(var(--ui-unit) * 5));
38
+ // @desc Border thickness at large size
28
39
  --_border-width: var(--ui-spinner-border-width-lg, var(--ui-border-width-md));
29
40
  }
30
41
 
31
42
  .spinner--xl {
43
+ // @desc Overall size at extra-large size
32
44
  --_size: var(--ui-spinner-size-xl, calc(var(--ui-unit) * 6));
45
+ // @desc Border thickness at extra-large size
33
46
  --_border-width: var(--ui-spinner-border-width-xl, var(--ui-border-width-lg));
34
47
  }
35
48
  }